At 03:53 -0500 2002/01/12, Anthony DeRobertis wrote: >Now, expr contains, among many other lines, >expr: ... > | expr OR expr { ... } > ... > ; > >The problem is a line which looks like this > >ANSWER expr WITH expr OR expr > ^^ > >Bison chooses the resolve the ambiguous grammar by shifting at the
There are different styles of handling this problem. One is trying to alter the shift to reduce somehow; I think that the Bison manual say something about that (in the section about IF ... THEN ... ELSE). The other, which I prefer myself, is to rewrite the grammar so that it is not ambiguous anymore: The problem Bison has is that when "ANSWER expr WITH expr OR expr" is on top of the stack, it does not know if it should apply the rule that this line belongs to, or the expr -> expr OR expr rule. You could specify this grammar even further, by say expr: ... or_expr: expr {} | or_expr OR or_expr {} ... ANSWER expr WITH or_expr if the idea is that OR should not appear between ANSWER and WITH. Or if OR can appear there, the grammar might look like expr: ... | expr OR expr {} ... ... ANSWER expr WITH expr {} You should see the problem here, though: You have thrown in a redundant "expr OR expr" in the grammar, which somehow should be removed. Hans Aberg _______________________________________________ Freecard-general mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freecard-general