libtooling リファクタリング ツールを作成しています。Foo
というヘッダーで定義された、たとえば というクラスがありfoo.h
ます。foo.h
がファイルに含まれているかどうかを確認したい。現在、 がbar.cc
含まれてfoo.h
いるかどうかを確認するために、 を使用してマッチングしてrecordDecl(hasName("Foo"))
います。が含まれている場合、前処理後に の ASTclass Foo { ... };
内に存在するため、これは機能します。bar.cc
bar.cc
foo.h
ただし、たとえば、which includes が含まbar.cc
れている場合、これは機能しません。明示的に含めたい。cat.h
foo.h
bar.cc
foo.h
#define
さらに、マクロに対応できるようにしたいです。
私が自分のツールを書いてきた方法では、これら 2 つの目標を達成できませんでした。これは、一致させる AST が既に前処理されているためです。私がやろうとしていることは可能ですか?Clang の Doxygen ページでクラス リファレンスを掘り下げましたPreprocessor
が、探しているものがまったく見つかりませんでした。