On Wed, 2004-08-11 at 11:21 -0400, Tony Hansen wrote:
It says this:
This extension changes the semantics of quoted-string, multi-line-
literal and multi-line-dotstuff found in [SIEVE] to enable the inclu-
sion of the value of variables. The syntax follows [ABNF].
but never gives the redefined ABNF for quoted-string, multi-line-literal
nor multi-line-dotstuff.
my very first draft (not submitted) tried to make a change to the
syntax, but it was pointed out on this list that it was ambiguous:
*CHAR expands to valid variable references. I tried to rewrite the
syntax to avoid the problem, but it got really convoluted. list
consensus at the time was to leave the syntax alone and change the
semantics. this also mimics the natural way of implementing the
extension, IMHO.
I do agree the wording in that paragraph is a little confusing, though.
perhaps it's better to put the grammar _below_ the explanation of the
procedure. also, the reference to [ABNF] is a better fit in the
conventions paragraph in the introduction:
Conventions for notations are as in [SIEVE] section 1.1, including
- use of [KEYWORDS]. In this document, "character" means a [UNICODE]
+ use of [KEYWORDS] and [ABNF]. In this document, "character" means a
my copy now says:
3. Interpretation of strings
This extension changes the semantics of quoted-string, multi-line-
literal and multi-line-dotstuff found in [SIEVE] to enable the inclu-
sion of the value of variables.
When a string is evaluated, substrings matching variable-ref shall be
replaced by the value of variable-name. Only one pass through the
string shall be done. Variable names are case insensitive, so "foo"
and "FOO" refer to the same variable. Unknown variables are replaced
by the empty string.
variable-ref = "${" variable-name "}"
variable-name = num-variable / *namespace identifier
namespace = identifier "."
num-variable = 1*DIGIT
Examples:
[...]
242c242
< When the string is evaluated, substrings matching variable-ref
< shall
---
> When the string is evaluated, substrings matching variable-ref
> SHALL
is it appropriate to use these capitalised forms everywhere? if so,
this should(!) be a MUST.
244c244
< string shall be done. Variable names are case insensitive.
407c407
< stops. Variable names are case insensitive.
hmm, a little duplication. I guess it doesn't hurt to point it out
twice, though.
thank you for your nits, with the exception of SHALL, they have been
incorporated in my copy.
--
Kjetil T.