ないかと思っています。演算子オーバーロードがサポートされるのならチャレンジしてみようかななどと思ってそれきりになっていました。眺めているうち、正規表現のメタ文字を使えば文法定義をきれいに書けるのではと思い至りました。非常に近い形で文法定義を書けます。四則演算を用いた数式パーサを作成する場合は次のようになります。print("数式が間違っています。数式が間違っています。コンストラクタの引数に生成規則の集合、開始記号、スキップパーサを渡してやることで、構文解析器を生成できます。生成されるのは再帰下降パーサなので、左再帰を含んだ生成規則は扱えません。囲まれた文字列が終端記号として認識されます。ように、小なり大なり記号で囲めば正規表現を使うこともできます。