boost::spiritを使ってみる
D言語パーサーが欲しい.
試しに変態的という褒め言葉が最も似合うライブラリ, boost::spirit を使ってみた.
使ってみてわかったが,このライブラリはすごいな.
class A { int a; }; ←入力
A, a, ←出力
-
- -
class A { int a,b,c; };
A, a, b, c,
-
- -
class A { int a; }; class B { int b; };
A, a, B, b,
-
- -
class A { static const char c; };
A, c,
-
- -
アクセス指定子って何ですかって状態だけど,こんな感じで簡単にシンボルを抜き出せた.
ソースをコンパイルするわけじゃないから厳密に切り分けなくてもよさそうだし,この調子なら簡単なものはすぐに作れてしまいそうだ.
むしろ IDE のエディタ部分の実装の方が大変そうだ(苦笑
そっちは C# でやるか・・・?
いやいややっぱり D で・・・?
うーん悩ましい.
関連記事: http://rayerd.ddo.jp/mt/inglogging/archives/2006/05/parser.html