左再帰
上述の変換は、同じ入力を受理するという意味では等価な変換だが、文法としては左再帰の文法を右再帰に変換してしまっている、ということに注意が必要である。変換された構文規則による構文木は、元の構文規則による構文木とは異なった構造になる。たとえば、通常の算術の式の左結合(結合法則#結合性を参照)の構文規則を変換すると、右結合に変化してしまう。以下、実例で説明する。
例えば、次のような文法があるとする。
E x p r → E x p r + T e r m | T e r m {\displaystyle Expr\rightarrow Expr\,+\,Term\,|\,Term} T e r m → T e r m ∗ F a c t o r | F a c t o r {\displaystyle Term\rightarrow Term\,*\,Factor\,|\,Factor} F a c t o r → ( E x p r ) | I n t {\displaystyle Factor\rightarrow (Expr)\,|\,Int}
これに左再帰除去の一般的手法を適用すると、次のような文法が得られる。