<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Kalyan,<br><div><br></div><div>If you want to see where various AST nodes are created, you can try putting breakpoints in many of the 'Create()' static member functions that occur in many of the subclasses of Stmt, or search for the 'new (ASTContext)' form that is used to create ASTs using the allocator associated with the ASTContext object.  For example:</div><div><br></div><div><div>$ grep -r "[)] ForStmt" *</div><div>lib/Frontend/PCHReaderStmt.cpp:      S = new (Context) ForStmt(Empty);</div><div>lib/Sema/SemaStmt.cpp:  return Owned(new (Context) ForStmt(First, Second, ConditionVar, Third, Body, </div><div><br></div></div><div>libSema is the semantic analyzer, so that's where a ForStmt will get created during regular compilation.  The AST is defined in libAST, with the important header files being Stmt.h, Decl.h, and their derivatives.</div><div><br></div><div>Cheers,</div><div>Ted</div><div><br><div><div>On Mar 22, 2010, at 7:46 PM, kalyan ponnala wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi,<br><br>I am trying to understand about ASTs in clang by stepping through the code. I am using a program with "for loop". <br>Can someone tell me better places to put breakpoints which would help me understand that particular part of clang. <br>
<br>Thanks.<br clear="all"><br>-- <br>Kalyan Ponnala<br>phone: 8163772059<br>
<div style="visibility: hidden; display: inline;" id="avg_ls_inline_popup"></div><style type="text/css">#avg_ls_inline_popup {  position:absolute;  z-index:9999;  padding: 0px 0px;  margin-left: 0px;  margin-top: 0px;  width: 240px;  overflow: hidden;  word-wrap: break-word;  color: black;  font-size: 10px;  text-align: left;  line-height: 13px;}</style>
_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev<br></blockquote></div><br></div></body></html>