ietf-mta-filters
[Top] [All Lists]

bug in newfangled grammar

1998-01-23 21:14:30
Coupled together, these produce an ambiguous grammar:

argument = string / string-list / number / tag

string = quoted-string / multi-line

string-list = "(" [WSP] *(string [WSP] "," [WSP]) string [WSP] ")" / string
        ;; if there is only a single string, the parens are optional

The problem is that the sequence
        someidentifier :argh "string" ;

is either an identifier, a tag, a string, and a semicolon OR it's an
identifier, a tag, a string, and a semicolon.

I'm planning on changing if/else if/else to if/elsif/else to avoid a
conflict in the grammar; I'd like to change this one such that

argument = string-list / number / tag

and sometimes you can give too many strings as an argument.

Incidentially, I think support is an implementation headache considering
scripts need to ensure that there are no runtime syntax errors/unrecognized
command errors.  I thought through what it will take me to eliminate them,
looking for all the wonderous cases like
        if not(not(support "fubar"))
and the like, and while it's not impossible, it's annoying.  Just thought
I'd let you know.

-- 
                                          Tim Showalter 
tjs+(_at_)andrew(_dot_)cmu(_dot_)edu


<Prev in Thread] Current Thread [Next in Thread>
  • bug in newfangled grammar, Tim Showalter <=