Mling: ML処理系のC言語インターフェイスを自動生成する [SML]
SMLの処理系のC言語インターフェイスをCのヘッダから自動生成するツールを作った。
Mling: ML FFI Interface Generator
現在のところMLtonとPoly/MLに対応していて、cursesを使うサンプルが動くようになっている。
先行するものとしてSML/NJとMLtonにはmlnlffigenというツールがあるようなのだけど、使い方がよくわからなかったのだ。 やりたいのはCの関数の型をMLの型に書き換える機械的な作業なので、いいや自分で作ろうということになった。
C言語の構文解析には紆余曲折の後libclangをPythonから使うことにした。 Ubuntuでpython-clang-3.3を導入した環境で動作を確認している。
一般的な構文解析ツールでC言語の構文解析をしようとするとtypedef問題などに突き当たってしまって、かなり面倒なことになる。 libclangは何と言ってもCコンパイラが使う真正のC言語パーサーだからそれを使えるのは理想的なはずだ。 でもlibclang自体の使い方もドキュメントが乏しくてよくわからないところが多い。 だから面倒くささということに関しては結局どっちもどっちかもしれない。
2014-10-26 12:43
nice!(0)
コメント(0)
トラックバック(0)
コメント 0