递归AST访问者解决了与专用访问者观察到的局限性。创建相同的程序,该程序搜索并打印函数声明及其参数,但这次我们将使用递归访问者。 递归访问者测试工具的CMakeLists.txt将以与之前类似的方式使用,只有项目名称(图3.20第2行和第15-17行)和源文件名(图3.20第14行)发生了变化: 图3.20: 递归访问者测试工具的CMakeLists.txt文件 工具的主函数与图3.7中定义的’DeclVisitor’主函数类似。 \#include "clang/Tooling/CommonOptionsParser.h" \#include "clang/Tooling/Tooling.h" \#include "llvm/Support/CommandLine.