如何获得Clang中条件的右括号的位置?

问题描述 投票:3回答:1

我正在使用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个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.