1、LL推导,从左至右分析,最左推导,超前查看K个单词
1)总是扩展产生式右边部分的最左边非终结符的推导
2)使用FOLLOW()和FIRST()
3)FIRST(X)指从X可推导出的任意字符串(即X产生式右边部分),FOLLOW(X)指从直接跟随X之后的终结符集合。
2、LR推导,从左至右分析,最右推导,超前查看K个单词
1)总是扩展产生式右边部分的最右边非终结符的推导。
2)使用Closure()和goto()
3)I是一个项集合,X是一个方法符号(终结符或非终结符),圆点代表分析器当前位置,文法规则与指出其右部位置的圆点组合在一起称为项.一个状态是由若干个项组成的集合。
Closure(I)=
repeat
forI中的任意项A->α.Xβ
for 任意产生式X->γ
I<-I∪{X->γ}
until I没有改变
return I
Goto(I,X)=
设置J为空集合
forI中的任意项A->α.Xβ
将A->α.Xβ加入到J中
return Closure(J)