是否有使用C条件的LLVM AST匹配器?我知道ifStmt有hasCondition()选项,但这只适用于if语句。特别是,我正在寻找匹配没有运算符的布尔条件(例如if (flag)
,while(flag)
或(flag ? x : y)
)。但我也对任何条件的更一般的情况感兴趣。
我能找到的最接近的是ifStmt,而estmt或doStmt:xxxStmt(除非(hasCondition (binaryOperator (isComparisonOperator ()))))这也允许我检查if (!flag)
之类的东西对于flag ? x : y
,可以匹配conditionalOperator(),然后确定表达式是否有比较操作符。