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