[cfe-dev] How to traverse all children FieldDecl from parent CXXRecordDecl

Lu Niu qqibrow at gmail.com
Fri May 22 22:24:41 PDT 2015


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<FindNamedClassVisitor>. 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150522/7ec21192/attachment.html>


More information about the cfe-dev mailing list