On Wed, 30 Dec 2009, Florian Krohm wrote:

> It'd be helpful for debugging grammars to have a warning that is triggered
> when a name is referred to that is not explicitly declared as non/terminal.
> That's less cumbersome than digging through the report file.
> Perhaps something to consider for the next version.

According to POSIX, putting an identifier in a %token, %left, %right, or 
%nonassoc is sufficient to declare it as a token.  (Our master branch also 
has %precedence.)  Otherwise, it's a nonterminal and it's an error not to 
put it on the LHS of a grammar rule.  I interpret that last part to mean 
that (1) putting it on the LHS of a grammar rule declares it to be a 
nonterminal, and (2) an error must be reported if it's never declared as a 
token or nonterminal.  After the patches I just applied, I believe Bison 
now implements all of that fully.

Maybe I don't know what you mean.  Do you have an example where a new 
warning would be helpful?


Reply via email to