2013-10-02 49 views
2

在解析示例代码中的Clang中的ASTVisitor时,我看到有构造来验证语句,例如。比较clang中的结构AST解析器

isa<IfStmt>(statement) 
isa<UnaryOperator>(Expression) 

是否有用于评估当前表达式/语句的此类结构的完整列表。

感谢

回答

2

首先,有什么魔力isa是,这只是LLVM的检查对象是否为某个类的子类的方式;表达isa<IfStmt>(statement)基本上等同于这使RTTI表达:

dynamic_cast<IfStmt*>(statement) != NULL 

所以你的问题实际上可以归结为AST层次是什么;因为这一点,也最好检查这些四页,具有完整的层次结构图: