C++ 如何在clangAST中重命名函数decl?
我使用lang::RecursiveASTVisitor中的子类遍历clang AST并将函数从一个名称重命名为另一个名称。我使用重写器类来完成它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();
/// \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?我无法从字符串中找到任何用于设置该类的内容。