Малый сдвиг / уменьшение конфликта в CUP

У меня небольшая проблема в попытке выяснить, как разрешить конфликт в моем проекте парсера CUP. Я понимаю, почему происходит ошибка, первый терминал VariableDeclStar может быть идентификатором, а также типом, который вызывает конфликт, однако я не могу понять, как разрешить конфликт таким образом, чтобы сохранить тип и переменную как отдельные состояния. Любая помощь или советы будут оценены.

VariableDecl    ::= Variable SEMICOLON                  {::};
Variable        ::= Type ID                             {::};
Type            ::= INT                                 {::}
                    | DOUBLE                            {::}
                    | BOOLEAN                           {::}
                    | STRING                            {::}
                    | Type LEFTBRACKET RIGHTBRACKET     {::}
                    | ID                                {::};
VariableDeclStar::= VariableDecl VariableDeclStar       {::}
                    |                                   {::};

https://i.gyazo.com/0ac3fbf4ebc2d3968f1c2a78c292bc0d.png

0 ответов

Другие вопросы по тегам