消除左递归

来源:互联网 发布:上海绿地楼盘知乎 编辑:程序博客网 时间:2024/05/01 00:53

一个文法含有下列形式的产生式之一时:

1)A→Aβ,A∈VN,β∈V*

2)A→Bβ,B→Aα,A、B∈VN,α、β∈V*

则称该文法是左递归的。

然而,一个文法是左递归时,不能采取自顶向下分析法。

消除左递归方法有:

a)把直接左递归改写为右递归:

设有文法产生式:A→Aβ|γ。其中β非空,γ不以A打头。

可写为:A→γA'

A'→βA'|ε


上面只是讲解一种简单例子,更复杂的请看原文章。


---------------------------------------致苦逼的学生党


转自:http://blog.sina.com.cn/s/blog_687911280100nc8t.html

0 0