clang-AST遍历 - 如何获取类的成员变量

时间:2014-11-20 12:19:04

标签: clang abstract-syntax-tree

我想遍历一个具有一个成员变量和一个方法的简单类的AST。我已经发现该类表示为CXXRecordDecl。

CXXREcordDecl中的api是什么来获取表示为FieldDecl的成员变量列表?

1 个答案:

答案 0 :(得分:4)

可以使用RecordDecl::fields检索字段(还存在获取该范围的开始和结束迭代器的方法),例如对于CXXRecordDecl

CXXRecordDecl* cl = ...;
for (const auto& field : cl->fields) {
    const auto& name = field->getName();
    const auto field_cl = field->getType()->getAsCXXRecordDecl(); 
}

同样,您可以使用methods()访问方法。