exp:NIL
| NIL list
list:NIL list
I won't address the issue of messaging (unqualified and this is an issue best
addressed by the development team) but I will explore the grammar.
In LL (top-down, recursive descent) parser generators, the correct way to
represent a list of items is:
list : token list
{ token
;
In LR (bottom-up) parser generators the correct way to represent a list is:
list : list token
| token
:
At run-time, using the wrong grammar may lead to an infinite loop terminated
when there is no more memory. If the parser generator is 'generous' it will
either convert the 'wrong' format into the 'right' format or will generate an
error message. Your grammar can not be easily disambiguated.
Bison is an LR parser generator. You're grammar is wrong for it.
Of more interest is your notion of putting a list in both the exp syntax
equation and the list syntax equation. This is ambiguous (how do we interpret
NIL NIL NIL?). So, with a little legerdemain we get:
exp : NIL
: exp NIL
;
which should work.
Working on a class project?
art
_______________________________________________
[email protected] https://lists.gnu.org/mailman/listinfo/help-bison