Ironyについては以前ちらっとだけ紹介したこともあるのだけど改めて。 parser generator .NETでプログラムを書いていて、テキストのパーサを作らなければならなくなることは割と普通にあるだろう。多くの場合はTextReaderを使って力技で書いて何とかするだろう。たとえばJSONくらいであれば、手作業で書いても難しくない。しかし、文法が複雑になってくると、たとえばC#のパーサを書けということになると、ある程度は状態遷移をロジックに任せると楽になる。 .NETで複雑なテキストパーサを書くのがどれくらい一般的なことかは分からないが、そういうものを実装するために使われるのがパーサジェネレータあるいはコンパイラコンパイラと呼ばれる仕組みだ。パーサジェネレータは、生成規則(構文)を所定の表記法で記述すると、それをもとにテキストパーサのコードを生成する。有名なのはCのコードを生成するy