已知文法G2=(V
T
={a,',',(,)},V
N
={S,L),S,P),其中P为 S→(L)|a L→-L,s|s 与G2等价的不含左递归规则的文法是(29)。
【正确答案】
C
【答案解析】解析:采用自顶向下的预测分析法首先是等价改写给定的文法,消除文法的左递归和提取产生式的公共左因子。 消除直接左递归的方法如下: 若A→Aα|β,其中α,β∈(V
T
∪V
N
)*,β不以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'|ε