消除文法的左递归例题 编译原理,如何消除文法的左递归?
编译原理,如何消除文法的左递归?1. A->aa2。A->baB->ab(A和B属于非终结符,A和B属于终结符)一般来说,左递归是在情况1中“>”的两边包含相同的非终结符;在情况2中,
编译原理,如何消除文法的左递归?
1. A->aa
2。A->ba
B->ab(A和B属于非终结符,A和B属于终结符)
一般来说,左递归是在情况1中“>”的两边包含相同的非终结符;
在情况2中,a->ba中“>”后的B和B->ab中“>”前的B是同一个非终结符
这两种情况称为左递归。
消除下列文法G[S]的左递归,获得与其等价的、无左递归的文法G’[S]?
[Q→RB[b(2),我们可以得到
R->(BCA B B | B | B[B
]R->(BCA BCA | B | a)R“
]R->bcar“”->bcar“124124124(2)R”
R“->bcar”ε