2010-09-30 105 views
3

試圖找出在上下文無關語法中刪除左遞歸。我習慣了某些形式,但這個讓我有點難以理解。刪除上下文免費語法中的左遞歸

S --> S {S} S | (A) | a 
A --> {S} A | epsilon 

我也必須設計一個體面的解析器,我可以做。然而,搞清楚這個左遞歸(尤其是第一個)讓我感到困惑。

回答

0

試試這個:

S --> a [ { S } S ] 
    | ([ A ]) [ {S} S ] 


A --> { S } [ A ]