[grammar] A few ABNF issues

I've just been looking over the ABNF part of the grammar working draft from
an implementation point of view, and I've come across a few minor issues:

Sections 4.2 - 4.4
Is there a good reason why the alias, lexicon, and meta declarations have to
come in that order?  Requiring a specific order makes life harder for both
the implementer and the user, IMHO.  I'm worried that users aren't going to
remember the proper order and are going to get very frustrated.  And though
it's easy enough to implement an ABNF parser that requires the declarations
in this order, to make it usable I think I'll have to put in extra checks
for out-of-order declarations and issue intelligent error messages ("Meta
declarations must come after alias and lexicon declarations").  It would be
much easier to just allow them to come in any order.  (Or to be mixed.)

Sections 4.1.2 - 4.1.5
I think the same argument applies to the language, mode, root, and
tag-format declarations as well.  It's a bit weaker, since you're only
allowed to have one of each of these.  But I'd much rather allow them to be
specified in any order and enforce the one-of-each rule at at a semantic

Section 4.3, Pronunciation Lexicon:
In the example, lexicon looks like this:
    lexicon $(http://www.example.com/lexicon.file);
However, in the EBNF grammar for ABNF, it says:
    LexiconURI       ::= '(' URIC+ ')'
One of these has to be wrong.  I suspect it's the latter, because the rest
of the document consistently uses $(...)

Appendix D, Formal Syntax for Augmented BNF
All of the URI tokens are defined using the URIC production from RFC2396,
	LexiconURI       ::= '(' URIC+ ')'
However, since ')' is a valid character in URIC, this is nondeterministic.

Appendix D again...
The MimeTypeChar production is not defined.

Laura Werner

Received on Monday, 3 September 2001 19:40:15 UTC