私は以下の文法を持っています:文法を作るLL(1)
S→a S b S | b S a S | ε
私は小さなコンパイラを書こうとしているので、LL(1)にしたいと思います。私はここにFIRST/FOLLOWの矛盾があるように見えますが、私はそれを解決するために代用を使わなければならないことを知っています。ここに提案された文法がありますが、正しいかどうかはわかりません:
S-> aSbT |イプシロン
T-> bFaF |イプシロン
F->は、誰かがイプシロン
を助けることはできますか?彼のoriginal paper on LR parsingで
この有益な答えをありがとう。私はまた、私が提案した文法についてどう思っているのか興味がありました。それはLL(1)であり、クヌスとあまり変わらないようです。私はまた、それが失敗する可能性のある文字列を見ることはできません。 –
@ JohnRoberts-あなたの文法が正しく動作するとは思えません。例えば、 'b'で始まる文字列を得ることはできません。 – templatetypedef