如何从 A -> Aα 移除左递归 | ε

How to remove left recursion from A -> Aα | ε

我认为这个语法的左递归是不可移除的。如果我错了,请纠正我。 α 是非终结符的 Alpha ε 是 Epsilon。

左递归可以从文法中移除;这是没有左递归的语法:

A -> A' | ε
A' -> α A

你也可以像@Mephy 那样用右递归做:

A -> α A | ε

请注意(正如@Mephy 所说)此语法只是零个或多个 αs (α*)。