My rules are similar to the below

body:
    recursive-expr //rval = rval is here
  | rval '=' rvalLoop
//  | rval ',' rval //problem line

rvalLoop:
    rval
  | rvalLoop ',' rval

In my test file when I do "var = 5, 6" it works fine. When I uncomment the
problem line my parser breaks. The problem is that line introduces ',' to
recursive-expr. Without the comma the parser would shift into rvalLoop
because comma doesn't lead to any other state. Now with the problem line
the parser sees the ',' is lower than '=' and reduces instead of shifts
which breaks the parser.

How do I tell it to shift in this case? I tried writing "%token
OVERRIDE_PREC" and "%left OVERRIDE_PREC" at the bottom of my %left/%right
directives. Then I used %prec OVERRIDE_PREC on the non recursive-expr lines
but it appears to not have worked.
_______________________________________________
help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to