Я использую 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 и команда не являются.