使用clang libtooling并具有namedDecl句柄来重命名所有出现的变量名称的最简单方法是什么?

时间:2019-03-17 10:33:18

标签: c++ clang libclang

我想制作一个程序,为所有函数,变量,命名空间...提取抽象名称,并替换当前名称。为此,我使用了clang libtooling文档及其AST访问者示例。我发现了其他有用的教程 在互联网上,例如: This example of a tool that renames a function ; This example of how to write a matcher and replacer。 我的代码在第一个网站中有很多类似的查找器:

  virtual bool VisitVarDecl(VarDecl *func) {
errs() << func->getNameAsString()<<" ";
auto a = func->getType();
errs() << a.getAsString()<<"space";
//also tried this with no success
Twine a = Twine("works");
 func->setName(a);
return true;

}

所以问题是我该如何在该名称的上下文中替换该名称的所有出现:例如,基于regex的哑巴替换器将用相同的名称替换全局变量和局部变量,但使用namedDecl句柄应该只能让我访客发现的那个?

0 个答案:

没有答案