<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 17, 2015 at 10:36 PM, Joachim Durchholz via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi all,<br>
<br>
I'm starting work on a new language (not going to make excuses for that), and my initial plan was to use LLVM as backend.<br>
<br>
Looking at the Kaleidoscope tutorial, I found that LLVM-as-backend makes no attempt at supporting the frontend side (d'oh); in particular, it doesn't offern patterns or best practices for organizing things like input stream handling, line/column number bookkeeping, or error message generation.<br></blockquote><div><br></div><div>See <a href="http://llvm.org/docs/doxygen/html/classllvm_1_1SourceMgr.html">http://llvm.org/docs/doxygen/html/classllvm_1_1SourceMgr.html</a></div><div>We use it in the IR reader, TableGen, FileCheck, LLD's linker scripts, the YAML parser, and MC's asm parser, among other places (I'm sure I've missed something that uses it).</div><div>Together with <span style="font-size:13px">MemoryBuffer::getFileOrSTDIN like Russell points out, that should cover the things you mentioned.</span></div><div><span style="font-size:13px"><br></span></div><div><span style="font-size:13px">Clang's SourceManager is like SourceMgr but with all sorts of complexity for Clang's use case; you probably won't want to reuse it.</span></div><div><span style="font-size:13px"><br></span></div><div><span style="font-size:13px">-- Sean Silva</span></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Would it make sense to turn to clang for that?<br>
If yes, where should I start reading?<br>
<br>
Regards,<br>
Jo<br>
_______________________________________________<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><br></div></div>