消除文法的左遞歸例題 編譯原理,如何消除文法的左遞歸?
編譯原理,如何消除文法的左遞歸?1. A->aa2。A->baB->ab(A和B屬于非終結(jié)符,A和B屬于終結(jié)符)一般來說,左遞歸是在情況1中“>”的兩邊包含相同的非終結(jié)符;在情況2中,
編譯原理,如何消除文法的左遞歸?
1. A->aa
2。A->ba
B->ab(A和B屬于非終結(jié)符,A和B屬于終結(jié)符)
一般來說,左遞歸是在情況1中“>”的兩邊包含相同的非終結(jié)符;
在情況2中,a->ba中“>”后的B和B->ab中“>”前的B是同一個非終結(jié)符
這兩種情況稱為左遞歸。
消除下列文法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”ε