[rfc-i] Re: ABNF (RFC2234) vs HTTP's augmented BNF syntax (RFC822
fenner at research.att.com
Tue Feb 15 11:08:33 PST 2005
Bruce Lilly writes:
>a. The text specifies that comments must be delimited on their
> lines by a semicolon, however the ABNF ABNF contains several
> lines apparently intended as comments that are not so delimited:
> without DQUOTE
> without angles
> last resort
> excluding NUL
These are being fixed in a revision due very shortly.
>c. There is no provision for whitespace before the "rulename"
> identifier in a rule!
That's right. ABNF inside documents is expected to be indented
consistently, but the leading whitespace is not part of the
ABNF, it's part of the document.
For visual ease, rule definitions are left aligned. When a rule
requires multiple lines, the continuation lines are indented. The
left alignment and indentation are relative to the first lines of the
ABNF rules and need not match the left margin of the document.
>d. It has a number of shift/reduce and reduce/reduce conflicts
> which complicate parsing (LR(1) parsing is precluded, for
> example). Consider the legal ABNF:
Not legal - continuation lines begin with white space.
>e. There are some understandable but odd (from a parsing POV)
> inconsistencies in handling whitespace (including line
> endings). E.g. while the example above and
>a = b c
>d = f
> are legal and equivalent,
>a = b c d = f
> which differs only slightly, is illegal.
This is intentional; a rule begins on a new line.
More information about the rfc-interest