次の文法の左再帰をなくす方法は?
E := EE+|EE-|id
一般的な手順を使用します。
A := Aa|b
に変換:
A := b|A'
A' := ϵ| Aa
これを元の文法に適用すると、次のようになります。
A = E, a = (E+|E-) and b = id
したがって:
E := id|E'
E' := ϵ|E(E+|E-)
しかし、この文法は間違っているようです。
ϵE+ -> ϵ id +
は有効ですが、これは正しくない後置式です。