名前解決とオーバーロードの解決とマクロ展開を実行できるC/C++言語(GCCではなくMicrosoft Visual C++ではない)のパーサーが必要です。今日私は理解を使用しますが、それはあまりにもバギーであり、私が必要とするすべての機能を提供していません。名前解決と過負荷解決が可能なC/C++パーサーを知っていますか?
2
A
答えて
1
CとC++の両方を実行する単一のパーサを取得することはできません。彼らは異なった構文とセマンティクスを持つlangaugesです。それぞれのパーサを個別に取得することができます。
C Front EndとC++ Front Endを参照してください。どちらも多様な方言(GCCとMSの両方)を処理し、ASTを構築し、完全なシンボルテーブルを構築します。フル拡張を実行する、または制御下で実行するプリプロセッサモジュールがあり、特定の条件とマクロのみを展開します。
Cフロントエンドには、制御フロー、データフロー、ポイントツーコールグラフの構築もあります。深いフロー解析を実際には持たない理解とは異なり、Cフロントエンドは間接的な関数呼び出しの目標を(控えめな前提のなかで)正しいものにします。
C++フロントエンドは完全なC++ 0X言語を処理します。我々はそれのための制御フローグラフ構築を完了する過程にある。
基本エンジンDMS Software Reengineering Toolkitは、このすべての情報にカスタマイズ可能なアクセスを提供します。それは理解のような美しい写真を提供しません。カスタム解析とプログラム変換ツールを作成することを目的としています。
関連する問題
- 1. 通常の過負荷解決よりもタグディスパッチの利点
- 2. C++の過負荷解決ルールの欠陥?
- 3. 名前解決
- 4. Gitlab:未解決可能なホスト名
- 5. kubernetes.default:名前が解決しない
- 6. 動的な名前解決
- 7. ラムダコールドスタート可能な解決策?
- 8. 解決不可能なインポートPOMを解決するには?
- 9. ラムダ関数:名前解決
- 10. 名前解決は、Java
- 11. スタンドアロンIntelliJパーサーのシンボル解決
- 12. 以下の過負荷解決がテンプレート以外の関数を呼び出すのはなぜですか?
- 13. プロミスが解決しない解決
- 14. オーバーレイネットワークと名前解決のドッカースタック
- 15. コントローラーを作成するUnityからの名前解決の解決
- 16. Laravel通知解決不可能な依存性
- 17. パーサーで未知の構文エラーを解決するには?
- 18. ワークシートがあいまいな名前解決を変更しますか?
- 19. 関数オブジェクトは過負荷解決にどのように影響しますか?
- 20. スプリングブート実行可能なjarがフリーマーカテンプレートを解決できない
- 21. コンパイラは、過負荷解決中にconst ref over refを選択することを許可されていますか?
- 22. CSSで可能な解決策の前に兄弟セレクタ
- 23. inversify.js名前で解決する
- 24. AndroidのKivy:urlopenエラー[Errno 4]修復不可能な名前解決の失敗
- 25. Compute Engineインスタンス上のサーバーの解析可能な負荷量
- 26. 名前空間とクラス - 名前のあいまいさの解決
- 27. Laravel名前解決の問題
- 28. Azure with Xamarin.forms名前解決失敗
- 29. Azure DNS名前解決の問題
- 30. C++名前の衝突の解決
正確に何をお探しですか?多くのC/C++パーサがありますが、なぜGCCは十分ではありませんか? –
私が正しく理解したら、Visual Studioプラグインが静的にGUIでコードを分析し、[clang](http://clang.llvm.org/)のような一般的なC/C++解析ライブラリではないようにします。正しい?また、これはあなたが言及した[理解](http://www.scitools.com/)のものですか? –
[Gazelle](http://www.reverberate.org/gazelle/)は比較的新しいパーサーシステムです。 – GManNickG