expr : expr relOps expr
| expr logOps expr
| OPENP expr CLOSEP
| term addOps factor
| term
;
term : factor mulOps term
| factor
;
factor : IDENTIFIER
| CONSTANT
;
addOps : ADD
| MINUS
;
mulOps : MUL
| DIV
| MOD
;
relOps : LT
| EQ
| GT
;
logOps : AND
| OR
| NOT
;
这是我语法的一部分。当我编译并查看y.output时,我得到12个shift / reduce错误。错误来自expr relOps expr和expr logOps expr,每个logOp和relOp都有1个错误。
我理解这里的含糊不清,IE,声明a> b> c可以读作(a> b)> c和a> (b> c)。我已经尝试了一切我能想到的分配正确的优先权来解决这个问题。但是,我不能。
任何人都可以解决这个问题或者指出我的解决方案吗?
由于