X-Git-Url: http://nitlanguage.org diff --git a/c_src/nitc__extern_classes.sep.1.c b/c_src/nitc__extern_classes.sep.1.c index 3d8c194..7c5fa62 100644 --- a/c_src/nitc__extern_classes.sep.1.c +++ b/c_src/nitc__extern_classes.sep.1.c @@ -1,10 +1,13 @@ #include "nitc__extern_classes.sep.0.h" -/* method extern_classes#ToolContext#extern_classes_typing_phase_ast for (self: ToolContext): Phase */ +/* method extern_classes$ToolContext$extern_classes_typing_phase_ast for (self: ToolContext): Phase */ val* nitc__extern_classes___ToolContext___extern_classes_typing_phase_ast(val* self) { val* var /* : Phase */; val* var1 /* : Phase */; var1 = self->attrs[COLOR_nitc__extern_classes__ToolContext___extern_classes_typing_phase_ast].val; /* _extern_classes_typing_phase_ast on */ if (unlikely(var1 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_classes_typing_phase_ast"); PRINT_ERROR(" (%s:%d)\n", FILE_nitc__extern_classes, 24); fatal_exit(1); @@ -13,7 +16,7 @@ var = var1; RET_LABEL:; return var; } -/* method extern_classes#ExternClassesTypingPhaseAst#process_nclassdef for (self: ExternClassesTypingPhaseAst, AClassdef) */ +/* method extern_classes$ExternClassesTypingPhaseAst$process_nclassdef for (self: ExternClassesTypingPhaseAst, AClassdef) */ void nitc__extern_classes___nitc__extern_classes__ExternClassesTypingPhaseAst___nitc__phase__Phase__process_nclassdef(val* self, val* p0) { val* var_nclassdef /* var nclassdef: AClassdef */; short int var /* : Bool */; @@ -41,17 +44,21 @@ val* var23 /* : Location */; val* var25 /* : Location */; static val* varonce; val* var26 /* : String */; -char* var27 /* : NativeString */; +char* var27 /* : CString */; val* var28 /* : String */; -val* var29 /* : Message */; -val* var30 /* : nullable FFILanguage */; -val* var32 /* : nullable FFILanguage */; -val* var33 /* : ForeignType */; +val* var29 /* : nullable Int */; +val* var30 /* : nullable Int */; +val* var31 /* : nullable Bool */; +val* var32 /* : nullable Bool */; +val* var33 /* : Message */; +val* var34 /* : nullable FFILanguage */; +val* var36 /* : nullable FFILanguage */; +val* var37 /* : ForeignType */; val* var_ftype /* var ftype: ForeignType */; -val* var34 /* : nullable MClassDef */; -val* var36 /* : nullable MClassDef */; val* var38 /* : nullable MClassDef */; val* var40 /* : nullable MClassDef */; +val* var42 /* : nullable MClassDef */; +val* var44 /* : nullable MClassDef */; var_nclassdef = p0; /* isa AStdClassdef */ cltype = type_nitc__AStdClassdef.color; @@ -67,7 +74,7 @@ goto RET_LABEL; } else { } { -{ /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on */ +{ /* Inline parser_nodes$AStdClassdef$n_extern_code_block (var_nclassdef) on */ var4 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on */ var2 = var4; RET_LABEL3:(void)0; @@ -80,10 +87,10 @@ var5 = 1; /* is null */ var5 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_code_block,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_code_block,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_code_block,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var_code_block,var_other) on */ var10 = var_code_block == var_other; var8 = var10; goto RET_LABEL9; @@ -101,7 +108,7 @@ goto RET_LABEL; } else { } { -{ /* Inline parser_nodes#ADefinition#n_kwredef (var_nclassdef) on */ +{ /* Inline parser_nodes$ADefinition$n_kwredef (var_nclassdef) on */ var13 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on */ var11 = var13; RET_LABEL12:(void)0; @@ -113,7 +120,7 @@ var14 = 0; /* is null */ var14 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var11,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var11,((val*)NULL)) on */ var_other17 = ((val*)NULL); { var18 = ((short int(*)(val* self, val* p0))(var11->class->vft[COLOR_core__kernel__Object___61d_61d]))(var11, var_other17); /* == on */ @@ -127,11 +134,14 @@ var14 = var15; } if (var14){ { -{ /* Inline phase#Phase#toolcontext (self) on */ +{ /* Inline phase$Phase$toolcontext (self) on */ var22 = self->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on */ if (unlikely(var22 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 200); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 210); fatal_exit(1); } var20 = var22; @@ -139,11 +149,14 @@ RET_LABEL21:(void)0; } } { -{ /* Inline parser_nodes#ANode#location (var_nclassdef) on */ +{ /* Inline parser_nodes$ANode$location (var_nclassdef) on */ var25 = var_nclassdef->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on */ if (unlikely(var25 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25); fatal_exit(1); } var23 = var25; @@ -154,78 +167,97 @@ if (likely(varonce!=NULL)) { var26 = varonce; } else { var27 = "FFI Error: only the introduction of a class can declare an extern type."; -var28 = core__flat___NativeString___to_s_full(var27, 71l, 71l); +var29 = (val*)(71l<<2|1); +var30 = (val*)(71l<<2|1); +var31 = (val*)((long)(0)<<2|3); +var32 = (val*)((long)(0)<<2|3); +var28 = core__flat___CString___to_s_unsafe(var27, var29, var30, var31, var32); var26 = var28; varonce = var26; } { -var29 = nitc___nitc__ToolContext___error(var20, var23, var26); +var33 = nitc___nitc__ToolContext___error(var20, var23, var26); } goto RET_LABEL; } else { } { -{ /* Inline light_ffi_base#AExternCodeBlock#language (var_code_block) on */ -var32 = var_code_block->attrs[COLOR_nitc__light_ffi_base__AExternCodeBlock___language].val; /* _language on */ -var30 = var32; -RET_LABEL31:(void)0; +{ /* Inline light_ffi_base$AExternCodeBlock$language (var_code_block) on */ +var36 = var_code_block->attrs[COLOR_nitc__light_ffi_base__AExternCodeBlock___language].val; /* _language on */ +var34 = var36; +RET_LABEL35:(void)0; } } -if (var30 == NULL) { +if (var34 == 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__extern_classes, 47); fatal_exit(1); } else { -var33 = nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__get_ftype(var30, var_code_block, var_nclassdef); +var37 = nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__get_ftype(var34, var_code_block, var_nclassdef); } -var_ftype = var33; +var_ftype = var37; { -{ /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on */ -var36 = var_nclassdef->attrs[COLOR_nitc__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on */ -var34 = var36; -RET_LABEL35:(void)0; +{ /* Inline modelize_class$AClassdef$mclassdef (var_nclassdef) on */ +var40 = var_nclassdef->attrs[COLOR_nitc__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on */ +var38 = var40; +RET_LABEL39:(void)0; } } -if (var34 == NULL) { +if (var38 == 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__extern_classes, 48); fatal_exit(1); } else { -{ /* Inline extern_classes#MClassDef#ftype_cache= (var34,var_ftype) on */ -if (unlikely(var34 == NULL)) { +{ /* Inline extern_classes$MClassDef$ftype_cache= (var38,var_ftype) on */ +if (unlikely(var38 == 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__extern_classes, 54); fatal_exit(1); } -var34->attrs[COLOR_nitc__extern_classes__MClassDef___ftype_cache].val = var_ftype; /* _ftype_cache on */ -RET_LABEL37:(void)0; +var38->attrs[COLOR_nitc__extern_classes__MClassDef___ftype_cache].val = var_ftype; /* _ftype_cache on */ +RET_LABEL41:(void)0; } } { -{ /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on */ -var40 = var_nclassdef->attrs[COLOR_nitc__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on */ -var38 = var40; -RET_LABEL39:(void)0; +{ /* Inline modelize_class$AClassdef$mclassdef (var_nclassdef) on */ +var44 = var_nclassdef->attrs[COLOR_nitc__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on */ +var42 = var44; +RET_LABEL43:(void)0; } } -if (var38 == NULL) { +if (var42 == 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__extern_classes, 49); fatal_exit(1); } else { -{ /* Inline extern_classes#MClassDef#ftype_computed= (var38,1) on */ -if (unlikely(var38 == NULL)) { +{ /* Inline extern_classes$MClassDef$ftype_computed= (var42,1) on */ +if (unlikely(var42 == 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__extern_classes, 55); fatal_exit(1); } -var38->attrs[COLOR_nitc__extern_classes__MClassDef___ftype_computed].s = 1; /* _ftype_computed on */ -RET_LABEL41:(void)0; +var42->attrs[COLOR_nitc__extern_classes__MClassDef___ftype_computed].s = 1; /* _ftype_computed on */ +RET_LABEL45:(void)0; } } RET_LABEL:; } -/* method extern_classes#MClassDef#ftype_cache for (self: MClassDef): nullable ForeignType */ +/* method extern_classes$MClassDef$ftype_cache for (self: MClassDef): nullable ForeignType */ val* nitc__extern_classes___MClassDef___ftype_cache(val* self) { val* var /* : nullable ForeignType */; val* var1 /* : nullable ForeignType */; @@ -234,23 +266,23 @@ var = var1; RET_LABEL:; return var; } -/* method extern_classes#MClassDef#ftype_cache= for (self: MClassDef, nullable ForeignType) */ +/* method extern_classes$MClassDef$ftype_cache= for (self: MClassDef, nullable ForeignType) */ void nitc__extern_classes___MClassDef___ftype_cache_61d(val* self, val* p0) { self->attrs[COLOR_nitc__extern_classes__MClassDef___ftype_cache].val = p0; /* _ftype_cache on */ RET_LABEL:; } -/* method extern_classes#MClassDef#ftype_computed= for (self: MClassDef, Bool) */ +/* method extern_classes$MClassDef$ftype_computed= for (self: MClassDef, Bool) */ void nitc__extern_classes___MClassDef___ftype_computed_61d(val* self, short int p0) { self->attrs[COLOR_nitc__extern_classes__MClassDef___ftype_computed].s = p0; /* _ftype_computed on */ RET_LABEL:; } -/* method extern_classes#MClassDef#ftype for (self: MClassDef): nullable ForeignType */ +/* method extern_classes$MClassDef$ftype for (self: MClassDef): nullable ForeignType */ val* nitc__extern_classes___MClassDef___ftype(val* self) { val* var /* : nullable ForeignType */; val* var1 /* : nullable ForeignType */; val* var3 /* : nullable ForeignType */; { -{ /* Inline extern_classes#MClassDef#ftype_cache (self) on */ +{ /* Inline extern_classes$MClassDef$ftype_cache (self) on */ var3 = self->attrs[COLOR_nitc__extern_classes__MClassDef___ftype_cache].val; /* _ftype_cache on */ var1 = var3; RET_LABEL2:(void)0; @@ -261,7 +293,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method extern_classes#ExternClassesTypingPhaseModel#process_nclassdef for (self: ExternClassesTypingPhaseModel, AClassdef) */ +/* method extern_classes$ExternClassesTypingPhaseModel$process_nclassdef for (self: ExternClassesTypingPhaseModel, AClassdef) */ void nitc__extern_classes___nitc__extern_classes__ExternClassesTypingPhaseModel___nitc__phase__Phase__process_nclassdef(val* self, val* p0) { val* var_nclassdef /* var nclassdef: AClassdef */; short int var /* : Bool */; @@ -305,7 +337,7 @@ goto RET_LABEL; } else { } { -{ /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on */ +{ /* Inline modelize_class$AClassdef$mclassdef (var_nclassdef) on */ var4 = var_nclassdef->attrs[COLOR_nitc__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on */ var2 = var4; RET_LABEL3:(void)0; @@ -318,10 +350,10 @@ var5 = 1; /* is null */ var5 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mclassdef,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mclassdef,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclassdef,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var_mclassdef,var_other) on */ var10 = var_mclassdef == var_other; var8 = var10; goto RET_LABEL9; @@ -339,11 +371,14 @@ goto RET_LABEL; } else { } { -{ /* Inline model#MClassDef#mclass (var_mclassdef) on */ +{ /* Inline model$MClassDef$mclass (var_mclassdef) on */ var13 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var13 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591); fatal_exit(1); } var11 = var13; @@ -360,11 +395,14 @@ goto RET_LABEL; } else { } { -{ /* Inline model#MClass#kind (var_mclass) on */ +{ /* Inline model$MClass$kind (var_mclass) on */ var18 = var_mclass->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on */ if (unlikely(var18 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472); fatal_exit(1); } var16 = var18; @@ -376,7 +414,7 @@ var19 = glob_sys; var20 = nitc__model___core__Sys___extern_kind(var19); } { -{ /* Inline kernel#Object#!= (var16,var20) on */ +{ /* Inline kernel$Object$!= (var16,var20) on */ var_other23 = var20; { var24 = ((short int(*)(val* self, val* p0))(var16->class->vft[COLOR_core__kernel__Object___61d_61d]))(var16, var_other23); /* == on */ @@ -396,7 +434,7 @@ var26 = nitc__extern_classes___MClass___compute_ftype(var_mclass, self); } RET_LABEL:; } -/* method extern_classes#MClass#ftype_cache for (self: MClass): nullable ForeignType */ +/* method extern_classes$MClass$ftype_cache for (self: MClass): nullable ForeignType */ val* nitc__extern_classes___MClass___ftype_cache(val* self) { val* var /* : nullable ForeignType */; val* var1 /* : nullable ForeignType */; @@ -405,12 +443,12 @@ var = var1; RET_LABEL:; return var; } -/* method extern_classes#MClass#ftype_cache= for (self: MClass, nullable ForeignType) */ +/* method extern_classes$MClass$ftype_cache= for (self: MClass, nullable ForeignType) */ void nitc__extern_classes___MClass___ftype_cache_61d(val* self, val* p0) { self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val = p0; /* _ftype_cache on */ RET_LABEL:; } -/* method extern_classes#MClass#ftype_computed for (self: MClass): Bool */ +/* method extern_classes$MClass$ftype_computed for (self: MClass): Bool */ short int nitc__extern_classes___MClass___ftype_computed(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; @@ -419,25 +457,28 @@ var = var1; RET_LABEL:; return var; } -/* method extern_classes#MClass#ftype_computed= for (self: MClass, Bool) */ +/* method extern_classes$MClass$ftype_computed= for (self: MClass, Bool) */ void nitc__extern_classes___MClass___ftype_computed_61d(val* self, short int p0) { self->attrs[COLOR_nitc__extern_classes__MClass___ftype_computed].s = p0; /* _ftype_computed on */ RET_LABEL:; } -/* method extern_classes#MClass#ctype for (self: MClass): nullable String */ +/* method extern_classes$MClass$ctype for (self: MClass): nullable String */ val* nitc__extern_classes___MClass___ctype(val* self) { val* var /* : nullable String */; val* var1 /* : nullable ForeignType */; val* var3 /* : nullable ForeignType */; val* var4 /* : String */; { -{ /* Inline extern_classes#MClass#ftype_cache (self) on */ +{ /* Inline extern_classes$MClass$ftype_cache (self) on */ var3 = self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val; /* _ftype_cache on */ var1 = var3; RET_LABEL2:(void)0; } } if (var1 == 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__extern_classes, 91); fatal_exit(1); @@ -449,7 +490,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method extern_classes#MClass#compute_ftype for (self: MClass, ExternClassesTypingPhaseModel): nullable ForeignType */ +/* method extern_classes$MClass$compute_ftype for (self: MClass, ExternClassesTypingPhaseModel): nullable ForeignType */ val* nitc__extern_classes___MClass___compute_ftype(val* self, val* p0) { val* var /* : nullable ForeignType */; val* var_v /* var v: ExternClassesTypingPhaseModel */; @@ -469,63 +510,75 @@ val* var16 /* : String */; val* var18 /* : String */; static val* varonce; val* var19 /* : String */; -char* var20 /* : NativeString */; +char* var20 /* : CString */; val* var21 /* : String */; -short int var22 /* : Bool */; -val* var23 /* : ForeignType */; -val* var26 /* : nullable ForeignType */; -val* var28 /* : nullable ForeignType */; -val* var29 /* : MClassDef */; -val* var31 /* : MClassDef */; +val* var22 /* : nullable Int */; +val* var23 /* : nullable Int */; +val* var24 /* : nullable Bool */; +val* var25 /* : nullable Bool */; +short int var26 /* : Bool */; +val* var27 /* : ForeignType */; +val* var30 /* : nullable ForeignType */; val* var32 /* : nullable ForeignType */; +val* var33 /* : MClassDef */; +val* var35 /* : MClassDef */; +val* var36 /* : nullable ForeignType */; val* var_ftype /* var ftype: nullable ForeignType */; -short int var33 /* : Bool */; -short int var34 /* : Bool */; -val* var_other36 /* var other: nullable Object */; short int var37 /* : Bool */; -short int var39 /* : Bool */; +short int var38 /* : Bool */; +val* var_other40 /* var other: nullable Object */; +short int var41 /* : Bool */; +short int var43 /* : Bool */; val* var_ftype_b /* var ftype_b: nullable ForeignType */; -val* var40 /* : MModule */; -val* var42 /* : MModule */; -val* var43 /* : POSetElement[MClass] */; -val* var44 /* : Collection[nullable Object] */; +val* var44 /* : MModule */; +val* var46 /* : MModule */; +val* var47 /* : POSetElement[MClass] */; +val* var48 /* : Collection[nullable Object] */; val* var_ /* var : Collection[MClass] */; -val* var45 /* : Iterator[nullable Object] */; -val* var_46 /* var : Iterator[MClass] */; -short int var47 /* : Bool */; -val* var48 /* : nullable Object */; +val* var49 /* : Iterator[nullable Object] */; +val* var_50 /* var : Iterator[MClass] */; +short int var51 /* : Bool */; +val* var52 /* : nullable Object */; val* var_s /* var s: MClass */; -val* var49 /* : nullable ForeignType */; +val* var53 /* : nullable ForeignType */; val* var_super_ftype /* var super_ftype: nullable ForeignType */; -short int var50 /* : Bool */; -short int var51 /* : Bool */; -short int var53 /* : Bool */; short int var54 /* : Bool */; short int var55 /* : Bool */; -short int var56 /* : Bool */; +short int var57 /* : Bool */; short int var58 /* : Bool */; +short int var59 /* : Bool */; short int var60 /* : Bool */; short int var62 /* : Bool */; short int var64 /* : Bool */; -short int var65 /* : Bool */; -val* var66 /* : ToolContext */; -val* var68 /* : ToolContext */; -val* var70 /* : NativeArray[String] */; -static val* varonce69; -static val* varonce71; -val* var72 /* : String */; -char* var73 /* : NativeString */; -val* var74 /* : String */; +short int var66 /* : Bool */; +short int var68 /* : Bool */; +short int var69 /* : Bool */; +val* var70 /* : ToolContext */; +val* var72 /* : ToolContext */; +val* var74 /* : NativeArray[String] */; +static val* varonce73; static val* varonce75; val* var76 /* : String */; -char* var77 /* : NativeString */; +char* var77 /* : CString */; val* var78 /* : String */; -val* var79 /* : String */; -val* var80 /* : String */; -val* var81 /* : Message */; +val* var79 /* : nullable Int */; +val* var80 /* : nullable Int */; +val* var81 /* : nullable Bool */; +val* var82 /* : nullable Bool */; +static val* varonce83; +val* var84 /* : String */; +char* var85 /* : CString */; +val* var86 /* : String */; +val* var87 /* : nullable Int */; +val* var88 /* : nullable Int */; +val* var89 /* : nullable Bool */; +val* var90 /* : nullable Bool */; +val* var91 /* : String */; +val* var92 /* : String */; +val* var93 /* : Message */; var_v = p0; { -{ /* Inline extern_classes#MClass#ftype_computed (self) on */ +{ /* Inline extern_classes$MClass$ftype_computed (self) on */ var3 = self->attrs[COLOR_nitc__extern_classes__MClass___ftype_computed].s; /* _ftype_computed on */ var1 = var3; RET_LABEL2:(void)0; @@ -533,7 +586,7 @@ RET_LABEL2:(void)0; } if (var1){ { -{ /* Inline extern_classes#MClass#ftype_cache (self) on */ +{ /* Inline extern_classes$MClass$ftype_cache (self) on */ var6 = self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val; /* _ftype_cache on */ var4 = var6; RET_LABEL5:(void)0; @@ -544,11 +597,14 @@ goto RET_LABEL; } else { } { -{ /* Inline model#MClass#kind (self) on */ +{ /* Inline model$MClass$kind (self) on */ var9 = self->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on */ if (unlikely(var9 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472); fatal_exit(1); } var7 = var9; @@ -560,7 +616,7 @@ var10 = glob_sys; var11 = nitc__model___core__Sys___extern_kind(var10); } { -{ /* Inline kernel#Object#!= (var7,var11) on */ +{ /* Inline kernel$Object$!= (var7,var11) on */ var_other = var11; { var14 = ((short int(*)(val* self, val* p0))(var7->class->vft[COLOR_core__kernel__Object___61d_61d]))(var7, var_other); /* == on */ @@ -577,11 +633,14 @@ goto RET_LABEL; } else { } { -{ /* Inline model#MClass#name (self) on */ +{ /* Inline model$MClass$name (self) on */ var18 = self->attrs[COLOR_nitc__model__MClass___name].val; /* _name on */ if (unlikely(var18 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 385); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396); fatal_exit(1); } var16 = var18; @@ -592,224 +651,245 @@ if (likely(varonce!=NULL)) { var19 = varonce; } else { var20 = "Pointer"; -var21 = core__flat___NativeString___to_s_full(var20, 7l, 7l); +var22 = (val*)(7l<<2|1); +var23 = (val*)(7l<<2|1); +var24 = (val*)((long)(0)<<2|3); +var25 = (val*)((long)(0)<<2|3); +var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25); var19 = var21; varonce = var19; } { -var22 = ((short int(*)(val* self, val* p0))(var16->class->vft[COLOR_core__kernel__Object___61d_61d]))(var16, var19); /* == on */ +var26 = ((short int(*)(val* self, val* p0))(var16->class->vft[COLOR_core__kernel__Object___61d_61d]))(var16, var19); /* == on */ } -if (var22){ -var23 = NEW_nitc__ForeignType(&type_nitc__ForeignType); +if (var26){ +var27 = NEW_nitc__ForeignType(&type_nitc__ForeignType); { -((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on */ +((void(*)(val* self))(var27->class->vft[COLOR_core__kernel__Object__init]))(var27); /* init on */ } { -{ /* Inline extern_classes#MClass#ftype_cache= (self,var23) on */ -self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val = var23; /* _ftype_cache on */ -RET_LABEL24:(void)0; +{ /* Inline extern_classes$MClass$ftype_cache= (self,var27) on */ +self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val = var27; /* _ftype_cache on */ +RET_LABEL28:(void)0; } } { -{ /* Inline extern_classes#MClass#ftype_computed= (self,1) on */ +{ /* Inline extern_classes$MClass$ftype_computed= (self,1) on */ self->attrs[COLOR_nitc__extern_classes__MClass___ftype_computed].s = 1; /* _ftype_computed on */ -RET_LABEL25:(void)0; +RET_LABEL29:(void)0; } } { -{ /* Inline extern_classes#MClass#ftype_cache (self) on */ -var28 = self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val; /* _ftype_cache on */ -var26 = var28; -RET_LABEL27:(void)0; +{ /* Inline extern_classes$MClass$ftype_cache (self) on */ +var32 = self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val; /* _ftype_cache on */ +var30 = var32; +RET_LABEL31:(void)0; } } -var = var26; +var = var30; goto RET_LABEL; } else { } { -{ /* Inline model#MClass#intro (self) on */ -var31 = self->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on */ -if (unlikely(var31 == NULL)) { +{ /* Inline model$MClass$intro (self) on */ +var35 = self->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on */ +if (unlikely(var35 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 483); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 496); fatal_exit(1); } -var29 = var31; -RET_LABEL30:(void)0; +var33 = var35; +RET_LABEL34:(void)0; } } { -var32 = nitc__extern_classes___MClassDef___ftype(var29); +var36 = nitc__extern_classes___MClassDef___ftype(var33); } -var_ftype = var32; +var_ftype = var36; if (var_ftype == NULL) { -var33 = 1; /* is null */ +var37 = 1; /* is null */ } else { -var33 = 0; /* arg is null but recv is not */ +var37 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_ftype,((val*)NULL)) on */ -var_other36 = ((val*)NULL); +{ /* Inline kernel$Object$== (var_ftype,((val*)NULL)) on */ +var_other40 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_ftype,var_other36) on */ -var39 = var_ftype == var_other36; -var37 = var39; -goto RET_LABEL38; -RET_LABEL38:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_ftype,var_other40) on */ +var43 = var_ftype == var_other40; +var41 = var43; +goto RET_LABEL42; +RET_LABEL42:(void)0; } } -var34 = var37; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var38 = var41; +goto RET_LABEL39; +RET_LABEL39:(void)0; } -var33 = var34; +var37 = var38; } -if (var33){ +if (var37){ var_ftype_b = ((val*)NULL); { -{ /* Inline model#MClass#intro_mmodule (self) on */ -var42 = self->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var42 == NULL)) { +{ /* Inline model$MClass$intro_mmodule (self) on */ +var46 = self->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var46 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 380); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390); fatal_exit(1); } -var40 = var42; -RET_LABEL41:(void)0; +var44 = var46; +RET_LABEL45:(void)0; } } { -var43 = nitc___nitc__MClass___in_hierarchy(self, var40); +var47 = nitc___nitc__MClass___in_hierarchy(self, var44); } { -var44 = poset___poset__POSetElement___direct_greaters(var43); +var48 = poset___poset__POSetElement___direct_greaters(var47); } -var_ = var44; +var_ = var48; { -var45 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on */ +var49 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on */ } -var_46 = var45; +var_50 = var49; for(;;) { { -var47 = ((short int(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_46); /* is_ok on */ +var51 = ((short int(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_50); /* is_ok on */ } -if (var47){ +if (var51){ } else { goto BREAK_label; } { -var48 = ((val*(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_46); /* item on */ +var52 = ((val*(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_50); /* item on */ } -var_s = var48; +var_s = var52; { -var49 = nitc__extern_classes___MClass___compute_ftype(var_s, var_v); +var53 = nitc__extern_classes___MClass___compute_ftype(var_s, var_v); } -var_super_ftype = var49; +var_super_ftype = var53; if (var_super_ftype == NULL) { -var50 = 0; /* is null */ +var54 = 0; /* is null */ } else { -var50 = 1; /* arg is null and recv is not */ +var54 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_super_ftype,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_super_ftype,((val*)NULL)) on */ var_other = ((val*)NULL); { -var53 = ((short int(*)(val* self, val* p0))(var_super_ftype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_super_ftype, var_other); /* == on */ +var57 = ((short int(*)(val* self, val* p0))(var_super_ftype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_super_ftype, var_other); /* == on */ } -var54 = !var53; -var51 = var54; -goto RET_LABEL52; -RET_LABEL52:(void)0; +var58 = !var57; +var55 = var58; +goto RET_LABEL56; +RET_LABEL56:(void)0; } -var50 = var51; +var54 = var55; } -if (var50){ +if (var54){ if (var_ftype_b == NULL) { -var55 = 1; /* is null */ +var59 = 1; /* is null */ } else { -var55 = 0; /* arg is null but recv is not */ +var59 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_ftype_b,((val*)NULL)) on */ -var_other36 = ((val*)NULL); +{ /* Inline kernel$Object$== (var_ftype_b,((val*)NULL)) on */ +var_other40 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_ftype_b,var_other36) on */ -var60 = var_ftype_b == var_other36; -var58 = var60; -goto RET_LABEL59; -RET_LABEL59:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_ftype_b,var_other40) on */ +var64 = var_ftype_b == var_other40; +var62 = var64; +goto RET_LABEL63; +RET_LABEL63:(void)0; } } -var56 = var58; -goto RET_LABEL57; -RET_LABEL57:(void)0; +var60 = var62; +goto RET_LABEL61; +RET_LABEL61:(void)0; } -var55 = var56; +var59 = var60; } -if (var55){ +if (var59){ var_ftype_b = var_super_ftype; -goto BREAK_label61; +goto BREAK_label65; } else { { -{ /* Inline kernel#Object#!= (var_super_ftype,var_ftype_b) on */ +{ /* Inline kernel$Object$!= (var_super_ftype,var_ftype_b) on */ var_other = var_ftype_b; { -var64 = ((short int(*)(val* self, val* p0))(var_super_ftype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_super_ftype, var_other); /* == on */ +var68 = ((short int(*)(val* self, val* p0))(var_super_ftype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_super_ftype, var_other); /* == on */ } -var65 = !var64; -var62 = var65; -goto RET_LABEL63; -RET_LABEL63:(void)0; +var69 = !var68; +var66 = var69; +goto RET_LABEL67; +RET_LABEL67:(void)0; } } -if (var62){ +if (var66){ { -{ /* Inline phase#Phase#toolcontext (var_v) on */ -var68 = var_v->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on */ -if (unlikely(var68 == NULL)) { +{ /* Inline phase$Phase$toolcontext (var_v) on */ +var72 = var_v->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on */ +if (unlikely(var72 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 200); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 210); fatal_exit(1); } -var66 = var68; -RET_LABEL67:(void)0; +var70 = var72; +RET_LABEL71:(void)0; } } -if (unlikely(varonce69==NULL)) { -var70 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce71!=NULL)) { -var72 = varonce71; -} else { -var73 = "FFI Error: extern type conflict in `"; -var74 = core__flat___NativeString___to_s_full(var73, 36l, 36l); -var72 = var74; -varonce71 = var72; -} -((struct instance_core__NativeArray*)var70)->values[0]=var72; +if (unlikely(varonce73==NULL)) { +var74 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); if (likely(varonce75!=NULL)) { var76 = varonce75; } else { -var77 = "`."; -var78 = core__flat___NativeString___to_s_full(var77, 2l, 2l); +var77 = "FFI Error: extern type conflict in `"; +var79 = (val*)(36l<<2|1); +var80 = (val*)(36l<<2|1); +var81 = (val*)((long)(0)<<2|3); +var82 = (val*)((long)(0)<<2|3); +var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82); var76 = var78; varonce75 = var76; } -((struct instance_core__NativeArray*)var70)->values[2]=var76; +((struct instance_core__NativeArray*)var74)->values[0]=var76; +if (likely(varonce83!=NULL)) { +var84 = varonce83; +} else { +var85 = "`."; +var87 = (val*)(2l<<2|1); +var88 = (val*)(2l<<2|1); +var89 = (val*)((long)(0)<<2|3); +var90 = (val*)((long)(0)<<2|3); +var86 = core__flat___CString___to_s_unsafe(var85, var87, var88, var89, var90); +var84 = var86; +varonce83 = var84; +} +((struct instance_core__NativeArray*)var74)->values[2]=var84; } else { -var70 = varonce69; -varonce69 = NULL; +var74 = varonce73; +varonce73 = NULL; } { -var79 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on */ +var91 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on */ } -((struct instance_core__NativeArray*)var70)->values[1]=var79; +((struct instance_core__NativeArray*)var74)->values[1]=var91; { -var80 = ((val*(*)(val* self))(var70->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var70); /* native_to_s on */ +var92 = ((val*(*)(val* self))(var74->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var74); /* native_to_s on */ } -varonce69 = var70; +varonce73 = var74; { -var81 = nitc___nitc__ToolContext___error(var66, ((val*)NULL), var80); +var93 = nitc___nitc__ToolContext___error(var70, ((val*)NULL), var92); } var = ((val*)NULL); goto RET_LABEL; @@ -818,28 +898,28 @@ goto RET_LABEL; } } else { } -BREAK_label61: (void)0; +BREAK_label65: (void)0; { -((void(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_46); /* next on */ +((void(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_50); /* next on */ } } BREAK_label: (void)0; { -((void(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_46); /* finish on */ +((void(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_50); /* finish on */ } var_ftype = var_ftype_b; } else { } { -{ /* Inline extern_classes#MClass#ftype_cache= (self,var_ftype) on */ +{ /* Inline extern_classes$MClass$ftype_cache= (self,var_ftype) on */ self->attrs[COLOR_nitc__extern_classes__MClass___ftype_cache].val = var_ftype; /* _ftype_cache on */ -RET_LABEL82:(void)0; +RET_LABEL94:(void)0; } } { -{ /* Inline extern_classes#MClass#ftype_computed= (self,1) on */ +{ /* Inline extern_classes$MClass$ftype_computed= (self,1) on */ self->attrs[COLOR_nitc__extern_classes__MClass___ftype_computed].s = 1; /* _ftype_computed on */ -RET_LABEL83:(void)0; +RET_LABEL95:(void)0; } } var = var_ftype;