如何从 A -> Aα 移除左递归 | ε
How to remove left recursion from A -> Aα | ε
我认为这个语法的左递归是不可移除的。如果我错了,请纠正我。
α 是非终结符的 Alpha
ε 是 Epsilon。
左递归可以从文法中移除;这是没有左递归的语法:
A -> A' | ε
A' -> α A
你也可以像@Mephy 那样用右递归做:
A -> α A | ε
请注意(正如@Mephy 所说)此语法只是零个或多个 α
s (α*
)。
我认为这个语法的左递归是不可移除的。如果我错了,请纠正我。 α 是非终结符的 Alpha ε 是 Epsilon。
左递归可以从文法中移除;这是没有左递归的语法:
A -> A' | ε
A' -> α A
你也可以像@Mephy 那样用右递归做:
A -> α A | ε
请注意(正如@Mephy 所说)此语法只是零个或多个 α
s (α*
)。