我在试图弄清楚如何解决我的 CUP 解析器项目中的冲突时遇到了一个小问题。我理解为什么会发生错误,VariableDeclStar 的第一个终端可以是 ID 以及引发冲突的类型,但是我无法弄清楚如何以将类型和变量保留为单独状态的方式解决冲突。任何帮助或提示将不胜感激。
VariableDecl ::= Variable SEMICOLON {::};
Variable ::= Type ID {::};
Type ::= INT {::}
| DOUBLE {::}
| BOOLEAN {::}
| STRING {::}
| Type LEFTBRACKET RIGHTBRACKET {::}
| ID {::};
VariableDeclStar::= VariableDecl VariableDeclStar {::}
| {::};