1. 文法 G(S):
(1)S -> AB
(2)A ->Da|ε
(3)B -> cC
(4)C -> aADC |ε
(5)D -> b|ε
验证文法 G(S)是不是 LL(1)文法?
解:
SELECT(A->Da)=FIRST(Da)={b,a} SELECT(A->ε)=(FIRST(A)-ε) ∪ FOLLOW(A)={c,b,a,#} SELECT(A->Da) ∩ SELECT(A->ε) ={b,a} ≠ ∅ 所以该文法不是LL(1)文法
2.(上次作业)消除左递归之后的表达式文法是否是LL(1)文法?
解:
SELECT(E->TE‘)=FIRST(TE‘)={(,i,*} SELECT(E‘->ε)=(FIRST(E‘)-ε) ∪ FOLLOW(E‘)={#,)} SELECT(E->TE‘) ∩ SELECT(E‘->ε) =∅ SELECT(T‘->*FT‘)=FIRST(*FT‘)={*} SELECT(T‘->ε)=(FIRST(T‘)-ε) ∪ FOLLOW(T‘)={#,),+} SELECT(T‘->*FT‘) ∩ SELECT(T‘->ε) =∅ SELECT(F->(E))=FIRST((E))={(} SELECT(F->i)=FIRST(i)={i} SELECT(F->(E)) ∩ SELECT(F->i) =∅ 所以该文法是LL(1)文法
原文:https://www.cnblogs.com/huangwenshuo/p/11895657.html