curimit / SugarCpp

SugarCpp is a language which can compile to C++11.
136 stars 13 forks source link

Implement Source Map #26

Open curimit opened 11 years ago

curimit commented 11 years ago

Like the technology used by yacc. Using #line 1 "yacc/yacc.y" to specify the line number of the source code. Then the error message reported by g++ will be translate into the correct position in .sc file. We can also use gdb to debug .sc file directly.

ozra commented 9 years ago

Just an idea : there's a "less elegant", but very practical way of solving it also.

In my old heuristic based significant space C++ hack (http://campbell.nu/oscar/cython/cython-doc.html - no relation to the cython project that came a couple of years later - it's ugly but I actually did use it in all my C* projects from that time on. ) there was a command line choice of pretty output or line-to-line matched output. Output is simply stacked up, no matter how unreadable the target-code, to stay in sync with the source. Which would result in looots of whitespace in header-files etc.

What are the pros? Well, it will work with any tooling, whether SC is in the target compiler output chain or not, and one is using some obscure C++-tools.