!Sablecc いったい何度パーザを書けば気が済むんだといわれそうだけど, Sableccでパーザ書いてみたり. 文法定義と,実装が完全に別れていたり, できたコードを動作させるのに特別なランタイムが必要なかったり,と いい感じ. 基本的な使い方は,DepthFirstAdapterを継承した解析クラスつくって outXXX で処理を書いていく. DepthFirstAdapterで定義してある,パーズ結果の深さ優先が嫌なときは, caseXXX で順番を変える. なかなか気持ちよく書けるなぁ.