Cyrus Daboo wrote:
> That said, I have wondered for a while whether it would not be better to
> have a formal ABNF syntax for the commands and tests. Would that
> actually be possible or useful?
I don't think so. Programming languages are typically specified as
Sieve is, in terms of tokens, a formal grammar, and a standard library.
I concur. The problem with fully specifying ABNF for
commands and tests is that it tends to imply that's all there is, which
then clashes with future extensions.
We could do what you suggest--in fact, the early drafts did so. It
was not very readable or particularly helpful.
We tried this with MIME as well - we had ABNF for the initial
set of content-types. It did much more harm than good.
Extensions would have to
extend the grammar, and that's error-prone and not at all in line with
what programming languages usually do. Worse, you wouldn't be able to
parse the general language without knowing all the extensions a
particular script used.