删除间接左递归

时间:2015-09-08 12:23:44

标签: left-recursion

我有一个有趣的间接递归问题,我认为我已经解决了,但我不确定它是否正确。

开始语法:

A-> Bxy | x

B-> CD

C-> A | c

D-> d

我的解决方案是首先进行A获取:

A -> ADxy | cDxy | x

现在,有了这个,我看到我有递归的地方,我将其删除,得到:

A-> cDxyA' | xA'

A'-> DxyA' | empty

完整解决方案将是

A-> cDxyA' | xA'

A'-> DxyA' | empty

B-> CD

C-> A | c

D-> d

这个语法是否正确?

0 个答案:

没有答案