1

プラグイン開発のために Eclipse で実行できる C++ 解析のレベルは? C++ クラス タイプ、メソッド シグネチャなどにアクセスし、解析/読み取り/分析された元のクラスから収集した情報を使用して別のクラスを作成する方法があるかどうか知りたいです。

EDG、ROSE、CodeBoost などの多くの C++ フロント エンド ツールを見てきましたが、非常に複雑に見えます (多くの人が EDG を最高だと言っていますが、私の価格帯から少し外れています)。 JavaのASTを生成できることはわかっているのでEclipseでしたが、C ++でも同じことができるかどうかはわかりません。役に立たないチュートリアルを探したので、ヘルプ/アドバイスを求めてここに来ました。

4

1 に答える 1

0

編集 5/23:

GIYF: Google に提供された「Eclipse C++ パーサー」というフレーズは、CDT ドキュメントに次の行を生成します: http://wiki.eclipse.org/CDT/designs/Overview_of_Parsing

どのパーサーを選択しても、それを処理する必要があることがわかります。これはパーサー機構ではありません。その C++ 自体。

CDT は C++ を解析します。C++11 に対応しているかどうかはまだわかりません。それを使用して C++ でリファクタリング ツールを構築しようとする試みがあり、そのプロセスは明らかに使用可能ですが、優れた結果ではありません。問題の 1 つは、CDT が明らかにその AST を変更できないことです。ある種のテキスト パッチを発行し、ソース コードを再処理する必要があります。

その C++ パーサーのセットを調べた場合は、C++11 フロント エンドを検討する必要があります。

AST とシンボル テーブル、および制御フロー分析を生成します。コードを解析/変換し、コンパイル可能なソース コードを再生成できます。そして、ツリーに直接適用される汎用変換機構がその下に含まれています。パッチを発行して再解析する必要はありません。

PS: EDG と Rose は実際には同じものです。Rose は単に EDG を使用します。EDG には変換機能はありません。ローズにはそれがありますが、複雑に見えますが、自分のツールに甘やかされています.

于 2012-05-22T22:01:58.470 に答える