以下是我的 Bison 语法规则的相关部分:
statement:
expression ';' |
IF expression THEN statement ELSE statement END_IF ';'
;
expression:
IDENTIFIER |
IDENTIFIER '('expressions')' |
LIT_INT |
LIT_REAL |
BOOL_OP |
LOG_NOT expression |
expression operator expression |
'('expression')'
;
expressions:
expression |
expressions ',' expression
;
operator:
REL_OP |
ADD_OP |
MULT_OP |
LOG_OR |
LOG_AND
;
Run Code Online (Sandbox Code Playgroud)
编译时,我得到 10 个 shift/reduce 冲突:
LOG_NOT表达式规则引起的5个冲突:
State 45
25 expression: LOG_NOT expression .
26 | expression . operator expression
REL_OP shift, and go to …Run Code Online (Sandbox Code Playgroud)