<div dir="ltr"><div class="gmail_default" style>On Thu, Jan 10, 2013 at 8:44 AM, Antoine Trouve <span dir="ltr"><<a href="mailto:trouve@isit.or.jp" target="_blank">trouve@isit.or.jp</a>></span> wrote:<br></div><div class="gmail_extra">
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello everybody,<br>
<br>
I have successfully written a source-to-source translator using LibTooling, and I am now willing to go further and do some source-to-source translation.<br>
However, I can't figure out how to output modified code with LibTooling.<br>
<br>
I have used in the past the class "Rewriter", coupled with a "RewriterBuffer" to do this job, but without the LibTooling (I was manipulating "CompilerInstance" object directly).<br>
However, a "RewriterBuffer" requires a file ID (that I used to get from a "SourceManager") to be created, and I don't have access to such information anymore, because I'm calling my tool using "Tool.run" from a custom "FrontEndAction".<br>

<br>
I've spotted the example called "loop-convert" in the clang-tools-extra repository, that is using class derived from "RefactoringTool" to do source-to-source transformation. I kind of made sense of this code, but the way it works would require me to change my code deeply in order to fill the so-called replacement list.<br>
</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Does someone has any experience on this matter in order to give some advices on the best approach I should adopt ?<br></blockquote><div><br></div><div style>I'm not 100% sure what you're looking for - as you said, the RefactoringTool is what's meant to be used to write out changed code - I'm open to changes to that interface if it helps your use case, but I don't know your code, so it's hard for me to tell exactly why that would be a deep change, or how to fit it into your project.</div>
<div style><br></div><div style>My intuition would be that at the point at which you would make changes vie the Rewriter, you would instead fill the Replacements...</div><div style><br></div><div style>Cheers,</div><div style>
/Manuel</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Best regards,<br>
<br>
- Antoine<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" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div></div>