我使用clang库进行一些c ++ AST操作。我想获得IfStmt
条件的右括号的位置。
我试过了:
auto condLocEnd = statement->getCond()->getLocEnd();
auto condLoc = Lexer::findLocationAfterToken(condLocEnd, tok::r_paren, sm, LangOptions(), false);
不幸的是,当条件包含宏时,condLoc
无效。
例如:if(p == NULL)
。我无法弄清楚如何获得该位置。如何获得它?
答案 0 :(得分:1)
感谢cfe-dev邮件列表,我发现这个答案是https://stackoverflow.com/a/24223347。我需要获取我的条件表达式LocEnd()
的扩展位置。