ietf-822
[Top] [All Lists]

Re: Revisiting RFC 2822 grammar (obs-utext and unstructured)

2004-02-08 07:54:54

Pete Resnick wrote:
On 2/7/04 at 9:11 AM -0500, Bruce Lilly wrote:

I think it's clearer to keep the obs- constructs out of the non-obs
productions. Indeed, it becomes clearer still if that is pursued to
its logical extreme:
[...]
i.e. the obs- constructs appear only in the obs-productions, rather
than as an alternative in non-obs productions.


Though it may be clearer for someone actually coding a parsing engine,
I'm not at all sure that it's clearer for other folks. I like being able
to read through the "generation" grammar and find forward references to
a difference in the "parser" grammar. I also kind of like the idea that
you can't read the "generation" grammar and miss that there's some work
to do in the parsing end. Finally, in terms of the prose, I think it
will make it more confusing: In the current layout, any time you see
"obs-" in section 4, you're going to see an explanation of that "obs-"
construct. If we were to switch it, the explanations would be scattered
about. I for one would rather leave this as-is.

One item that's clarified is the fact that the parse (obs-) grammar is
a superset of the generate grammar.  As it stands now, it looks like it's
the other way around because the generate grammar also subsumes the obs-
productions.

Forward references in the grammar are confusing; on encountering one of
them, the reader is sidetracked into hunting down that forward reference,
then backtracking through the prose to find a description of the obs-
construct before returning to the point of the diversion.  One could of
course have forward references in the prose without having them appear
in the grammar, to preserve any value in such forward references.  The
layout and order of the explanations need not be changed.

Anyway, I'd be interested to hear what others think.


I don't see "misunderstandings" of the "obs-" really
being a problem.

I believe at least two people have pointed out the confusion about the
unquoted '.' in obs-phrase, which isn't really "obsolete".  Changing "obs-"
to "parse-" would resolve that issue.