> > >  | NULL_P '=' a_expr
> > >     { $$ = makeA_Expr(ISNULL, NULL, $3, NULL); }
> > This leads to a shift/reduce conflict in yacc.
> What's wrong with shift/reduce conflicts?

yacc looks ahead only one token to determine the parsing possibilities,
and will maintain multiple, parallel possibilities until it is able to
resolve them (keeping in mind this one-token constraint). With a
"shift/reduce" conflict, at least one path will *never* be possible,
even though you thought it should be from the grammar. So you will end
up with some language feature permanently unavailable. And worse, when a
new conflict is introduced it might be the older feature which is
trashed :(

                         - Tom

Fri, 05 Mar 1999 06:57:24 +0000
"Thomas G. Lockhart" <lockhart@alumni.caltech.edu>
Re: [INTERFACES] Foreign Keys