【问题标题】:Grammar describing an LL(2) language that is not LL(1), in which no rule can produce epsilon?描述不是 LL(1) 的 LL(2) 语言的语法,其中没有规则可以产生 epsilon?
【发布时间】:2020-08-09 08:01:30
【问题描述】:

This answer 显示了描述不是 LL(1) 的 LL(2) 语言的语法:

S -> a S A | epsilon
A -> a b S | c

在这个语法中,S 的一种可能性是它产生了空字符串epsilon。是否有任何语法类似地描述不是 LL(1) 但没有规则可以产生epsilon 的 LL(2) 语言?

【问题讨论】:

    标签: parsing grammar context-free-grammar ll


    【解决方案1】:

    考虑这个语法:

    S -> a S A | a c 
    A -> a b S | c 
    

    它不是 LL(1),因为非终结符 S 和终结符 a 存在 First/First 冲突。

    这是一个 LL(2) 语法,因为它不包含任何 epsilon 规则,并且每个规则的第一组是不同的:

    First_2(a S A) = {aa}
    First_2(ac) = {ac}
    First_2(a b S) = {ab}
    First_2(c) = {c}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多