ITPub博客

首页 > 应用开发 > IT综合 > (ll1)消除左递归疼死我了~~~

(ll1)消除左递归疼死我了~~~

原创 IT综合 作者:skyeeee 时间:2007-07-09 15:07:57 0 删除 编辑

1、消除直接左递归

原文法: E --> E a1 | E a2 | ... | E an | b1 | b2 | ... | bn

消除后: E --> b1 E' | b2 E' | ... | bn E'
E'--> a1 E' | a2 E' | ... | an E' | epsilon

2、消除间接左递归

a) 把所有非终结符号按一定序列排序为E1, E2, ... En;

b) for i=1 to n do /*依次处理每个非终结符号*/
for j=1 to i-1 do /*处理第1个到i-1个*/
若Ei --> Ej r
则改为Ei --> S1 r | S2 r | ... | Sk r
其中Ej --> S1 | S2 | ... | Sk

c) 对Ei消除直接左递归。

3、去掉无用符号和无用产生式

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10391022/viewspace-925445/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    2
  • 访问量
    2353