1
我想从以下语法删除左递归:消除
S -> id = E
S -> id [ E ] = E
E -> E [ E ]
E -> id
我试图遵循呈现在https://en.wikipedia.org/wiki/Left_recursion左递归去除算法,但E -> E [ E ]
行带给我的问题,应该怎么它被处理? 我不想得到一个完整的解决方案,只是一些提示,所以我实际上可以学习如何工作。
我至今尝试过是这样的:
E -> E [ E ]
E -> id
变为:
E -> id E'
E' -> [ E ] E'
这是不正确。我是否在正确的轨道上?
谢谢。 epsilon规则就像你说的那样丢失了,那就是问题所在。 – atsa 2014-09-29 18:02:31