J
Jim Freeze
Hi:
I am developing a grammar used in Racc.
Today, I added a single statement and it
has generated a shift reduce conflict.
Are there any yacc experts that can provide
some insight on how to remove this problem,
whether it be through re-writing the rule or
adding precedence or nonassoc definitions.
start : METH_DEFS process '{' '}' NEWLINE
| METH_DEFS process '{' NEWLINE
PARAMS
CONSTANTS
CONSTANTS_TABLE
'}'
;
METH_DEFS : OPT_NEWLINE
| METH_DEF
| METH_DEFS METH_DEF
;
The grammar has no conflicts with METH_DEFS removed:
start : process '{' '}' NEWLINE
| process '{' NEWLINE
PARAMS
CONSTANTS
CONSTANTS_TABLE
'}'
;
I am developing a grammar used in Racc.
Today, I added a single statement and it
has generated a shift reduce conflict.
Are there any yacc experts that can provide
some insight on how to remove this problem,
whether it be through re-writing the rule or
adding precedence or nonassoc definitions.
start : METH_DEFS process '{' '}' NEWLINE
| METH_DEFS process '{' NEWLINE
PARAMS
CONSTANTS
CONSTANTS_TABLE
'}'
;
METH_DEFS : OPT_NEWLINE
| METH_DEF
| METH_DEFS METH_DEF
;
The grammar has no conflicts with METH_DEFS removed:
start : process '{' '}' NEWLINE
| process '{' NEWLINE
PARAMS
CONSTANTS
CONSTANTS_TABLE
'}'
;