Как избавиться от левой рекурсии для следующей грамматики?
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 +
будет действительным, но это неправильное постфиксное выражение.
e
на самом делеϵ
. Во всяком случае, обманул меня. - person Konrad Rudolph   schedule 25.10.2009