2011-10-19 17 views
2

20年前のレガシーアプリケーションがあり、これをWebフロントエンドに接続したいと考えています。私は、C構造体で定義されたむしろかなり深くネストされたデータ構造を渡す必要があります。私たちは現在、XMLでこれを行う予定です。構造体定義の総数は約150です。これらはすべて1つの巨大なデータ構造にネストされています。ヘッダーファイルをスキャンし、必要に合わせてXMLスキーマを生成するプログラムを探したいと思います。誰もそのようなツールを知っていますか?ヘッダーファイルにC構造体があり、ヘッダーファイルからXMLスキーマを生成する必要があります。

+0

古いpython [ctypes](http://svn.python.org/projects/ctypes/trunk/ctypeslib/)にはh2xml.pyコードジェネレータが含まれています。 XML文書では、そこからスキーマを生成しようとする多くのツールがあります) – nos

答えて

0

SWIG(swig.org)には、必要な処理を実行できるXMLターゲット(-xml)があります。

0

GCC XMLというツールがあり、GCCでコンパイルされたプログラムの内部表現をXMLに変換しますが、これ以上メンテナンスされません。

可能性は、構造体宣言のそれはツリーを処理することになるためGCC(C)にプラグインをコーディングすることGCC 4.6プラグイン能力を、(その内部ASTである)を使用することができました。 GCCを拡張するために、より高いレベルのドメイン固有の言語であるGCC MELTを使用することもできます。しかし、どちらの場合でも、ツリー(&ジムプル)のGCCの内部表現を理解する必要があります(150の構造しかない場合は、それは価値がないかもしれません)。しかし、レガシーアプリケーションが十分な大きさであれば、GCC拡張の新しいスキルをそのレガシーアプリケーション上の他のタスクに使用できるため、これらの学習(およびMELTの使用)は価値があるかもしれません。

最後に、RPC-XDRに関連する(やや小規模で今日の標準では)ツールを見てみると、Cのような構造宣言のパーサーが含まれています。

関連する問題