私の CUP パーサー プロジェクトで競合を解決する方法を見つけようとしているときに、小さな問題が発生しています。エラーが発生している理由を理解しています.VariableDeclStarの最初のターミナルはIDである可能性があり、競合を引き起こすタイプでもありますが、タイプと変数を別々の状態として保持する方法で競合を解決する方法がわかりません. ヘルプやヒントをいただければ幸いです。
VariableDecl ::= Variable SEMICOLON {::};
Variable ::= Type ID {::};
Type ::= INT {::}
| DOUBLE {::}
| BOOLEAN {::}
| STRING {::}
| Type LEFTBRACKET RIGHTBRACKET {::}
| ID {::};
VariableDeclStar::= VariableDecl VariableDeclStar {::}
| {::};