【问题标题】:How does an LL parser evaluate this expression?LL 解析器如何评估这个表达式?
【发布时间】:2010-09-26 18:23:26
【问题描述】:

考虑这个表达式:

3 + 2 + 2 * 2 = ?

会是 14 岁吗?

【问题讨论】:

    标签: parsing ll


    【解决方案1】:

    没有。这就是你在从左到右的评估中得到的。 LL 解析器将构建与 LR 解析器相同的解析树,

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

    并将其评估为

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

    如您所料,这是 9。

    LL 解析器的特别之处在于,对于受限制的语法,它们总是可以从左到右进行有限的前瞻。这使它们易于描述和解析;一些 Pascal 是最常见的语言之一,即 LL。

    您可以查看leftmost derivation 上的 Wiki 文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      相关资源
      最近更新 更多