我正在编写一个带有clang libtooling的重构工具。
我需要的是根据实时变量信息重写源代码。 例如,对于函数中的每个基本块,转储其实时变量。
我知道如果我正在编写分析检查器,那将非常容易。
void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
BugReporter &BR) const {
if (LiveVariables* L = mgr.getAnalysis<LiveVariables>(D)) {
L->dumpBlockLiveness(mgr.getSourceManager());
}
}
简单地调用mgr.getAnalysis(D)来获取此函数的LiveVariables。然后,转储每个区块。
但是,我正在编写一个独立的重构工具。 如何构造AnalysisManager对象?
非常感谢。