Subject: bug in newfangled grammar

From: Tim Showalter <[email-masked]>
Date: 23 Jan 1998 23:19:12 -0500

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 [email-masked]