0
使用ANTLR 4.6,2016年11月23日的快照。從左遞歸規則中去除相互左遞歸
我有兩個規則,每個是左遞歸。我擴展了幾個替代方法來公開左遞歸。 ANTLR4處理這個問題,因爲左遞歸是明確的。但是,這兩條規則也是相互左遞歸的。
如何解決相互左遞歸,並這樣做,使規則不是一團糟?現在我有很好的評論,展示了擴展的內容,並將其移至primary2和constant_primary2中,這些參數並不涉及相互左遞歸。
constant_primary :
constant_primary2
| primary '.' method_call_body
| constant_primary '\'' '(' constant_expr ')'
;
primary :
primary2
| primary '.' method_call_body
| constant_primary '\'' '(' expr ')'
;