<p dir="ltr">Hi Ted, </p>
<p dir="ltr">Thanks for the reply. Now I think I understand the relationship between the AST and CFG. I won't attempt to directly modify the CFG, which I had previously assumed to be immutable due to all the const usage throughout its methods. </p>

<p dir="ltr">So, if I was examining a CFGBlock, for example, I could access the underlying AST Stmt nodes and operate on them. </p>
<p dir="ltr">Now, once I have access to the AST node, what is a good way to remove it from the AST? (Ideally in a clean manner)....  I assume this is possible because I have seen several prior works that use Clang for refactoring, and many refactoring operations involve deleting or at least replacing/reordering nodes. </p>

<p dir="ltr">Best, <br>
Kevin <br>
</p>
<div class="gmail_quote">On Jul 4, 2013 12:23 PM, "Ted Kremenek" <<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">On Jul 3, 2013, at 11:00 AM, Kevin Boos <<a href="mailto:kevinaboos@gmail.com" target="_blank">kevinaboos@gmail.com</a>> wrote:<br><div><br><blockquote type="cite"><span style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">I think I've narrowed down what I really need from Clang -- the ability to delete a note from the AST/CFG and then output that modified AST as source code. </span></blockquote>
</div><br><div>Hi Kevin,</div><div><br></div><div>Responding to just the comment, the CFG should be viewed as a data structure that is lazily constructed from the AST.  It is a “view” on the AST, but it shouldn’t be viewed as something you can mutate.  Also, the CFG may contain AST elements not in the original AST (particularly DeclStmts) for purposes of easier analysis.  This latter part is something we may wish to change in the future by adding new CFGElements, but that’s something that is currently done now.</div>
<div><br></div><div>Ted</div></div></blockquote></div>