【问题标题】:How to check if a Decl is inside a scope of #if directive?如何检查 Decl 是否在 #if 指令的范围内?
【发布时间】:2016-09-04 13:00:52
【问题描述】:

我正在构建一个clang libtool, 如何获取预处理器信息,告诉我给定的 Decl 是否在 #if #ifdef #ifndef 的范围内?

【问题讨论】:

    标签: clang llvm-clang libtool libtooling


    【解决方案1】:

    不幸的是,对此没有简单的答案。 Clang 并不完全了解任何预处理器指令的 AST 级别。

    据我所知,您能做的最好的事情就是实现一个 PPCallbacks 类,将其注册到编译器实例预处理器并实现 If、Elif、Endif 的函数。

    然后您可以使用 ASTVisitor 查找这些 Source 位置之间的所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 2013-01-04
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2017-07-13
      相关资源
      最近更新 更多