コンパイラに以下の文法を使用するとしましょう
S -> a | aB
左因数分解を実行すると、次のようになります (e はイプシロン)
S -> aC
C -> B | e
次に、最終的に次のようになるイプシロンを削除したい
S -> a | aC
C -> B
再び左因数分解を実行する必要があるように見えることに注意してください。そうすることで、無限に左因数分解とイプシロンの削除を行ったり来たりします。私は何か間違ったことをしていますか??
コンパイラの文法で左因数分解とイプシロンの両方を削除する必要がありますか?