D->TL,T->I, T->f,T->I,x,L->x如何消除左递归如何消除左递归
时间: 2024-05-25 08:10:39 浏览: 94
消除左递归
对于文法 D->TL,T->I, T->f,T->I,x,L->x,可以使用以下步骤消除左递归:
1. 找到所有左递归产生式。
文法中的左递归产生式为:D->TL 和 T->I,T->I,x。
2. 为每个左递归产生式添加一个新的非终结符,并重写产生式。
将 D->TL 改写为 D->TR 和 R->L,将 T->I,T->I,x 改写为 T->IY,Y->xI。
3. 消除间接左递归。
由于 R->L 仍然存在左递归,需要进一步消除。可以将 L->x 改写为 L->xR',R'->ε,然后将 R->L 改写为 R->xR'。
最终得到的文法如下:
D->TR
R->xR'
T->IY
Y->xI
L->xR'
R'->ε
阅读全文