Sieve.all,
I have a little problem with the comments in the sieve language as specified in
draft 05.
1) firts of all, comments cannot have white spaces according to the rule
comment = "#" *VCHAR CRLF
since VCHAR is defined in ABNF as
VCHAR = %x21-7e ; visible (printing) characters
and it is not overruled in the sieve spec. This does not include spaces and \t.
Until now, I defined it to be
comment = "#" *(SP / HTAB / VCHAR) CRLF
(btw. WSP in the ABNF doc is defined to be (SP / HTAB) while in the sieve draft
it is (SP / HTAB / CRLF) but this is not really a problem)
2) As I read it, a sieve script cannot start with a comment according to the
definition:
start = commands
commands = *([WSP] command [WSP])
command = identifier *(WSP argument) [WSP] (";" / block)
This tells that every script should start with an identifier. Maybe start could
be more like
start = *(commands / comments)
This is actually not correct but I do not understand where comments can be put.
Especially the example script at 2.3
if size :over 100K { # this is a comment
discard;
}
Comment is embedded in command in this specific example:
command = identifier *(WSP argument) [WSP] ( ";" / block )
block = "{" commands "}"
commands = *([WSP] command [WSP])
argument = string / string-list / number / tag / test
I cannot think about the best way to insert 'comments' somewhere right now but
before I try to think of something, I will wait if these issues made sense.
Also, I think almost every [WSP} should be replaced with *[WSP], or even
better, with LWSP.
- Wilbert