<p dir="ltr">On 23 May 2015 6:57 am, "Lu Niu" <<a href="mailto:qqibrow@gmail.com">qqibrow@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> I am new to clang AST and try to parse a struct like below:<br>
><br>
> struct Foo {<br>
>     int a;<br>
>     double b;<br>
> };<br>
><br>
><br>
> the ast-dump result is like:<br>
><br>
> CXXRecordDecl 0x202c768 </home/lniu/ClangCheck/main.cpp:5:1, line:8:1> line:5:8 struct Foo definition<br>
> |-CXXRecordDecl 0x202c880 <col:1, col:8> col:8 implicit struct Foo<br>
> |-FieldDecl 0x202c920 <line:6:5, col:9> col:9 a 'int'<br>
> `-FieldDecl 0x202c978 <line:7:5, col:12> col:12 b 'double'<br>
><br>
> My question is How to traverse all children FieldDecl from parent CXXRecordDecl? <br>
><br>
> I follow the tutorial here <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__clang.llvm.org_docs_RAVFrontendAction.html&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=CnzuN65ENJ1H9py9XLiRvC_UQz6u3oG6GUNn7_wosSM&m=ZsBuFOm2DCY5nnJvsnrJycVxXWH5JY4oI1kC-0-jn2E&s=NOwLoe4Zz4gOmV59CkeHNxQMOpswiriU6UUwfA22y48&e=">http://clang.llvm.org/docs/RAVFrontendAction.html</a> 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.<br>
><br>
> bool VisitCXXRecordDecl(CXXRecordDecl *Declaration) {<br>
><br>
> for(ChildrenDecl decl : Declaration.getChildren()) {<br>
> // do sth here<br>
> }<br>
><br>
> }<br>
><br>
> I don't know whether I am on the right path. Any idea is welcome. Thank you!</p>
<p dir="ltr">Use RecordDecl::fields.</p>
<p dir="ltr">> Best,<br>
> Lu<br>
><br>
><br>
> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
><br>
</p>