如何在clangAST中重命名FunctionDecl?

时间:2016-01-13 11:03:24

标签: c++ clang llvm

我使用来自lang :: RecursiveASTVisitor的子类来遍历clang AST并将函数从一个名称重命名为另一个名称。我使用rewriter类

/// \brief rename function declarations
virtual bool VisitFunctionDecl(clang::FunctionDecl *func) {
    std::string funcName = func->getNameInfo().getName().getAsString();
    if (funcName == _nameFrom) {
        _rewriter.ReplaceText(func->getLocation(), (int)funcName.length(), _nameTo);

    }
    return true;
}

和类似的函数调用。

但是这种方法重命名源代码中的函数。我可以获得新版本的代码(使用新的函数名称),但当前ast节点的名称仍然相同。我可以以某种方式重命名ast节点吗?

0 个答案:

没有答案