2013-10-02 50 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層次是什麼;因爲這一點,也最好檢查這些四頁,具有完整的層次結構圖: