Как анализатор LL оценивает это выражение?
Вопрос
Учитывая это выражение:
3 + 2 + 2 * 2 = ?
Будет ли это 14?
Решение
Нет. Это то, что вы получили в оценке влево на правильную. Parser LL построит тот же тарифный партер как анализатор LR,
+
/ \
3 +
/ \
2 *
/ \
2 2
и оценить его как
(+ 3 (+ 2 (* 2 2))
который 9, как вы ожидаете.
Что такое особенная анализация LL, в том, что для ограниченной грамматики они всегда могут продолжать оставить вправо с ограниченным взглядом. Это делает их легко описать и легко разбираться; Некоторые Паскаль - один из самых распространенных языков.
Вы могли бы посмотреть на статью вики на левая вывод.
Не связан с StackOverflow