单选题
已知文法G2=(VT=a,',',(,),VN=S,L),S,P),其中P为
S→(L)|a
L→-L,s|s
与G2等价的不含左递归规则的文法是 (29) 。
【正确答案】
C
【答案解析】[解析] 采用自顶向下的预测分析法首先是等价改写给定的文法,消除文法的左递归和提取产生式的公共左因子。
消除直接左递归的方法如下:
若A→Aα|β,其中α,β∈(VT∪VN)*,β不以A开始,则关于A的这种形式的产生式可改写成
A→βA' A'→αA'|ε
一般而言,假设A的产生式为
A→A α1|A α2|…|A αn|β1|β2|…|βm
其中αI(i=1,2,…,n)不等于ε,βj(j=1,2,…,m)不以A开始,那么上述产生式可改成
A→β1 A'|β2 A'|…|βmA'
A'→α1 A'|α2A'|…|αn A'|ε
消除文法G2中规则的左递归后,其规则变成
S→(L)|a
L→SL'
L'→,SL'|ε