Source code for experimental MSIL compiler available

I've recently been working on an experimental version of Orange C that compiles to MSIL ( low level code in a .net managed executable). Right now it can compile some reasonably complicated programs such as the one-file version of BZIP2... but it is somewhat limited in that it can only compile one-file programs and some of the advanced features of C99 such as variable sized arrays and complex numbers aren't available yet. And it doesn't even attempt to support C++. Also, it doesn't marshal function pointers so library functions such as qsort() won't work.

It works by compiling a single file to MSIL low level language; then ILASM.EXE is used to generate the executable. The compiler is smart enough to generate PINVOKE statements for runtime library functions (it basically assumes that any non-local function is an RTL function) - and links them to MSVCRT.DLL. There is currently no support beyond the compiler which is why the input is limited to a single file...

If you are interested in having a look here is a link the source code on GITHUB