9

libtooling リファクタリング ツールを作成しています。Fooというヘッダーで定義された、たとえば というクラスがありfoo.hます。foo.hがファイルに含まれているかどうかを確認したい。現在、 がbar.cc含まれてfoo.hいるかどうかを確認するために、 を使用してマッチングしてrecordDecl(hasName("Foo"))います。が含まれている場合、前処理後に の ASTclass Foo { ... };内に存在するため、これは機能します。bar.ccbar.ccfoo.h

ただし、たとえば、which includes が含まbar.ccれている場合、これは機能しません。明示的に含めたい。cat.hfoo.hbar.ccfoo.h

#defineさらに、マクロに対応できるようにしたいです。

私が自分のツールを書いてきた方法では、これら 2 つの目標を達成できませんでした。これは、一致させる AST が既に前処理されているためです。私がやろうとしていることは可能ですか?Clang の Doxygen ページでクラス リファレンスを掘り下げましたPreprocessorが、探しているものがまったく見つかりませんでした。

4

2 に答える 2