Нисходящий синтаксический анализатор хочет иметь достойный пример левой рекурсии в «Коде»

Привет, товарищ, стек по членам потока.

Я учусь на класс компилятора. Я действительно понял, что синтаксический анализатор сверху вниз должен избегать левой рекурсии и преобразовывать его в способ правой рекурсии.

Вопросы:

а) понимаю ли я, что правый синтаксический анализатор сверху вниз равен LL, а синтаксический анализатор снизу вверх - равно LR?

б) Я обнаружил, что левая рекурсия - это правило, которое называет себя ex) Expr: == Expr '+' Term | Термин, который может вызвать бесконечный цикл нахождения Expr. Но как бы то ни было, какой-либо пример кода для ввода в C или Java? (Мне не нужен код синтаксического анализатора или сканера) мне нужен пример кода случая с предложениями, которые возникают в бесконечном цикле левой рекурсией.

c) Что на самом деле имеет значение в способе использования правой рекурсии в парсере сверху вниз ?

ANS c) Устранение необходимости отступать. а что-то еще?

ANS b) x - 2 * y но еще что-то? потому что этот работает с методом анализа с возвратом.

Пример случая, когда я обнаружил и левую рекурсию, и левую рекурсию.

Грамматика левой рекурсии

A -> Ax

Грамматика нелевой рекурсии

A -> Bx
B -> Ay

Оба получают в бесконечный цикл.

Благодарю и признателен за всех ваших экспертов.

5
задан Yoon Lee 24 October 2010 в 22:12
поделиться