2016-01-24 2 views
0

Учитывая эту грамматику: enter image description hereПочему у LR (1) DFA нет конфликта Shift/Reduce?

Для LR() DFA я могу ясно видеть, почему это сдвиг/свёртка конфликт:

enter image description here

(частичная DFA)

Но я не могу понять, почему LR() DFA решает проблему?

enter image description here (частичная DFA)

Для меня это еще сдвига уменьшить конфликт, так как символ опережения точно такие же для B правила? Как должен анализировать LR (1), но не LR (0)?

ответ

1

Потому что вы можете только уменьшить B → & epsilon; если внешний вид a.

В LR (0) вы не можете принять предпросмотр во внимание, но в LR (1) можно выбрать, исходя из следующего входного символа, а вот простое правило: если следующий символ б, переместить его , и если это a, выполните восстановление эпсилона B.

 Смежные вопросы

  • Нет связанных вопросов^_^