美文网首页编译原理
预测分析表【LL(1)分析表】的构造

预测分析表【LL(1)分析表】的构造

作者: 不爱格子衫的码畜 | 来源:发表于2019-06-26 16:06 被阅读2次

    预测分析表【LL(1)分析表】的构造

    算法:

    对于G中的每一个产生式, A -> α ,执行以下2步:

    1.for  ∀ a ∈ FIRST(α), 将 A -> α 填入 M [A, a ];

    1. if(ε ∈ FIRST(α))

            ∀ a ∈ FOLLOW (A) , 将 A -> ε 填入 M [A, a ];

    PS: 这里的 a 包括 #



    例子:

    文法:

    E -> TE'

    E' -> +TE' | ε

    T -> FT'

    T' -> *FT' | ε

    F -> (E) | id



    解析:

    1.E -> TE'

    FIRST(TE')={(,id}    所以 E -> TE'  填入  M[E, id] 和 M[ E, ( ]

    步骤2不满足

    2.E' -> +TE'

    FIRST(+TE')={+}    所以 E' -> +TE'  填入  M[E', +]
    步骤2不满足

    3.E' -> ε

    FOLLOW(E')={ ), # }  所以 E' -> ε 填入 M[E', )]  和 M[E', #]

    步骤1不满足

    4.T -> FT'

    FIRST(FT')={(,id}    所以T -> FT' 填入 M[T, (]    和 M[T, id]
    步骤2不满足

    5.T' -> *FT'

    FIRST(*FT')={*}    所以 T' -> *FT' 填入 M[T' , * ]

    步骤2不满足

    6. T' -> ε

    FOLLOW(T')={ +, ), # }  所以 T' -> ε  填入M[T', +]、M[T', )] 和M[T', #]

    步骤1不满足

    7.F -> (E)

    FIRST((E))={(}  所以F -> (E) 填入  M[F, (]

    步骤2不满足

    8.F ->  id

    FIRST(id)={id}  所以 F ->  id 填入 M[F,  id]

    步骤2不满足



    结果如下:

    预测分析表【LL(1)分析表】的构造

    相关文章

      网友评论

        本文标题:预测分析表【LL(1)分析表】的构造

        本文链接:https://www.haomeiwen.com/subject/yogccctx.html