【问题标题】:Is this grammar for matched brackets LL(1)?这是匹配括号 LL(1) 的语法吗?
【发布时间】:2013-05-06 15:52:36
【问题描述】:

语法是这样的:

S -> e (epsilon)

S -> TS

T -> (S)

我认为它确实是 LL(1),我的理由是,对于一个语法是 LL(1),对于每个具有多于 1 个产生式规则的非终结符,规则的指导符号集必须是不相交的,因此在这种情况下:

DS(S->e) =

首先(S->e) U 跟随(S->e) = { ) }

还有,

DS(S->TS) = First(S->TS) = { ( }

由于{ ) }{ ( } 是不相交的,因此语法是LL(1)。

我的理由正确吗?

【问题讨论】:

    标签: parsing compiler-construction programming-languages context-free-grammar ll


    【解决方案1】:

    是的,这个语法是 LL(1)。请注意

    FIRST(S) = { ε, ( }

    FOLLOW(S) = { ), $ }

    FIRST(T) = { ( }

    因此,解析表为

        (     )     $
    S   TS    e     e
    T   (S)
    

    由于这里没有冲突,所以语法是LL(1)。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多