LL文法一定是无二义性文法,但是二义性文法却不一定是LL文法.LL文法比较简单,解决的范围有限.消除做递归的方法:
对所有的形如Ai->α,排序.{A1,A2,A3,A4.An}
for(从1到n的每一个i){
for(从1到i-1的每一个j){
将形如Ai->Ajα的产生式替换为产生组Ai->γ1α|γ2α.|γkα,
其中Aj->γ1|γ2.|γk
}
消除立即做递归
}
LL文法一定是无二义性文法,但是二义性文法却不一定是LL文法.LL文法比较简单,解决的范围有限.消除做递归的方法:
对所有的形如Ai->α,排序.{A1,A2,A3,A4.An}
for(从1到n的每一个i){
for(从1到i-1的每一个j){
将形如Ai->Ajα的产生式替换为产生组Ai->γ1α|γ2α.|γkα,
其中Aj->γ1|γ2.|γk
}
消除立即做递归
}