Вниз - Вверх SLR (1) Конфликт / Уменьшение, когда оба применяются - PullRequest
0 голосов
/ 12 апреля 2020

Если у меня есть ситуация, когда в состоянии в DFA есть конфликт сдвига / уменьшения, где применяются сдвиг и уменьшение, пусть следующий символ будет "t", и у нас будут следующие правила

X -> F.

Y -> F.tG

и t относится к X. Что мне делать в этом случае? Я знаю по определению, что это не грамматика SLR (1), но в соответствии с алгоритмом, показанным https://imgur.com/a/yxy9L48, что должен делать алгоритм? Должен ли он сообщать об ошибке?

Алгоритм говорит, что мы сообщаем об ошибке, если ни один (сдвиг или уменьшение) не применяется, но что произойдет, если оба варианта применимы?

1 Ответ

0 голосов
/ 12 апреля 2020

Вы должны были обнаружить эту ошибку, когда пытались создать синтаксический анализатор. Алгоритм генерации синтаксического анализатора SLR должен завершиться сбоем в случае конфликта.

...