dmdのフロントエンドから、LexerとParserの部分をC#に移植しよう思って作業に取り掛かったけど、意外と面倒なんで、ちょっと中断。
楽する方法ないもんかとパーサジェネレータをいくつか調べてみた。


ANTLR http://www.antlr.org/
が有名どころだけあって、いろいろ資料が揃っててよさそう。

http://aegisknight.org/~andy/d/d.g
既にDの文法定義ファイルが作られてたので、Lexerの部分だけ動かしてみた。
http://reverie.xrea.jp/files/parser1.png
細かい部分で違う所あるのでちょっと修正する必要があるけど、そこそこいい感じに動いてる。