在示例代码中解析Clang中的ASTVisitor时,我看到有构造来验证语句,例如。
isa<IfStmt>(statement)
isa<UnaryOperator>(Expression)
是否有用于评估当前表达式/语句的此类构造的完整列表。
由于
答案 0 :(得分:2)
首先,isa
没有什么神奇之处,这只是LLVM检查对象是否是某个类的子类型的方式;表达式isa<IfStmt>(statement)
基本上等同于这个启用RTTI的表达式:
dynamic_cast<IfStmt*>(statement) != NULL
所以你的问题实际上归结为AST层次结构是什么;为此,最好使用完整的层次结构图检查这四页: