我正在尝试实现一个使用 ASTMatcher API 进行句法分析的 clang 工具。我正在尝试找出如何为 clang 指定额外的标志以禁用语义检查。我知道 clang 构建了一个巨大的 AST,其中包括系统头文件。有什么方法可以在禁用导致未知类型错误的语义检查的同时解析源代码?我只想分析给定文件的源代码的语法完整性。到目前为止,我已经尝试通过修改 DSL 来检查匹配代码是否来自主文件来解决这个问题:
cxxRecordDecl(isExpansionInMainFile()).bind("class");
但这并不能阻止 clang 查看头文件。