0
我想在斯卡拉StdTokenParsers表達這種語法:斯卡拉代表()和結合
expr -> expr ("+"|"-") ~ muldivexpr | muldivexpr
「+」 和 「 - 」 是左結合。
語法是遞歸的,因此它引起了無限遞歸。我可以重寫刪除左遞歸,但它會更改爲右關聯性。
現在我計劃使用Scala的代表()來重寫爲:
expr -> rep(muldivexpr ("+"|"-")) ~ muldivexpr
反而會代表(),它改變關聯? rep()在這種情況下如何工作?
我在問這個問題,因爲我必須在將來輸出AST。