-{
-{ /* Inline kernel#Int#+ (var_len,var9) on <var_len:Int> */
-/* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
-/* <var9:Int> isa OTHER */
-var15 = 1; /* easy <var9:Int> isa OTHER*/
-if (unlikely(!var15)) {
-var_class_name18 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var19 = var_len + var9;
-var13 = var19;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
-}
-}
-var_len = var13;
-} else {
-goto BREAK_label;
-}
-}
-BREAK_label: (void)0;
-{
-core___core__FileReader___core__stream__Stream__close(var_s); /* Direct call file#FileReader#close on <var_s:FileReader>*/
-}
-var20 = NEW_nitc__SourceFile(&type_nitc__SourceFile);
-if (likely(varonce!=NULL)) {
-var21 = varonce;
-} else {
-var22 = "\n";
-var23 = core__flat___NativeString___to_s_full(var22, 1l, 1l);
-var21 = var23;
-varonce = var21;
-}
-{
-var24 = core__abstract_text___Collection___join(var_lines, var21);
-}
-{
-nitc___nitc__SourceFile___from_string(var20, var_filepath, var24); /* Direct call location#SourceFile#from_string on <var20:SourceFile>*/
-}
-var_source = var20;
-{
-{ /* Inline location#SourceFile#line_starts (var_source) on <var_source:SourceFile> */
-var27 = var_source->attrs[COLOR_nitc__location__SourceFile___line_starts].val; /* _line_starts on <var_source:SourceFile> */
-if (unlikely(var27 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__location, 46);
-fatal_exit(1);
-}
-var25 = var27;
-RET_LABEL26:(void)0;
-}
-}
-{
-core___core__Array___core__abstract_collection__SimpleCollection__add_all(var25, var_line_starts); /* Direct call array#Array#add_all on <var25:Array[Int]>*/
-}
-var28 = NEW_nitc__MDoc(&type_nitc__MDoc);
-var29 = NEW_nitc__Location(&type_nitc__Location);
-{
-{ /* Inline array#AbstractArrayRead#length (var_lines) on <var_lines:Array[String]> */
-var32 = var_lines->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_lines:Array[String]> */
-var30 = var32;
-RET_LABEL31:(void)0;
-}
-}
-{
-((void(*)(val* self, val* p0))(var29->class->vft[COLOR_nitc__location__Location__file_61d]))(var29, var_source); /* file= on <var29:Location>*/
-}
-{
-((void(*)(val* self, long p0))(var29->class->vft[COLOR_nitc__location__Location__line_start_61d]))(var29, 1l); /* line_start= on <var29:Location>*/
-}
-{
-((void(*)(val* self, long p0))(var29->class->vft[COLOR_nitc__location__Location__line_end_61d]))(var29, var30); /* line_end= on <var29:Location>*/
-}
-{
-((void(*)(val* self, long p0))(var29->class->vft[COLOR_nitc__location__Location__column_start_61d]))(var29, 0l); /* column_start= on <var29:Location>*/
-}
-{
-((void(*)(val* self, long p0))(var29->class->vft[COLOR_nitc__location__Location__column_end_61d]))(var29, 0l); /* column_end= on <var29:Location>*/
-}
-{
-((void(*)(val* self))(var29->class->vft[COLOR_core__kernel__Object__init]))(var29); /* init on <var29:Location>*/
-}
-{
-((void(*)(val* self, val* p0))(var28->class->vft[COLOR_nitc__mdoc__MDoc__location_61d]))(var28, var29); /* location= on <var28:MDoc>*/
-}
-{
-((void(*)(val* self))(var28->class->vft[COLOR_core__kernel__Object__init]))(var28); /* init on <var28:MDoc>*/
-}
-var_mdoc = var28;
-{
-{ /* Inline mdoc#MDoc#content (var_mdoc) on <var_mdoc:MDoc> */
-var35 = var_mdoc->attrs[COLOR_nitc__mdoc__MDoc___content].val; /* _content on <var_mdoc:MDoc> */
-if (unlikely(var35 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mdoc, 23);
-fatal_exit(1);
-}
-var33 = var35;
-RET_LABEL34:(void)0;
-}
-}
-{
-core___core__Array___core__abstract_collection__SimpleCollection__add_all(var33, var_lines); /* Direct call array#Array#add_all on <var33:Array[String]>*/
-}
-var = var_mdoc;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method loader#ModelBuilder#scan_group for (self: ModelBuilder, MGroup) */
-void nitc__loader___ModelBuilder___scan_group(val* self, val* p0) {
-val* var_mgroup /* var mgroup: MGroup */;
-short int var /* : Bool */;
-short int var2 /* : Bool */;
-val* var4 /* : nullable String */;
-val* var6 /* : nullable String */;
-val* var_p /* var p: nullable String */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
-val* var9 /* : Array[String] */;
-val* var_files /* var files: Array[String] */;
-val* var10 /* : Sys */;
-val* var11 /* : Comparator */;
-val* var_ /* var : Array[String] */;
-val* var12 /* : IndexedIterator[nullable Object] */;
-val* var_13 /* var : IndexedIterator[String] */;
-short int var14 /* : Bool */;
-val* var15 /* : nullable Object */;
-val* var_f /* var f: String */;
-val* var16 /* : String */;
-val* var_fp /* var fp: String */;
-val* var17 /* : nullable MGroup */;
-val* var_g /* var g: nullable MGroup */;
-short int var18 /* : Bool */;
-short int var19 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var21 /* : Bool */;
-short int var23 /* : Bool */;
-val* var24 /* : nullable MModule */;
-val* var25 /* : MPackage */;
-val* var27 /* : MPackage */;
-val* var28 /* : MPackage */;
-val* var30 /* : MPackage */;
-short int var31 /* : Bool */;
-short int var33 /* : Bool */;
-short int var35 /* : Bool */;
-var_mgroup = p0;
-{
-{ /* Inline loader#MGroup#scanned (var_mgroup) on <var_mgroup:MGroup> */
-var2 = var_mgroup->attrs[COLOR_nitc__loader__MGroup___scanned].s; /* _scanned on <var_mgroup:MGroup> */
-var = var2;
-RET_LABEL1:(void)0;
-}
-}
-if (var){
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline loader#MGroup#scanned= (var_mgroup,1) on <var_mgroup:MGroup> */
-var_mgroup->attrs[COLOR_nitc__loader__MGroup___scanned].s = 1; /* _scanned on <var_mgroup:MGroup> */
-RET_LABEL3:(void)0;
-}
-}
-{
-{ /* Inline mpackage#MGroup#filepath (var_mgroup) on <var_mgroup:MGroup> */
-var6 = var_mgroup->attrs[COLOR_nitc__mpackage__MGroup___filepath].val; /* _filepath on <var_mgroup:MGroup> */
-var4 = var6;
-RET_LABEL5:(void)0;
-}
-}
-var_p = var4;
-if (var_p == NULL) {
-var7 = 1; /* is null */
-} else {
-var7 = 0; /* arg is null but recv is not */
-}
-if (0) {
-var8 = ((short int(*)(val* self, val* p0))(var_p->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_p, ((val*)NULL)); /* == on <var_p:nullable String>*/
-var7 = var8;
-}
-if (var7){
-goto RET_LABEL;
-} else {
-}
-{
-var9 = core__file___String___files(var_p);
-}
-var_files = var9;
-var10 = glob_sys;
-{
-var11 = core__abstract_text___Sys___alpha_comparator(var10);
-}
-{
-core___core__Comparator___sort(var11, var_files); /* Direct call sorter#Comparator#sort on <var11:Comparator>*/
-}
-var_ = var_files;
-{
-var12 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_13 = var12;
-for(;;) {
-{
-var14 = ((short int(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_13); /* is_ok on <var_13:IndexedIterator[String]>*/
-}
-if (var14){
-} else {
-goto BREAK_label;
-}
-{
-var15 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_13); /* item on <var_13:IndexedIterator[String]>*/
-}
-var_f = var15;
-{
-var16 = core__file___String____47d(var_p, var_f);
-}
-var_fp = var16;
-{
-var17 = nitc__loader___ModelBuilder___identify_group(self, var_fp);
-}
-var_g = var17;
-if (var_g == NULL) {
-var18 = 1; /* is null */
-} else {
-var18 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_g,((val*)NULL)) on <var_g:nullable MGroup> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_g,var_other) on <var_g:nullable MGroup(MGroup)> */
-var23 = var_g == var_other;
-var21 = var23;
-goto RET_LABEL22;
-RET_LABEL22:(void)0;
-}
-}
-var19 = var21;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
-}
-var18 = var19;
-}
-if (var18){
-{
-var24 = nitc__loader___ModelBuilder___identify_module(self, var_fp);
-}
-} else {
-{
-{ /* Inline mpackage#MGroup#mpackage (var_g) on <var_g:nullable MGroup(MGroup)> */
-var27 = var_g->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_g:nullable MGroup(MGroup)> */
-if (unlikely(var27 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
-fatal_exit(1);
-}
-var25 = var27;
-RET_LABEL26:(void)0;
-}
-}
-{
-{ /* Inline mpackage#MGroup#mpackage (var_mgroup) on <var_mgroup:MGroup> */
-var30 = var_mgroup->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_mgroup:MGroup> */
-if (unlikely(var30 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
-fatal_exit(1);
-}
-var28 = var30;
-RET_LABEL29:(void)0;
-}
-}
-{
-{ /* Inline kernel#Object#== (var25,var28) on <var25:MPackage> */
-var_other = var28;
-{
-{ /* Inline kernel#Object#is_same_instance (var25,var_other) on <var25:MPackage> */
-var35 = var25 == var_other;
-var33 = var35;
-goto RET_LABEL34;
-RET_LABEL34:(void)0;
-}
-}
-var31 = var33;
-goto RET_LABEL32;
-RET_LABEL32:(void)0;
-}
-}
-if (var31){
-{
-nitc__loader___ModelBuilder___scan_group(self, var_g); /* Direct call loader#ModelBuilder#scan_group on <self:ModelBuilder>*/
-}
-} else {
-}
-}
-{
-((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_13); /* next on <var_13:IndexedIterator[String]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_13); /* finish on <var_13:IndexedIterator[String]>*/
-}
-RET_LABEL:;
-}
-/* method loader#ModelBuilder#module_absolute_path for (self: ModelBuilder, String): String */
-val* nitc__loader___ModelBuilder___module_absolute_path(val* self, val* p0) {
-val* var /* : String */;
-val* var_path /* var path: String */;
-val* var1 /* : String */;
-var_path = p0;
-{
-var1 = core__file___String___realpath(var_path);
-}
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method loader#ModelBuilder#load_module_ast for (self: ModelBuilder, String): nullable AModule */
-val* nitc__loader___ModelBuilder___load_module_ast(val* self, val* p0) {
-val* var /* : nullable AModule */;
-val* var_filename /* var filename: String */;
-static val* varonce;
-val* var1 /* : String */;
-char* var2 /* : NativeString */;
-val* var3 /* : String */;
-short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-val* var6 /* : ToolContext */;
-val* var8 /* : ToolContext */;
-val* var10 /* : NativeArray[String] */;
-static val* varonce9;
-static val* varonce11;
-val* var12 /* : String */;
-char* var13 /* : NativeString */;
-val* var14 /* : String */;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-val* var18 /* : String */;
-val* var19 /* : String */;
-val* var20 /* : Message */;
-short int var21 /* : Bool */;
-short int var22 /* : Bool */;
-val* var23 /* : ToolContext */;
-val* var25 /* : ToolContext */;
-val* var27 /* : NativeArray[String] */;
-static val* varonce26;
-static val* varonce28;
-val* var29 /* : String */;
-char* var30 /* : NativeString */;
-val* var31 /* : String */;
-static val* varonce32;
-val* var33 /* : String */;
-char* var34 /* : NativeString */;
-val* var35 /* : String */;
-val* var36 /* : String */;
-val* var37 /* : Message */;
-val* var38 /* : ToolContext */;
-val* var40 /* : ToolContext */;
-val* var42 /* : NativeArray[String] */;
-static val* varonce41;
-static val* varonce43;
-val* var44 /* : String */;
-char* var45 /* : NativeString */;
-val* var46 /* : String */;
-val* var47 /* : String */;
-val* var48 /* : FileReader */;
-val* var_file /* var file: FileReader */;
-val* var49 /* : Lexer */;
-val* var50 /* : SourceFile */;
-val* var_lexer /* var lexer: Lexer */;
-val* var51 /* : Parser */;
-val* var_parser /* var parser: Parser */;
-val* var52 /* : Start */;
-val* var_tree /* var tree: Start */;
-val* var53 /* : nullable AModule */;
-val* var55 /* : nullable AModule */;
-val* var_nmodule /* var nmodule: nullable AModule */;
-short int var56 /* : Bool */;
-short int var57 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var59 /* : Bool */;
-short int var61 /* : Bool */;
-val* var62 /* : EOF */;
-val* var64 /* : EOF */;
-val* var_neof /* var neof: EOF */;
-short int var65 /* : Bool */;
-int cltype;
-int idtype;
-val* var66 /* : String */;
-val* var68 /* : String */;
-var_filename = p0;
-if (likely(varonce!=NULL)) {
-var1 = varonce;
-} else {
-var2 = ".nit";
-var3 = core__flat___NativeString___to_s_full(var2, 4l, 4l);
-var1 = var3;
-varonce = var1;
-}
-{
-var4 = core___core__Text___has_suffix(var_filename, var1);
-}
-var5 = !var4;
-if (var5){
-{
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
-var8 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
-if (unlikely(var8 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
-fatal_exit(1);
-}
-var6 = var8;
-RET_LABEL7:(void)0;
-}
-}
-if (unlikely(varonce9==NULL)) {
-var10 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce11!=NULL)) {
-var12 = varonce11;
-} else {
-var13 = "Error: file `";
-var14 = core__flat___NativeString___to_s_full(var13, 13l, 13l);
-var12 = var14;
-varonce11 = var12;
-}
-((struct instance_core__NativeArray*)var10)->values[0]=var12;
-if (likely(varonce15!=NULL)) {
-var16 = varonce15;
-} else {
-var17 = "` is not a valid nit module.";
-var18 = core__flat___NativeString___to_s_full(var17, 28l, 28l);
-var16 = var18;
-varonce15 = var16;
-}
-((struct instance_core__NativeArray*)var10)->values[2]=var16;
-} else {
-var10 = varonce9;
-varonce9 = NULL;
-}
-((struct instance_core__NativeArray*)var10)->values[1]=var_filename;
-{
-var19 = ((val*(*)(val* self))(var10->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var10); /* native_to_s on <var10:NativeArray[String]>*/
-}
-varonce9 = var10;
-{
-var20 = nitc___nitc__ToolContext___error(var6, ((val*)NULL), var19);
-}
-var = ((val*)NULL);
-goto RET_LABEL;
-} else {
-}
-{
-var21 = core__file___String___file_exists(var_filename);
-}
-var22 = !var21;
-if (var22){
-{
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
-var25 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
-if (unlikely(var25 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
-fatal_exit(1);
-}
-var23 = var25;
-RET_LABEL24:(void)0;
-}
-}
-if (unlikely(varonce26==NULL)) {
-var27 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce28!=NULL)) {
-var29 = varonce28;
-} else {
-var30 = "Error: file `";
-var31 = core__flat___NativeString___to_s_full(var30, 13l, 13l);
-var29 = var31;
-varonce28 = var29;
-}
-((struct instance_core__NativeArray*)var27)->values[0]=var29;
-if (likely(varonce32!=NULL)) {
-var33 = varonce32;
-} else {
-var34 = "` not found.";
-var35 = core__flat___NativeString___to_s_full(var34, 12l, 12l);
-var33 = var35;
-varonce32 = var33;
-}
-((struct instance_core__NativeArray*)var27)->values[2]=var33;
-} else {
-var27 = varonce26;
-varonce26 = NULL;
-}
-((struct instance_core__NativeArray*)var27)->values[1]=var_filename;
-{
-var36 = ((val*(*)(val* self))(var27->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var27); /* native_to_s on <var27:NativeArray[String]>*/
-}
-varonce26 = var27;
-{
-var37 = nitc___nitc__ToolContext___error(var23, ((val*)NULL), var36);
-}
-var = ((val*)NULL);
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
-var40 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
-if (unlikely(var40 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
-fatal_exit(1);
-}
-var38 = var40;
-RET_LABEL39:(void)0;
-}
-}
-if (unlikely(varonce41==NULL)) {
-var42 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce43!=NULL)) {
-var44 = varonce43;
-} else {
-var45 = "load module ";
-var46 = core__flat___NativeString___to_s_full(var45, 12l, 12l);
-var44 = var46;
-varonce43 = var44;
-}
-((struct instance_core__NativeArray*)var42)->values[0]=var44;
-} else {
-var42 = varonce41;
-varonce41 = NULL;
-}
-((struct instance_core__NativeArray*)var42)->values[1]=var_filename;
-{
-var47 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var42); /* native_to_s on <var42:NativeArray[String]>*/
-}
-varonce41 = var42;
-{
-nitc___nitc__ToolContext___info(var38, var47, 2l); /* Direct call toolcontext#ToolContext#info on <var38:ToolContext>*/
-}
-var48 = NEW_core__FileReader(&type_core__FileReader);
-{
-core___core__FileReader___open(var48, var_filename); /* Direct call file#FileReader#open on <var48:FileReader>*/
-}
-var_file = var48;
-var49 = NEW_nitc__Lexer(&type_nitc__Lexer);
-var50 = NEW_nitc__SourceFile(&type_nitc__SourceFile);
-{
-((void(*)(val* self, val* p0))(var50->class->vft[COLOR_nitc__location__SourceFile__filename_61d]))(var50, var_filename); /* filename= on <var50:SourceFile>*/
-}
-{
-((void(*)(val* self, val* p0))(var50->class->vft[COLOR_nitc__location__SourceFile__stream_61d]))(var50, var_file); /* stream= on <var50:SourceFile>*/
-}
-{
-((void(*)(val* self))(var50->class->vft[COLOR_core__kernel__Object__init]))(var50); /* init on <var50:SourceFile>*/
-}
-{
-((void(*)(val* self, val* p0))(var49->class->vft[COLOR_nitc__lexer_work__Lexer__file_61d]))(var49, var50); /* file= on <var49:Lexer>*/
-}
-{
-((void(*)(val* self))(var49->class->vft[COLOR_core__kernel__Object__init]))(var49); /* init on <var49:Lexer>*/
-}
-var_lexer = var49;
-var51 = NEW_nitc__Parser(&type_nitc__Parser);
-{
-((void(*)(val* self, val* p0))(var51->class->vft[COLOR_nitc__parser_work__Parser__lexer_61d]))(var51, var_lexer); /* lexer= on <var51:Parser>*/
-}
-{
-((void(*)(val* self))(var51->class->vft[COLOR_core__kernel__Object__init]))(var51); /* init on <var51:Parser>*/
-}
-var_parser = var51;
-{
-var52 = nitc___nitc__Parser___parse(var_parser);
-}
-var_tree = var52;
-{
-core___core__FileReader___core__stream__Stream__close(var_file); /* Direct call file#FileReader#close on <var_file:FileReader>*/
-}
-{
-{ /* Inline parser_nodes#Start#n_base (var_tree) on <var_tree:Start> */
-var55 = var_tree->attrs[COLOR_nitc__parser_nodes__Start___n_base].val; /* _n_base on <var_tree:Start> */
-var53 = var55;
-RET_LABEL54:(void)0;
-}
-}
-var_nmodule = var53;
-if (var_nmodule == NULL) {
-var56 = 1; /* is null */
-} else {
-var56 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_nmodule,((val*)NULL)) on <var_nmodule:nullable AModule> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_nmodule,var_other) on <var_nmodule:nullable AModule(AModule)> */
-var61 = var_nmodule == var_other;
-var59 = var61;
-goto RET_LABEL60;
-RET_LABEL60:(void)0;
-}
-}
-var57 = var59;
-goto RET_LABEL58;
-RET_LABEL58:(void)0;
-}
-var56 = var57;
-}
-if (var56){
-{
-{ /* Inline parser_nodes#Start#n_eof (var_tree) on <var_tree:Start> */
-var64 = var_tree->attrs[COLOR_nitc__parser_nodes__Start___n_eof].val; /* _n_eof on <var_tree:Start> */
-if (unlikely(var64 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_eof");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2975);
-fatal_exit(1);
-}
-var62 = var64;
-RET_LABEL63:(void)0;
-}
-}
-var_neof = var62;
-/* <var_neof:EOF> isa AError */
-cltype = type_nitc__AError.color;
-idtype = type_nitc__AError.id;
-if(cltype >= var_neof->type->table_size) {
-var65 = 0;
-} else {
-var65 = var_neof->type->type_table[cltype] == idtype;
-}
-if (unlikely(!var65)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 599);
-fatal_exit(1);
-}
-{
-{ /* Inline lexer_work#AError#message (var_neof) on <var_neof:EOF(AError)> */
-var68 = var_neof->attrs[COLOR_nitc__lexer_work__AError___message].val; /* _message on <var_neof:EOF(AError)> */
-if (unlikely(var68 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__lexer_work, 50);
-fatal_exit(1);
-}
-var66 = var68;
-RET_LABEL67:(void)0;
-}
-}
-{
-nitc___nitc__ModelBuilder___error(self, var_neof, var66); /* Direct call modelbuilder_base#ModelBuilder#error on <self:ModelBuilder>*/
-}
-var = ((val*)NULL);
-goto RET_LABEL;
-} else {
-}
-var = var_nmodule;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method loader#ModelBuilder#load_module for (self: ModelBuilder, String): nullable AModule */
-val* nitc__loader___ModelBuilder___load_module(val* self, val* p0) {
-val* var /* : nullable AModule */;
-val* var_filename /* var filename: String */;
-val* var1 /* : nullable MModule */;
-val* var_mmodule /* var mmodule: nullable MModule */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var5 /* : Bool */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
-val* var9 /* : ToolContext */;
-val* var11 /* : ToolContext */;
-val* var12 /* : NativeArray[String] */;
-static val* varonce;
-static val* varonce13;
-val* var14 /* : String */;
-char* var15 /* : NativeString */;
-val* var16 /* : String */;
-static val* varonce17;
-val* var18 /* : String */;
-char* var19 /* : NativeString */;
-val* var20 /* : String */;
-val* var21 /* : String */;
-val* var22 /* : Message */;
-val* var23 /* : ToolContext */;
-val* var25 /* : ToolContext */;
-val* var27 /* : NativeArray[String] */;
-static val* varonce26;
-static val* varonce28;
-val* var29 /* : String */;
-char* var30 /* : NativeString */;
-val* var31 /* : String */;
-static val* varonce32;
-val* var33 /* : String */;
-char* var34 /* : NativeString */;
-val* var35 /* : String */;
-val* var36 /* : String */;
-val* var37 /* : Message */;
-val* var38 /* : nullable AModule */;
-var_filename = p0;
-{
-var1 = nitc__loader___ModelBuilder___identify_module(self, var_filename);
-}
-var_mmodule = var1;
-if (var_mmodule == NULL) {
-var2 = 1; /* is null */
-} else {
-var2 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* 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)> */
-var7 = var_mmodule == var_other;
-var5 = var7;
-goto RET_LABEL6;
-RET_LABEL6:(void)0;
-}
-}
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-var2 = var3;
-}
-if (var2){
-{
-var8 = core__file___String___file_exists(var_filename);
-}
-if (var8){
-{
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
-var11 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
-if (unlikely(var11 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
-fatal_exit(1);
-}
-var9 = var11;
-RET_LABEL10:(void)0;
-}
-}
-if (unlikely(varonce==NULL)) {
-var12 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce13!=NULL)) {
-var14 = varonce13;
-} else {
-var15 = "Error: `";
-var16 = core__flat___NativeString___to_s_full(var15, 8l, 8l);
-var14 = var16;
-varonce13 = var14;
-}
-((struct instance_core__NativeArray*)var12)->values[0]=var14;
-if (likely(varonce17!=NULL)) {
-var18 = varonce17;
-} else {
-var19 = "` is not a Nit source file.";
-var20 = core__flat___NativeString___to_s_full(var19, 27l, 27l);
-var18 = var20;
-varonce17 = var18;
-}
-((struct instance_core__NativeArray*)var12)->values[2]=var18;
-} else {
-var12 = varonce;
-varonce = NULL;
-}
-((struct instance_core__NativeArray*)var12)->values[1]=var_filename;
-{
-var21 = ((val*(*)(val* self))(var12->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
-}
-varonce = var12;
-{
-var22 = nitc___nitc__ToolContext___error(var9, ((val*)NULL), var21);
-}
-} else {
-{
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
-var25 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
-if (unlikely(var25 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
-fatal_exit(1);
-}
-var23 = var25;
-RET_LABEL24:(void)0;
-}
-}
-if (unlikely(varonce26==NULL)) {
-var27 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce28!=NULL)) {
-var29 = varonce28;
-} else {
-var30 = "Error: cannot find module `";
-var31 = core__flat___NativeString___to_s_full(var30, 27l, 27l);
-var29 = var31;
-varonce28 = var29;
-}
-((struct instance_core__NativeArray*)var27)->values[0]=var29;
-if (likely(varonce32!=NULL)) {
-var33 = varonce32;
-} else {
-var34 = "`.";
-var35 = core__flat___NativeString___to_s_full(var34, 2l, 2l);
-var33 = var35;
-varonce32 = var33;
-}
-((struct instance_core__NativeArray*)var27)->values[2]=var33;
-} else {
-var27 = varonce26;
-varonce26 = NULL;
-}
-((struct instance_core__NativeArray*)var27)->values[1]=var_filename;
-{
-var36 = ((val*(*)(val* self))(var27->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var27); /* native_to_s on <var27:NativeArray[String]>*/
-}
-varonce26 = var27;
-{
-var37 = nitc___nitc__ToolContext___error(var23, ((val*)NULL), var36);
-}
-}
-var = ((val*)NULL);
-goto RET_LABEL;
-} else {
-}
-{
-var38 = nitc__loader___MModule___load(var_mmodule, self);
-}
-var = var38;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method loader#ModelBuilder#build_a_mmodule for (self: ModelBuilder, nullable MGroup, AModule) */
-void nitc__loader___ModelBuilder___build_a_mmodule(val* self, val* p0, val* p1) {
-val* var_mgroup /* var mgroup: nullable MGroup */;
-val* var_nmodule /* var nmodule: AModule */;
-val* var /* : nullable MModule */;
-val* var2 /* : nullable MModule */;
-val* var_mmodule /* var mmodule: nullable MModule */;