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