ietf-mta-filters
[Top] [All Lists]

Re: lone ';' in Sieve

2001-02-16 04:26:51
I sent a note to Tim Showalter regarding the use of a lone
';' as a no-op.  Apparently, RFC 3028 doesn't allow this.
He suggested that I subscribe here and raise the issue for
general discussion.  I have not previously participated
on IETF mailing lists, even as a lurker.

I think that the ";" is meant to say "end of command".  If there is no command 
before it and it's to be legal, then it's saying "end of command that we didn't 
find".  A bit strange...  

Were we to allow a lone ';', then it becomes a kind of conditional whitespace.  
It serves no functional purpose in the language, and just really adds clutter 
to the script.  Users are probably going to spend most of their time forgetting 
to put the ';' in rather than putting too many in :o)

Although I don't feel so strongly, I think it better and easier if we don't 
allow it.  At worst all it means to the user is the mild inconvenience of a 
compile time error.

Many languages allow a lone ';' for completeness and convenience.
As I think of it, it seems to me that several languages allow
lone blocks (i.e. "{...}" outside of "if" and similar
statements) as well.

I think other languages allow {...} without if/for/while/elsif/etc to allow the 
principles of "scope".  We don't have variables in the Sieve language, so we 
don't have a concept of scope.  That's probably why it's not available in the 
Sieve language.

On a similar issue we do allow "if true {}", but that's different :o)

Nigel


<Prev in Thread] Current Thread [Next in Thread>