小班/减少CUP中的冲突

时间:2018-03-07 23:15:19

标签: parsing shift-reduce-conflict cup

我在尝试弄清楚如何解决我的CUP解析器项目中的冲突时遇到了一个小问题。我理解为什么会发生错误,VariableDeclStar的第一个终端可以是ID,以及Type,这会引发冲突,但我无法弄清楚如何以一种将Type和Variable保存为单独状态的方式来解决冲突。任何帮助或提示将不胜感激。

VariableDecl    ::= Variable SEMICOLON                  {::};
Variable        ::= Type ID                             {::};
Type            ::= INT                                 {::}
                    | DOUBLE                            {::}
                    | BOOLEAN                           {::}
                    | STRING                            {::}
                    | Type LEFTBRACKET RIGHTBRACKET     {::}
                    | ID                                {::};
VariableDeclStar::= VariableDecl VariableDeclStar       {::}
                    |                                   {::};

https://i.gyazo.com/0ac3fbf4ebc2d3968f1c2a78c292bc0d.png

0 个答案:

没有答案