我正尝试通过使其更优雅并升级Clang的AutoFFI来升级我的ASTMatchers项目。我想创建一个对指定文件路径进行过滤的匹配器。是否可以做这样的事情,还是我需要在匹配器之外添加自定义逻辑才能使它起作用?据我所知,没有办法获取SourceManager
并使用它来创建FullSourceLoc
,但是也许我缺少了一些东西。
一些相关链接:
如果有人可以告诉我这是否对Clang的ASTMatcher API有所限制,我将不胜感激!
答案 0 :(得分:0)
没关系,我通过查看WordDocument
的来源找到了答案:
isExpansionInMainFile
结果证明,我错过了AST_POLYMORPHIC_MATCHER(isExpansionInMainFile,
AST_POLYMORPHIC_SUPPORTED_TYPES(Decl, Stmt, TypeLoc)) {
auto &SourceManager = Finder->getASTContext().getSourceManager();
return SourceManager.isInMainFile(
SourceManager.getExpansionLoc(Node.getBeginLoc()));
}
中的getASTContext
,该MatchFinder
一直由源经理负责。