スクリプト言語Lua4
いろいろ考えた結果、おそらく一番簡単なのが、luabind用にクラスをエクスポートするジェネレータを書くことです。
class_(L, "Test") .def("hoge", &Test::hoge);
luabind を使うとこんな感じで簡単にクラスを出力できるので、rubyやperlでこれをやってくれるスクリプトを書けばOKです。javadoc風コメントを使っているなら、@lua指定のあるクラスだけ出力するようにすれば便利だと思います。
実装上の注意としては
- メソッドのオーバーロードをどうするか?
- クラス継承をどうするか?
- publicメソッドだけ抽出するのが意外と面倒。
- luabindが複雑なので出力を1ファイルにまとめてしまうとコンパイルできない(vc6で大量のクラスを出力するとインターナルエラー)ことがある。
ことぐらいで、これさえ考えれば後は楽勝です。