所以我有这个左递归语法
E → E Op1 E2 | E2
就目前而言,它是递归的,所以我通过另外一步消除了左递归:
E → X E2
X → E Op1 E2 | ε
我有一种沉闷的感觉但是我错误地消除了它,因为如果我追踪它,那么第一组E
仍将以E
开头。我对么?或者我错过了什么?这个问题是更大的语法集合的一部分,仅供参考。
答案 0 :(得分:1)
你遗漏的是递归消除的第二部分:而不是
X → E Op1 E2 | ε
你需要
X → Op1 E2 X | ε