antlr
まずデータ構造を定義してだな(割愛)、あとはパーサを改造して、
試行錯誤した結果grammerはこんなふうになった。 options { language = "CSharp"; namespace = "Parser"; // encapsulate code in this namespace } class SExprParser extends Parser; options { k = 2; } sexpr : atom | list | QUOTE sexpr ; list : OPAR…
すっきりした方法がみつからないので、とりあえずNANTをつかって自動化している。 //exec_antlr.build //default.build このふたつをプロジェクトdirにいれておいて、ビルドイベントで cd $(ProjectDir) nant を実行。生成された./generated内のファイルは手…
ドキュメントはここ。