私はCUPを使用して、自分の論文に必要なパーサーを作成しています。文法にシフト/リデュースの競合があります。私はこの生産ルールを持っています:
command ::= IDENTIFIER | IDENTIFIER LPAREN parlist RPAREN;
そして私はこの警告を持っています:
Warning : *** Shift/Reduce conflict found in state #3
between command ::= IDENTIFIER (*)
and command ::= IDENTIFIER (*) LPAREN parlist RPAREN
under symbol LPAREN
今、私は実際にそれをシフトしたかったので、私はそれでかなり大丈夫です、しかし私の教授は私に対立を解決する方法を見つけるように言いました。わたしは目が見えない。私はいつもif/elseの競合について読んでいますが、私にはそうではないようです。手伝って頂けますか?
PS:IDENTIFIER、LPAREN "("およびRPAREN ")"は端末ですが、parlistおよびcommandはそうではありません。