私は Java で小さな LR(1) パーサー ジェネレーターを書きました。これは、入力で文脈自由文法を与えられ (より適切に言えば、プロダクションです)、入力単語は、1) 文法が LR(1) ではないかどうかを出力します。2) 単語が3) 単語は文法によって拒否されます
これまでのところ、私はこの文法で試しました
S -> CC
C -> CC | d
この
A -> BA | e
B -> aB | b
(e は空の文字列であることに注意してください)
この文法では、パーサーは機能しますが、テスト用にLR(1)言語を確実に生成することがわかっている文法(プロダクションのリスト)を見つけるのに苦労しています。
さらに、プログラムのポイント (1) をテストするには、LR(1) ではない文脈自由文法が必要です。
あなたが私に与えることができる例はありますか?