A' → β1|β2|…|βn
例4.7 文法G2[A]: A→ad A→Bc B→aA B→bB
1.化为: 2.化为: 3.化为:
A→ad A→a(d|Ac) A→aA'
A→aAc A→bBc A→bBc
A→bBc B→aA
A'→d
B→aA B→bB
A'→Ac例4.8
第1个“L”指的是由左向右地处理输入。 第2个“L”指的是它为输入串描绘出一个最左推导。 括号中的数字1意味着它只需向右看1个符号便可决
定如何推导即选择哪个产生式(规则)进行推导。
4.2 LL(1)文法的判别
求出能推出ε的非终结符 计算FIRST集 计算FOLLOW集 计算SELECT集 判别是否是LL(1)文法
Y到1F..YIRi-S1 T*(X))中,则;把特F别IR是S,T若(Y所j)有中的的F所IR有S非T(Y元j ,素都加
j=1,2,…,K)均含有,则把加到FRIST(X)中.
用关系图法求文法符号的FIRST集(自学)
3.计算FOLLOW集
根据定义计算 1.对于文法的开始符号S,置#于FOLLOW(S) 中; 2.若A→αBβ是一个产生式,则把 FIRST(β)-{}加至FOLLOW(B)中; 3.若A→αB是一个产生式,或A→αBβ是一个产
第一次扫描
是是
否
第二次扫描 是
否
2.计算FIRST集
根据定义计算 1.若XV,则FIRST(X)={X} 2.若XVN,且有产生式Xa…, a∈ V,则 a∈FIRST(X);若X也是一条产生式,则 ∈FIRST(X). 3.若XY…是一个产生式且YVN,则把FIRST(Y) 中的所有非元素都加到FIRST(X)中;若X Y1Y2…YK 是一个产生式,Y1,Y2,…,Yi-1都是非终结 符,而且对于任何j,1≤j ≤i-1,FIRST(Yj)都含有(即