我正在为一种小语言编写一个杯子解析器,该语言应该支持以数组和矩阵作为其字段的类。例如,如果有一个类实例:
C c;
这些字段将通过以下方式访问:
c.x;
c.y[];
c.z[][];
由于我不断遇到移位/减少冲突,我无法为最后一部分编写作品。这是我的制作:
Designator ::= IDENT
|
Designator DOT IDENT
|
Designator LSQUARE Expr RSQUARE
|
Designator LSQUARE Expr RSQUARE LSQUARE Expr RSQUARE
;
警告 : *在状态 #189 中发现 Shift/Reduce 冲突,在 Designator ::= Designator LSQUARE Expr RSQUARE ( ) 和 Designator ::= Designator LSQUARE Expr RSQUARE ( ) LSQUARE Expr RSQUARE 下符号 LSQUARE 已解决,有利于移位。
谁能帮我解决这个问题?