On 1 March 2013 10:43, Jacob Carlborg <doob@me.com> wrote:
On 2013-03-01 11:29, Iain Buclaw wrote:

The code that interfaces with gcc needs to be in either C or C++.  There
are C++ structs/classes defined in the D frontend that while they
include all methods required for parsing/semantic analysis of D code.
They also include methods that are used to generate the codegen for the
backend (toElem, toIR, toSymbol, etc).  In gdc, these are gcc
interfacing methods that can't be converted to D.

Can you use the current toElem, toIR and toSymbol written in C++. Then port in changes from the version written in D as needed?

--
/Jacob Carlborg

It's much more complex than that.  Think about compatibility between calling D structs/classes from C++, and that dmd and gdc don't share the same representation of types in the back-end that are common to the front-end - elem, type, IRState, real_t, to name a few.


Regards
--
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';