Hi,
I am new to clang AST and try to parse a struct like below:
struct Foo {
int a;
double b;
};
the ast-dump result is like:
CXXRecordDecl 0x202c768 </home/lniu/ClangCheck/main.cpp:5:1, line:8:1> line:5:8 struct Foo definition
-CXXRecordDecl 0x202c880 <col:1, col:8> col:8 implicit struct Foo
-FieldDecl 0x202c920 <line:6:5, col:9> col:9 a ‘int’
`-FieldDecl 0x202c978 <line:7:5, col:12> col:12 b ‘double’
My question is How to traverse all children FieldDecl from parent CXXRecordDecl?
I follow the tutorial here http://clang.llvm.org/docs/RAVFrontendAction.html and try to solve this inside bool VisitCXXRecordDecl(CXXRecordDecl *Declaration) from a RecursiveASTVisitor. I am expecting pseudo code like below but couldn’t find the api.
bool VisitCXXRecordDecl(CXXRecordDecl *Declaration) {
for(ChildrenDecl decl : Declaration.getChildren()) {
// do sth here
}
}
I don’t know whether I am on the right path. Any idea is welcome. Thank you!
Best,
Lu