由上面练习所举例子可以说明以下问题: ① 不一定每个文法的左公共因子都能在有限的步骤内替换成无左公共因子的文法,上面文法G4就是如此。 ② 一个文法提取了左公共因子后,只解决了相同左部产生式右部的FIRST集不相交问题,当改写后的文法不含空产生式,且无左递归时,则改写后的文法是LL(1)文法,否则还需用LL(1)文法的判别方式进行判断才能确定是否为LL(1)文法。 2. 消除左递归 设一个文法含有下列形式的产生式。 1)A→Aβ A∈VN,β∈V* 2)A→Bβ B→Aα A,B∈VN, α,β∈V* 可称含1)中产生式的文法为含有左递归的规则或称直接左递归的。含2)中产生式的文法有A ![]() ![]() |