我有我认为是我语法的一个简单部分,这是来自 yacc 的错误。我知道我需要在某处添加 %prec,但不确定在哪里。
Assignment : Ref '=' Ref
| Ref '=' Expression
| Ref '=' Value
| Ref '=' FunctionCall
;
Ref : ID
| ID '[' Expression ']'
;
Value : INT
| BOOLEAN
| CHAR
| STRING
;
我得到的错误是:
warning: rule never reduced because of conflicts: Assignment: Ref '=' Ref
warning: rule never reduced because of conflicts: Assignment: Ref '=' Value
所以ID只是一个变量名,Ref是一个变量的引用。