考虑到这个表达:

3 + 2 + 2 * 2 = ?

会14吗?

有帮助吗?

解决方案

否。这就是您从左到右评估中获得的。 LL解析器将建造与LR解析器相同的解析树,

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

并将其评估为

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

正如您所期望的那样,那是9。

LL解析器的特殊之处在于,对于受限制的语法,它们总是可以以有限的外观前向右前进。这使它们易于描述,易于解析;一些帕斯卡是最常见的语言之一。

您可能会看一下Wiki文章 最左边的推导.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top