C/C++ コードの解析と解析をすばやく開始するための優れたツールは何ですか?
特に、C/C++ プリプロセッサと言語を処理するオープン ソース ツールを探しています。できれば、これらのツールは文法に lex/yacc (または flex/bison) を使用し、複雑すぎないようにする必要があります。最新の ANSI C/C++ 定義を処理する必要があります。
ここに私がこれまでに見つけたものがありますが、それらを詳細に見ていません (考え?):
- CScope - 古い学校の C アナライザー. ただし、完全な解析は行わないようです。C 関数を見つけるための美化された「grep」として説明されています。
- GCC - みんなのお気に入りのオープン ソース コンパイラ。非常に複雑ですが、すべてを実行しているようです。GEMと呼ばれる GCC 拡張機能を作成するための関連プロジェクトがありますが、GCC 4.1 (2006) 以降更新されていません。
- PUMA - ピュア マニピュレーター。(ページから: 「このプロジェクトの目的は、C/C++ ソースの分析と操作のためのクラスのライブラリを提供することです。この目的のために、PUMA はスキャン、解析、そしてもちろん C/C++ ソースの操作のためのクラスを提供します。」) . これは有望に見えますが、2001 年以降更新されていません。明らかに PUMA はAspectC++に組み込まれていますが、このプロジェクトでさえ 2006 年以降更新されていません。
- さまざまな C/C++ 生の文法。c-c++-grammars-1.2.tar.gzを入手できますが、これは 1997 年以降維持されていません。少し Google で検索すると、出発点として役立つ他の基本的な lex/yacc 文法が引き出されます。
- 他のもの?
これを、C/C++ ソースを新しい玩具言語に翻訳するための出発点として使用したいと考えています。
ありがとう!-マット
(2/9 追加): 明確化: C/C++ コード自体に加えて、プリプロセッサからセマンティック情報を抽出したいと考えています。「#define foo 42」が整数「42」に消えないようにしたいのですが、「foo」という名前に付けたままにしておきます。残念ながら、これにより、最初にプリプロセッサを実行し、C/C++ 解析ツリーのみを提供するいくつかのソリューションが除外されます)。