<p dir="ltr">Oh, I see.  So that's the best way to perform changes -- sort of lexical edits to the source code itself, not edits to the AST data structures.  Something along the lines of the Rewriter's "RemoveText"  method.</p>

<p dir="ltr">Thanks to you, David, Beatrice, and everyone for your help. I really appreciate your patience and advice. </p>
<p dir="ltr">Regards, <br>
Kevin <br>
</p>
<div class="gmail_quot<blockquote class=" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">On Jul 4, 2013, at 10:46 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">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.</span></blockquote>
</div><br><div>Hi Kevin,</div><div><br></div><div>I think David addressed this point pretty well.  If you goal is source-to-source translation, there is no need to modify the original AST.  Instead, generate “edits” to the original source by deleting the old source range and inserting new source code.  You can then emit edits + original source.  There are several examples of rewriters like this in the Clang tree, such as the Objective-C rewriter, etc., that take this approach.  The nice thing about this approach is that it preserves comments, and essentially all elements of the original source that you didn’t need to touch.</div>
<div><br></div><div>Ted</div></div></div>