所以我一直在尝试创建一个稍微简单的编译器。
目前,我有2个shift / reduce冲突,我还真不知道该如何解决。
到目前为止,我已经拥有了:
(DECR和INCR基本上是-和++,ID基本上是标识符)
%token INCR DECR ID
%nonassoc INCR DECR
%%
lvalue: ID
| lvalue '[' rvalue ']'
;
rvalue: lvalue (49)
| lvalue INCR
| lvalue DECR
| INCR lvalue (95)
| DECR lvalue (96)
我在那里遇到问题了。
67: shift/reduce conflict (shift 95, reduce 49) on INCR
67: shift/reduce conflict (shift 96, reduce 49) on DECR