消除文法左递归
Posted mznsndy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消除文法左递归相关的知识,希望对你有一定的参考价值。
1.直接消除左递归
假定P关于的全部产生式是
P->Pα1|Pα2|…|Pαm|β1|β2|…|βn
(每个α都不等于ε,每个β都不以P开头)
方法:左递归变右递归
P->β1P‘|β2P‘|…|βnP‘
P‘->α1P‘|α2P‘|…|αmP‘|ε
例:给定文法G(S):
E->E+T|T
T->T*F|F
F->(E)|i
消除其直接左递归G(E):
E->TE‘
E‘->+TE‘|ε
T->FT‘
T‘->*FT‘|ε
F->(E)|i
2.间接左递归的消除
例:
再利用直接消除左递归得到
S->abcS‘|bcS‘|cS‘
S‘->abcS‘|ε
以上是关于消除文法左递归的主要内容,如果未能解决你的问题,请参考以下文章