赞
踩
左递归的分类
这个公式是死记住的,怎么记住呢?理解着记忆。首先写出这个式子,然后b肯定打头,就是如此了。
P->Pa|b是原左递归式子,一定是有b的,不然就永远递归下去了
- P → bP';
- P' → aP' | ε;
- P → YP'; 比如:P → abP' | b P'
- P' → XP' | ε; 比如: P' → abcP' | ε
对于P → Aa | x1, A → …… → Pb | x2的形式
什么意思呢,就是就是有左递归的那一部分,全部规约成一个式子,这样就成为直接递归,然后做就可以了,当然首先删除无用符号。采用自下而上往上消除,最后只剩下一个字母,然后就完成了
- S → Sabc |abc | bc | c
- ∴ X = abc,Y = abc | bc | c
- ∴ 直接消除左递归的结果是:
- S → abcS' | bcS' | cS'
- S' → abcS' | ε
5)删除其中不可达的非终结符,这里就是Q、R了
∴ 最终消除左递归的结果是
- S → abcS' | bcS' | cS'
- S' → abcS' | ε
这是自上而下的LL文法才会出现的问题。根本不难的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。