Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__loader.sep.2.c
1 #include "nitc__loader.sep.0.h"
2 /* method loader$ModelBuilder$build_module_importation for (self: ModelBuilder, AModule) */
3 void nitc__loader___ModelBuilder___build_module_importation(val* self, val* p0) {
4 val* var_nmodule /* var nmodule: AModule */;
5 short int var /* : Bool */;
6 short int var2 /* : Bool */;
7 val* var4 /* : nullable MModule */;
8 val* var6 /* : nullable MModule */;
9 val* var_mmodule /* var mmodule: MModule */;
10 short int var_stdimport /* var stdimport: Bool */;
11 val* var7 /* : Array[MModule] */;
12 val* var_imported_modules /* var imported_modules: Array[MModule] */;
13 val* var8 /* : ANodes[AImport] */;
14 val* var10 /* : ANodes[AImport] */;
15 val* var_ /* var : ANodes[AImport] */;
16 val* var11 /* : Iterator[ANode] */;
17 val* var_12 /* var : Iterator[AImport] */;
18 short int var13 /* : Bool */;
19 val* var14 /* : nullable Object */;
20 val* var_aimport /* var aimport: AImport */;
21 static val* varonce;
22 val* var15 /* : String */;
23 char* var16 /* : CString */;
24 val* var17 /* : String */;
25 val* var18 /* : nullable Int */;
26 val* var19 /* : nullable Int */;
27 val* var20 /* : nullable Bool */;
28 val* var21 /* : nullable Bool */;
29 val* var22 /* : Array[AAnnotation] */;
30 val* var_atconditionals /* var atconditionals: Array[AAnnotation] */;
31 short int var23 /* : Bool */;
32 short int var25 /* : Bool */;
33 int cltype;
34 int idtype;
35 short int var26 /* : Bool */;
36 val* var27 /* : AModuleName */;
37 val* var29 /* : AModuleName */;
38 val* var30 /* : nullable MGroup */;
39 val* var32 /* : nullable MGroup */;
40 val* var33 /* : nullable MModule */;
41 val* var_sup /* var sup: nullable MModule */;
42 short int var34 /* : Bool */;
43 short int var35 /* : Bool */;
44 val* var_other /* var other: nullable Object */;
45 short int var37 /* : Bool */;
46 short int var39 /* : Bool */;
47 val* var42 /* : nullable AModule */;
48 val* var_ast /* var ast: nullable AModule */;
49 short int var43 /* : Bool */;
50 short int var44 /* : Bool */;
51 short int var46 /* : Bool */;
52 short int var48 /* : Bool */;
53 val* var52 /* : AVisibility */;
54 val* var54 /* : AVisibility */;
55 val* var55 /* : MVisibility */;
56 val* var_mvisibility /* var mvisibility: MVisibility */;
57 val* var56 /* : Sys */;
58 val* var57 /* : MVisibility */;
59 short int var58 /* : Bool */;
60 short int var60 /* : Bool */;
61 short int var62 /* : Bool */;
62 val* var64 /* : AVisibility */;
63 val* var66 /* : AVisibility */;
64 static val* varonce67;
65 val* var68 /* : String */;
66 char* var69 /* : CString */;
67 val* var70 /* : String */;
68 val* var71 /* : nullable Int */;
69 val* var72 /* : nullable Int */;
70 val* var73 /* : nullable Bool */;
71 val* var74 /* : nullable Bool */;
72 short int var77 /* : Bool */;
73 short int var79 /* : Bool */;
74 short int var81 /* : Bool */;
75 val* var82 /* : AModuleName */;
76 val* var84 /* : AModuleName */;
77 val* var86 /* : NativeArray[String] */;
78 static val* varonce85;
79 static val* varonce87;
80 val* var88 /* : String */;
81 char* var89 /* : CString */;
82 val* var90 /* : String */;
83 val* var91 /* : nullable Int */;
84 val* var92 /* : nullable Int */;
85 val* var93 /* : nullable Bool */;
86 val* var94 /* : nullable Bool */;
87 static val* varonce95;
88 val* var96 /* : String */;
89 char* var97 /* : CString */;
90 val* var98 /* : String */;
91 val* var99 /* : nullable Int */;
92 val* var100 /* : nullable Int */;
93 val* var101 /* : nullable Bool */;
94 val* var102 /* : nullable Bool */;
95 val* var103 /* : String */;
96 val* var104 /* : String */;
97 val* var107 /* : POSetElement[MModule] */;
98 val* var109 /* : POSetElement[MModule] */;
99 short int var110 /* : Bool */;
100 val* var111 /* : AModuleName */;
101 val* var113 /* : AModuleName */;
102 val* var115 /* : NativeArray[String] */;
103 static val* varonce114;
104 static val* varonce116;
105 val* var117 /* : String */;
106 char* var118 /* : CString */;
107 val* var119 /* : String */;
108 val* var120 /* : nullable Int */;
109 val* var121 /* : nullable Int */;
110 val* var122 /* : nullable Bool */;
111 val* var123 /* : nullable Bool */;
112 static val* varonce124;
113 val* var125 /* : String */;
114 char* var126 /* : CString */;
115 val* var127 /* : String */;
116 val* var128 /* : nullable Int */;
117 val* var129 /* : nullable Int */;
118 val* var130 /* : nullable Bool */;
119 val* var131 /* : nullable Bool */;
120 static val* varonce132;
121 val* var133 /* : String */;
122 char* var134 /* : CString */;
123 val* var135 /* : String */;
124 val* var136 /* : nullable Int */;
125 val* var137 /* : nullable Int */;
126 val* var138 /* : nullable Bool */;
127 val* var139 /* : nullable Bool */;
128 val* var140 /* : String */;
129 val* var141 /* : String */;
130 val* var142 /* : String */;
131 static val* varonce145;
132 val* var146 /* : String */;
133 char* var147 /* : CString */;
134 val* var148 /* : String */;
135 val* var149 /* : nullable Int */;
136 val* var150 /* : nullable Int */;
137 val* var151 /* : nullable Bool */;
138 val* var152 /* : nullable Bool */;
139 val* var_mod_name /* var mod_name: String */;
140 val* var153 /* : nullable MModule */;
141 val* var_sup154 /* var sup: nullable MModule */;
142 short int var155 /* : Bool */;
143 short int var156 /* : Bool */;
144 short int var158 /* : Bool */;
145 short int var160 /* : Bool */;
146 val* var163 /* : Sys */;
147 val* var164 /* : MVisibility */;
148 val* var165 /* : ANodes[AImport] */;
149 val* var167 /* : ANodes[AImport] */;
150 val* var_168 /* var : ANodes[AImport] */;
151 val* var169 /* : Iterator[ANode] */;
152 val* var_170 /* var : Iterator[AImport] */;
153 short int var171 /* : Bool */;
154 val* var173 /* : nullable Object */;
155 val* var_aimport174 /* var aimport: AImport */;
156 short int var175 /* : Bool */;
157 int cltype176;
158 int idtype177;
159 short int var178 /* : Bool */;
160 static val* varonce180;
161 val* var181 /* : String */;
162 char* var182 /* : CString */;
163 val* var183 /* : String */;
164 val* var184 /* : nullable Int */;
165 val* var185 /* : nullable Int */;
166 val* var186 /* : nullable Bool */;
167 val* var187 /* : nullable Bool */;
168 val* var188 /* : Array[AAnnotation] */;
169 val* var_atconditionals189 /* var atconditionals: Array[AAnnotation] */;
170 short int var190 /* : Bool */;
171 val* var191 /* : AModuleName */;
172 val* var193 /* : AModuleName */;
173 val* var194 /* : nullable MGroup */;
174 val* var196 /* : nullable MGroup */;
175 val* var197 /* : nullable MModule */;
176 val* var_suppath /* var suppath: nullable MModule */;
177 short int var198 /* : Bool */;
178 short int var199 /* : Bool */;
179 short int var201 /* : Bool */;
180 short int var203 /* : Bool */;
181 val* var_204 /* var : Array[AAnnotation] */;
182 val* var205 /* : IndexedIterator[nullable Object] */;
183 val* var_206 /* var : IndexedIterator[AAnnotation] */;
184 short int var207 /* : Bool */;
185 val* var209 /* : nullable Object */;
186 val* var_atconditional /* var atconditional: AAnnotation */;
187 val* var210 /* : ANodes[AExpr] */;
188 val* var212 /* : ANodes[AExpr] */;
189 val* var_nargs /* var nargs: ANodes[AExpr] */;
190 short int var213 /* : Bool */;
191 static val* varonce214;
192 val* var215 /* : String */;
193 char* var216 /* : CString */;
194 val* var217 /* : String */;
195 val* var218 /* : nullable Int */;
196 val* var219 /* : nullable Int */;
197 val* var220 /* : nullable Bool */;
198 val* var221 /* : nullable Bool */;
199 val* var223 /* : Array[MModule] */;
200 val* var_rule /* var rule: Array[MModule] */;
201 val* var_224 /* var : ANodes[AExpr] */;
202 val* var225 /* : Iterator[ANode] */;
203 val* var_226 /* var : Iterator[AExpr] */;
204 short int var227 /* : Bool */;
205 val* var229 /* : nullable Object */;
206 val* var_narg /* var narg: AExpr */;
207 val* var230 /* : nullable String */;
208 val* var_id /* var id: nullable String */;
209 short int var231 /* : Bool */;
210 short int var232 /* : Bool */;
211 static val* varonce233;
212 val* var234 /* : String */;
213 char* var235 /* : CString */;
214 val* var236 /* : String */;
215 val* var237 /* : nullable Int */;
216 val* var238 /* : nullable Int */;
217 val* var239 /* : nullable Bool */;
218 val* var240 /* : nullable Bool */;
219 val* var242 /* : nullable MGroup */;
220 val* var244 /* : nullable MGroup */;
221 val* var245 /* : nullable MModule */;
222 val* var_mp /* var mp: nullable MModule */;
223 short int var246 /* : Bool */;
224 short int var247 /* : Bool */;
225 short int var249 /* : Bool */;
226 short int var251 /* : Bool */;
227 val* var252 /* : Array[SequenceRead[MModule]] */;
228 val* var254 /* : Array[SequenceRead[MModule]] */;
229 val* var255 /* : ToolContext */;
230 val* var257 /* : ToolContext */;
231 val* var259 /* : NativeArray[String] */;
232 static val* varonce258;
233 static val* varonce260;
234 val* var261 /* : String */;
235 char* var262 /* : CString */;
236 val* var263 /* : String */;
237 val* var264 /* : nullable Int */;
238 val* var265 /* : nullable Int */;
239 val* var266 /* : nullable Bool */;
240 val* var267 /* : nullable Bool */;
241 val* var268 /* : String */;
242 val* var269 /* : POSetElement[MModule] */;
243 val* var271 /* : POSetElement[MModule] */;
244 val* var272 /* : Collection[nullable Object] */;
245 static val* varonce273;
246 val* var274 /* : String */;
247 char* var275 /* : CString */;
248 val* var276 /* : String */;
249 val* var277 /* : nullable Int */;
250 val* var278 /* : nullable Int */;
251 val* var279 /* : nullable Bool */;
252 val* var280 /* : nullable Bool */;
253 val* var281 /* : String */;
254 val* var282 /* : String */;
255 val* var283 /* : POSetElement[MModule] */;
256 val* var285 /* : POSetElement[MModule] */;
257 val* var286 /* : Collection[nullable Object] */;
258 val* var_287 /* var : Collection[MModule] */;
259 val* var288 /* : Iterator[nullable Object] */;
260 val* var_289 /* var : Iterator[MModule] */;
261 short int var290 /* : Bool */;
262 val* var292 /* : nullable Object */;
263 val* var_sup293 /* var sup: MModule */;
264 val* var294 /* : String */;
265 val* var296 /* : String */;
266 static val* varonce297;
267 val* var298 /* : String */;
268 char* var299 /* : CString */;
269 val* var300 /* : String */;
270 val* var301 /* : nullable Int */;
271 val* var302 /* : nullable Int */;
272 val* var303 /* : nullable Bool */;
273 val* var304 /* : nullable Bool */;
274 short int var305 /* : Bool */;
275 val* var306 /* : Sys */;
276 val* var307 /* : MVisibility */;
277 val* var308 /* : POSetElement[MModule] */;
278 val* var310 /* : POSetElement[MModule] */;
279 val* var311 /* : Collection[nullable Object] */;
280 val* var_directs /* var directs: Collection[MModule] */;
281 val* var312 /* : ANodes[AImport] */;
282 val* var314 /* : ANodes[AImport] */;
283 val* var_315 /* var : ANodes[AImport] */;
284 val* var316 /* : Iterator[ANode] */;
285 val* var_317 /* var : Iterator[AImport] */;
286 short int var318 /* : Bool */;
287 val* var320 /* : nullable Object */;
288 val* var_nim /* var nim: AImport */;
289 short int var321 /* : Bool */;
290 int cltype322;
291 int idtype323;
292 short int var324 /* : Bool */;
293 val* var326 /* : nullable MModule */;
294 val* var328 /* : nullable MModule */;
295 val* var_im /* var im: nullable MModule */;
296 short int var329 /* : Bool */;
297 short int var330 /* : Bool */;
298 short int var332 /* : Bool */;
299 short int var334 /* : Bool */;
300 short int var335 /* : Bool */;
301 var_nmodule = p0;
302 {
303 { /* Inline loader$AModule$is_importation_done (var_nmodule) on <var_nmodule:AModule> */
304 var2 = var_nmodule->attrs[COLOR_nitc__loader__AModule___is_importation_done].s; /* _is_importation_done on <var_nmodule:AModule> */
305 var = var2;
306 RET_LABEL1:(void)0;
307 }
308 }
309 if (var){
310 goto RET_LABEL;
311 } else {
312 }
313 {
314 { /* Inline loader$AModule$is_importation_done= (var_nmodule,1) on <var_nmodule:AModule> */
315 var_nmodule->attrs[COLOR_nitc__loader__AModule___is_importation_done].s = 1; /* _is_importation_done on <var_nmodule:AModule> */
316 RET_LABEL3:(void)0;
317 }
318 }
319 {
320 { /* Inline loader$AModule$mmodule (var_nmodule) on <var_nmodule:AModule> */
321 var6 = var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val; /* _mmodule on <var_nmodule:AModule> */
322 var4 = var6;
323 RET_LABEL5:(void)0;
324 }
325 }
326 if (unlikely(var4 == NULL)) {
327 if(catchStack.cursor >= 0){
328 longjmp(catchStack.envs[catchStack.cursor], 1);
329 }
330 PRINT_ERROR("Runtime error: %s", "Cast failed");
331 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 909);
332 fatal_exit(1);
333 }
334 var_mmodule = var4;
335 var_stdimport = 1;
336 var7 = NEW_core__Array(&type_core__Array__nitc__MModule);
337 {
338 core___core__Array___core__kernel__Object__init(var7); /* Direct call array$Array$init on <var7:Array[MModule]>*/
339 }
340 var_imported_modules = var7;
341 {
342 { /* Inline parser_nodes$AModule$n_imports (var_nmodule) on <var_nmodule:AModule> */
343 var10 = var_nmodule->attrs[COLOR_nitc__parser_nodes__AModule___n_imports].val; /* _n_imports on <var_nmodule:AModule> */
344 if (unlikely(var10 == NULL)) {
345 if(catchStack.cursor >= 0){
346 longjmp(catchStack.envs[catchStack.cursor], 1);
347 }
348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports");
349 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1119);
350 fatal_exit(1);
351 }
352 var8 = var10;
353 RET_LABEL9:(void)0;
354 }
355 }
356 var_ = var8;
357 {
358 var11 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
359 }
360 var_12 = var11;
361 for(;;) {
362 {
363 var13 = ((short int(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_12); /* is_ok on <var_12:Iterator[AImport]>*/
364 }
365 if (var13){
366 } else {
367 goto BREAK_label;
368 }
369 {
370 var14 = ((val*(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_12); /* item on <var_12:Iterator[AImport]>*/
371 }
372 var_aimport = var14;
373 if (likely(varonce!=NULL)) {
374 var15 = varonce;
375 } else {
376 var16 = "conditional";
377 var18 = (val*)(11l<<2|1);
378 var19 = (val*)(11l<<2|1);
379 var20 = (val*)((long)(0)<<2|3);
380 var21 = (val*)((long)(0)<<2|3);
381 var17 = core__flat___CString___to_s_unsafe(var16, var18, var19, var20, var21);
382 var15 = var17;
383 varonce = var15;
384 }
385 {
386 var22 = nitc___nitc__Prod___get_annotations(var_aimport, var15);
387 }
388 var_atconditionals = var22;
389 {
390 var23 = core___core__Collection___not_empty(var_atconditionals);
391 }
392 if (var23){
393 goto BREAK_label24;
394 } else {
395 }
396 var_stdimport = 0;
397 /* <var_aimport:AImport> isa AStdImport */
398 cltype = type_nitc__AStdImport.color;
399 idtype = type_nitc__AStdImport.id;
400 if(cltype >= var_aimport->type->table_size) {
401 var25 = 0;
402 } else {
403 var25 = var_aimport->type->type_table[cltype] == idtype;
404 }
405 var26 = !var25;
406 if (var26){
407 goto BREAK_label24;
408 } else {
409 }
410 {
411 { /* Inline parser_nodes$AStdImport$n_name (var_aimport) on <var_aimport:AImport(AStdImport)> */
412 var29 = var_aimport->attrs[COLOR_nitc__parser_nodes__AStdImport___n_name].val; /* _n_name on <var_aimport:AImport(AStdImport)> */
413 if (unlikely(var29 == NULL)) {
414 if(catchStack.cursor >= 0){
415 longjmp(catchStack.envs[catchStack.cursor], 1);
416 }
417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
418 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1167);
419 fatal_exit(1);
420 }
421 var27 = var29;
422 RET_LABEL28:(void)0;
423 }
424 }
425 {
426 { /* Inline mmodule$MModule$mgroup (var_mmodule) on <var_mmodule:MModule> */
427 var32 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <var_mmodule:MModule> */
428 var30 = var32;
429 RET_LABEL31:(void)0;
430 }
431 }
432 {
433 var33 = nitc__loader___ModelBuilder___seach_module_by_amodule_name(self, var27, var30);
434 }
435 var_sup = var33;
436 if (var_sup == NULL) {
437 var34 = 1; /* is null */
438 } else {
439 var34 = 0; /* arg is null but recv is not */
440 }
441 if (0) {
442 { /* Inline kernel$Object$== (var_sup,((val*)NULL)) on <var_sup:nullable MModule> */
443 var_other = ((val*)NULL);
444 {
445 { /* Inline kernel$Object$is_same_instance (var_sup,var_other) on <var_sup:nullable MModule(MModule)> */
446 var39 = var_sup == var_other;
447 var37 = var39;
448 goto RET_LABEL38;
449 RET_LABEL38:(void)0;
450 }
451 }
452 var35 = var37;
453 goto RET_LABEL36;
454 RET_LABEL36:(void)0;
455 }
456 var34 = var35;
457 }
458 if (var34){
459 {
460 { /* Inline model_base$MEntity$is_broken= (var_mmodule,1) on <var_mmodule:MModule> */
461 var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mmodule:MModule> */
462 RET_LABEL40:(void)0;
463 }
464 }
465 {
466 { /* Inline loader$AModule$mmodule= (var_nmodule,((val*)NULL)) on <var_nmodule:AModule> */
467 var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val = ((val*)NULL); /* _mmodule on <var_nmodule:AModule> */
468 RET_LABEL41:(void)0;
469 }
470 }
471 goto BREAK_label24;
472 } else {
473 }
474 {
475 var42 = nitc__loader___MModule___load(var_sup, self);
476 }
477 var_ast = var42;
478 if (var_ast == NULL) {
479 var43 = 1; /* is null */
480 } else {
481 var43 = 0; /* arg is null but recv is not */
482 }
483 if (0) {
484 { /* Inline kernel$Object$== (var_ast,((val*)NULL)) on <var_ast:nullable AModule> */
485 var_other = ((val*)NULL);
486 {
487 { /* Inline kernel$Object$is_same_instance (var_ast,var_other) on <var_ast:nullable AModule(AModule)> */
488 var48 = var_ast == var_other;
489 var46 = var48;
490 goto RET_LABEL47;
491 RET_LABEL47:(void)0;
492 }
493 }
494 var44 = var46;
495 goto RET_LABEL45;
496 RET_LABEL45:(void)0;
497 }
498 var43 = var44;
499 }
500 if (var43){
501 {
502 { /* Inline model_base$MEntity$is_broken= (var_mmodule,1) on <var_mmodule:MModule> */
503 var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mmodule:MModule> */
504 RET_LABEL49:(void)0;
505 }
506 }
507 {
508 { /* Inline loader$AModule$mmodule= (var_nmodule,((val*)NULL)) on <var_nmodule:AModule> */
509 var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val = ((val*)NULL); /* _mmodule on <var_nmodule:AModule> */
510 RET_LABEL50:(void)0;
511 }
512 }
513 goto BREAK_label24;
514 } else {
515 }
516 {
517 { /* Inline loader$AStdImport$mmodule= (var_aimport,var_sup) on <var_aimport:AImport(AStdImport)> */
518 var_aimport->attrs[COLOR_nitc__loader__AStdImport___mmodule].val = var_sup; /* _mmodule on <var_aimport:AImport(AStdImport)> */
519 RET_LABEL51:(void)0;
520 }
521 }
522 {
523 core___core__Array___core__abstract_collection__SimpleCollection__add(var_imported_modules, var_sup); /* Direct call array$Array$add on <var_imported_modules:Array[MModule]>*/
524 }
525 {
526 { /* Inline parser_nodes$AImport$n_visibility (var_aimport) on <var_aimport:AImport(AStdImport)> */
527 var54 = var_aimport->attrs[COLOR_nitc__parser_nodes__AImport___n_visibility].val; /* _n_visibility on <var_aimport:AImport(AStdImport)> */
528 if (unlikely(var54 == NULL)) {
529 if(catchStack.cursor >= 0){
530 longjmp(catchStack.envs[catchStack.cursor], 1);
531 }
532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_visibility");
533 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1157);
534 fatal_exit(1);
535 }
536 var52 = var54;
537 RET_LABEL53:(void)0;
538 }
539 }
540 {
541 var55 = ((val*(*)(val* self))(var52->class->vft[COLOR_nitc__modelbuilder_base__AVisibility__mvisibility]))(var52); /* mvisibility on <var52:AVisibility>*/
542 }
543 var_mvisibility = var55;
544 var56 = glob_sys;
545 {
546 var57 = nitc__model_base___core__Sys___protected_visibility(var56);
547 }
548 {
549 { /* Inline kernel$Object$== (var_mvisibility,var57) on <var_mvisibility:MVisibility> */
550 var_other = var57;
551 {
552 { /* Inline kernel$Object$is_same_instance (var_mvisibility,var_other) on <var_mvisibility:MVisibility> */
553 var62 = var_mvisibility == var_other;
554 var60 = var62;
555 goto RET_LABEL61;
556 RET_LABEL61:(void)0;
557 }
558 }
559 var58 = var60;
560 goto RET_LABEL59;
561 RET_LABEL59:(void)0;
562 }
563 }
564 if (var58){
565 {
566 { /* Inline model_base$MEntity$is_broken= (var_mmodule,1) on <var_mmodule:MModule> */
567 var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mmodule:MModule> */
568 RET_LABEL63:(void)0;
569 }
570 }
571 {
572 { /* Inline parser_nodes$AImport$n_visibility (var_aimport) on <var_aimport:AImport(AStdImport)> */
573 var66 = var_aimport->attrs[COLOR_nitc__parser_nodes__AImport___n_visibility].val; /* _n_visibility on <var_aimport:AImport(AStdImport)> */
574 if (unlikely(var66 == NULL)) {
575 if(catchStack.cursor >= 0){
576 longjmp(catchStack.envs[catchStack.cursor], 1);
577 }
578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_visibility");
579 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1157);
580 fatal_exit(1);
581 }
582 var64 = var66;
583 RET_LABEL65:(void)0;
584 }
585 }
586 if (likely(varonce67!=NULL)) {
587 var68 = varonce67;
588 } else {
589 var69 = "Error: only properties can be protected.";
590 var71 = (val*)(40l<<2|1);
591 var72 = (val*)(40l<<2|1);
592 var73 = (val*)((long)(0)<<2|3);
593 var74 = (val*)((long)(0)<<2|3);
594 var70 = core__flat___CString___to_s_unsafe(var69, var71, var72, var73, var74);
595 var68 = var70;
596 varonce67 = var68;
597 }
598 {
599 nitc___nitc__ModelBuilder___error(self, var64, var68); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
600 }
601 {
602 { /* Inline model_base$MEntity$is_broken= (var_mmodule,1) on <var_mmodule:MModule> */
603 var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mmodule:MModule> */
604 RET_LABEL75:(void)0;
605 }
606 }
607 {
608 { /* Inline loader$AModule$mmodule= (var_nmodule,((val*)NULL)) on <var_nmodule:AModule> */
609 var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val = ((val*)NULL); /* _mmodule on <var_nmodule:AModule> */
610 RET_LABEL76:(void)0;
611 }
612 }
613 goto RET_LABEL;
614 } else {
615 }
616 {
617 { /* Inline kernel$Object$== (var_sup,var_mmodule) on <var_sup:nullable MModule(MModule)> */
618 var_other = var_mmodule;
619 {
620 { /* Inline kernel$Object$is_same_instance (var_sup,var_other) on <var_sup:nullable MModule(MModule)> */
621 var81 = var_sup == var_other;
622 var79 = var81;
623 goto RET_LABEL80;
624 RET_LABEL80:(void)0;
625 }
626 }
627 var77 = var79;
628 goto RET_LABEL78;
629 RET_LABEL78:(void)0;
630 }
631 }
632 if (var77){
633 {
634 { /* Inline parser_nodes$AStdImport$n_name (var_aimport) on <var_aimport:AImport(AStdImport)> */
635 var84 = var_aimport->attrs[COLOR_nitc__parser_nodes__AStdImport___n_name].val; /* _n_name on <var_aimport:AImport(AStdImport)> */
636 if (unlikely(var84 == NULL)) {
637 if(catchStack.cursor >= 0){
638 longjmp(catchStack.envs[catchStack.cursor], 1);
639 }
640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
641 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1167);
642 fatal_exit(1);
643 }
644 var82 = var84;
645 RET_LABEL83:(void)0;
646 }
647 }
648 if (unlikely(varonce85==NULL)) {
649 var86 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
650 if (likely(varonce87!=NULL)) {
651 var88 = varonce87;
652 } else {
653 var89 = "Error: dependency loop in module ";
654 var91 = (val*)(33l<<2|1);
655 var92 = (val*)(33l<<2|1);
656 var93 = (val*)((long)(0)<<2|3);
657 var94 = (val*)((long)(0)<<2|3);
658 var90 = core__flat___CString___to_s_unsafe(var89, var91, var92, var93, var94);
659 var88 = var90;
660 varonce87 = var88;
661 }
662 ((struct instance_core__NativeArray*)var86)->values[0]=var88;
663 if (likely(varonce95!=NULL)) {
664 var96 = varonce95;
665 } else {
666 var97 = ".";
667 var99 = (val*)(1l<<2|1);
668 var100 = (val*)(1l<<2|1);
669 var101 = (val*)((long)(0)<<2|3);
670 var102 = (val*)((long)(0)<<2|3);
671 var98 = core__flat___CString___to_s_unsafe(var97, var99, var100, var101, var102);
672 var96 = var98;
673 varonce95 = var96;
674 }
675 ((struct instance_core__NativeArray*)var86)->values[2]=var96;
676 } else {
677 var86 = varonce85;
678 varonce85 = NULL;
679 }
680 {
681 var103 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
682 }
683 ((struct instance_core__NativeArray*)var86)->values[1]=var103;
684 {
685 var104 = ((val*(*)(val* self))(var86->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var86); /* native_to_s on <var86:NativeArray[String]>*/
686 }
687 varonce85 = var86;
688 {
689 nitc___nitc__ModelBuilder___error(self, var82, var104); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
690 }
691 {
692 { /* Inline model_base$MEntity$is_broken= (var_mmodule,1) on <var_mmodule:MModule> */
693 var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mmodule:MModule> */
694 RET_LABEL105:(void)0;
695 }
696 }
697 {
698 { /* Inline loader$AModule$mmodule= (var_nmodule,((val*)NULL)) on <var_nmodule:AModule> */
699 var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val = ((val*)NULL); /* _mmodule on <var_nmodule:AModule> */
700 RET_LABEL106:(void)0;
701 }
702 }
703 } else {
704 }
705 {
706 { /* Inline mmodule$MModule$in_importation (var_sup) on <var_sup:nullable MModule(MModule)> */
707 var109 = var_sup->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_sup:nullable MModule(MModule)> */
708 if (unlikely(var109 == NULL)) {
709 if(catchStack.cursor >= 0){
710 longjmp(catchStack.envs[catchStack.cursor], 1);
711 }
712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
713 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
714 fatal_exit(1);
715 }
716 var107 = var109;
717 RET_LABEL108:(void)0;
718 }
719 }
720 {
721 var110 = poset___poset__POSetElement____60d(var107, var_mmodule);
722 }
723 if (var110){
724 {
725 { /* Inline parser_nodes$AStdImport$n_name (var_aimport) on <var_aimport:AImport(AStdImport)> */
726 var113 = var_aimport->attrs[COLOR_nitc__parser_nodes__AStdImport___n_name].val; /* _n_name on <var_aimport:AImport(AStdImport)> */
727 if (unlikely(var113 == NULL)) {
728 if(catchStack.cursor >= 0){
729 longjmp(catchStack.envs[catchStack.cursor], 1);
730 }
731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1167);
733 fatal_exit(1);
734 }
735 var111 = var113;
736 RET_LABEL112:(void)0;
737 }
738 }
739 if (unlikely(varonce114==NULL)) {
740 var115 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
741 if (likely(varonce116!=NULL)) {
742 var117 = varonce116;
743 } else {
744 var118 = "Error: dependency loop between modules ";
745 var120 = (val*)(39l<<2|1);
746 var121 = (val*)(39l<<2|1);
747 var122 = (val*)((long)(0)<<2|3);
748 var123 = (val*)((long)(0)<<2|3);
749 var119 = core__flat___CString___to_s_unsafe(var118, var120, var121, var122, var123);
750 var117 = var119;
751 varonce116 = var117;
752 }
753 ((struct instance_core__NativeArray*)var115)->values[0]=var117;
754 if (likely(varonce124!=NULL)) {
755 var125 = varonce124;
756 } else {
757 var126 = " and ";
758 var128 = (val*)(5l<<2|1);
759 var129 = (val*)(5l<<2|1);
760 var130 = (val*)((long)(0)<<2|3);
761 var131 = (val*)((long)(0)<<2|3);
762 var127 = core__flat___CString___to_s_unsafe(var126, var128, var129, var130, var131);
763 var125 = var127;
764 varonce124 = var125;
765 }
766 ((struct instance_core__NativeArray*)var115)->values[2]=var125;
767 if (likely(varonce132!=NULL)) {
768 var133 = varonce132;
769 } else {
770 var134 = ".";
771 var136 = (val*)(1l<<2|1);
772 var137 = (val*)(1l<<2|1);
773 var138 = (val*)((long)(0)<<2|3);
774 var139 = (val*)((long)(0)<<2|3);
775 var135 = core__flat___CString___to_s_unsafe(var134, var136, var137, var138, var139);
776 var133 = var135;
777 varonce132 = var133;
778 }
779 ((struct instance_core__NativeArray*)var115)->values[4]=var133;
780 } else {
781 var115 = varonce114;
782 varonce114 = NULL;
783 }
784 {
785 var140 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
786 }
787 ((struct instance_core__NativeArray*)var115)->values[1]=var140;
788 {
789 var141 = ((val*(*)(val* self))(var_sup->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_sup); /* to_s on <var_sup:nullable MModule(MModule)>*/
790 }
791 ((struct instance_core__NativeArray*)var115)->values[3]=var141;
792 {
793 var142 = ((val*(*)(val* self))(var115->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var115); /* native_to_s on <var115:NativeArray[String]>*/
794 }
795 varonce114 = var115;
796 {
797 nitc___nitc__ModelBuilder___error(self, var111, var142); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
798 }
799 {
800 { /* Inline model_base$MEntity$is_broken= (var_mmodule,1) on <var_mmodule:MModule> */
801 var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mmodule:MModule> */
802 RET_LABEL143:(void)0;
803 }
804 }
805 {
806 { /* Inline loader$AModule$mmodule= (var_nmodule,((val*)NULL)) on <var_nmodule:AModule> */
807 var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val = ((val*)NULL); /* _mmodule on <var_nmodule:AModule> */
808 RET_LABEL144:(void)0;
809 }
810 }
811 goto RET_LABEL;
812 } else {
813 }
814 {
815 nitc___nitc__MModule___set_visibility_for(var_mmodule, var_sup, var_mvisibility); /* Direct call mmodule$MModule$set_visibility_for on <var_mmodule:MModule>*/
816 }
817 BREAK_label24: (void)0;
818 {
819 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_12); /* next on <var_12:Iterator[AImport]>*/
820 }
821 }
822 BREAK_label: (void)0;
823 {
824 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_12); /* finish on <var_12:Iterator[AImport]>*/
825 }
826 if (var_stdimport){
827 if (likely(varonce145!=NULL)) {
828 var146 = varonce145;
829 } else {
830 var147 = "core";
831 var149 = (val*)(4l<<2|1);
832 var150 = (val*)(4l<<2|1);
833 var151 = (val*)((long)(0)<<2|3);
834 var152 = (val*)((long)(0)<<2|3);
835 var148 = core__flat___CString___to_s_unsafe(var147, var149, var150, var151, var152);
836 var146 = var148;
837 varonce145 = var146;
838 }
839 var_mod_name = var146;
840 {
841 var153 = nitc__loader___ModelBuilder___get_mmodule_by_name(self, var_nmodule, ((val*)NULL), var_mod_name);
842 }
843 var_sup154 = var153;
844 if (var_sup154 == NULL) {
845 var155 = 1; /* is null */
846 } else {
847 var155 = 0; /* arg is null but recv is not */
848 }
849 if (0) {
850 { /* Inline kernel$Object$== (var_sup154,((val*)NULL)) on <var_sup154:nullable MModule> */
851 var_other = ((val*)NULL);
852 {
853 { /* Inline kernel$Object$is_same_instance (var_sup154,var_other) on <var_sup154:nullable MModule(MModule)> */
854 var160 = var_sup154 == var_other;
855 var158 = var160;
856 goto RET_LABEL159;
857 RET_LABEL159:(void)0;
858 }
859 }
860 var156 = var158;
861 goto RET_LABEL157;
862 RET_LABEL157:(void)0;
863 }
864 var155 = var156;
865 }
866 if (var155){
867 {
868 { /* Inline model_base$MEntity$is_broken= (var_mmodule,1) on <var_mmodule:MModule> */
869 var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mmodule:MModule> */
870 RET_LABEL161:(void)0;
871 }
872 }
873 {
874 { /* Inline loader$AModule$mmodule= (var_nmodule,((val*)NULL)) on <var_nmodule:AModule> */
875 var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val = ((val*)NULL); /* _mmodule on <var_nmodule:AModule> */
876 RET_LABEL162:(void)0;
877 }
878 }
879 } else {
880 {
881 core___core__Array___core__abstract_collection__SimpleCollection__add(var_imported_modules, var_sup154); /* Direct call array$Array$add on <var_imported_modules:Array[MModule]>*/
882 }
883 var163 = glob_sys;
884 {
885 var164 = nitc__model_base___core__Sys___public_visibility(var163);
886 }
887 {
888 nitc___nitc__MModule___set_visibility_for(var_mmodule, var_sup154, var164); /* Direct call mmodule$MModule$set_visibility_for on <var_mmodule:MModule>*/
889 }
890 }
891 } else {
892 }
893 {
894 { /* Inline parser_nodes$AModule$n_imports (var_nmodule) on <var_nmodule:AModule> */
895 var167 = var_nmodule->attrs[COLOR_nitc__parser_nodes__AModule___n_imports].val; /* _n_imports on <var_nmodule:AModule> */
896 if (unlikely(var167 == NULL)) {
897 if(catchStack.cursor >= 0){
898 longjmp(catchStack.envs[catchStack.cursor], 1);
899 }
900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports");
901 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1119);
902 fatal_exit(1);
903 }
904 var165 = var167;
905 RET_LABEL166:(void)0;
906 }
907 }
908 var_168 = var165;
909 {
910 var169 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_168);
911 }
912 var_170 = var169;
913 for(;;) {
914 {
915 var171 = ((short int(*)(val* self))((((long)var_170&3)?class_info[((long)var_170&3)]:var_170->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_170); /* is_ok on <var_170:Iterator[AImport]>*/
916 }
917 if (var171){
918 } else {
919 goto BREAK_label172;
920 }
921 {
922 var173 = ((val*(*)(val* self))((((long)var_170&3)?class_info[((long)var_170&3)]:var_170->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_170); /* item on <var_170:Iterator[AImport]>*/
923 }
924 var_aimport174 = var173;
925 /* <var_aimport174:AImport> isa AStdImport */
926 cltype176 = type_nitc__AStdImport.color;
927 idtype177 = type_nitc__AStdImport.id;
928 if(cltype176 >= var_aimport174->type->table_size) {
929 var175 = 0;
930 } else {
931 var175 = var_aimport174->type->type_table[cltype176] == idtype177;
932 }
933 var178 = !var175;
934 if (var178){
935 goto BREAK_label179;
936 } else {
937 }
938 if (likely(varonce180!=NULL)) {
939 var181 = varonce180;
940 } else {
941 var182 = "conditional";
942 var184 = (val*)(11l<<2|1);
943 var185 = (val*)(11l<<2|1);
944 var186 = (val*)((long)(0)<<2|3);
945 var187 = (val*)((long)(0)<<2|3);
946 var183 = core__flat___CString___to_s_unsafe(var182, var184, var185, var186, var187);
947 var181 = var183;
948 varonce180 = var181;
949 }
950 {
951 var188 = nitc___nitc__Prod___get_annotations(var_aimport174, var181);
952 }
953 var_atconditionals189 = var188;
954 {
955 var190 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_atconditionals189);
956 }
957 if (var190){
958 goto BREAK_label179;
959 } else {
960 }
961 {
962 { /* Inline parser_nodes$AStdImport$n_name (var_aimport174) on <var_aimport174:AImport(AStdImport)> */
963 var193 = var_aimport174->attrs[COLOR_nitc__parser_nodes__AStdImport___n_name].val; /* _n_name on <var_aimport174:AImport(AStdImport)> */
964 if (unlikely(var193 == NULL)) {
965 if(catchStack.cursor >= 0){
966 longjmp(catchStack.envs[catchStack.cursor], 1);
967 }
968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
969 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1167);
970 fatal_exit(1);
971 }
972 var191 = var193;
973 RET_LABEL192:(void)0;
974 }
975 }
976 {
977 { /* Inline mmodule$MModule$mgroup (var_mmodule) on <var_mmodule:MModule> */
978 var196 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <var_mmodule:MModule> */
979 var194 = var196;
980 RET_LABEL195:(void)0;
981 }
982 }
983 {
984 var197 = nitc__loader___ModelBuilder___seach_module_by_amodule_name(self, var191, var194);
985 }
986 var_suppath = var197;
987 if (var_suppath == NULL) {
988 var198 = 1; /* is null */
989 } else {
990 var198 = 0; /* arg is null but recv is not */
991 }
992 if (0) {
993 { /* Inline kernel$Object$== (var_suppath,((val*)NULL)) on <var_suppath:nullable MModule> */
994 var_other = ((val*)NULL);
995 {
996 { /* Inline kernel$Object$is_same_instance (var_suppath,var_other) on <var_suppath:nullable MModule(MModule)> */
997 var203 = var_suppath == var_other;
998 var201 = var203;
999 goto RET_LABEL202;
1000 RET_LABEL202:(void)0;
1001 }
1002 }
1003 var199 = var201;
1004 goto RET_LABEL200;
1005 RET_LABEL200:(void)0;
1006 }
1007 var198 = var199;
1008 }
1009 if (var198){
1010 goto BREAK_label179;
1011 } else {
1012 }
1013 var_204 = var_atconditionals189;
1014 {
1015 var205 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_204);
1016 }
1017 var_206 = var205;
1018 for(;;) {
1019 {
1020 var207 = ((short int(*)(val* self))((((long)var_206&3)?class_info[((long)var_206&3)]:var_206->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_206); /* is_ok on <var_206:IndexedIterator[AAnnotation]>*/
1021 }
1022 if (var207){
1023 } else {
1024 goto BREAK_label208;
1025 }
1026 {
1027 var209 = ((val*(*)(val* self))((((long)var_206&3)?class_info[((long)var_206&3)]:var_206->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_206); /* item on <var_206:IndexedIterator[AAnnotation]>*/
1028 }
1029 var_atconditional = var209;
1030 {
1031 { /* Inline parser_nodes$AAnnotation$n_args (var_atconditional) on <var_atconditional:AAnnotation> */
1032 var212 = var_atconditional->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <var_atconditional:AAnnotation> */
1033 if (unlikely(var212 == NULL)) {
1034 if(catchStack.cursor >= 0){
1035 longjmp(catchStack.envs[catchStack.cursor], 1);
1036 }
1037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1038 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 3007);
1039 fatal_exit(1);
1040 }
1041 var210 = var212;
1042 RET_LABEL211:(void)0;
1043 }
1044 }
1045 var_nargs = var210;
1046 {
1047 var213 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var_nargs);
1048 }
1049 if (var213){
1050 if (likely(varonce214!=NULL)) {
1051 var215 = varonce214;
1052 } else {
1053 var216 = "Syntax Error: `conditional` expects module identifiers as arguments.";
1054 var218 = (val*)(68l<<2|1);
1055 var219 = (val*)(68l<<2|1);
1056 var220 = (val*)((long)(0)<<2|3);
1057 var221 = (val*)((long)(0)<<2|3);
1058 var217 = core__flat___CString___to_s_unsafe(var216, var218, var219, var220, var221);
1059 var215 = var217;
1060 varonce214 = var215;
1061 }
1062 {
1063 nitc___nitc__ModelBuilder___error(self, var_atconditional, var215); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
1064 }
1065 goto BREAK_label222;
1066 } else {
1067 }
1068 var223 = NEW_core__Array(&type_core__Array__nitc__MModule);
1069 {
1070 core___core__Array___core__kernel__Object__init(var223); /* Direct call array$Array$init on <var223:Array[MModule]>*/
1071 }
1072 var_rule = var223;
1073 {
1074 core___core__Array___core__abstract_collection__SimpleCollection__add(var_rule, var_suppath); /* Direct call array$Array$add on <var_rule:Array[MModule]>*/
1075 }
1076 {
1077 core___core__Array___core__abstract_collection__SimpleCollection__add(var_rule, var_mmodule); /* Direct call array$Array$add on <var_rule:Array[MModule]>*/
1078 }
1079 var_224 = var_nargs;
1080 {
1081 var225 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_224);
1082 }
1083 var_226 = var225;
1084 for(;;) {
1085 {
1086 var227 = ((short int(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_226); /* is_ok on <var_226:Iterator[AExpr]>*/
1087 }
1088 if (var227){
1089 } else {
1090 goto BREAK_label228;
1091 }
1092 {
1093 var229 = ((val*(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_226); /* item on <var_226:Iterator[AExpr]>*/
1094 }
1095 var_narg = var229;
1096 {
1097 var230 = nitc__parser_work___AExpr___as_id(var_narg);
1098 }
1099 var_id = var230;
1100 if (var_id == NULL) {
1101 var231 = 1; /* is null */
1102 } else {
1103 var231 = 0; /* arg is null but recv is not */
1104 }
1105 if (0) {
1106 var232 = ((short int(*)(val* self, val* p0))(var_id->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_id, ((val*)NULL)); /* == on <var_id:nullable String>*/
1107 var231 = var232;
1108 }
1109 if (var231){
1110 if (likely(varonce233!=NULL)) {
1111 var234 = varonce233;
1112 } else {
1113 var235 = "Syntax Error: `conditional` expects module identifier as arguments.";
1114 var237 = (val*)(67l<<2|1);
1115 var238 = (val*)(67l<<2|1);
1116 var239 = (val*)((long)(0)<<2|3);
1117 var240 = (val*)((long)(0)<<2|3);
1118 var236 = core__flat___CString___to_s_unsafe(var235, var237, var238, var239, var240);
1119 var234 = var236;
1120 varonce233 = var234;
1121 }
1122 {
1123 nitc___nitc__ModelBuilder___error(self, var_narg, var234); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
1124 }
1125 goto BREAK_label241;
1126 } else {
1127 }
1128 {
1129 { /* Inline mmodule$MModule$mgroup (var_mmodule) on <var_mmodule:MModule> */
1130 var244 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <var_mmodule:MModule> */
1131 var242 = var244;
1132 RET_LABEL243:(void)0;
1133 }
1134 }
1135 {
1136 var245 = nitc__loader___ModelBuilder___search_mmodule_by_name(self, var_narg, var242, var_id);
1137 }
1138 var_mp = var245;
1139 if (var_mp == NULL) {
1140 var246 = 1; /* is null */
1141 } else {
1142 var246 = 0; /* arg is null but recv is not */
1143 }
1144 if (0) {
1145 { /* Inline kernel$Object$== (var_mp,((val*)NULL)) on <var_mp:nullable MModule> */
1146 var_other = ((val*)NULL);
1147 {
1148 { /* Inline kernel$Object$is_same_instance (var_mp,var_other) on <var_mp:nullable MModule(MModule)> */
1149 var251 = var_mp == var_other;
1150 var249 = var251;
1151 goto RET_LABEL250;
1152 RET_LABEL250:(void)0;
1153 }
1154 }
1155 var247 = var249;
1156 goto RET_LABEL248;
1157 RET_LABEL248:(void)0;
1158 }
1159 var246 = var247;
1160 }
1161 if (var246){
1162 goto BREAK_label241;
1163 } else {
1164 }
1165 {
1166 core___core__Array___core__abstract_collection__SimpleCollection__add(var_rule, var_mp); /* Direct call array$Array$add on <var_rule:Array[MModule]>*/
1167 }
1168 BREAK_label241: (void)0;
1169 {
1170 ((void(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_226); /* next on <var_226:Iterator[AExpr]>*/
1171 }
1172 }
1173 BREAK_label228: (void)0;
1174 {
1175 ((void(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_226); /* finish on <var_226:Iterator[AExpr]>*/
1176 }
1177 {
1178 { /* Inline loader$ModelBuilder$conditional_importations (self) on <self:ModelBuilder> */
1179 var254 = self->attrs[COLOR_nitc__loader__ModelBuilder___conditional_importations].val; /* _conditional_importations on <self:ModelBuilder> */
1180 if (unlikely(var254 == NULL)) {
1181 if(catchStack.cursor >= 0){
1182 longjmp(catchStack.envs[catchStack.cursor], 1);
1183 }
1184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conditional_importations");
1185 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1040);
1186 fatal_exit(1);
1187 }
1188 var252 = var254;
1189 RET_LABEL253:(void)0;
1190 }
1191 }
1192 {
1193 core___core__Array___core__abstract_collection__SimpleCollection__add(var252, var_rule); /* Direct call array$Array$add on <var252:Array[SequenceRead[MModule]]>*/
1194 }
1195 BREAK_label222: (void)0;
1196 {
1197 ((void(*)(val* self))((((long)var_206&3)?class_info[((long)var_206&3)]:var_206->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_206); /* next on <var_206:IndexedIterator[AAnnotation]>*/
1198 }
1199 }
1200 BREAK_label208: (void)0;
1201 {
1202 ((void(*)(val* self))((((long)var_206&3)?class_info[((long)var_206&3)]:var_206->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_206); /* finish on <var_206:IndexedIterator[AAnnotation]>*/
1203 }
1204 BREAK_label179: (void)0;
1205 {
1206 ((void(*)(val* self))((((long)var_170&3)?class_info[((long)var_170&3)]:var_170->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_170); /* next on <var_170:Iterator[AImport]>*/
1207 }
1208 }
1209 BREAK_label172: (void)0;
1210 {
1211 ((void(*)(val* self))((((long)var_170&3)?class_info[((long)var_170&3)]:var_170->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_170); /* finish on <var_170:Iterator[AImport]>*/
1212 }
1213 {
1214 nitc___nitc__MModule___set_imported_mmodules(var_mmodule, var_imported_modules); /* Direct call mmodule$MModule$set_imported_mmodules on <var_mmodule:MModule>*/
1215 }
1216 {
1217 nitc__loader___ModelBuilder___apply_conditional_importations(self, var_mmodule); /* Direct call loader$ModelBuilder$apply_conditional_importations on <self:ModelBuilder>*/
1218 }
1219 {
1220 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
1221 var257 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
1222 if (unlikely(var257 == NULL)) {
1223 if(catchStack.cursor >= 0){
1224 longjmp(catchStack.envs[catchStack.cursor], 1);
1225 }
1226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1227 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1228 fatal_exit(1);
1229 }
1230 var255 = var257;
1231 RET_LABEL256:(void)0;
1232 }
1233 }
1234 if (unlikely(varonce258==NULL)) {
1235 var259 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1236 if (likely(varonce260!=NULL)) {
1237 var261 = varonce260;
1238 } else {
1239 var262 = " imports ";
1240 var264 = (val*)(9l<<2|1);
1241 var265 = (val*)(9l<<2|1);
1242 var266 = (val*)((long)(0)<<2|3);
1243 var267 = (val*)((long)(0)<<2|3);
1244 var263 = core__flat___CString___to_s_unsafe(var262, var264, var265, var266, var267);
1245 var261 = var263;
1246 varonce260 = var261;
1247 }
1248 ((struct instance_core__NativeArray*)var259)->values[1]=var261;
1249 } else {
1250 var259 = varonce258;
1251 varonce258 = NULL;
1252 }
1253 {
1254 var268 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
1255 }
1256 ((struct instance_core__NativeArray*)var259)->values[0]=var268;
1257 {
1258 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
1259 var271 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
1260 if (unlikely(var271 == NULL)) {
1261 if(catchStack.cursor >= 0){
1262 longjmp(catchStack.envs[catchStack.cursor], 1);
1263 }
1264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1265 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
1266 fatal_exit(1);
1267 }
1268 var269 = var271;
1269 RET_LABEL270:(void)0;
1270 }
1271 }
1272 {
1273 var272 = poset___poset__POSetElement___direct_greaters(var269);
1274 }
1275 if (likely(varonce273!=NULL)) {
1276 var274 = varonce273;
1277 } else {
1278 var275 = ", ";
1279 var277 = (val*)(2l<<2|1);
1280 var278 = (val*)(2l<<2|1);
1281 var279 = (val*)((long)(0)<<2|3);
1282 var280 = (val*)((long)(0)<<2|3);
1283 var276 = core__flat___CString___to_s_unsafe(var275, var277, var278, var279, var280);
1284 var274 = var276;
1285 varonce273 = var274;
1286 }
1287 {
1288 var281 = core__abstract_text___Collection___join(var272, var274, ((val*)NULL));
1289 }
1290 ((struct instance_core__NativeArray*)var259)->values[2]=var281;
1291 {
1292 var282 = ((val*(*)(val* self))(var259->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var259); /* native_to_s on <var259:NativeArray[String]>*/
1293 }
1294 varonce258 = var259;
1295 {
1296 nitc___nitc__ToolContext___info(var255, var282, 3l); /* Direct call toolcontext$ToolContext$info on <var255:ToolContext>*/
1297 }
1298 {
1299 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
1300 var285 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
1301 if (unlikely(var285 == NULL)) {
1302 if(catchStack.cursor >= 0){
1303 longjmp(catchStack.envs[catchStack.cursor], 1);
1304 }
1305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1306 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
1307 fatal_exit(1);
1308 }
1309 var283 = var285;
1310 RET_LABEL284:(void)0;
1311 }
1312 }
1313 {
1314 var286 = poset___poset__POSetElement___greaters(var283);
1315 }
1316 var_287 = var286;
1317 {
1318 var288 = ((val*(*)(val* self))((((long)var_287&3)?class_info[((long)var_287&3)]:var_287->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_287); /* iterator on <var_287:Collection[MModule]>*/
1319 }
1320 var_289 = var288;
1321 for(;;) {
1322 {
1323 var290 = ((short int(*)(val* self))((((long)var_289&3)?class_info[((long)var_289&3)]:var_289->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_289); /* is_ok on <var_289:Iterator[MModule]>*/
1324 }
1325 if (var290){
1326 } else {
1327 goto BREAK_label291;
1328 }
1329 {
1330 var292 = ((val*(*)(val* self))((((long)var_289&3)?class_info[((long)var_289&3)]:var_289->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_289); /* item on <var_289:Iterator[MModule]>*/
1331 }
1332 var_sup293 = var292;
1333 {
1334 { /* Inline mmodule$MModule$name (var_sup293) on <var_sup293:MModule> */
1335 var296 = var_sup293->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <var_sup293:MModule> */
1336 if (unlikely(var296 == NULL)) {
1337 if(catchStack.cursor >= 0){
1338 longjmp(catchStack.envs[catchStack.cursor], 1);
1339 }
1340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1341 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 100);
1342 fatal_exit(1);
1343 }
1344 var294 = var296;
1345 RET_LABEL295:(void)0;
1346 }
1347 }
1348 if (likely(varonce297!=NULL)) {
1349 var298 = varonce297;
1350 } else {
1351 var299 = "core";
1352 var301 = (val*)(4l<<2|1);
1353 var302 = (val*)(4l<<2|1);
1354 var303 = (val*)((long)(0)<<2|3);
1355 var304 = (val*)((long)(0)<<2|3);
1356 var300 = core__flat___CString___to_s_unsafe(var299, var301, var302, var303, var304);
1357 var298 = var300;
1358 varonce297 = var298;
1359 }
1360 {
1361 var305 = ((short int(*)(val* self, val* p0))(var294->class->vft[COLOR_core__kernel__Object___61d_61d]))(var294, var298); /* == on <var294:String>*/
1362 }
1363 if (var305){
1364 var306 = glob_sys;
1365 {
1366 var307 = nitc__model_base___core__Sys___public_visibility(var306);
1367 }
1368 {
1369 nitc___nitc__MModule___set_visibility_for(var_mmodule, var_sup293, var307); /* Direct call mmodule$MModule$set_visibility_for on <var_mmodule:MModule>*/
1370 }
1371 } else {
1372 }
1373 {
1374 ((void(*)(val* self))((((long)var_289&3)?class_info[((long)var_289&3)]:var_289->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_289); /* next on <var_289:Iterator[MModule]>*/
1375 }
1376 }
1377 BREAK_label291: (void)0;
1378 {
1379 ((void(*)(val* self))((((long)var_289&3)?class_info[((long)var_289&3)]:var_289->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_289); /* finish on <var_289:Iterator[MModule]>*/
1380 }
1381 {
1382 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
1383 var310 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
1384 if (unlikely(var310 == NULL)) {
1385 if(catchStack.cursor >= 0){
1386 longjmp(catchStack.envs[catchStack.cursor], 1);
1387 }
1388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1389 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
1390 fatal_exit(1);
1391 }
1392 var308 = var310;
1393 RET_LABEL309:(void)0;
1394 }
1395 }
1396 {
1397 var311 = poset___poset__POSetElement___direct_greaters(var308);
1398 }
1399 var_directs = var311;
1400 {
1401 { /* Inline parser_nodes$AModule$n_imports (var_nmodule) on <var_nmodule:AModule> */
1402 var314 = var_nmodule->attrs[COLOR_nitc__parser_nodes__AModule___n_imports].val; /* _n_imports on <var_nmodule:AModule> */
1403 if (unlikely(var314 == NULL)) {
1404 if(catchStack.cursor >= 0){
1405 longjmp(catchStack.envs[catchStack.cursor], 1);
1406 }
1407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports");
1408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1119);
1409 fatal_exit(1);
1410 }
1411 var312 = var314;
1412 RET_LABEL313:(void)0;
1413 }
1414 }
1415 var_315 = var312;
1416 {
1417 var316 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_315);
1418 }
1419 var_317 = var316;
1420 for(;;) {
1421 {
1422 var318 = ((short int(*)(val* self))((((long)var_317&3)?class_info[((long)var_317&3)]:var_317->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_317); /* is_ok on <var_317:Iterator[AImport]>*/
1423 }
1424 if (var318){
1425 } else {
1426 goto BREAK_label319;
1427 }
1428 {
1429 var320 = ((val*(*)(val* self))((((long)var_317&3)?class_info[((long)var_317&3)]:var_317->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_317); /* item on <var_317:Iterator[AImport]>*/
1430 }
1431 var_nim = var320;
1432 /* <var_nim:AImport> isa AStdImport */
1433 cltype322 = type_nitc__AStdImport.color;
1434 idtype323 = type_nitc__AStdImport.id;
1435 if(cltype322 >= var_nim->type->table_size) {
1436 var321 = 0;
1437 } else {
1438 var321 = var_nim->type->type_table[cltype322] == idtype323;
1439 }
1440 var324 = !var321;
1441 if (var324){
1442 goto BREAK_label325;
1443 } else {
1444 }
1445 {
1446 { /* Inline loader$AStdImport$mmodule (var_nim) on <var_nim:AImport(AStdImport)> */
1447 var328 = var_nim->attrs[COLOR_nitc__loader__AStdImport___mmodule].val; /* _mmodule on <var_nim:AImport(AStdImport)> */
1448 var326 = var328;
1449 RET_LABEL327:(void)0;
1450 }
1451 }
1452 var_im = var326;
1453 if (var_im == NULL) {
1454 var329 = 1; /* is null */
1455 } else {
1456 var329 = 0; /* arg is null but recv is not */
1457 }
1458 if (0) {
1459 { /* Inline kernel$Object$== (var_im,((val*)NULL)) on <var_im:nullable MModule> */
1460 var_other = ((val*)NULL);
1461 {
1462 { /* Inline kernel$Object$is_same_instance (var_im,var_other) on <var_im:nullable MModule(MModule)> */
1463 var334 = var_im == var_other;
1464 var332 = var334;
1465 goto RET_LABEL333;
1466 RET_LABEL333:(void)0;
1467 }
1468 }
1469 var330 = var332;
1470 goto RET_LABEL331;
1471 RET_LABEL331:(void)0;
1472 }
1473 var329 = var330;
1474 }
1475 if (var329){
1476 goto BREAK_label325;
1477 } else {
1478 }
1479 {
1480 var335 = ((short int(*)(val* self, val* p0))((((long)var_directs&3)?class_info[((long)var_directs&3)]:var_directs->class)->vft[COLOR_core__abstract_collection__Collection__has]))(var_directs, var_im); /* has on <var_directs:Collection[MModule]>*/
1481 }
1482 if (var335){
1483 goto BREAK_label325;
1484 } else {
1485 }
1486 BREAK_label325: (void)0;
1487 {
1488 ((void(*)(val* self))((((long)var_317&3)?class_info[((long)var_317&3)]:var_317->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_317); /* next on <var_317:Iterator[AImport]>*/
1489 }
1490 }
1491 BREAK_label319: (void)0;
1492 {
1493 ((void(*)(val* self))((((long)var_317&3)?class_info[((long)var_317&3)]:var_317->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_317); /* finish on <var_317:Iterator[AImport]>*/
1494 }
1495 RET_LABEL:;
1496 }
1497 /* method loader$ModelBuilder$conditional_importations for (self: ModelBuilder): Array[SequenceRead[MModule]] */
1498 val* nitc__loader___ModelBuilder___conditional_importations(val* self) {
1499 val* var /* : Array[SequenceRead[MModule]] */;
1500 val* var1 /* : Array[SequenceRead[MModule]] */;
1501 var1 = self->attrs[COLOR_nitc__loader__ModelBuilder___conditional_importations].val; /* _conditional_importations on <self:ModelBuilder> */
1502 if (unlikely(var1 == NULL)) {
1503 if(catchStack.cursor >= 0){
1504 longjmp(catchStack.envs[catchStack.cursor], 1);
1505 }
1506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conditional_importations");
1507 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1040);
1508 fatal_exit(1);
1509 }
1510 var = var1;
1511 RET_LABEL:;
1512 return var;
1513 }
1514 /* method loader$ModelBuilder$apply_conditional_importations for (self: ModelBuilder, MModule) */
1515 void nitc__loader___ModelBuilder___apply_conditional_importations(val* self, val* p0) {
1516 val* var_mmodule /* var mmodule: MModule */;
1517 short int var_check_conditional_importations /* var check_conditional_importations: Bool */;
1518 val* var /* : Array[SequenceRead[MModule]] */;
1519 val* var2 /* : Array[SequenceRead[MModule]] */;
1520 val* var_ /* var : Array[SequenceRead[MModule]] */;
1521 val* var3 /* : IndexedIterator[nullable Object] */;
1522 val* var_4 /* var : IndexedIterator[SequenceRead[MModule]] */;
1523 short int var5 /* : Bool */;
1524 val* var6 /* : nullable Object */;
1525 val* var_ci /* var ci: SequenceRead[MModule] */;
1526 long var_i /* var i: Int */;
1527 long var7 /* : Int */;
1528 long var_8 /* var : Int */;
1529 short int var9 /* : Bool */;
1530 short int var11 /* : Bool */;
1531 int cltype;
1532 int idtype;
1533 const char* var_class_name;
1534 short int var12 /* : Bool */;
1535 val* var13 /* : nullable Object */;
1536 val* var_m /* var m: MModule */;
1537 short int var14 /* : Bool */;
1538 short int var15 /* : Bool */;
1539 val* var_other /* var other: nullable Object */;
1540 short int var17 /* : Bool */;
1541 short int var19 /* : Bool */;
1542 short int var_20 /* var : Bool */;
1543 val* var21 /* : POSetElement[MModule] */;
1544 val* var23 /* : POSetElement[MModule] */;
1545 val* var24 /* : Collection[nullable Object] */;
1546 short int var25 /* : Bool */;
1547 short int var26 /* : Bool */;
1548 long var28 /* : Int */;
1549 val* var29 /* : nullable Object */;
1550 val* var_sup /* var sup: MModule */;
1551 val* var30 /* : nullable AModule */;
1552 val* var_ast /* var ast: nullable AModule */;
1553 short int var31 /* : Bool */;
1554 short int var32 /* : Bool */;
1555 short int var34 /* : Bool */;
1556 short int var36 /* : Bool */;
1557 val* var37 /* : POSetElement[MModule] */;
1558 val* var39 /* : POSetElement[MModule] */;
1559 val* var40 /* : Collection[nullable Object] */;
1560 short int var41 /* : Bool */;
1561 val* var42 /* : ToolContext */;
1562 val* var44 /* : ToolContext */;
1563 val* var45 /* : NativeArray[String] */;
1564 static val* varonce;
1565 static val* varonce46;
1566 val* var47 /* : String */;
1567 char* var48 /* : CString */;
1568 val* var49 /* : String */;
1569 val* var50 /* : nullable Int */;
1570 val* var51 /* : nullable Int */;
1571 val* var52 /* : nullable Bool */;
1572 val* var53 /* : nullable Bool */;
1573 val* var54 /* : String */;
1574 val* var55 /* : String */;
1575 val* var56 /* : String */;
1576 val* var57 /* : Sys */;
1577 val* var58 /* : MVisibility */;
1578 val* var59 /* : Array[MModule] */;
1579 val* var_60 /* var : Array[MModule] */;
1580 var_mmodule = p0;
1581 var_check_conditional_importations = 1;
1582 for(;;) {
1583 if (var_check_conditional_importations){
1584 var_check_conditional_importations = 0;
1585 {
1586 { /* Inline loader$ModelBuilder$conditional_importations (self) on <self:ModelBuilder> */
1587 var2 = self->attrs[COLOR_nitc__loader__ModelBuilder___conditional_importations].val; /* _conditional_importations on <self:ModelBuilder> */
1588 if (unlikely(var2 == NULL)) {
1589 if(catchStack.cursor >= 0){
1590 longjmp(catchStack.envs[catchStack.cursor], 1);
1591 }
1592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conditional_importations");
1593 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1040);
1594 fatal_exit(1);
1595 }
1596 var = var2;
1597 RET_LABEL1:(void)0;
1598 }
1599 }
1600 var_ = var;
1601 {
1602 var3 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1603 }
1604 var_4 = var3;
1605 for(;;) {
1606 {
1607 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:IndexedIterator[SequenceRead[MModule]]>*/
1608 }
1609 if (var5){
1610 } else {
1611 goto BREAK_;
1612 }
1613 {
1614 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:IndexedIterator[SequenceRead[MModule]]>*/
1615 }
1616 var_ci = var6;
1617 var_i = 1l;
1618 {
1619 var7 = ((long(*)(val* self))((((long)var_ci&3)?class_info[((long)var_ci&3)]:var_ci->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var_ci); /* length on <var_ci:SequenceRead[MModule]>*/
1620 }
1621 var_8 = var7;
1622 for(;;) {
1623 {
1624 { /* Inline kernel$Int$< (var_i,var_8) on <var_i:Int> */
1625 /* Covariant cast for argument 0 (i) <var_8:Int> isa OTHER */
1626 /* <var_8:Int> isa OTHER */
1627 var11 = 1; /* easy <var_8:Int> isa OTHER*/
1628 if (unlikely(!var11)) {
1629 var_class_name = type_core__Int.name;
1630 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1631 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1632 fatal_exit(1);
1633 }
1634 var12 = var_i < var_8;
1635 var9 = var12;
1636 goto RET_LABEL10;
1637 RET_LABEL10:(void)0;
1638 }
1639 }
1640 if (var9){
1641 } else {
1642 goto BREAK_label;
1643 }
1644 {
1645 var13 = ((val*(*)(val* self, long p0))((((long)var_ci&3)?class_info[((long)var_ci&3)]:var_ci->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var_ci, var_i); /* [] on <var_ci:SequenceRead[MModule]>*/
1646 }
1647 var_m = var13;
1648 {
1649 { /* Inline kernel$Object$== (var_mmodule,var_m) on <var_mmodule:MModule> */
1650 var_other = var_m;
1651 {
1652 { /* Inline kernel$Object$is_same_instance (var_mmodule,var_other) on <var_mmodule:MModule> */
1653 var19 = var_mmodule == var_other;
1654 var17 = var19;
1655 goto RET_LABEL18;
1656 RET_LABEL18:(void)0;
1657 }
1658 }
1659 var15 = var17;
1660 goto RET_LABEL16;
1661 RET_LABEL16:(void)0;
1662 }
1663 }
1664 var_20 = var15;
1665 if (var15){
1666 var14 = var_20;
1667 } else {
1668 {
1669 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
1670 var23 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
1671 if (unlikely(var23 == NULL)) {
1672 if(catchStack.cursor >= 0){
1673 longjmp(catchStack.envs[catchStack.cursor], 1);
1674 }
1675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
1677 fatal_exit(1);
1678 }
1679 var21 = var23;
1680 RET_LABEL22:(void)0;
1681 }
1682 }
1683 {
1684 var24 = poset___poset__POSetElement___greaters(var21);
1685 }
1686 {
1687 var25 = ((short int(*)(val* self, val* p0))((((long)var24&3)?class_info[((long)var24&3)]:var24->class)->vft[COLOR_core__abstract_collection__Collection__has]))(var24, var_m); /* has on <var24:Collection[nullable Object](Collection[MModule])>*/
1688 }
1689 var26 = !var25;
1690 var14 = var26;
1691 }
1692 if (var14){
1693 goto BREAK_27;
1694 } else {
1695 }
1696 {
1697 var28 = core___core__Int___Discrete__successor(var_i, 1l);
1698 }
1699 var_i = var28;
1700 }
1701 BREAK_label: (void)0;
1702 {
1703 var29 = ((val*(*)(val* self))((((long)var_ci&3)?class_info[((long)var_ci&3)]:var_ci->class)->vft[COLOR_core__abstract_collection__Collection__first]))(var_ci); /* first on <var_ci:SequenceRead[MModule]>*/
1704 }
1705 var_sup = var29;
1706 {
1707 var30 = nitc__loader___MModule___load(var_sup, self);
1708 }
1709 var_ast = var30;
1710 if (var_ast == NULL) {
1711 var31 = 1; /* is null */
1712 } else {
1713 var31 = 0; /* arg is null but recv is not */
1714 }
1715 if (0) {
1716 { /* Inline kernel$Object$== (var_ast,((val*)NULL)) on <var_ast:nullable AModule> */
1717 var_other = ((val*)NULL);
1718 {
1719 { /* Inline kernel$Object$is_same_instance (var_ast,var_other) on <var_ast:nullable AModule(AModule)> */
1720 var36 = var_ast == var_other;
1721 var34 = var36;
1722 goto RET_LABEL35;
1723 RET_LABEL35:(void)0;
1724 }
1725 }
1726 var32 = var34;
1727 goto RET_LABEL33;
1728 RET_LABEL33:(void)0;
1729 }
1730 var31 = var32;
1731 }
1732 if (var31){
1733 goto BREAK_27;
1734 } else {
1735 }
1736 {
1737 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
1738 var39 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
1739 if (unlikely(var39 == NULL)) {
1740 if(catchStack.cursor >= 0){
1741 longjmp(catchStack.envs[catchStack.cursor], 1);
1742 }
1743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1744 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
1745 fatal_exit(1);
1746 }
1747 var37 = var39;
1748 RET_LABEL38:(void)0;
1749 }
1750 }
1751 {
1752 var40 = poset___poset__POSetElement___greaters(var37);
1753 }
1754 {
1755 var41 = ((short int(*)(val* self, val* p0))((((long)var40&3)?class_info[((long)var40&3)]:var40->class)->vft[COLOR_core__abstract_collection__Collection__has]))(var40, var_sup); /* has on <var40:Collection[nullable Object](Collection[MModule])>*/
1756 }
1757 if (var41){
1758 goto BREAK_27;
1759 } else {
1760 }
1761 {
1762 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
1763 var44 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
1764 if (unlikely(var44 == NULL)) {
1765 if(catchStack.cursor >= 0){
1766 longjmp(catchStack.envs[catchStack.cursor], 1);
1767 }
1768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1769 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1770 fatal_exit(1);
1771 }
1772 var42 = var44;
1773 RET_LABEL43:(void)0;
1774 }
1775 }
1776 if (unlikely(varonce==NULL)) {
1777 var45 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1778 if (likely(varonce46!=NULL)) {
1779 var47 = varonce46;
1780 } else {
1781 var48 = " conditionally imports ";
1782 var50 = (val*)(23l<<2|1);
1783 var51 = (val*)(23l<<2|1);
1784 var52 = (val*)((long)(0)<<2|3);
1785 var53 = (val*)((long)(0)<<2|3);
1786 var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53);
1787 var47 = var49;
1788 varonce46 = var47;
1789 }
1790 ((struct instance_core__NativeArray*)var45)->values[1]=var47;
1791 } else {
1792 var45 = varonce;
1793 varonce = NULL;
1794 }
1795 {
1796 var54 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
1797 }
1798 ((struct instance_core__NativeArray*)var45)->values[0]=var54;
1799 {
1800 var55 = ((val*(*)(val* self))(var_sup->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_sup); /* to_s on <var_sup:MModule>*/
1801 }
1802 ((struct instance_core__NativeArray*)var45)->values[2]=var55;
1803 {
1804 var56 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var45); /* native_to_s on <var45:NativeArray[String]>*/
1805 }
1806 varonce = var45;
1807 {
1808 nitc___nitc__ToolContext___info(var42, var56, 3l); /* Direct call toolcontext$ToolContext$info on <var42:ToolContext>*/
1809 }
1810 var57 = glob_sys;
1811 {
1812 var58 = nitc__model_base___core__Sys___public_visibility(var57);
1813 }
1814 {
1815 nitc___nitc__MModule___set_visibility_for(var_mmodule, var_sup, var58); /* Direct call mmodule$MModule$set_visibility_for on <var_mmodule:MModule>*/
1816 }
1817 var59 = NEW_core__Array(&type_core__Array__nitc__MModule);
1818 {
1819 core___core__Array___with_capacity(var59, 1l); /* Direct call array$Array$with_capacity on <var59:Array[MModule]>*/
1820 }
1821 var_60 = var59;
1822 {
1823 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_60, var_sup); /* Direct call array$AbstractArray$push on <var_60:Array[MModule]>*/
1824 }
1825 {
1826 nitc___nitc__MModule___set_imported_mmodules(var_mmodule, var_60); /* Direct call mmodule$MModule$set_imported_mmodules on <var_mmodule:MModule>*/
1827 }
1828 var_check_conditional_importations = 1;
1829 BREAK_27: (void)0;
1830 {
1831 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:IndexedIterator[SequenceRead[MModule]]>*/
1832 }
1833 }
1834 BREAK_: (void)0;
1835 {
1836 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:IndexedIterator[SequenceRead[MModule]]>*/
1837 }
1838 } else {
1839 goto BREAK_label61;
1840 }
1841 }
1842 BREAK_label61: (void)0;
1843 RET_LABEL:;
1844 }
1845 /* method loader$ModelBuilder$nmodules for (self: ModelBuilder): Array[AModule] */
1846 val* nitc__loader___ModelBuilder___nmodules(val* self) {
1847 val* var /* : Array[AModule] */;
1848 val* var1 /* : Array[AModule] */;
1849 var1 = self->attrs[COLOR_nitc__loader__ModelBuilder___nmodules].val; /* _nmodules on <self:ModelBuilder> */
1850 if (unlikely(var1 == NULL)) {
1851 if(catchStack.cursor >= 0){
1852 longjmp(catchStack.envs[catchStack.cursor], 1);
1853 }
1854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nmodules");
1855 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1091);
1856 fatal_exit(1);
1857 }
1858 var = var1;
1859 RET_LABEL:;
1860 return var;
1861 }
1862 /* method loader$ModelBuilder$mmodule2nmodule for (self: ModelBuilder): HashMap[MModule, AModule] */
1863 val* nitc__loader___ModelBuilder___mmodule2nmodule(val* self) {
1864 val* var /* : HashMap[MModule, AModule] */;
1865 val* var1 /* : HashMap[MModule, AModule] */;
1866 var1 = self->attrs[COLOR_nitc__loader__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on <self:ModelBuilder> */
1867 if (unlikely(var1 == NULL)) {
1868 if(catchStack.cursor >= 0){
1869 longjmp(catchStack.envs[catchStack.cursor], 1);
1870 }
1871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
1872 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1094);
1873 fatal_exit(1);
1874 }
1875 var = var1;
1876 RET_LABEL:;
1877 return var;
1878 }
1879 /* method loader$ModelBuilder$mmodule2node for (self: ModelBuilder, MModule): nullable AModule */
1880 val* nitc__loader___ModelBuilder___mmodule2node(val* self, val* p0) {
1881 val* var /* : nullable AModule */;
1882 val* var_mmodule /* var mmodule: MModule */;
1883 val* var1 /* : HashMap[MModule, AModule] */;
1884 val* var3 /* : HashMap[MModule, AModule] */;
1885 val* var4 /* : nullable Object */;
1886 var_mmodule = p0;
1887 {
1888 { /* Inline loader$ModelBuilder$mmodule2nmodule (self) on <self:ModelBuilder> */
1889 var3 = self->attrs[COLOR_nitc__loader__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on <self:ModelBuilder> */
1890 if (unlikely(var3 == NULL)) {
1891 if(catchStack.cursor >= 0){
1892 longjmp(catchStack.envs[catchStack.cursor], 1);
1893 }
1894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
1895 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1094);
1896 fatal_exit(1);
1897 }
1898 var1 = var3;
1899 RET_LABEL2:(void)0;
1900 }
1901 }
1902 {
1903 var4 = core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var1, var_mmodule);
1904 }
1905 var = var4;
1906 goto RET_LABEL;
1907 RET_LABEL:;
1908 return var;
1909 }
1910 /* method loader$MModule$parse for (self: MModule, ModelBuilder): nullable AModule */
1911 val* nitc__loader___MModule___parse(val* self, val* p0) {
1912 val* var /* : nullable AModule */;
1913 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
1914 val* var1 /* : HashMap[MModule, AModule] */;
1915 val* var3 /* : HashMap[MModule, AModule] */;
1916 val* var4 /* : nullable Object */;
1917 val* var_nmodule /* var nmodule: nullable AModule */;
1918 short int var5 /* : Bool */;
1919 short int var6 /* : Bool */;
1920 val* var_other /* var other: nullable Object */;
1921 short int var8 /* : Bool */;
1922 short int var9 /* : Bool */;
1923 val* var10 /* : nullable String */;
1924 val* var_filepath /* var filepath: nullable String */;
1925 short int var11 /* : Bool */;
1926 short int var12 /* : Bool */;
1927 short int var14 /* : Bool */;
1928 short int var15 /* : Bool */;
1929 val* var16 /* : nullable AModule */;
1930 short int var17 /* : Bool */;
1931 short int var18 /* : Bool */;
1932 val* var_other20 /* var other: nullable Object */;
1933 short int var21 /* : Bool */;
1934 short int var23 /* : Bool */;
1935 val* var25 /* : Location */;
1936 val* var27 /* : Location */;
1937 val* var29 /* : nullable MGroup */;
1938 val* var31 /* : nullable MGroup */;
1939 val* var32 /* : Array[MModule] */;
1940 val* var34 /* : Array[MModule] */;
1941 var_modelbuilder = p0;
1942 {
1943 { /* Inline loader$ModelBuilder$mmodule2nmodule (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
1944 var3 = var_modelbuilder->attrs[COLOR_nitc__loader__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on <var_modelbuilder:ModelBuilder> */
1945 if (unlikely(var3 == NULL)) {
1946 if(catchStack.cursor >= 0){
1947 longjmp(catchStack.envs[catchStack.cursor], 1);
1948 }
1949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
1950 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1094);
1951 fatal_exit(1);
1952 }
1953 var1 = var3;
1954 RET_LABEL2:(void)0;
1955 }
1956 }
1957 {
1958 var4 = core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var1, self);
1959 }
1960 var_nmodule = var4;
1961 if (var_nmodule == NULL) {
1962 var5 = 0; /* is null */
1963 } else {
1964 var5 = 1; /* arg is null and recv is not */
1965 }
1966 if (0) {
1967 { /* Inline kernel$Object$!= (var_nmodule,((val*)NULL)) on <var_nmodule:nullable AModule> */
1968 var_other = ((val*)NULL);
1969 {
1970 var8 = ((short int(*)(val* self, val* p0))(var_nmodule->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nmodule, var_other); /* == on <var_nmodule:nullable AModule(AModule)>*/
1971 }
1972 var9 = !var8;
1973 var6 = var9;
1974 goto RET_LABEL7;
1975 RET_LABEL7:(void)0;
1976 }
1977 var5 = var6;
1978 }
1979 if (var5){
1980 var = var_nmodule;
1981 goto RET_LABEL;
1982 } else {
1983 }
1984 {
1985 var10 = nitc___nitc__MModule___filepath(self);
1986 }
1987 var_filepath = var10;
1988 if (var_filepath == NULL) {
1989 var11 = 0; /* is null */
1990 } else {
1991 var11 = 1; /* arg is null and recv is not */
1992 }
1993 if (0) {
1994 { /* Inline kernel$Object$!= (var_filepath,((val*)NULL)) on <var_filepath:nullable String> */
1995 var_other = ((val*)NULL);
1996 {
1997 var14 = ((short int(*)(val* self, val* p0))(var_filepath->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_filepath, var_other); /* == on <var_filepath:nullable String(String)>*/
1998 }
1999 var15 = !var14;
2000 var12 = var15;
2001 goto RET_LABEL13;
2002 RET_LABEL13:(void)0;
2003 }
2004 var11 = var12;
2005 }
2006 if (unlikely(!var11)) {
2007 if(catchStack.cursor >= 0){
2008 longjmp(catchStack.envs[catchStack.cursor], 1);
2009 }
2010 PRINT_ERROR("Runtime error: %s", "Assert failed");
2011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1126);
2012 fatal_exit(1);
2013 }
2014 {
2015 var16 = nitc__loader___ModelBuilder___load_module_ast(var_modelbuilder, var_filepath);
2016 }
2017 var_nmodule = var16;
2018 if (var_nmodule == NULL) {
2019 var17 = 1; /* is null */
2020 } else {
2021 var17 = 0; /* arg is null but recv is not */
2022 }
2023 if (0) {
2024 { /* Inline kernel$Object$== (var_nmodule,((val*)NULL)) on <var_nmodule:nullable AModule> */
2025 var_other20 = ((val*)NULL);
2026 {
2027 { /* Inline kernel$Object$is_same_instance (var_nmodule,var_other20) on <var_nmodule:nullable AModule(AModule)> */
2028 var23 = var_nmodule == var_other20;
2029 var21 = var23;
2030 goto RET_LABEL22;
2031 RET_LABEL22:(void)0;
2032 }
2033 }
2034 var18 = var21;
2035 goto RET_LABEL19;
2036 RET_LABEL19:(void)0;
2037 }
2038 var17 = var18;
2039 }
2040 if (var17){
2041 var = ((val*)NULL);
2042 goto RET_LABEL;
2043 } else {
2044 }
2045 {
2046 { /* Inline loader$AModule$mmodule= (var_nmodule,self) on <var_nmodule:nullable AModule(AModule)> */
2047 var_nmodule->attrs[COLOR_nitc__loader__AModule___mmodule].val = self; /* _mmodule on <var_nmodule:nullable AModule(AModule)> */
2048 RET_LABEL24:(void)0;
2049 }
2050 }
2051 {
2052 { /* Inline parser_nodes$ANode$location (var_nmodule) on <var_nmodule:nullable AModule(AModule)> */
2053 var27 = var_nmodule->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_nmodule:nullable AModule(AModule)> */
2054 if (unlikely(var27 == NULL)) {
2055 if(catchStack.cursor >= 0){
2056 longjmp(catchStack.envs[catchStack.cursor], 1);
2057 }
2058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2059 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
2060 fatal_exit(1);
2061 }
2062 var25 = var27;
2063 RET_LABEL26:(void)0;
2064 }
2065 }
2066 {
2067 { /* Inline mmodule$MModule$location= (self,var25) on <self:MModule> */
2068 self->attrs[COLOR_nitc__mmodule__MModule___location].val = var25; /* _location on <self:MModule> */
2069 RET_LABEL28:(void)0;
2070 }
2071 }
2072 {
2073 { /* Inline mmodule$MModule$mgroup (self) on <self:MModule> */
2074 var31 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
2075 var29 = var31;
2076 RET_LABEL30:(void)0;
2077 }
2078 }
2079 {
2080 nitc__loader___ModelBuilder___build_a_mmodule(var_modelbuilder, var29, var_nmodule); /* Direct call loader$ModelBuilder$build_a_mmodule on <var_modelbuilder:ModelBuilder>*/
2081 }
2082 {
2083 { /* Inline loader$ModelBuilder$parsed_modules (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2084 var34 = var_modelbuilder->attrs[COLOR_nitc__loader__ModelBuilder___parsed_modules].val; /* _parsed_modules on <var_modelbuilder:ModelBuilder> */
2085 if (unlikely(var34 == NULL)) {
2086 if(catchStack.cursor >= 0){
2087 longjmp(catchStack.envs[catchStack.cursor], 1);
2088 }
2089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parsed_modules");
2090 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 325);
2091 fatal_exit(1);
2092 }
2093 var32 = var34;
2094 RET_LABEL33:(void)0;
2095 }
2096 }
2097 {
2098 core___core__Array___core__abstract_collection__SimpleCollection__add(var32, self); /* Direct call array$Array$add on <var32:Array[MModule]>*/
2099 }
2100 var = var_nmodule;
2101 goto RET_LABEL;
2102 RET_LABEL:;
2103 return var;
2104 }
2105 /* method loader$MModule$load for (self: MModule, ModelBuilder): nullable AModule */
2106 val* nitc__loader___MModule___load(val* self, val* p0) {
2107 val* var /* : nullable AModule */;
2108 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2109 val* var1 /* : nullable AModule */;
2110 val* var_nmodule /* var nmodule: nullable AModule */;
2111 short int var2 /* : Bool */;
2112 short int var3 /* : Bool */;
2113 val* var_other /* var other: nullable Object */;
2114 short int var5 /* : Bool */;
2115 short int var7 /* : Bool */;
2116 var_modelbuilder = p0;
2117 {
2118 var1 = nitc__loader___MModule___parse(self, var_modelbuilder);
2119 }
2120 var_nmodule = var1;
2121 if (var_nmodule == NULL) {
2122 var2 = 1; /* is null */
2123 } else {
2124 var2 = 0; /* arg is null but recv is not */
2125 }
2126 if (0) {
2127 { /* Inline kernel$Object$== (var_nmodule,((val*)NULL)) on <var_nmodule:nullable AModule> */
2128 var_other = ((val*)NULL);
2129 {
2130 { /* Inline kernel$Object$is_same_instance (var_nmodule,var_other) on <var_nmodule:nullable AModule(AModule)> */
2131 var7 = var_nmodule == var_other;
2132 var5 = var7;
2133 goto RET_LABEL6;
2134 RET_LABEL6:(void)0;
2135 }
2136 }
2137 var3 = var5;
2138 goto RET_LABEL4;
2139 RET_LABEL4:(void)0;
2140 }
2141 var2 = var3;
2142 }
2143 if (var2){
2144 var = ((val*)NULL);
2145 goto RET_LABEL;
2146 } else {
2147 }
2148 {
2149 nitc__loader___ModelBuilder___build_module_importation(var_modelbuilder, var_nmodule); /* Direct call loader$ModelBuilder$build_module_importation on <var_modelbuilder:ModelBuilder>*/
2150 }
2151 var = var_nmodule;
2152 goto RET_LABEL;
2153 RET_LABEL:;
2154 return var;
2155 }
2156 /* method loader$MPackage$ini for (self: MPackage): nullable ConfigTree */
2157 val* nitc__loader___MPackage___ini(val* self) {
2158 val* var /* : nullable ConfigTree */;
2159 val* var1 /* : nullable ConfigTree */;
2160 var1 = self->attrs[COLOR_nitc__loader__MPackage___ini].val; /* _ini on <self:MPackage> */
2161 var = var1;
2162 RET_LABEL:;
2163 return var;
2164 }
2165 /* method loader$MPackage$ini= for (self: MPackage, nullable ConfigTree) */
2166 void nitc__loader___MPackage___ini_61d(val* self, val* p0) {
2167 self->attrs[COLOR_nitc__loader__MPackage___ini].val = p0; /* _ini on <self:MPackage> */
2168 RET_LABEL:;
2169 }
2170 /* method loader$MPackage$excludes for (self: MPackage): nullable Array[String] */
2171 val* nitc__loader___MPackage___excludes(val* self) {
2172 val* var /* : nullable Array[String] */;
2173 short int var1 /* : Bool */;
2174 val* var2 /* : nullable Array[String] */;
2175 val* var3 /* : nullable Array[String] */;
2176 val* var5 /* : nullable ConfigTree */;
2177 val* var7 /* : nullable ConfigTree */;
2178 val* var_ini /* var ini: nullable ConfigTree */;
2179 short int var8 /* : Bool */;
2180 short int var9 /* : Bool */;
2181 val* var_other /* var other: nullable Object */;
2182 short int var11 /* : Bool */;
2183 short int var13 /* : Bool */;
2184 static val* varonce;
2185 val* var14 /* : String */;
2186 char* var15 /* : CString */;
2187 val* var16 /* : String */;
2188 val* var17 /* : nullable Int */;
2189 val* var18 /* : nullable Int */;
2190 val* var19 /* : nullable Bool */;
2191 val* var20 /* : nullable Bool */;
2192 val* var21 /* : nullable String */;
2193 val* var_exclude /* var exclude: nullable String */;
2194 short int var22 /* : Bool */;
2195 short int var23 /* : Bool */;
2196 static val* varonce24;
2197 val* var25 /* : String */;
2198 char* var26 /* : CString */;
2199 val* var27 /* : String */;
2200 val* var28 /* : nullable Int */;
2201 val* var29 /* : nullable Int */;
2202 val* var30 /* : nullable Bool */;
2203 val* var31 /* : nullable Bool */;
2204 val* var32 /* : Array[String] */;
2205 val* var_excludes /* var excludes: Array[String] */;
2206 var1 = self->attrs[COLOR_nitc__loader__MPackage__lazy_32d_excludes].s; /* lazy _excludes on <self:MPackage> */
2207 if(likely(var1)) {
2208 var2 = self->attrs[COLOR_nitc__loader__MPackage___excludes].val; /* _excludes on <self:MPackage> */
2209 } else {
2210 {
2211 {
2212 { /* Inline loader$MPackage$ini (self) on <self:MPackage> */
2213 var7 = self->attrs[COLOR_nitc__loader__MPackage___ini].val; /* _ini on <self:MPackage> */
2214 var5 = var7;
2215 RET_LABEL6:(void)0;
2216 }
2217 }
2218 var_ini = var5;
2219 if (var_ini == NULL) {
2220 var8 = 1; /* is null */
2221 } else {
2222 var8 = 0; /* arg is null but recv is not */
2223 }
2224 if (0) {
2225 { /* Inline kernel$Object$== (var_ini,((val*)NULL)) on <var_ini:nullable ConfigTree> */
2226 var_other = ((val*)NULL);
2227 {
2228 { /* Inline kernel$Object$is_same_instance (var_ini,var_other) on <var_ini:nullable ConfigTree(ConfigTree)> */
2229 var13 = var_ini == var_other;
2230 var11 = var13;
2231 goto RET_LABEL12;
2232 RET_LABEL12:(void)0;
2233 }
2234 }
2235 var9 = var11;
2236 goto RET_LABEL10;
2237 RET_LABEL10:(void)0;
2238 }
2239 var8 = var9;
2240 }
2241 if (var8){
2242 var3 = ((val*)NULL);
2243 goto RET_LABEL4;
2244 } else {
2245 }
2246 if (likely(varonce!=NULL)) {
2247 var14 = varonce;
2248 } else {
2249 var15 = "source.exclude";
2250 var17 = (val*)(14l<<2|1);
2251 var18 = (val*)(14l<<2|1);
2252 var19 = (val*)((long)(0)<<2|3);
2253 var20 = (val*)((long)(0)<<2|3);
2254 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
2255 var14 = var16;
2256 varonce = var14;
2257 }
2258 {
2259 var21 = ini___ini__ConfigTree____91d_93d(var_ini, var14);
2260 }
2261 var_exclude = var21;
2262 if (var_exclude == NULL) {
2263 var22 = 1; /* is null */
2264 } else {
2265 var22 = 0; /* arg is null but recv is not */
2266 }
2267 if (0) {
2268 var23 = ((short int(*)(val* self, val* p0))(var_exclude->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_exclude, ((val*)NULL)); /* == on <var_exclude:nullable String>*/
2269 var22 = var23;
2270 }
2271 if (var22){
2272 var3 = ((val*)NULL);
2273 goto RET_LABEL4;
2274 } else {
2275 }
2276 if (likely(varonce24!=NULL)) {
2277 var25 = varonce24;
2278 } else {
2279 var26 = ":";
2280 var28 = (val*)(1l<<2|1);
2281 var29 = (val*)(1l<<2|1);
2282 var30 = (val*)((long)(0)<<2|3);
2283 var31 = (val*)((long)(0)<<2|3);
2284 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
2285 var25 = var27;
2286 varonce24 = var25;
2287 }
2288 {
2289 var32 = core__string_search___Text___split(var_exclude, var25);
2290 }
2291 var_excludes = var32;
2292 var3 = var_excludes;
2293 goto RET_LABEL4;
2294 RET_LABEL4:(void)0;
2295 }
2296 self->attrs[COLOR_nitc__loader__MPackage___excludes].val = var3; /* _excludes on <self:MPackage> */
2297 var2 = var3;
2298 self->attrs[COLOR_nitc__loader__MPackage__lazy_32d_excludes].s = 1; /* lazy _excludes on <self:MPackage> */
2299 }
2300 var = var2;
2301 RET_LABEL:;
2302 return var;
2303 }
2304 /* method loader$MPackage$accept for (self: MPackage, String): Bool */
2305 short int nitc__loader___MPackage___accept(val* self, val* p0) {
2306 short int var /* : Bool */;
2307 val* var_filepath /* var filepath: String */;
2308 val* var1 /* : nullable Array[String] */;
2309 val* var_excludes /* var excludes: nullable Array[String] */;
2310 short int var2 /* : Bool */;
2311 short int var3 /* : Bool */;
2312 val* var_other /* var other: nullable Object */;
2313 short int var5 /* : Bool */;
2314 short int var6 /* : Bool */;
2315 val* var7 /* : nullable MGroup */;
2316 val* var9 /* : nullable MGroup */;
2317 val* var10 /* : nullable String */;
2318 val* var11 /* : String */;
2319 val* var_relpath /* var relpath: String */;
2320 short int var12 /* : Bool */;
2321 var_filepath = p0;
2322 {
2323 var1 = nitc__loader___MPackage___excludes(self);
2324 }
2325 var_excludes = var1;
2326 if (var_excludes == NULL) {
2327 var2 = 0; /* is null */
2328 } else {
2329 var2 = 1; /* arg is null and recv is not */
2330 }
2331 if (0) {
2332 { /* Inline kernel$Object$!= (var_excludes,((val*)NULL)) on <var_excludes:nullable Array[String]> */
2333 var_other = ((val*)NULL);
2334 {
2335 var5 = ((short int(*)(val* self, val* p0))(var_excludes->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_excludes, var_other); /* == on <var_excludes:nullable Array[String](Array[String])>*/
2336 }
2337 var6 = !var5;
2338 var3 = var6;
2339 goto RET_LABEL4;
2340 RET_LABEL4:(void)0;
2341 }
2342 var2 = var3;
2343 }
2344 if (var2){
2345 {
2346 { /* Inline mpackage$MPackage$root (self) on <self:MPackage> */
2347 var9 = self->attrs[COLOR_nitc__mpackage__MPackage___root].val; /* _root on <self:MPackage> */
2348 var7 = var9;
2349 RET_LABEL8:(void)0;
2350 }
2351 }
2352 if (var7 == NULL) {
2353 if(catchStack.cursor >= 0){
2354 longjmp(catchStack.envs[catchStack.cursor], 1);
2355 }
2356 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2357 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1176);
2358 fatal_exit(1);
2359 } else {
2360 var10 = nitc___nitc__MGroup___filepath(var7);
2361 }
2362 if (var10 == NULL) {
2363 if(catchStack.cursor >= 0){
2364 longjmp(catchStack.envs[catchStack.cursor], 1);
2365 }
2366 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2367 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1176);
2368 fatal_exit(1);
2369 } else {
2370 var11 = core__file___String___relpath(var10, var_filepath);
2371 }
2372 var_relpath = var11;
2373 {
2374 var12 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var_excludes, var_relpath);
2375 }
2376 if (var12){
2377 var = 0;
2378 goto RET_LABEL;
2379 } else {
2380 }
2381 } else {
2382 }
2383 var = 1;
2384 goto RET_LABEL;
2385 RET_LABEL:;
2386 return var;
2387 }
2388 /* method loader$MGroup$scanned for (self: MGroup): Bool */
2389 short int nitc__loader___MGroup___scanned(val* self) {
2390 short int var /* : Bool */;
2391 short int var1 /* : Bool */;
2392 var1 = self->attrs[COLOR_nitc__loader__MGroup___scanned].s; /* _scanned on <self:MGroup> */
2393 var = var1;
2394 RET_LABEL:;
2395 return var;
2396 }
2397 /* method loader$MGroup$scanned= for (self: MGroup, Bool) */
2398 void nitc__loader___MGroup___scanned_61d(val* self, short int p0) {
2399 self->attrs[COLOR_nitc__loader__MGroup___scanned].s = p0; /* _scanned on <self:MGroup> */
2400 RET_LABEL:;
2401 }
2402 /* method loader$MGroup$mmodules_by_name for (self: MGroup, String): Array[MModule] */
2403 val* nitc__loader___MGroup___mmodules_by_name(val* self, val* p0) {
2404 val* var /* : Array[MModule] */;
2405 val* var_name /* var name: String */;
2406 val* var1 /* : Array[MModule] */;
2407 val* var_res /* var res: Array[MModule] */;
2408 val* var2 /* : POSetElement[MGroup] */;
2409 val* var4 /* : POSetElement[MGroup] */;
2410 val* var5 /* : Collection[nullable Object] */;
2411 val* var_ /* var : Collection[MGroup] */;
2412 val* var6 /* : Iterator[nullable Object] */;
2413 val* var_7 /* var : Iterator[MGroup] */;
2414 short int var8 /* : Bool */;
2415 val* var9 /* : nullable Object */;
2416 val* var_g /* var g: MGroup */;
2417 val* var10 /* : Array[MModule] */;
2418 val* var12 /* : Array[MModule] */;
2419 val* var_13 /* var : Array[MModule] */;
2420 val* var14 /* : IndexedIterator[nullable Object] */;
2421 val* var_15 /* var : IndexedIterator[MModule] */;
2422 short int var16 /* : Bool */;
2423 val* var18 /* : nullable Object */;
2424 val* var_mp /* var mp: MModule */;
2425 val* var19 /* : String */;
2426 val* var21 /* : String */;
2427 short int var22 /* : Bool */;
2428 var_name = p0;
2429 var1 = NEW_core__Array(&type_core__Array__nitc__MModule);
2430 {
2431 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[MModule]>*/
2432 }
2433 var_res = var1;
2434 {
2435 { /* Inline mpackage$MGroup$in_nesting (self) on <self:MGroup> */
2436 var4 = self->attrs[COLOR_nitc__mpackage__MGroup___in_nesting].val; /* _in_nesting on <self:MGroup> */
2437 if (unlikely(var4 == NULL)) {
2438 if(catchStack.cursor >= 0){
2439 longjmp(catchStack.envs[catchStack.cursor], 1);
2440 }
2441 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_nesting");
2442 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 95);
2443 fatal_exit(1);
2444 }
2445 var2 = var4;
2446 RET_LABEL3:(void)0;
2447 }
2448 }
2449 {
2450 var5 = poset___poset__POSetElement___smallers(var2);
2451 }
2452 var_ = var5;
2453 {
2454 var6 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[MGroup]>*/
2455 }
2456 var_7 = var6;
2457 for(;;) {
2458 {
2459 var8 = ((short int(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_7); /* is_ok on <var_7:Iterator[MGroup]>*/
2460 }
2461 if (var8){
2462 } else {
2463 goto BREAK_label;
2464 }
2465 {
2466 var9 = ((val*(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_7); /* item on <var_7:Iterator[MGroup]>*/
2467 }
2468 var_g = var9;
2469 {
2470 { /* Inline mmodule$MGroup$mmodules (var_g) on <var_g:MGroup> */
2471 var12 = var_g->attrs[COLOR_nitc__mmodule__MGroup___mmodules].val; /* _mmodules on <var_g:MGroup> */
2472 if (unlikely(var12 == NULL)) {
2473 if(catchStack.cursor >= 0){
2474 longjmp(catchStack.envs[catchStack.cursor], 1);
2475 }
2476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
2477 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 54);
2478 fatal_exit(1);
2479 }
2480 var10 = var12;
2481 RET_LABEL11:(void)0;
2482 }
2483 }
2484 var_13 = var10;
2485 {
2486 var14 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_13);
2487 }
2488 var_15 = var14;
2489 for(;;) {
2490 {
2491 var16 = ((short int(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_15); /* is_ok on <var_15:IndexedIterator[MModule]>*/
2492 }
2493 if (var16){
2494 } else {
2495 goto BREAK_label17;
2496 }
2497 {
2498 var18 = ((val*(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_15); /* item on <var_15:IndexedIterator[MModule]>*/
2499 }
2500 var_mp = var18;
2501 {
2502 { /* Inline mmodule$MModule$name (var_mp) on <var_mp:MModule> */
2503 var21 = var_mp->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <var_mp:MModule> */
2504 if (unlikely(var21 == NULL)) {
2505 if(catchStack.cursor >= 0){
2506 longjmp(catchStack.envs[catchStack.cursor], 1);
2507 }
2508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2509 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 100);
2510 fatal_exit(1);
2511 }
2512 var19 = var21;
2513 RET_LABEL20:(void)0;
2514 }
2515 }
2516 {
2517 var22 = ((short int(*)(val* self, val* p0))(var19->class->vft[COLOR_core__kernel__Object___61d_61d]))(var19, var_name); /* == on <var19:String>*/
2518 }
2519 if (var22){
2520 {
2521 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var_mp); /* Direct call array$Array$add on <var_res:Array[MModule]>*/
2522 }
2523 } else {
2524 }
2525 {
2526 ((void(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_15); /* next on <var_15:IndexedIterator[MModule]>*/
2527 }
2528 }
2529 BREAK_label17: (void)0;
2530 {
2531 ((void(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_15); /* finish on <var_15:IndexedIterator[MModule]>*/
2532 }
2533 {
2534 ((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_7); /* next on <var_7:Iterator[MGroup]>*/
2535 }
2536 }
2537 BREAK_label: (void)0;
2538 {
2539 ((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_7); /* finish on <var_7:Iterator[MGroup]>*/
2540 }
2541 var = var_res;
2542 goto RET_LABEL;
2543 RET_LABEL:;
2544 return var;
2545 }
2546 /* method loader$SourceFile$mmodule for (self: SourceFile): nullable MModule */
2547 val* nitc__loader___SourceFile___mmodule(val* self) {
2548 val* var /* : nullable MModule */;
2549 val* var1 /* : nullable MModule */;
2550 var1 = self->attrs[COLOR_nitc__loader__SourceFile___mmodule].val; /* _mmodule on <self:SourceFile> */
2551 var = var1;
2552 RET_LABEL:;
2553 return var;
2554 }
2555 /* method loader$SourceFile$mmodule= for (self: SourceFile, nullable MModule) */
2556 void nitc__loader___SourceFile___mmodule_61d(val* self, val* p0) {
2557 self->attrs[COLOR_nitc__loader__SourceFile___mmodule].val = p0; /* _mmodule on <self:SourceFile> */
2558 RET_LABEL:;
2559 }
2560 /* method loader$AStdImport$mmodule for (self: AStdImport): nullable MModule */
2561 val* nitc__loader___AStdImport___mmodule(val* self) {
2562 val* var /* : nullable MModule */;
2563 val* var1 /* : nullable MModule */;
2564 var1 = self->attrs[COLOR_nitc__loader__AStdImport___mmodule].val; /* _mmodule on <self:AStdImport> */
2565 var = var1;
2566 RET_LABEL:;
2567 return var;
2568 }
2569 /* method loader$AStdImport$mmodule= for (self: AStdImport, nullable MModule) */
2570 void nitc__loader___AStdImport___mmodule_61d(val* self, val* p0) {
2571 self->attrs[COLOR_nitc__loader__AStdImport___mmodule].val = p0; /* _mmodule on <self:AStdImport> */
2572 RET_LABEL:;
2573 }
2574 /* method loader$AModule$mmodule for (self: AModule): nullable MModule */
2575 val* nitc__loader___AModule___mmodule(val* self) {
2576 val* var /* : nullable MModule */;
2577 val* var1 /* : nullable MModule */;
2578 var1 = self->attrs[COLOR_nitc__loader__AModule___mmodule].val; /* _mmodule on <self:AModule> */
2579 var = var1;
2580 RET_LABEL:;
2581 return var;
2582 }
2583 /* method loader$AModule$mmodule= for (self: AModule, nullable MModule) */
2584 void nitc__loader___AModule___mmodule_61d(val* self, val* p0) {
2585 self->attrs[COLOR_nitc__loader__AModule___mmodule].val = p0; /* _mmodule on <self:AModule> */
2586 RET_LABEL:;
2587 }
2588 /* method loader$AModule$is_importation_done for (self: AModule): Bool */
2589 short int nitc__loader___AModule___is_importation_done(val* self) {
2590 short int var /* : Bool */;
2591 short int var1 /* : Bool */;
2592 var1 = self->attrs[COLOR_nitc__loader__AModule___is_importation_done].s; /* _is_importation_done on <self:AModule> */
2593 var = var1;
2594 RET_LABEL:;
2595 return var;
2596 }
2597 /* method loader$AModule$is_importation_done= for (self: AModule, Bool) */
2598 void nitc__loader___AModule___is_importation_done_61d(val* self, short int p0) {
2599 self->attrs[COLOR_nitc__loader__AModule___is_importation_done].s = p0; /* _is_importation_done on <self:AModule> */
2600 RET_LABEL:;
2601 }