昔から構想を練っていたC#のパーサーコンビネータなのですが、
C#では演算子のオーバーロードでジェネリックが使えないので、
Parl6やboost::spriitのようなBNFライクな記法を再現するのは無理っぽい。

dynamicを使えば可能ですが、インテリセンスがないとC#の意味があまりないですし。
他に代替え手段がないのならそれでもいいとは思いましたが、
Spracheという天才的な解法を見つけてしまいましたし。
BNFライクな記法ができるのに比べれば微妙といえますが、C#の範囲内ではあの発想はたぶん最高峰だ。世界にはすごい人がいたもので。

動的言語かジェネリック完備の言語のほうが有利ですかね。
Ruby版に注力しましょうか。
いずれF#版にも挑戦したいが、もう誰か書いているかなあ。

というかしばらくブログをさぼっているので、
前提条件が全く書いてないですな。
Ruby版を進めていたことすら全く書いてなかった。

まあその辺とかSpracheの紹介とかいずれブログに書きましょう。