<div dir="ltr">On Wed, Jun 19, 2013 at 1:32 AM, lostknight <span dir="ltr"><<a href="mailto:thanhtuan@aces.snu.ac.kr" target="_blank">thanhtuan@aces.snu.ac.kr</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi, thank for replying. I got it now.<br>
<br>
May I have another question? Where do I get documentation about the AST<br>
structure of produced from clang? The reason why I ask this because I don't<br>
find the information in "clang internal" section in the homepage of clang is<br>
enough to fully understand about the AST structure. For example, when using<br>
the clang::RecursiveASTVisitor to traverse the tree, I don't know which<br>
function (VisitSomething) I have to rewrite to print out the node's<br>
information.<br></blockquote><div><br></div><div>Try <a href="http://clang.llvm.org/doxygen/">http://clang.llvm.org/doxygen/</a> .  Also, looking at small examples using the -ast-dump flag can be helpful.</div><div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
My ultimate goal is to construct a source-to-source transformation. I need<br>
to start from parsing a source code and regenerate the code but to do that I<br>
need to understand the AST first. Any suggestions on how I should start<br>
would be great.<br></blockquote><div><br></div><div>I haven't really done much of that sort of thing; hopefully someone else will chime in.</div><div><br></div><div>There are some examples of using clang's rewriter infrastructure in clang/lib/Rewrite/Frontend/ in the source tree, if that's what you're looking for.  See also <a href="http://clang.llvm.org/docs/Tooling.html">http://clang.llvm.org/docs/Tooling.html</a> and <a href="http://clang.llvm.org/docs/ExternalClangExamples.html">http://clang.llvm.org/docs/ExternalClangExamples.html</a> .</div>
<div><br></div><div>-Eli</div></div></div></div>