<div dir="ltr"><div>On Mon, May 8, 2017 at 2:06 AM Rachel HaCohen (rahacohe) via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="m_147773894182343853WordSection1">
<p class="MsoNormal">Hi all,<u></u><u></u></p>
<p class="MsoNormal">I’m new to clang and having a little trouble. Would be happy to get some help.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m trying to build a tool that (among other things) combines two code parts: The first one is a c file that is given by the user and the second is a fixed c function.<u></u><u></u></p>
<p class="MsoNormal">I want to have access to the AST nodes of both code parts, extract the relevant stmts from each, and build from them a new compoundStmt node (initiated with a vector<Stmt*>), which will be transformed back to c code.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m having trouble with getting access to both AST’s simultaneously.<u></u><u></u></p>
<p class="MsoNormal">I tried to access the input code with libTooling by running the following command from main:<u></u><u></u></p>
<div style="border:dotted #0c3762 1.0pt;padding:10.0pt 10.0pt 10.0pt 10.0pt;background:#f0f0f0">
<p class="MsoNormal" style="margin-bottom:9.0pt;background:#f0f0f0;border:none;padding:0in">
<span style="font-size:10.0pt;font-family:"Courier New";color:#333333">Tool.run(newFrontendActionFactory</span><span style="font-size:10.0pt;font-family:"Courier New";color:#666666"><</span><span style="font-size:10.0pt;font-family:"Courier New";color:#333333">clang</span><span style="font-size:10.0pt;font-family:"Courier New";color:#666666">::</span><span style="font-size:10.0pt;font-family:"Courier New";color:#333333">MyAction</span><span style="font-size:10.0pt;font-family:"Courier New";color:#666666">></span><span style="font-size:10.0pt;font-family:"Courier New";color:#333333">().get());<u></u><u></u></span></p>
</div>
<p class="MsoNormal">And access to the fixed code using runToolOnCode and then pass the compoundStmt pointer of the function body to the main:
<u></u><u></u></p>
<div style="border:dotted #0c3762 1.0pt;padding:10.0pt 10.0pt 10.0pt 10.0pt;background:#f0f0f0">
<pre style="margin-bottom:9.0pt;background:#f0f0f0;border:none;padding:0in"><span class="m_147773894182343853n"><span style="color:#333333">clang</span></span><span class="m_147773894182343853p"><span style="color:#333333">::</span></span><span class="m_147773894182343853n"><span style="color:#333333">tooling</span></span><span class="m_147773894182343853p"><span style="color:#333333">::</span></span><span class="m_147773894182343853n"><span style="color:#333333">runToolOnCode</span></span><span class="m_147773894182343853p"><span style="color:#333333">(</span></span><span class="m_147773894182343853n"><span style="color:#333333">new</span></span><span style="color:#333333"> <span class="m_147773894182343853n">MyOtherAction</span><span class="m_147773894182343853p">,</span> <span class="m_147773894182343853n">MyFixedText</span><span class="m_147773894182343853p">);</span><u></u><u></u></span></pre>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">but it seems like both tools are running independently with no ability to pass information from one to the other.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Can anyone give me a hint on this or give me a link to a code that does something similar?</p></div></div></blockquote><div><br></div><div>Can you read the file from disk, attach your function at the end (textually), and parse the result with runToolOnCode?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72"><div class="m_147773894182343853WordSection1"><p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
<p class="MsoNormal">Rachel.<u></u><u></u></p>
</div>
</div>

_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div>