Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__light_ffi.sep.1.c
index 39d58b8..d4d0405 100644 (file)
@@ -1,5 +1,5 @@
 #include "nitc__light_ffi.sep.0.h"
-/* method light_ffi#MModule#uses_ffi for (self: MModule): Bool */
+/* method light_ffi$MModule$uses_ffi for (self: MModule): Bool */
 short int nitc__light_ffi___MModule___uses_ffi(val* self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -8,12 +8,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method light_ffi#MModule#uses_ffi= for (self: MModule, Bool) */
+/* method light_ffi$MModule$uses_ffi= for (self: MModule, Bool) */
 void nitc__light_ffi___MModule___uses_ffi_61d(val* self, short int p0) {
 self->attrs[COLOR_nitc__light_ffi__MModule___uses_ffi].s = p0; /* _uses_ffi on <self:MModule> */
 RET_LABEL:;
 }
-/* method light_ffi#MModule#ffi_ccu for (self: MModule): nullable CCompilationUnit */
+/* method light_ffi$MModule$ffi_ccu for (self: MModule): nullable CCompilationUnit */
 val* nitc__light_ffi___MModule___ffi_ccu(val* self) {
 val* var /* : nullable CCompilationUnit */;
 val* var1 /* : nullable CCompilationUnit */;
@@ -22,17 +22,20 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method light_ffi#MModule#ffi_ccu= for (self: MModule, nullable CCompilationUnit) */
+/* method light_ffi$MModule$ffi_ccu= for (self: MModule, nullable CCompilationUnit) */
 void nitc__light_ffi___MModule___ffi_ccu_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val = p0; /* _ffi_ccu on <self:MModule> */
 RET_LABEL:;
 }
-/* method light_ffi#MModule#present_languages for (self: MModule): HashSet[FFILanguage] */
+/* method light_ffi$MModule$present_languages for (self: MModule): HashSet[FFILanguage] */
 val* nitc__light_ffi___MModule___present_languages(val* self) {
 val* var /* : HashSet[FFILanguage] */;
 val* var1 /* : HashSet[FFILanguage] */;
 var1 = self->attrs[COLOR_nitc__light_ffi__MModule___present_languages].val; /* _present_languages on <self:MModule> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 50);
 fatal_exit(1);
@@ -41,7 +44,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method light_ffi#MModule#finalize_ffi_wrapper for (self: MModule, String, MModule) */
+/* method light_ffi$MModule$finalize_ffi_wrapper for (self: MModule, String, MModule) */
 void nitc__light_ffi___MModule___finalize_ffi_wrapper(val* self, val* p0, val* p1) {
 val* var_compdir /* var compdir: String */;
 val* var_mainmodule /* var mainmodule: MModule */;
@@ -49,41 +52,52 @@ val* var /* : MultiHashMap[String, String] */;
 val* var2 /* : MultiHashMap[String, String] */;
 static val* varonce;
 val* var3 /* : String */;
-char* var4 /* : NativeString */;
+char* var4 /* : CString */;
 val* var5 /* : String */;
-val* var6 /* : nullable Object */;
-static val* varonce7;
-val* var8 /* : String */;
-char* var9 /* : NativeString */;
-val* var10 /* : String */;
-val* var11 /* : String */;
+val* var6 /* : nullable Int */;
+val* var7 /* : nullable Int */;
+val* var8 /* : nullable Bool */;
+val* var9 /* : nullable Bool */;
+val* var10 /* : nullable Object */;
+static val* varonce11;
+val* var12 /* : String */;
+char* var13 /* : CString */;
+val* var14 /* : String */;
+val* var15 /* : nullable Int */;
+val* var16 /* : nullable Int */;
+val* var17 /* : nullable Bool */;
+val* var18 /* : nullable Bool */;
+val* var19 /* : String */;
 val* var_cflags /* var cflags: String */;
-val* var12 /* : nullable CCompilationUnit */;
-val* var14 /* : nullable CCompilationUnit */;
-val* var15 /* : nullable CCompilationUnit */;
-val* var17 /* : nullable CCompilationUnit */;
-val* var18 /* : Array[String] */;
-val* var20 /* : Array[String] */;
+val* var20 /* : nullable CCompilationUnit */;
+val* var22 /* : nullable CCompilationUnit */;
+val* var23 /* : nullable CCompilationUnit */;
+val* var25 /* : nullable CCompilationUnit */;
+val* var26 /* : Array[String] */;
+val* var28 /* : Array[String] */;
 val* var_ /* var : Array[String] */;
-val* var21 /* : IndexedIterator[nullable Object] */;
-val* var_22 /* var : IndexedIterator[String] */;
-short int var23 /* : Bool */;
-val* var24 /* : nullable Object */;
+val* var29 /* : IndexedIterator[nullable Object] */;
+val* var_30 /* var : IndexedIterator[String] */;
+short int var31 /* : Bool */;
+val* var32 /* : nullable Object */;
 val* var_filename /* var filename: String */;
-val* var25 /* : ExternCFile */;
+val* var33 /* : ExternCFile */;
 val* var_f /* var f: ExternCFile */;
-val* var26 /* : Array[String] */;
-val* var28 /* : Array[String] */;
-val* var29 /* : Array[String] */;
-val* var31 /* : Array[String] */;
-val* var32 /* : Array[ExternFile] */;
-val* var34 /* : Array[ExternFile] */;
+val* var34 /* : Array[String] */;
+val* var36 /* : Array[String] */;
+val* var37 /* : Array[String] */;
+val* var39 /* : Array[String] */;
+val* var40 /* : Array[ExternFile] */;
+val* var42 /* : Array[ExternFile] */;
 var_compdir = p0;
 var_mainmodule = p1;
 {
-{ /* Inline light_c#MModule#cflags (self) on <self:MModule> */
+{ /* Inline light_c$MModule$cflags (self) on <self:MModule> */
 var2 = self->attrs[COLOR_nitc__light_c__MModule___cflags].val; /* _cflags on <self:MModule> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 77);
 fatal_exit(1);
@@ -96,153 +110,185 @@ if (likely(varonce!=NULL)) {
 var3 = varonce;
 } else {
 var4 = "";
-var5 = core__flat___NativeString___to_s_full(var4, 0l, 0l);
+var6 = (val*)(0l<<2|1);
+var7 = (val*)(0l<<2|1);
+var8 = (val*)((long)(0)<<2|3);
+var9 = (val*)((long)(0)<<2|3);
+var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
 var3 = var5;
 varonce = var3;
 }
 {
-var6 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var, var3);
+var10 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var, var3);
 }
-if (likely(varonce7!=NULL)) {
-var8 = varonce7;
+if (likely(varonce11!=NULL)) {
+var12 = varonce11;
 } else {
-var9 = " ";
-var10 = core__flat___NativeString___to_s_full(var9, 1l, 1l);
-var8 = var10;
-varonce7 = var8;
+var13 = " ";
+var15 = (val*)(1l<<2|1);
+var16 = (val*)(1l<<2|1);
+var17 = (val*)((long)(0)<<2|3);
+var18 = (val*)((long)(0)<<2|3);
+var14 = core__flat___CString___to_s_unsafe(var13, var15, var16, var17, var18);
+var12 = var14;
+varonce11 = var12;
 }
 {
-var11 = core__abstract_text___Collection___join(var6, var8);
+var19 = core__abstract_text___Collection___join(var10, var12, ((val*)NULL));
 }
-var_cflags = var11;
+var_cflags = var19;
 {
-{ /* Inline light_ffi#MModule#ffi_ccu (self) on <self:MModule> */
-var14 = self->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val; /* _ffi_ccu on <self:MModule> */
-var12 = var14;
-RET_LABEL13:(void)0;
+{ /* Inline light_ffi$MModule$ffi_ccu (self) on <self:MModule> */
+var22 = self->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val; /* _ffi_ccu on <self:MModule> */
+var20 = var22;
+RET_LABEL21:(void)0;
+}
 }
+if (var20 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
 }
-if (var12 == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 58);
 fatal_exit(1);
 } else {
-nitc__light_ffi_base___CCompilationUnit___write_as_impl(var12, self, var_compdir); /* Direct call light_ffi_base#CCompilationUnit#write_as_impl on <var12:nullable CCompilationUnit>*/
+nitc__light_ffi_base___CCompilationUnit___write_as_impl(var20, self, var_compdir); /* Direct call light_ffi_base$CCompilationUnit$write_as_impl on <var20:nullable CCompilationUnit>*/
 }
 {
-{ /* Inline light_ffi#MModule#ffi_ccu (self) on <self:MModule> */
-var17 = self->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val; /* _ffi_ccu on <self:MModule> */
-var15 = var17;
-RET_LABEL16:(void)0;
+{ /* Inline light_ffi$MModule$ffi_ccu (self) on <self:MModule> */
+var25 = self->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val; /* _ffi_ccu on <self:MModule> */
+var23 = var25;
+RET_LABEL24:(void)0;
 }
 }
-if (var15 == NULL) {
+if (var23 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 59);
 fatal_exit(1);
 } else {
-{ /* Inline c_tools#CCompilationUnit#files (var15) on <var15:nullable CCompilationUnit> */
-if (unlikely(var15 == NULL)) {
+{ /* Inline c_tools$CCompilationUnit$files (var23) on <var23:nullable CCompilationUnit> */
+if (unlikely(var23 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 47);
 fatal_exit(1);
 }
-var20 = var15->attrs[COLOR_nitc__c_tools__CCompilationUnit___files].val; /* _files on <var15:nullable CCompilationUnit> */
-if (unlikely(var20 == NULL)) {
+var28 = var23->attrs[COLOR_nitc__c_tools__CCompilationUnit___files].val; /* _files on <var23:nullable CCompilationUnit> */
+if (unlikely(var28 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 47);
 fatal_exit(1);
 }
-var18 = var20;
-RET_LABEL19:(void)0;
+var26 = var28;
+RET_LABEL27:(void)0;
 }
 }
-var_ = var18;
+var_ = var26;
 {
-var21 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
+var29 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
 }
-var_22 = var21;
+var_30 = var29;
 for(;;) {
 {
-var23 = ((short int(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_22); /* is_ok on <var_22:IndexedIterator[String]>*/
+var31 = ((short int(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_30); /* is_ok on <var_30:IndexedIterator[String]>*/
 }
-if (var23){
+if (var31){
 } else {
 goto BREAK_label;
 }
 {
-var24 = ((val*(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_22); /* item on <var_22:IndexedIterator[String]>*/
+var32 = ((val*(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_30); /* item on <var_30:IndexedIterator[String]>*/
 }
-var_filename = var24;
-var25 = NEW_nitc__ExternCFile(&type_nitc__ExternCFile);
+var_filename = var32;
+var33 = NEW_nitc__ExternCFile(&type_nitc__ExternCFile);
 {
-((void(*)(val* self, val* p0))(var25->class->vft[COLOR_nitc__c_tools__ExternFile__filename_61d]))(var25, var_filename); /* filename= on <var25:ExternCFile>*/
+((void(*)(val* self, val* p0))(var33->class->vft[COLOR_nitc__c_tools__ExternFile__filename_61d]))(var33, var_filename); /* filename= on <var33:ExternCFile>*/
 }
 {
-((void(*)(val* self, val* p0))(var25->class->vft[COLOR_nitc__c_tools__ExternCFile__cflags_61d]))(var25, var_cflags); /* cflags= on <var25:ExternCFile>*/
+((void(*)(val* self, val* p0))(var33->class->vft[COLOR_nitc__c_tools__ExternCFile__cflags_61d]))(var33, var_cflags); /* cflags= on <var33:ExternCFile>*/
 }
 {
-((void(*)(val* self))(var25->class->vft[COLOR_core__kernel__Object__init]))(var25); /* init on <var25:ExternCFile>*/
+((void(*)(val* self))(var33->class->vft[COLOR_core__kernel__Object__init]))(var33); /* init on <var33:ExternCFile>*/
 }
-var_f = var25;
+var_f = var33;
 {
-{ /* Inline c_tools#ExternFile#pkgconfigs (var_f) on <var_f:ExternCFile> */
-var28 = var_f->attrs[COLOR_nitc__c_tools__ExternFile___pkgconfigs].val; /* _pkgconfigs on <var_f:ExternCFile> */
-if (unlikely(var28 == NULL)) {
+{ /* Inline c_tools$ExternFile$pkgconfigs (var_f) on <var_f:ExternCFile> */
+var36 = var_f->attrs[COLOR_nitc__c_tools__ExternFile___pkgconfigs].val; /* _pkgconfigs on <var_f:ExternCFile> */
+if (unlikely(var36 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 123);
 fatal_exit(1);
 }
-var26 = var28;
-RET_LABEL27:(void)0;
+var34 = var36;
+RET_LABEL35:(void)0;
 }
 }
 {
-{ /* Inline light_c#MModule#pkgconfigs (self) on <self:MModule> */
-var31 = self->attrs[COLOR_nitc__light_c__MModule___pkgconfigs].val; /* _pkgconfigs on <self:MModule> */
-if (unlikely(var31 == NULL)) {
+{ /* Inline light_c$MModule$pkgconfigs (self) on <self:MModule> */
+var39 = self->attrs[COLOR_nitc__light_c__MModule___pkgconfigs].val; /* _pkgconfigs on <self:MModule> */
+if (unlikely(var39 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 83);
 fatal_exit(1);
 }
-var29 = var31;
-RET_LABEL30:(void)0;
+var37 = var39;
+RET_LABEL38:(void)0;
 }
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add_all(var26, var29); /* Direct call array#Array#add_all on <var26:Array[String]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add_all(var34, var37); /* Direct call array$Array$add_all on <var34:Array[String]>*/
 }
 {
-{ /* Inline light_ffi_base#MModule#ffi_files (self) on <self:MModule> */
-var34 = self->attrs[COLOR_nitc__light_ffi_base__MModule___ffi_files].val; /* _ffi_files on <self:MModule> */
-if (unlikely(var34 == NULL)) {
+{ /* Inline light_ffi_base$MModule$ffi_files (self) on <self:MModule> */
+var42 = self->attrs[COLOR_nitc__light_ffi_base__MModule___ffi_files].val; /* _ffi_files on <self:MModule> */
+if (unlikely(var42 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ffi_files");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base, 82);
 fatal_exit(1);
 }
-var32 = var34;
-RET_LABEL33:(void)0;
+var40 = var42;
+RET_LABEL41:(void)0;
 }
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var32, var_f); /* Direct call array#Array#add on <var32:Array[ExternFile]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var40, var_f); /* Direct call array$Array$add on <var40:Array[ExternFile]>*/
 }
 {
-((void(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_22); /* next on <var_22:IndexedIterator[String]>*/
+((void(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_30); /* next on <var_30:IndexedIterator[String]>*/
 }
 }
 BREAK_label: (void)0;
 {
-((void(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_22); /* finish on <var_22:IndexedIterator[String]>*/
+((void(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_30); /* finish on <var_30:IndexedIterator[String]>*/
 }
 RET_LABEL:;
 }
-/* method light_ffi#MModule#compiled_ffi_methods for (self: MModule): HashSet[AMethPropdef] */
+/* method light_ffi$MModule$compiled_ffi_methods for (self: MModule): HashSet[AMethPropdef] */
 val* nitc__light_ffi___MModule___compiled_ffi_methods(val* self) {
 val* var /* : HashSet[AMethPropdef] */;
 val* var1 /* : HashSet[AMethPropdef] */;
 var1 = self->attrs[COLOR_nitc__light_ffi__MModule___compiled_ffi_methods].val; /* _compiled_ffi_methods on <self:MModule> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiled_ffi_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 66);
 fatal_exit(1);
@@ -251,7 +297,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method light_ffi#AModule#ensure_compile_ffi_wrapper for (self: AModule) */
+/* method light_ffi$AModule$ensure_compile_ffi_wrapper for (self: AModule) */
 void nitc__light_ffi___AModule___ensure_compile_ffi_wrapper(val* self) {
 val* var /* : nullable MModule */;
 val* var2 /* : nullable MModule */;
@@ -295,92 +341,124 @@ val* var44 /* : NativeArray[String] */;
 static val* varonce;
 static val* varonce45;
 val* var46 /* : String */;
-char* var47 /* : NativeString */;
+char* var47 /* : CString */;
 val* var48 /* : String */;
-static val* varonce49;
-val* var50 /* : String */;
-char* var51 /* : NativeString */;
-val* var52 /* : String */;
-val* var53 /* : String */;
+val* var49 /* : nullable Int */;
+val* var50 /* : nullable Int */;
+val* var51 /* : nullable Bool */;
+val* var52 /* : nullable Bool */;
+static val* varonce53;
 val* var54 /* : String */;
-val* var55 /* : Template */;
-val* var57 /* : Template */;
-static val* varonce58;
-val* var59 /* : String */;
-char* var60 /* : NativeString */;
+char* var55 /* : CString */;
+val* var56 /* : String */;
+val* var57 /* : nullable Int */;
+val* var58 /* : nullable Int */;
+val* var59 /* : nullable Bool */;
+val* var60 /* : nullable Bool */;
 val* var61 /* : String */;
-val* var62 /* : Template */;
-val* var64 /* : Template */;
-static val* varonce65;
-val* var66 /* : String */;
-char* var67 /* : NativeString */;
-val* var68 /* : String */;
-val* var69 /* : Template */;
-val* var71 /* : Template */;
-static val* varonce72;
-val* var73 /* : String */;
-char* var74 /* : NativeString */;
-val* var75 /* : String */;
+val* var62 /* : String */;
+val* var63 /* : Template */;
+val* var65 /* : Template */;
+static val* varonce66;
+val* var67 /* : String */;
+char* var68 /* : CString */;
+val* var69 /* : String */;
+val* var70 /* : nullable Int */;
+val* var71 /* : nullable Int */;
+val* var72 /* : nullable Bool */;
+val* var73 /* : nullable Bool */;
+val* var74 /* : Template */;
 val* var76 /* : Template */;
-val* var78 /* : Template */;
-static val* varonce79;
+static val* varonce77;
+val* var78 /* : String */;
+char* var79 /* : CString */;
 val* var80 /* : String */;
-char* var81 /* : NativeString */;
-val* var82 /* : String */;
-val* var83 /* : Template */;
+val* var81 /* : nullable Int */;
+val* var82 /* : nullable Int */;
+val* var83 /* : nullable Bool */;
+val* var84 /* : nullable Bool */;
 val* var85 /* : Template */;
-static val* varonce86;
-val* var87 /* : String */;
-char* var88 /* : NativeString */;
+val* var87 /* : Template */;
+static val* varonce88;
 val* var89 /* : String */;
-val* var90 /* : Template */;
-val* var92 /* : Template */;
-static val* varonce93;
-val* var94 /* : String */;
-char* var95 /* : NativeString */;
-val* var96 /* : String */;
-val* var97 /* : ANodes[AClassdef] */;
-val* var99 /* : ANodes[AClassdef] */;
-val* var_100 /* var : ANodes[AClassdef] */;
-val* var101 /* : Iterator[ANode] */;
-val* var_102 /* var : Iterator[AClassdef] */;
-short int var103 /* : Bool */;
-val* var105 /* : nullable Object */;
+char* var90 /* : CString */;
+val* var91 /* : String */;
+val* var92 /* : nullable Int */;
+val* var93 /* : nullable Int */;
+val* var94 /* : nullable Bool */;
+val* var95 /* : nullable Bool */;
+val* var96 /* : Template */;
+val* var98 /* : Template */;
+static val* varonce99;
+val* var100 /* : String */;
+char* var101 /* : CString */;
+val* var102 /* : String */;
+val* var103 /* : nullable Int */;
+val* var104 /* : nullable Int */;
+val* var105 /* : nullable Bool */;
+val* var106 /* : nullable Bool */;
+val* var107 /* : Template */;
+val* var109 /* : Template */;
+static val* varonce110;
+val* var111 /* : String */;
+char* var112 /* : CString */;
+val* var113 /* : String */;
+val* var114 /* : nullable Int */;
+val* var115 /* : nullable Int */;
+val* var116 /* : nullable Bool */;
+val* var117 /* : nullable Bool */;
+val* var118 /* : Template */;
+val* var120 /* : Template */;
+static val* varonce121;
+val* var122 /* : String */;
+char* var123 /* : CString */;
+val* var124 /* : String */;
+val* var125 /* : nullable Int */;
+val* var126 /* : nullable Int */;
+val* var127 /* : nullable Bool */;
+val* var128 /* : nullable Bool */;
+val* var129 /* : ANodes[AClassdef] */;
+val* var131 /* : ANodes[AClassdef] */;
+val* var_132 /* var : ANodes[AClassdef] */;
+val* var133 /* : Iterator[ANode] */;
+val* var_134 /* var : Iterator[AClassdef] */;
+short int var135 /* : Bool */;
+val* var137 /* : nullable Object */;
 val* var_nclassdef /* var nclassdef: AClassdef */;
-short int var106 /* : Bool */;
-short int var107 /* : Bool */;
+short int var138 /* : Bool */;
+short int var139 /* : Bool */;
 int cltype;
 int idtype;
-short int var_108 /* var : Bool */;
-val* var109 /* : nullable AExternCodeBlock */;
-val* var111 /* : nullable AExternCodeBlock */;
-short int var112 /* : Bool */;
-short int var113 /* : Bool */;
-short int var115 /* : Bool */;
-short int var116 /* : Bool */;
-val* var118 /* : nullable AExternCodeBlock */;
-val* var120 /* : nullable AExternCodeBlock */;
-val* var121 /* : nullable FFILanguage */;
-val* var123 /* : nullable FFILanguage */;
-val* var_language124 /* var language: nullable FFILanguage */;
-short int var125 /* : Bool */;
-short int var126 /* : Bool */;
-short int var128 /* : Bool */;
-short int var129 /* : Bool */;
-val* var130 /* : HashSet[FFILanguage] */;
-val* var132 /* : HashSet[FFILanguage] */;
-val* var133 /* : nullable AExternCodeBlock */;
-val* var135 /* : nullable AExternCodeBlock */;
-val* var136 /* : nullable FFILanguage */;
-val* var138 /* : nullable FFILanguage */;
-val* var139 /* : nullable AExternCodeBlock */;
+short int var_140 /* var : Bool */;
 val* var141 /* : nullable AExternCodeBlock */;
-val* var_block143 /* var block: AExternCodeBlock */;
+val* var143 /* : nullable AExternCodeBlock */;
+short int var144 /* : Bool */;
+short int var145 /* : Bool */;
+short int var147 /* : Bool */;
+short int var148 /* : Bool */;
+val* var150 /* : nullable AExternCodeBlock */;
+val* var152 /* : nullable AExternCodeBlock */;
+val* var153 /* : nullable FFILanguage */;
+val* var155 /* : nullable FFILanguage */;
+val* var_language156 /* var language: nullable FFILanguage */;
+short int var157 /* : Bool */;
+short int var158 /* : Bool */;
+short int var160 /* : Bool */;
+short int var161 /* : Bool */;
+val* var162 /* : HashSet[FFILanguage] */;
+val* var164 /* : HashSet[FFILanguage] */;
+val* var165 /* : nullable AExternCodeBlock */;
+val* var167 /* : nullable AExternCodeBlock */;
+val* var168 /* : nullable FFILanguage */;
+val* var170 /* : nullable FFILanguage */;
+val* var171 /* : nullable AExternCodeBlock */;
+val* var173 /* : nullable AExternCodeBlock */;
+val* var_block175 /* var block: AExternCodeBlock */;
 val* var_m /* var m: AClassdef */;
 val* var_ecc /* var ecc: CCompilationUnit */;
-val* var_mmodule144 /* var mmodule: MModule */;
+val* var_mmodule176 /* var mmodule: MModule */;
 {
-{ /* Inline loader#AModule#mmodule (self) on <self:AModule> */
+{ /* Inline loader$AModule$mmodule (self) on <self:AModule> */
 var2 = self->attrs[COLOR_nitc__loader__AModule___mmodule].val; /* _mmodule on <self:AModule> */
 var = var2;
 RET_LABEL1:(void)0;
@@ -393,10 +471,10 @@ var4 = 1; /* is null */
 var4 = 0; /* arg is null but recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#== (var_mmodule,((val*)NULL)) on <var_mmodule:nullable MModule> */
+{ /* Inline kernel$Object$== (var_mmodule,((val*)NULL)) on <var_mmodule:nullable MModule> */
 var_other = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var_mmodule,var_other) on <var_mmodule:nullable MModule(MModule)> */
+{ /* Inline kernel$Object$is_same_instance (var_mmodule,var_other) on <var_mmodule:nullable MModule(MModule)> */
 var9 = var_mmodule == var_other;
 var7 = var9;
 goto RET_LABEL8;
@@ -414,7 +492,7 @@ if (var4){
 var3 = var_;
 } else {
 {
-{ /* Inline light_ffi#MModule#ffi_ccu (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
+{ /* Inline light_ffi$MModule$ffi_ccu (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
 var12 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val; /* _ffi_ccu on <var_mmodule:nullable MModule(MModule)> */
 var10 = var12;
 RET_LABEL11:(void)0;
@@ -426,7 +504,7 @@ var13 = 0; /* is null */
 var13 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var10,((val*)NULL)) on <var10:nullable CCompilationUnit> */
+{ /* Inline kernel$Object$!= (var10,((val*)NULL)) on <var10:nullable CCompilationUnit> */
 var_other16 = ((val*)NULL);
 {
 var17 = ((short int(*)(val* self, val* p0))(var10->class->vft[COLOR_core__kernel__Object___61d_61d]))(var10, var_other16); /* == on <var10:nullable CCompilationUnit(CCompilationUnit)>*/
@@ -446,23 +524,26 @@ goto RET_LABEL;
 }
 var19 = NEW_nitc__CCompilationUnit(&type_nitc__CCompilationUnit);
 {
-{ /* Inline kernel#Object#init (var19) on <var19:CCompilationUnit> */
+{ /* Inline kernel$Object$init (var19) on <var19:CCompilationUnit> */
 RET_LABEL20:(void)0;
 }
 }
 var_ffi_ccu = var19;
 {
-{ /* Inline light_ffi#MModule#ffi_ccu= (var_mmodule,var_ffi_ccu) on <var_mmodule:nullable MModule(MModule)> */
+{ /* Inline light_ffi$MModule$ffi_ccu= (var_mmodule,var_ffi_ccu) on <var_mmodule:nullable MModule(MModule)> */
 var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val = var_ffi_ccu; /* _ffi_ccu on <var_mmodule:nullable MModule(MModule)> */
 RET_LABEL21:(void)0;
 }
 }
 {
-{ /* Inline parser_nodes#AModule#n_extern_code_blocks (self) on <self:AModule> */
+{ /* Inline parser_nodes$AModule$n_extern_code_blocks (self) on <self:AModule> */
 var24 = self->attrs[COLOR_nitc__parser_nodes__AModule___n_extern_code_blocks].val; /* _n_extern_code_blocks on <self:AModule> */
 if (unlikely(var24 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_blocks");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1059);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1122);
 fatal_exit(1);
 }
 var22 = var24;
@@ -487,7 +568,7 @@ var29 = ((val*(*)(val* self))((((long)var_27&3)?class_info[((long)var_27&3)]:var
 }
 var_block = var29;
 {
-{ /* Inline light_ffi_base#AExternCodeBlock#language (var_block) on <var_block:AExternCodeBlock> */
+{ /* Inline light_ffi_base$AExternCodeBlock$language (var_block) on <var_block:AExternCodeBlock> */
 var32 = var_block->attrs[COLOR_nitc__light_ffi_base__AExternCodeBlock___language].val; /* _language on <var_block:AExternCodeBlock> */
 var30 = var32;
 RET_LABEL31:(void)0;
@@ -500,7 +581,7 @@ var33 = 0; /* is null */
 var33 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_language,((val*)NULL)) on <var_language:nullable FFILanguage> */
+{ /* Inline kernel$Object$!= (var_language,((val*)NULL)) on <var_language:nullable FFILanguage> */
 var_other16 = ((val*)NULL);
 {
 var36 = ((short int(*)(val* self, val* p0))(var_language->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_language, var_other16); /* == on <var_language:nullable FFILanguage(FFILanguage)>*/
@@ -513,14 +594,20 @@ RET_LABEL35:(void)0;
 var33 = var34;
 }
 if (unlikely(!var33)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 88);
 fatal_exit(1);
 }
 {
-{ /* Inline light_ffi#MModule#present_languages (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
+{ /* Inline light_ffi$MModule$present_languages (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
 var40 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___present_languages].val; /* _present_languages on <var_mmodule:nullable MModule(MModule)> */
 if (unlikely(var40 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 50);
 fatal_exit(1);
@@ -530,10 +617,10 @@ RET_LABEL39:(void)0;
 }
 }
 {
-core___core__HashSet___core__abstract_collection__SimpleCollection__add(var38, var_language); /* Direct call hash_collection#HashSet#add on <var38:HashSet[FFILanguage]>*/
+core___core__HashSet___core__abstract_collection__SimpleCollection__add(var38, var_language); /* Direct call hash_collection$HashSet$add on <var38:HashSet[FFILanguage]>*/
 }
 {
-nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__compile_module_block(var_language, var_block, var_ffi_ccu, var_mmodule); /* Direct call light_c#CLanguage#compile_module_block on <var_language:nullable FFILanguage(FFILanguage)>*/
+nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__compile_module_block(var_language, var_block, var_ffi_ccu, var_mmodule); /* Direct call light_c$CLanguage$compile_module_block on <var_language:nullable FFILanguage(FFILanguage)>*/
 }
 {
 ((void(*)(val* self))((((long)var_27&3)?class_info[((long)var_27&3)]:var_27->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_27); /* next on <var_27:Iterator[AExternCodeBlock]>*/
@@ -544,9 +631,12 @@ BREAK_label: (void)0;
 ((void(*)(val* self))((((long)var_27&3)?class_info[((long)var_27&3)]:var_27->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_27); /* finish on <var_27:Iterator[AExternCodeBlock]>*/
 }
 {
-{ /* Inline c_tools#CCompilationUnit#header_c_base (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
+{ /* Inline c_tools$CCompilationUnit$header_c_base (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
 var43 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___header_c_base].val; /* _header_c_base on <var_ffi_ccu:CCompilationUnit> */
 if (unlikely(var43 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_base");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 24);
 fatal_exit(1);
@@ -556,376 +646,453 @@ RET_LABEL42:(void)0;
 }
 }
 if (unlikely(varonce==NULL)) {
-var44 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
+var44 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
 if (likely(varonce45!=NULL)) {
 var46 = varonce45;
 } else {
 var47 = "#include \"";
-var48 = core__flat___NativeString___to_s_full(var47, 10l, 10l);
+var49 = (val*)(10l<<2|1);
+var50 = (val*)(10l<<2|1);
+var51 = (val*)((long)(0)<<2|3);
+var52 = (val*)((long)(0)<<2|3);
+var48 = core__flat___CString___to_s_unsafe(var47, var49, var50, var51, var52);
 var46 = var48;
 varonce45 = var46;
 }
 ((struct instance_core__NativeArray*)var44)->values[0]=var46;
-if (likely(varonce49!=NULL)) {
-var50 = varonce49;
+if (likely(varonce53!=NULL)) {
+var54 = varonce53;
 } else {
-var51 = "._nitni.h\"\n";
-var52 = core__flat___NativeString___to_s_full(var51, 11l, 11l);
-var50 = var52;
-varonce49 = var50;
-}
-((struct instance_core__NativeArray*)var44)->values[2]=var50;
+var55 = "._nitni.h\"\n";
+var57 = (val*)(11l<<2|1);
+var58 = (val*)(11l<<2|1);
+var59 = (val*)((long)(0)<<2|3);
+var60 = (val*)((long)(0)<<2|3);
+var56 = core__flat___CString___to_s_unsafe(var55, var57, var58, var59, var60);
+var54 = var56;
+varonce53 = var54;
+}
+((struct instance_core__NativeArray*)var44)->values[2]=var54;
 } else {
 var44 = varonce;
 varonce = NULL;
 }
 {
-var53 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_mmodule);
+var61 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_mmodule);
 }
-((struct instance_core__NativeArray*)var44)->values[1]=var53;
+((struct instance_core__NativeArray*)var44)->values[1]=var61;
 {
-var54 = ((val*(*)(val* self))(var44->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var44); /* native_to_s on <var44:NativeArray[String]>*/
+var62 = ((val*(*)(val* self))(var44->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var44); /* native_to_s on <var44:NativeArray[String]>*/
 }
 varonce = var44;
 {
-template___template__Template___add(var41, var54); /* Direct call template#Template#add on <var41:Template>*/
+template___template__Template___add(var41, var62); /* Direct call template$Template$add on <var41:Template>*/
 }
 {
-{ /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
-var57 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
-if (unlikely(var57 == NULL)) {
+{ /* Inline c_tools$CCompilationUnit$body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
+var65 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
+if (unlikely(var65 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 37);
 fatal_exit(1);
 }
-var55 = var57;
-RET_LABEL56:(void)0;
+var63 = var65;
+RET_LABEL64:(void)0;
 }
 }
-if (likely(varonce58!=NULL)) {
-var59 = varonce58;
+if (likely(varonce66!=NULL)) {
+var67 = varonce66;
 } else {
-var60 = "#ifdef ANDROID\n";
-var61 = core__flat___NativeString___to_s_full(var60, 15l, 15l);
-var59 = var61;
-varonce58 = var59;
+var68 = "#ifdef ANDROID\n";
+var70 = (val*)(15l<<2|1);
+var71 = (val*)(15l<<2|1);
+var72 = (val*)((long)(0)<<2|3);
+var73 = (val*)((long)(0)<<2|3);
+var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
+var67 = var69;
+varonce66 = var67;
 }
 {
-template___template__Template___add(var55, var59); /* Direct call template#Template#add on <var55:Template>*/
+template___template__Template___add(var63, var67); /* Direct call template$Template$add on <var63:Template>*/
 }
 {
-{ /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
-var64 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
-if (unlikely(var64 == NULL)) {
+{ /* Inline c_tools$CCompilationUnit$body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
+var76 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
+if (unlikely(var76 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 37);
 fatal_exit(1);
 }
-var62 = var64;
-RET_LABEL63:(void)0;
+var74 = var76;
+RET_LABEL75:(void)0;
 }
 }
-if (likely(varonce65!=NULL)) {
-var66 = varonce65;
+if (likely(varonce77!=NULL)) {
+var78 = varonce77;
 } else {
-var67 = "\t#include <android/log.h>\n";
-var68 = core__flat___NativeString___to_s_full(var67, 26l, 26l);
-var66 = var68;
-varonce65 = var66;
+var79 = "\t#include <android/log.h>\n";
+var81 = (val*)(26l<<2|1);
+var82 = (val*)(26l<<2|1);
+var83 = (val*)((long)(0)<<2|3);
+var84 = (val*)((long)(0)<<2|3);
+var80 = core__flat___CString___to_s_unsafe(var79, var81, var82, var83, var84);
+var78 = var80;
+varonce77 = var78;
 }
 {
-template___template__Template___add(var62, var66); /* Direct call template#Template#add on <var62:Template>*/
+template___template__Template___add(var74, var78); /* Direct call template$Template$add on <var74:Template>*/
 }
 {
-{ /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
-var71 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
-if (unlikely(var71 == NULL)) {
+{ /* Inline c_tools$CCompilationUnit$body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
+var87 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
+if (unlikely(var87 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 37);
 fatal_exit(1);
 }
-var69 = var71;
-RET_LABEL70:(void)0;
+var85 = var87;
+RET_LABEL86:(void)0;
 }
 }
-if (likely(varonce72!=NULL)) {
-var73 = varonce72;
+if (likely(varonce88!=NULL)) {
+var89 = varonce88;
 } else {
-var74 = "\t#define PRINT_ERROR(...) (void)__android_log_print(ANDROID_LOG_WARN, \"Nit\", __VA_ARGS__)\n";
-var75 = core__flat___NativeString___to_s_full(var74, 90l, 90l);
-var73 = var75;
-varonce72 = var73;
+var90 = "\t#define PRINT_ERROR(...) (void)__android_log_print(ANDROID_LOG_WARN, \"Nit\", __VA_ARGS__)\n";
+var92 = (val*)(90l<<2|1);
+var93 = (val*)(90l<<2|1);
+var94 = (val*)((long)(0)<<2|3);
+var95 = (val*)((long)(0)<<2|3);
+var91 = core__flat___CString___to_s_unsafe(var90, var92, var93, var94, var95);
+var89 = var91;
+varonce88 = var89;
 }
 {
-template___template__Template___add(var69, var73); /* Direct call template#Template#add on <var69:Template>*/
+template___template__Template___add(var85, var89); /* Direct call template$Template$add on <var85:Template>*/
 }
 {
-{ /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
-var78 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
-if (unlikely(var78 == NULL)) {
+{ /* Inline c_tools$CCompilationUnit$body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
+var98 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
+if (unlikely(var98 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 37);
 fatal_exit(1);
 }
-var76 = var78;
-RET_LABEL77:(void)0;
+var96 = var98;
+RET_LABEL97:(void)0;
 }
 }
-if (likely(varonce79!=NULL)) {
-var80 = varonce79;
+if (likely(varonce99!=NULL)) {
+var100 = varonce99;
 } else {
-var81 = "#else\n";
-var82 = core__flat___NativeString___to_s_full(var81, 6l, 6l);
-var80 = var82;
-varonce79 = var80;
+var101 = "#else\n";
+var103 = (val*)(6l<<2|1);
+var104 = (val*)(6l<<2|1);
+var105 = (val*)((long)(0)<<2|3);
+var106 = (val*)((long)(0)<<2|3);
+var102 = core__flat___CString___to_s_unsafe(var101, var103, var104, var105, var106);
+var100 = var102;
+varonce99 = var100;
 }
 {
-template___template__Template___add(var76, var80); /* Direct call template#Template#add on <var76:Template>*/
+template___template__Template___add(var96, var100); /* Direct call template$Template$add on <var96:Template>*/
 }
 {
-{ /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
-var85 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
-if (unlikely(var85 == NULL)) {
+{ /* Inline c_tools$CCompilationUnit$body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
+var109 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
+if (unlikely(var109 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 37);
 fatal_exit(1);
 }
-var83 = var85;
-RET_LABEL84:(void)0;
+var107 = var109;
+RET_LABEL108:(void)0;
 }
 }
-if (likely(varonce86!=NULL)) {
-var87 = varonce86;
+if (likely(varonce110!=NULL)) {
+var111 = varonce110;
 } else {
-var88 = "\t#define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__)\n";
-var89 = core__flat___NativeString___to_s_full(var88, 55l, 55l);
-var87 = var89;
-varonce86 = var87;
+var112 = "\t#define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__)\n";
+var114 = (val*)(55l<<2|1);
+var115 = (val*)(55l<<2|1);
+var116 = (val*)((long)(0)<<2|3);
+var117 = (val*)((long)(0)<<2|3);
+var113 = core__flat___CString___to_s_unsafe(var112, var114, var115, var116, var117);
+var111 = var113;
+varonce110 = var111;
 }
 {
-template___template__Template___add(var83, var87); /* Direct call template#Template#add on <var83:Template>*/
+template___template__Template___add(var107, var111); /* Direct call template$Template$add on <var107:Template>*/
 }
 {
-{ /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
-var92 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
-if (unlikely(var92 == NULL)) {
+{ /* Inline c_tools$CCompilationUnit$body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
+var120 = var_ffi_ccu->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
+if (unlikely(var120 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 37);
 fatal_exit(1);
 }
-var90 = var92;
-RET_LABEL91:(void)0;
+var118 = var120;
+RET_LABEL119:(void)0;
 }
 }
-if (likely(varonce93!=NULL)) {
-var94 = varonce93;
+if (likely(varonce121!=NULL)) {
+var122 = varonce121;
 } else {
-var95 = "#endif\n";
-var96 = core__flat___NativeString___to_s_full(var95, 7l, 7l);
-var94 = var96;
-varonce93 = var94;
+var123 = "#endif\n";
+var125 = (val*)(7l<<2|1);
+var126 = (val*)(7l<<2|1);
+var127 = (val*)((long)(0)<<2|3);
+var128 = (val*)((long)(0)<<2|3);
+var124 = core__flat___CString___to_s_unsafe(var123, var125, var126, var127, var128);
+var122 = var124;
+varonce121 = var122;
 }
 {
-template___template__Template___add(var90, var94); /* Direct call template#Template#add on <var90:Template>*/
+template___template__Template___add(var118, var122); /* Direct call template$Template$add on <var118:Template>*/
 }
 {
-{ /* Inline parser_nodes#AModule#n_classdefs (self) on <self:AModule> */
-var99 = self->attrs[COLOR_nitc__parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <self:AModule> */
-if (unlikely(var99 == NULL)) {
+{ /* Inline parser_nodes$AModule$n_classdefs (self) on <self:AModule> */
+var131 = self->attrs[COLOR_nitc__parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <self:AModule> */
+if (unlikely(var131 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1062);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1125);
 fatal_exit(1);
 }
-var97 = var99;
-RET_LABEL98:(void)0;
+var129 = var131;
+RET_LABEL130:(void)0;
 }
 }
-var_100 = var97;
+var_132 = var129;
 {
-var101 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_100);
+var133 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_132);
 }
-var_102 = var101;
+var_134 = var133;
 for(;;) {
 {
-var103 = ((short int(*)(val* self))((((long)var_102&3)?class_info[((long)var_102&3)]:var_102->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_102); /* is_ok on <var_102:Iterator[AClassdef]>*/
+var135 = ((short int(*)(val* self))((((long)var_134&3)?class_info[((long)var_134&3)]:var_134->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_134); /* is_ok on <var_134:Iterator[AClassdef]>*/
 }
-if (var103){
+if (var135){
 } else {
-goto BREAK_label104;
+goto BREAK_label136;
 }
 {
-var105 = ((val*(*)(val* self))((((long)var_102&3)?class_info[((long)var_102&3)]:var_102->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_102); /* item on <var_102:Iterator[AClassdef]>*/
+var137 = ((val*(*)(val* self))((((long)var_134&3)?class_info[((long)var_134&3)]:var_134->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_134); /* item on <var_134:Iterator[AClassdef]>*/
 }
-var_nclassdef = var105;
+var_nclassdef = var137;
 /* <var_nclassdef:AClassdef> isa AStdClassdef */
 cltype = type_nitc__AStdClassdef.color;
 idtype = type_nitc__AStdClassdef.id;
 if(cltype >= var_nclassdef->type->table_size) {
-var107 = 0;
+var139 = 0;
 } else {
-var107 = var_nclassdef->type->type_table[cltype] == idtype;
+var139 = var_nclassdef->type->type_table[cltype] == idtype;
 }
-var_108 = var107;
-if (var107){
+var_140 = var139;
+if (var139){
 {
-{ /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
-var111 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
-var109 = var111;
-RET_LABEL110:(void)0;
+{ /* Inline parser_nodes$AStdClassdef$n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var143 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
+var141 = var143;
+RET_LABEL142:(void)0;
 }
 }
-if (var109 == NULL) {
-var112 = 0; /* is null */
+if (var141 == NULL) {
+var144 = 0; /* is null */
 } else {
-var112 = 1; /* arg is null and recv is not */
+var144 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var109,((val*)NULL)) on <var109:nullable AExternCodeBlock> */
+{ /* Inline kernel$Object$!= (var141,((val*)NULL)) on <var141:nullable AExternCodeBlock> */
 var_other16 = ((val*)NULL);
 {
-var115 = ((short int(*)(val* self, val* p0))(var109->class->vft[COLOR_core__kernel__Object___61d_61d]))(var109, var_other16); /* == on <var109:nullable AExternCodeBlock(AExternCodeBlock)>*/
+var147 = ((short int(*)(val* self, val* p0))(var141->class->vft[COLOR_core__kernel__Object___61d_61d]))(var141, var_other16); /* == on <var141:nullable AExternCodeBlock(AExternCodeBlock)>*/
 }
-var116 = !var115;
-var113 = var116;
-goto RET_LABEL114;
-RET_LABEL114:(void)0;
+var148 = !var147;
+var145 = var148;
+goto RET_LABEL146;
+RET_LABEL146:(void)0;
 }
-var112 = var113;
+var144 = var145;
 }
-var106 = var112;
+var138 = var144;
 } else {
-var106 = var_108;
+var138 = var_140;
 }
-if (var106){
+if (var138){
 {
-{ /* Inline light_ffi#MModule#uses_ffi= (var_mmodule,1) on <var_mmodule:nullable MModule(MModule)> */
+{ /* Inline light_ffi$MModule$uses_ffi= (var_mmodule,1) on <var_mmodule:nullable MModule(MModule)> */
 var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___uses_ffi].s = 1; /* _uses_ffi on <var_mmodule:nullable MModule(MModule)> */
-RET_LABEL117:(void)0;
+RET_LABEL149:(void)0;
 }
 }
 {
-{ /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
-var120 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
-var118 = var120;
-RET_LABEL119:(void)0;
+{ /* Inline parser_nodes$AStdClassdef$n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var152 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
+var150 = var152;
+RET_LABEL151:(void)0;
+}
 }
+if (var150 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
 }
-if (var118 == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 106);
 fatal_exit(1);
 } else {
-{ /* Inline light_ffi_base#AExternCodeBlock#language (var118) on <var118:nullable AExternCodeBlock> */
-if (unlikely(var118 == NULL)) {
+{ /* Inline light_ffi_base$AExternCodeBlock$language (var150) on <var150:nullable AExternCodeBlock> */
+if (unlikely(var150 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base, 102);
 fatal_exit(1);
 }
-var123 = var118->attrs[COLOR_nitc__light_ffi_base__AExternCodeBlock___language].val; /* _language on <var118:nullable AExternCodeBlock> */
-var121 = var123;
-RET_LABEL122:(void)0;
+var155 = var150->attrs[COLOR_nitc__light_ffi_base__AExternCodeBlock___language].val; /* _language on <var150:nullable AExternCodeBlock> */
+var153 = var155;
+RET_LABEL154:(void)0;
 }
 }
-var_language124 = var121;
-if (var_language124 == NULL) {
-var125 = 0; /* is null */
+var_language156 = var153;
+if (var_language156 == NULL) {
+var157 = 0; /* is null */
 } else {
-var125 = 1; /* arg is null and recv is not */
+var157 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_language124,((val*)NULL)) on <var_language124:nullable FFILanguage> */
+{ /* Inline kernel$Object$!= (var_language156,((val*)NULL)) on <var_language156:nullable FFILanguage> */
 var_other16 = ((val*)NULL);
 {
-var128 = ((short int(*)(val* self, val* p0))(var_language124->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_language124, var_other16); /* == on <var_language124:nullable FFILanguage(FFILanguage)>*/
+var160 = ((short int(*)(val* self, val* p0))(var_language156->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_language156, var_other16); /* == on <var_language156:nullable FFILanguage(FFILanguage)>*/
+}
+var161 = !var160;
+var158 = var161;
+goto RET_LABEL159;
+RET_LABEL159:(void)0;
 }
-var129 = !var128;
-var126 = var129;
-goto RET_LABEL127;
-RET_LABEL127:(void)0;
+var157 = var158;
 }
-var125 = var126;
+if (unlikely(!var157)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
 }
-if (unlikely(!var125)) {
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 107);
 fatal_exit(1);
 }
 {
-{ /* Inline light_ffi#MModule#present_languages (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
-var132 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___present_languages].val; /* _present_languages on <var_mmodule:nullable MModule(MModule)> */
-if (unlikely(var132 == NULL)) {
+{ /* Inline light_ffi$MModule$present_languages (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
+var164 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___present_languages].val; /* _present_languages on <var_mmodule:nullable MModule(MModule)> */
+if (unlikely(var164 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 50);
 fatal_exit(1);
 }
-var130 = var132;
-RET_LABEL131:(void)0;
+var162 = var164;
+RET_LABEL163:(void)0;
 }
 }
 {
-core___core__HashSet___core__abstract_collection__SimpleCollection__add(var130, var_language124); /* Direct call hash_collection#HashSet#add on <var130:HashSet[FFILanguage]>*/
+core___core__HashSet___core__abstract_collection__SimpleCollection__add(var162, var_language156); /* Direct call hash_collection$HashSet$add on <var162:HashSet[FFILanguage]>*/
 }
 {
-{ /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
-var135 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
-var133 = var135;
-RET_LABEL134:(void)0;
+{ /* Inline parser_nodes$AStdClassdef$n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var167 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
+var165 = var167;
+RET_LABEL166:(void)0;
+}
 }
+if (var165 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
 }
-if (var133 == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 109);
 fatal_exit(1);
 } else {
-{ /* Inline light_ffi_base#AExternCodeBlock#language (var133) on <var133:nullable AExternCodeBlock> */
-if (unlikely(var133 == NULL)) {
+{ /* Inline light_ffi_base$AExternCodeBlock$language (var165) on <var165:nullable AExternCodeBlock> */
+if (unlikely(var165 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base, 102);
 fatal_exit(1);
 }
-var138 = var133->attrs[COLOR_nitc__light_ffi_base__AExternCodeBlock___language].val; /* _language on <var133:nullable AExternCodeBlock> */
-var136 = var138;
-RET_LABEL137:(void)0;
+var170 = var165->attrs[COLOR_nitc__light_ffi_base__AExternCodeBlock___language].val; /* _language on <var165:nullable AExternCodeBlock> */
+var168 = var170;
+RET_LABEL169:(void)0;
 }
 }
 {
-{ /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
-var141 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
-var139 = var141;
-RET_LABEL140:(void)0;
+{ /* Inline parser_nodes$AStdClassdef$n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var173 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
+var171 = var173;
+RET_LABEL172:(void)0;
 }
 }
-if (unlikely(var139 == NULL)) {
+if (unlikely(var171 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 110);
 fatal_exit(1);
 }
-if (var136 == NULL) {
+if (var168 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 109);
 fatal_exit(1);
 } else {
-{ /* Inline light_c#CLanguage#compile_extern_class (var136,var139,var_nclassdef,var_ffi_ccu,var_mmodule) on <var136:nullable FFILanguage> */
-var_block143 = var139;
+{ /* Inline light_c$CLanguage$compile_extern_class (var168,var171,var_nclassdef,var_ffi_ccu,var_mmodule) on <var168:nullable FFILanguage> */
+var_block175 = var171;
 var_m = var_nclassdef;
 var_ecc = var_ffi_ccu;
-var_mmodule144 = var_mmodule;
-RET_LABEL142:(void)0;
+var_mmodule176 = var_mmodule;
+RET_LABEL174:(void)0;
 }
 }
 } else {
 }
 {
-((void(*)(val* self))((((long)var_102&3)?class_info[((long)var_102&3)]:var_102->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_102); /* next on <var_102:Iterator[AClassdef]>*/
+((void(*)(val* self))((((long)var_134&3)?class_info[((long)var_134&3)]:var_134->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_134); /* next on <var_134:Iterator[AClassdef]>*/
 }
 }
-BREAK_label104: (void)0;
+BREAK_label136: (void)0;
 {
-((void(*)(val* self))((((long)var_102&3)?class_info[((long)var_102&3)]:var_102->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_102); /* finish on <var_102:Iterator[AClassdef]>*/
+((void(*)(val* self))((((long)var_134&3)?class_info[((long)var_134&3)]:var_134->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_134); /* finish on <var_134:Iterator[AClassdef]>*/
 }
 RET_LABEL:;
 }
-/* method light_ffi#AMethPropdef#compile_ffi_method for (self: AMethPropdef, MModule) */
+/* method light_ffi$AMethPropdef$compile_ffi_method for (self: AMethPropdef, MModule) */
 void nitc__light_ffi___AMethPropdef___compile_ffi_method(val* self, val* p0) {
 val* var_mmodule /* var mmodule: MModule */;
 val* var /* : nullable AExternCodeBlock */;
@@ -961,7 +1128,7 @@ val* var38 /* : nullable CCompilationUnit */;
 val* var40 /* : nullable CCompilationUnit */;
 var_mmodule = p0;
 {
-{ /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
+{ /* Inline parser_nodes$AMethPropdef$n_extern_code_block (self) on <self:AMethPropdef> */
 var2 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AMethPropdef> */
 var = var2;
 RET_LABEL1:(void)0;
@@ -973,7 +1140,7 @@ var3 = 0; /* is null */
 var3 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var,((val*)NULL)) on <var:nullable AExternCodeBlock> */
+{ /* Inline kernel$Object$!= (var,((val*)NULL)) on <var:nullable AExternCodeBlock> */
 var_other = ((val*)NULL);
 {
 var6 = ((short int(*)(val* self, val* p0))(var->class->vft[COLOR_core__kernel__Object___61d_61d]))(var, var_other); /* == on <var:nullable AExternCodeBlock(AExternCodeBlock)>*/
@@ -986,14 +1153,20 @@ RET_LABEL5:(void)0;
 var3 = var4;
 }
 if (unlikely(!var3)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 120);
 fatal_exit(1);
 }
 {
-{ /* Inline light_ffi#MModule#compiled_ffi_methods (var_mmodule) on <var_mmodule:MModule> */
+{ /* Inline light_ffi$MModule$compiled_ffi_methods (var_mmodule) on <var_mmodule:MModule> */
 var10 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___compiled_ffi_methods].val; /* _compiled_ffi_methods on <var_mmodule:MModule> */
 if (unlikely(var10 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiled_ffi_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 66);
 fatal_exit(1);
@@ -1010,9 +1183,12 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline light_ffi#MModule#compiled_ffi_methods (var_mmodule) on <var_mmodule:MModule> */
+{ /* Inline light_ffi$MModule$compiled_ffi_methods (var_mmodule) on <var_mmodule:MModule> */
 var14 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___compiled_ffi_methods].val; /* _compiled_ffi_methods on <var_mmodule:MModule> */
 if (unlikely(var14 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiled_ffi_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 66);
 fatal_exit(1);
@@ -1022,22 +1198,28 @@ RET_LABEL13:(void)0;
 }
 }
 {
-core___core__HashSet___core__abstract_collection__SimpleCollection__add(var12, self); /* Direct call hash_collection#HashSet#add on <var12:HashSet[AMethPropdef]>*/
+core___core__HashSet___core__abstract_collection__SimpleCollection__add(var12, self); /* Direct call hash_collection$HashSet$add on <var12:HashSet[AMethPropdef]>*/
 }
 {
-{ /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
+{ /* Inline parser_nodes$AMethPropdef$n_extern_code_block (self) on <self:AMethPropdef> */
 var17 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AMethPropdef> */
 var15 = var17;
 RET_LABEL16:(void)0;
 }
 }
 if (var15 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 125);
 fatal_exit(1);
 } else {
-{ /* Inline light_ffi_base#AExternCodeBlock#language (var15) on <var15:nullable AExternCodeBlock> */
+{ /* Inline light_ffi_base$AExternCodeBlock$language (var15) on <var15:nullable AExternCodeBlock> */
 if (unlikely(var15 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base, 102);
 fatal_exit(1);
@@ -1054,7 +1236,7 @@ var21 = 0; /* is null */
 var21 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_language,((val*)NULL)) on <var_language:nullable FFILanguage> */
+{ /* Inline kernel$Object$!= (var_language,((val*)NULL)) on <var_language:nullable FFILanguage> */
 var_other = ((val*)NULL);
 {
 var24 = ((short int(*)(val* self, val* p0))(var_language->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_language, var_other); /* == on <var_language:nullable FFILanguage(FFILanguage)>*/
@@ -1067,14 +1249,20 @@ RET_LABEL23:(void)0;
 var21 = var22;
 }
 if (unlikely(!var21)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 126);
 fatal_exit(1);
 }
 {
-{ /* Inline light_ffi#MModule#present_languages (var_mmodule) on <var_mmodule:MModule> */
+{ /* Inline light_ffi$MModule$present_languages (var_mmodule) on <var_mmodule:MModule> */
 var28 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___present_languages].val; /* _present_languages on <var_mmodule:MModule> */
 if (unlikely(var28 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 50);
 fatal_exit(1);
@@ -1084,22 +1272,28 @@ RET_LABEL27:(void)0;
 }
 }
 {
-core___core__HashSet___core__abstract_collection__SimpleCollection__add(var26, var_language); /* Direct call hash_collection#HashSet#add on <var26:HashSet[FFILanguage]>*/
+core___core__HashSet___core__abstract_collection__SimpleCollection__add(var26, var_language); /* Direct call hash_collection$HashSet$add on <var26:HashSet[FFILanguage]>*/
 }
 {
-{ /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
+{ /* Inline parser_nodes$AMethPropdef$n_extern_code_block (self) on <self:AMethPropdef> */
 var31 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AMethPropdef> */
 var29 = var31;
 RET_LABEL30:(void)0;
 }
 }
 if (var29 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 128);
 fatal_exit(1);
 } else {
-{ /* Inline light_ffi_base#AExternCodeBlock#language (var29) on <var29:nullable AExternCodeBlock> */
+{ /* Inline light_ffi_base$AExternCodeBlock$language (var29) on <var29:nullable AExternCodeBlock> */
 if (unlikely(var29 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base, 102);
 fatal_exit(1);
@@ -1110,35 +1304,44 @@ RET_LABEL33:(void)0;
 }
 }
 {
-{ /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
+{ /* Inline parser_nodes$AMethPropdef$n_extern_code_block (self) on <self:AMethPropdef> */
 var37 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AMethPropdef> */
 var35 = var37;
 RET_LABEL36:(void)0;
 }
 }
 if (unlikely(var35 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 129);
 fatal_exit(1);
 }
 {
-{ /* Inline light_ffi#MModule#ffi_ccu (var_mmodule) on <var_mmodule:MModule> */
+{ /* Inline light_ffi$MModule$ffi_ccu (var_mmodule) on <var_mmodule:MModule> */
 var40 = var_mmodule->attrs[COLOR_nitc__light_ffi__MModule___ffi_ccu].val; /* _ffi_ccu on <var_mmodule:MModule> */
 var38 = var40;
 RET_LABEL39:(void)0;
 }
 }
 if (unlikely(var38 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 129);
 fatal_exit(1);
 }
 if (var32 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi, 128);
 fatal_exit(1);
 } else {
-nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__compile_extern_method(var32, var35, self, var38, var_mmodule); /* Direct call light_c#CLanguage#compile_extern_method on <var32:nullable FFILanguage>*/
+nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__compile_extern_method(var32, var35, self, var38, var_mmodule); /* Direct call light_c$CLanguage$compile_extern_method on <var32:nullable FFILanguage>*/
 }
 RET_LABEL:;
 }