C++ 如何在clangAST中重命名函数decl?

C++ 如何在clangAST中重命名函数decl?,c++,clang,llvm,C++,Clang,Llvm,我使用lang::RecursiveASTVisitor中的子类遍历clang AST并将函数从一个名称重命名为另一个名称。我使用重写器类来完成它 /// \brief rename function declarations virtual bool VisitFunctionDecl(clang::FunctionDecl *func) { std::string funcName = func->getNameInfo().getName().getAsString();

我使用lang::RecursiveASTVisitor中的子类遍历clang AST并将函数从一个名称重命名为另一个名称。我使用重写器类来完成它

/// \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节点本身?

您是否尝试过使用?谢谢,但您能否提供一个示例,说明如何初始化DeclarationName实例以传入setDeclName?我无法从字符串中找到任何用于设置该类的内容。