【问题标题】:How to get the location of the right parenthesis of a condition in Clang?如何在 Clang 中获取条件右括号的位置?
【发布时间】:2018-02-28 08:37:25
【问题描述】:

我正在使用 clang 库进行一些 c++ AST 操作。我想获得IfStmt 条件右括号的位置。 我试过了:

auto condLocEnd = statement->getCond()->getLocEnd();
auto condLoc = Lexer::findLocationAfterToken(condLocEnd, tok::r_paren, sm, LangOptions(), false);

很遗憾,condLoc 在条件包含宏时无效。 例如:if(p == NULL)。我不知道如何获得位置。如何获得?

【问题讨论】:

    标签: c++ clang


    【解决方案1】:

    感谢 cfe-dev 邮件列表,我找到了这个答案https://stackoverflow.com/a/24223347。我需要获取条件表达式的LocEnd() 的扩展位置。

    【讨论】:

      猜你喜欢
      • 2019-11-15
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      相关资源
      最近更新 更多