Разбор: грамматика в LL(3), но не в LR(2)
Я пытаюсь доказать, что LL(3) не является подмножеством LR (2).
Интуитивно это легко, но я не могу указать свою интуицию на поиск такой грамматики.
Не могли бы вы дать мне руку? Спасибо за любую помощь
2 ответа
Теорема: Если грамматика есть LL(3), но не LR(2), то грамматика имеет ε-произведения.
Доказательство: грамматика - LL(3), если всегда возможно идентифицировать дескриптор в правильной форме предложения после чтения трех символов после начала дескриптора.
Грамматика - это LR(2), если всегда возможно идентифицировать дескриптор в правильной форме предложения после прочтения двух символов после конца дескриптора.
Если грамматика - LL(3), но не LR(2), то чтение трех символов после начала дескриптора должно иногда давать больше информации, чем чтение двух символов после конца дескриптора. Это может произойти, только если ручка пуста.
Ну, очевидно, хитрость заключается в использовании ε-продукции.
Следующая грамматика будет работать:
S->aa|Aaaa
A->ε