Распознавание грамматик LL и LR НЕ анализатора

Если мне дали CFG, посмотрев на него, могу ли я решить, относится ли это к LL-классу грамматики или к LR-классу грамматики? Когда я искал этот вопрос в Google, я получил информацию о том, как работают парсеры для этих грамматик, но это не то, чего я хочу. Будем очень благодарны любой помощи.


person Anurag Banerjee    schedule 20.05.2013    source источник


Ответы (1)


Вы можете распознать, что грамматика не является LL, если она оставила рекурсию.
Пример:

S -> A | y
A -> Az
person Samy Dindane    schedule 20.05.2013
comment
Я как раз собирался дать этот ответ :) - person Grijesh Chauhan; 20.05.2013
comment
Забавно, как быстро за него проголосовали. :D - person Samy Dindane; 20.05.2013
comment
Отсутствие левой рекурсии не является достаточным условием для того, чтобы грамматика была LL. Найдите определение LL в Википедии. Эта грамматика не является LL: S -> aSa | ε - person Apalala; 20.05.2013
comment
@Apalala Прочитайте хорошо то, что я написал. Я не говорил, что любая грамматика без левой рекурсии является LL, но я сказал если она леворекурсивная, это не LL. - person Samy Dindane; 21.05.2013
comment
@ Сэми Ты прав. Пожалуйста, внесите незначительные изменения в свой ответ, чтобы я мог удалить отрицательный голос. - person Apalala; 21.05.2013
comment
@ Samy Ты этого не сделал, отредактируй свой ответ, чтобы я мог удалить отрицательный голос. Однако помните, что удаление левой рекурсии — это механический процесс, и поэтому левая рекурсия не является первичным критерием LL-ности. - person Apalala; 21.05.2013
comment
@Apalala Ответ отредактирован. — Что может быть еще критерием ЛЛ-ности? - person Samy Dindane; 21.05.2013