对如何从这个语法中删除左递归感到困惑

时间:2016-12-11 10:34:15

标签: compiler-construction left-recursion

我是新来的,我刚刚开始编译器构建课程,我只是一个初学者。所以我的问题是从以下语法中删除左递归:
E→E + B | E - B | (E)|乙
E→B / F | B * F | (B)| ˚F
F→id
我知道删除左递归的规则是 如果A→Aα| β比
A→βA'
A'→αA'| ε
在上面的语法中,只有第一行才会有递归。我对(E)感到困惑,因为我无法弄清楚(E)是否为β。如果有人可以删除递归并解释它,我将不胜感激。

谢谢

(UPDATE) 所以我试图根据我的理解消除左递归,如下所示:

E→(E)E'|是“
E'→+ BE'| -BE'| ɛ
E→B / F | B * F | (B)| ˚F
F→id
没关系,还是我做错了

0 个答案:

没有答案