非LL(1)文法到LL(1)文法的等价变换
什么样的文法才是LL(1)文法?
(1) 提取左公共因子
① 提取隐含的左公共因子
② 不能在有限步骤内提取完左公共因子的文法
(2) 消除左递归
① 消除间接左递归
化简成类同这样的式子后,去掉产生式右部的和左部相同的终结符,两个式子的右侧均加上A'。
上面的式子变成下面的式子,下面的式子变成上面的式子。(上式的产生式左部为A,下式为A')
最后别忘记 A' ---> ε 。
(1) 提取左公共因子
(2) 消除左递归
① 消除间接左递归
化简成类同这样的式子后,去掉产生式右部的和左部相同的终结符,两个式子的右侧均加上A'。
上面的式子变成下面的式子,下面的式子变成上面的式子。(上式的产生式左部为A,下式为A')
最后别忘记 A' ---> ε 。