我正在使用libClang构建重构工具。任何熟悉这项业务的人都会知道我在写什么。
我们都知道clang::tooling::RefactoringTool::runAndSave
对所有提供的源文件运行RefactoringTool,并执行替换操作。更具体地说,为了执行替换,它首先构造包含所有节点的AST,然后在找到匹配项时,调用合适的回调类的run()
方法(从{{1继承}}),一一替换。
我的问题是:在调用了所有回调类的MatchFinder::MatchCallback
方法之后,并且在执行了替换操作之后,我想运行一个附加函数,该函数会将一些代码行添加到源代码中正在分析的程序。
run()
:
1.首先运行替换,
2.然后将替换文件保存到文件中。
我想直接在这两个步骤之间执行我的附加功能。我想添加其他自定义替换,这些替换不能由每个回调类的clang::tooling::RefactoringTool::runAndSave
方法应用。基本上,我想在回调类的所有run()
方法都已执行之后执行其他替换。我该怎么办?我要使用哪种代码构造?