5

どうにかして、同じコードで 2 つの異なる言語のドキュメントを生成できますか? 問題は、VB に似た独自の言語を介して公開されている C API があることです。

したがって、C で公開された関数は次のようになります。

int Function (*PointerToObject)

VB では次のようになります。

int Function (ByVal long PointerToObject)

この同じ問題について、以前に別のスレッドをすでに開いていましたが、その時までに Doxygen については何も知りませんでした。ここ数日、ドキュメントを読んでいて、VB のドキュメントを作成できるようですが、動作させるには実際の VB コードが必要ですが、そうではありません。私が持っている唯一のものは、元の C と C の swig 出力だけです。

私が念頭に置いているのは、単一のソースからある種の多言語ドキュメントを作成できるツール (doxygen、sphinx など) です (有効な doxygen ではありませんが、アイデアを説明しています)。

/*! \fn int Function(*PointerToObject) 
 *  \brief A simple function.
 *  \Cparam[in] PointerToObject A pointer to the object being used.
 *  \VBparam[in]    ByVal long PointerToObject      A pointer to the object being used.
 *  \return An integer.
 */

正しいVBタイプを識別するのはswigであるため、どうにかしてswigに統合できれば素晴らしいと思いますが、私はおそらくあまりにも多くを求めていると思います.

少し複雑です。よくわからない場合は、コメントを残してください。詳しく説明します。

4

1 に答える 1

2

私はあなたが探していることを正確に行っていないので、これがどれほど役立つかは確信が持てません(そして、それは少し面倒です)が、同様の状況では、私たちの最善の策は生成することであるという結論に達しましたdoxygen が文書化するためだけの綿毛オブジェクト。

私たちの場合、残りの MUD が記述されている LPC 言語には存在しない、数百のドライバー公開外部関数を持つ LDMud があります。のドキュメントの実行と含む主要なドキュメントを含むドキュメント。私たちの場合、これらの関数の定義を考慮すべき内容を含む、かなり完全なプレーンテキストのドキュメントがあるため、代わりにこのドキュメントを使用して、ダミーの関数定義を持つオブジェクトを生成し、プレーンテキストのドキュメントを dox​​ygen の関数ヘッド コメントに解析します。スタイル。これは明らかに、ドキュメントにコードやコード内コメントを含める利点を提供しませんが、ドキュメントを複数の形式で生成したり、ガイドにプッシュしたり、他のドキュメントからこれらの関数への参照を作成したりできるようにします。 .

私はCに直接精通していないので、必要な関数のプログラムによるインベントリを実行し、その情報からダミーの宣言を生成するための内省的なサポートがあるかどうかはわかりません. 少数の関数を持っていない場合は、ダミーの宣言を手動で記述するのが最善の投資になると思います。これらの関数が非常に多数ある場合は、doxygen を使用して元のコードを XML ドキュメントに解析し、XML からダミー オブジェクトを生成することをお勧めします。Doxygen の XML は扱いが面倒ですが、宣言と引数だけが本当に必要な場合は (比較的) シンプルです。

最後に、ドキュメントが実際に内部および外部として考えられる場合は、2 つ以上の構成ファイルを使用して、異なる場所に保存されたドキュメントの異なるセットを生成し、それらを内部/外部の対象者に別々に公開することもできます。これにより、それぞれに適切な量の詳細を提供するというタスクのイライラが軽減されます。これらの線に沿って、INTERNAL_DOCSオプションと@internal/@endinternalコマンドも役立つ場合があります。

于 2012-12-22T07:11:37.707 に答える