Как анализатор LL оценивает это выражение?

StackOverflow https://stackoverflow.com/questions/3799201

  •  05-10-2019
  •  | 
  •  

Вопрос

Учитывая это выражение:

3 + 2 + 2 * 2 = ?

Будет ли это 14?

Это было полезно?

Решение

Нет. Это то, что вы получили в оценке влево на правильную. Parser LL построит тот же тарифный партер как анализатор LR,

  +
 / \
3   +
   / \
  2   *
     / \
    2   2

и оценить его как

(+ 3 (+ 2 (* 2 2))

который 9, как вы ожидаете.

Что такое особенная анализация LL, в том, что для ограниченной грамматики они всегда могут продолжать оставить вправо с ограниченным взглядом. Это делает их легко описать и легко разбираться; Некоторые Паскаль - один из самых распространенных языков.

Вы могли бы посмотреть на статью вики на левая вывод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top