【问题标题】:Parsing: A grammar in LL(3) but not in LR(2) [closed]解析:LL(3) 中的语法,但 LR(2) 中没有 [关闭]
【发布时间】:2012-12-10 21:36:15
【问题描述】:

我试图证明 LL(3) 不是 LR(2) 的子集

直觉上这很容易,但我无法凭直觉找到这样的语法。

你能帮我一把吗?感谢您的帮助

【问题讨论】:

  • 我认为这可能更适合 CS.stackexchange.com

标签: parsing theory lr ll


【解决方案1】:

定理:如果文法是 LL(3) 而不是 LR(2),则文法有 ε-产生式。

证明:如果在读取句柄开头的三个字符后总是可以识别出正确句型的句柄,则文法是 LL(3) .

如果在读取句柄末尾两个字符后总是可以以正确的句子形式识别句柄,则文法是 LR(2)。

如果语法是 LL(3) 而不是 LR(2),那么读取句柄开头之后的三个字符有时必须比读取句柄末尾之后的两个字符提供更多信息。只有当句柄为空时才会发生这种情况。

【讨论】:

    【解决方案2】:

    嗯,显然诀窍是使用 ε-产生式。

    以下语法可以使用:

    S->aa|Aaaa
    
    A->ε
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      相关资源
      最近更新 更多