1

所以我有这个左递归语法

E → E Op1 E2 | E2

就目前而言,它是左递归,所以我通过另一个步骤消除了左递归:

E → X E2
X → E Op1 E2 | ε

但是我有一种下沉的感觉,我错误地消除了它,因为如果我追踪它,那么第一组E仍然会以E. 我对么?还是我错过了什么?这个问题是更大语法集的一部分,仅供参考。

4

1 回答 1

1

您缺少的是递归消除的第二部分:而不是

X → E Op1 E2 | ε

你需要

X → Op1 E2 X | ε
于 2014-05-07T08:43:17.143 回答