intermediate code generator for m3