<div dir="ltr">Um....wow....thats perfect. Learn something new every day.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 6, 2017 at 10:55 AM, Jonathan Roelofs <span dir="ltr"><<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 4/6/17 10:48 AM, Timothy Baldridge via cfe-dev wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Apologies if this is the wrong mailing list.<br>
<br>
I'm looking to generate some C++ from another set of input files. Now in<br>
a perfect world I'd love to get line numbers and source references that<br>
link back to my input files, and not to the C++ files. Think of<br>
something like Cython in Python. It translates Python to C, but all the<br>
error messages point back to Python.<br>
<br>
I can think of two main ways to do this via libclang, and perhaps both<br>
of them are bad ideas, so I'm open to more options:<br>
<br>
A) I could parse my input files and build up libclang ASTs, I could then<br>
compile these ASTs via clang and then run those ASTs through the normal<br>
optimization/code emission passes.<br>
<br>
B) I could compile my own version of clang that accepted an external<br>
"sourcemap" file. This file would be used to replace the data held in<br>
the SourceManager code with other filenames/offsets.<br>
<br>
C) Some other option I haven't thought of?<br>
</blockquote>
<br></span>
Have you considered emitting your C with #line directives that correspond to the python?<br>
<br>
<a href="https://gcc.gnu.org/onlinedocs/cpp/Line-Control.html" rel="noreferrer" target="_blank">https://gcc.gnu.org/onlinedocs<wbr>/cpp/Line-Control.html</a><br>
<br>
<br>
Jon<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
So any thoughts as to the best way to go about this?<br>
<br>
Thanks,<br>
<br>
<br></span>
______________________________<wbr>_________________<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/<wbr>mailman/listinfo/cfe-dev</a><br>
<br><span class="HOEnZb"><font color="#888888">
</font></span></blockquote><span class="HOEnZb"><font color="#888888">
<br>
-- <br>
Jon Roelofs<br>
<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a><br>
CodeSourcery / Mentor Embedded / Siemens<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">“One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.”<br>(Robert Firth) </div>
</div>