Как разрешить конфликт сдвига / уменьшения с помощью приоритета оператора? - PullRequest
0 голосов
/ 08 мая 2020

Итак, у меня есть эта грамматика. Я пытаюсь построить таблицу LR (1) для

      E' -> E
      E -> E + E
      E -> E * E
      E -> ( E )
      E -> a

Пока что это моя таблица

enter image description here

Я пытаюсь решить здесь конфликты. Я думал об изменении грамматики на постфиксную, а не на инфиксную, но не совсем уверен, смогу ли я это сделать. Есть идеи?

1 Ответ

0 голосов
/ 08 мая 2020

Вот ваша грамматика с приоритетом:

E' -> E
E -> E + T
E -> T
T -> T * F
T -> F
F -> ( E )
F -> a

Не забудьте лишние E -> T и T -> F, так как без него грамматика будет бесполезна.

Примечание: Это не будет работать с LR (0), потому что вы получите конфликт.

...