Привет, товарищ, стек по членам потока.
Я учусь на класс компилятора. Я действительно понял, что синтаксический анализатор сверху вниз должен избегать левой рекурсии и преобразовывать его в способ правой рекурсии.
Вопросы:
а) понимаю ли я, что правый синтаксический анализатор сверху вниз равен LL, а синтаксический анализатор снизу вверх - равно LR?
б) Я обнаружил, что левая рекурсия - это правило, которое называет себя ex) Expr: == Expr '+' Term | Термин, который может вызвать бесконечный цикл нахождения Expr. Но как бы то ни было, какой-либо пример кода для ввода в C или Java? (Мне не нужен код синтаксического анализатора или сканера) мне нужен пример кода случая с предложениями, которые возникают в бесконечном цикле левой рекурсией.
c) Что на самом деле имеет значение в способе использования правой рекурсии в парсере сверху вниз ?
ANS c) Устранение необходимости отступать. а что-то еще?
ANS b) x - 2 * y
но еще что-то? потому что этот работает с методом анализа с возвратом.
Пример случая, когда я обнаружил и левую рекурсию, и левую рекурсию.
A -> Ax
A -> Bx
B -> Ay
Оба получают в бесконечный цикл.
Благодарю и признателен за всех ваших экспертов.