2011-07-25 8 views
2

名前解決とオーバーロードの解決とマクロ展開を実行できるC/C++言語(GCCではなくMicrosoft Visual C++ではない)のパーサーが必要です。今日私は理解を使用しますが、それはあまりにもバギーであり、私が必要とするすべての機能を提供していません。名前解決と過負荷解決が可能なC/C++パーサーを知っていますか?

+0

正確に何をお探しですか?多くのC/C++パーサがありますが、なぜGCCは十分ではありませんか? –

+0

私が正しく理解したら、Visual Studioプラグインが静的にGUIでコードを分析し、[clang](http://clang.llvm.org/)のような一般的なC/C++解析ライブラリではないようにします。正しい?また、これはあなたが言及した[理解](http://www.scitools.com/)のものですか? –

+1

[Gazelle](http://www.reverberate.org/gazelle/)は比較的新しいパーサーシステムです。 – GManNickG

答えて

1

CとC++の両方を実行する単一のパーサを取得することはできません。彼らは異なった構文とセマンティクスを持つlangaugesです。それぞれのパーサを個別に取得することができます。

C Front EndC++ Front Endを参照してください。どちらも多様な方言(GCCとMSの両方)を処理し、ASTを構築し、完全なシンボルテーブルを構築します。フル拡張を実行する、または制御下で実行するプリプロセッサモジュールがあり、特定の条件とマクロのみを展開します。

Cフロントエンドには、制御フロー、データフロー、ポイントツーコールグラフの構築もあります。深いフロー解析を実際には持たない理解とは異なり、Cフロントエンドは間接的な関数呼び出しの目標を(控えめな前提のなかで)正しいものにします。

C++フロントエンドは完全なC++ 0X言語を処理します。我々はそれのための制御フローグラフ構築を完了する過程にある。

基本エンジンDMS Software Reengineering Toolkitは、このすべての情報にカスタマイズ可能なアクセスを提供します。それは理解のような美しい写真を提供しません。カスタム解析とプログラム変換ツールを作成することを目的としています。

関連する問題