1 #include "modelbuilder.sep.0.h"
2 /* method modelbuilder#ToolContext#opt_path for (self: ToolContext): OptionArray */
3 val
* modelbuilder__ToolContext__opt_path(val
* self
) {
4 val
* var
/* : OptionArray */;
5 val
* var1
/* : OptionArray */;
6 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_path
].val
; /* _opt_path on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path");
9 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37);
16 /* method modelbuilder#ToolContext#opt_path for (self: Object): OptionArray */
17 val
* VIRTUAL_modelbuilder__ToolContext__opt_path(val
* self
) {
18 val
* var
/* : OptionArray */;
19 val
* var1
/* : OptionArray */;
20 val
* var3
/* : OptionArray */;
21 { /* Inline modelbuilder#ToolContext#opt_path (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_path
].val
; /* _opt_path on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path");
25 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37);
35 /* method modelbuilder#ToolContext#opt_only_metamodel for (self: ToolContext): OptionBool */
36 val
* modelbuilder__ToolContext__opt_only_metamodel(val
* self
) {
37 val
* var
/* : OptionBool */;
38 val
* var1
/* : OptionBool */;
39 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_metamodel
].val
; /* _opt_only_metamodel on <self:ToolContext> */
40 if (unlikely(var1
== NULL
)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
42 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40);
49 /* method modelbuilder#ToolContext#opt_only_metamodel for (self: Object): OptionBool */
50 val
* VIRTUAL_modelbuilder__ToolContext__opt_only_metamodel(val
* self
) {
51 val
* var
/* : OptionBool */;
52 val
* var1
/* : OptionBool */;
53 val
* var3
/* : OptionBool */;
54 { /* Inline modelbuilder#ToolContext#opt_only_metamodel (self) on <self:Object(ToolContext)> */
55 var3
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_metamodel
].val
; /* _opt_only_metamodel on <self:Object(ToolContext)> */
56 if (unlikely(var3
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
58 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40);
68 /* method modelbuilder#ToolContext#opt_only_parse for (self: ToolContext): OptionBool */
69 val
* modelbuilder__ToolContext__opt_only_parse(val
* self
) {
70 val
* var
/* : OptionBool */;
71 val
* var1
/* : OptionBool */;
72 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_parse
].val
; /* _opt_only_parse on <self:ToolContext> */
73 if (unlikely(var1
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse");
75 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43);
82 /* method modelbuilder#ToolContext#opt_only_parse for (self: Object): OptionBool */
83 val
* VIRTUAL_modelbuilder__ToolContext__opt_only_parse(val
* self
) {
84 val
* var
/* : OptionBool */;
85 val
* var1
/* : OptionBool */;
86 val
* var3
/* : OptionBool */;
87 { /* Inline modelbuilder#ToolContext#opt_only_parse (self) on <self:Object(ToolContext)> */
88 var3
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_parse
].val
; /* _opt_only_parse on <self:Object(ToolContext)> */
89 if (unlikely(var3
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse");
91 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43);
101 /* method modelbuilder#ToolContext#opt_ignore_visibility for (self: ToolContext): OptionBool */
102 val
* modelbuilder__ToolContext__opt_ignore_visibility(val
* self
) {
103 val
* var
/* : OptionBool */;
104 val
* var1
/* : OptionBool */;
105 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <self:ToolContext> */
106 if (unlikely(var1
== NULL
)) {
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
108 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 46);
115 /* method modelbuilder#ToolContext#opt_ignore_visibility for (self: Object): OptionBool */
116 val
* VIRTUAL_modelbuilder__ToolContext__opt_ignore_visibility(val
* self
) {
117 val
* var
/* : OptionBool */;
118 val
* var1
/* : OptionBool */;
119 val
* var3
/* : OptionBool */;
120 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on <self:Object(ToolContext)> */
121 var3
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <self:Object(ToolContext)> */
122 if (unlikely(var3
== NULL
)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
124 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 46);
134 /* method modelbuilder#ToolContext#init for (self: ToolContext) */
135 void modelbuilder__ToolContext__init(val
* self
) {
136 val
* var
/* : OptionContext */;
137 val
* var2
/* : OptionContext */;
138 val
* var3
/* : OptionArray */;
139 val
* var5
/* : OptionArray */;
140 val
* var6
/* : OptionBool */;
141 val
* var8
/* : OptionBool */;
142 val
* var9
/* : OptionBool */;
143 val
* var11
/* : OptionBool */;
144 val
* var12
/* : OptionBool */;
145 val
* var14
/* : OptionBool */;
146 val
* var15
/* : Array[Option] */;
147 long var16
/* : Int */;
148 val
* var17
/* : NativeArray[Option] */;
150 ((void (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
153 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
154 var2
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
155 if (unlikely(var2
== NULL
)) {
156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
157 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
165 { /* Inline modelbuilder#ToolContext#opt_path (self) on <self:ToolContext> */
166 var5
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_path
].val
; /* _opt_path on <self:ToolContext> */
167 if (unlikely(var5
== NULL
)) {
168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path");
169 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37);
177 { /* Inline modelbuilder#ToolContext#opt_only_parse (self) on <self:ToolContext> */
178 var8
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_parse
].val
; /* _opt_only_parse on <self:ToolContext> */
179 if (unlikely(var8
== NULL
)) {
180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse");
181 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43);
189 { /* Inline modelbuilder#ToolContext#opt_only_metamodel (self) on <self:ToolContext> */
190 var11
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_metamodel
].val
; /* _opt_only_metamodel on <self:ToolContext> */
191 if (unlikely(var11
== NULL
)) {
192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
193 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40);
201 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on <self:ToolContext> */
202 var14
= self
->attrs
[COLOR_modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <self:ToolContext> */
203 if (unlikely(var14
== NULL
)) {
204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
205 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 46);
212 var15
= NEW_array__Array(&type_array__Arrayopts__Option
);
213 { /* var15 = array_instance Array[Option] */
215 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArrayopts__Option
);
216 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var3
;
217 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var6
;
218 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var9
;
219 ((struct instance_array__NativeArray
*)var17
)->values
[3] = (val
*) var12
;
221 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Option]>*/;
225 opts__OptionContext__add_option(var
, var15
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
229 /* method modelbuilder#ToolContext#init for (self: Object) */
230 void VIRTUAL_modelbuilder__ToolContext__init(val
* self
) {
231 modelbuilder__ToolContext__init(self
); /* Direct call modelbuilder#ToolContext#init on <self:Object(ToolContext)>*/
234 /* method modelbuilder#ToolContext#modelbuilder for (self: ToolContext): ModelBuilder */
235 val
* modelbuilder__ToolContext__modelbuilder(val
* self
) {
236 val
* var
/* : ModelBuilder */;
237 val
* var1
/* : nullable ModelBuilder */;
238 val
* var3
/* : nullable ModelBuilder */;
240 { /* Inline modelbuilder#ToolContext#modelbuilder_real (self) on <self:ToolContext> */
241 var3
= self
->attrs
[COLOR_modelbuilder__ToolContext___modelbuilder_real
].val
; /* _modelbuilder_real on <self:ToolContext> */
246 if (unlikely(var1
== NULL
)) {
247 PRINT_ERROR("Runtime error: %s", "Cast failed");
248 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 55);
256 /* method modelbuilder#ToolContext#modelbuilder for (self: Object): ModelBuilder */
257 val
* VIRTUAL_modelbuilder__ToolContext__modelbuilder(val
* self
) {
258 val
* var
/* : ModelBuilder */;
259 val
* var1
/* : ModelBuilder */;
260 var1
= modelbuilder__ToolContext__modelbuilder(self
);
265 /* method modelbuilder#ToolContext#modelbuilder_real for (self: ToolContext): nullable ModelBuilder */
266 val
* modelbuilder__ToolContext__modelbuilder_real(val
* self
) {
267 val
* var
/* : nullable ModelBuilder */;
268 val
* var1
/* : nullable ModelBuilder */;
269 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___modelbuilder_real
].val
; /* _modelbuilder_real on <self:ToolContext> */
274 /* method modelbuilder#ToolContext#modelbuilder_real for (self: Object): nullable ModelBuilder */
275 val
* VIRTUAL_modelbuilder__ToolContext__modelbuilder_real(val
* self
) {
276 val
* var
/* : nullable ModelBuilder */;
277 val
* var1
/* : nullable ModelBuilder */;
278 val
* var3
/* : nullable ModelBuilder */;
279 { /* Inline modelbuilder#ToolContext#modelbuilder_real (self) on <self:Object(ToolContext)> */
280 var3
= self
->attrs
[COLOR_modelbuilder__ToolContext___modelbuilder_real
].val
; /* _modelbuilder_real on <self:Object(ToolContext)> */
288 /* method modelbuilder#ToolContext#modelbuilder_real= for (self: ToolContext, nullable ModelBuilder) */
289 void modelbuilder__ToolContext__modelbuilder_real_61d(val
* self
, val
* p0
) {
290 self
->attrs
[COLOR_modelbuilder__ToolContext___modelbuilder_real
].val
= p0
; /* _modelbuilder_real on <self:ToolContext> */
293 /* method modelbuilder#ToolContext#modelbuilder_real= for (self: Object, nullable ModelBuilder) */
294 void VIRTUAL_modelbuilder__ToolContext__modelbuilder_real_61d(val
* self
, val
* p0
) {
295 { /* Inline modelbuilder#ToolContext#modelbuilder_real= (self,p0) on <self:Object(ToolContext)> */
296 self
->attrs
[COLOR_modelbuilder__ToolContext___modelbuilder_real
].val
= p0
; /* _modelbuilder_real on <self:Object(ToolContext)> */
301 /* method modelbuilder#ToolContext#run_global_phases for (self: ToolContext, Array[MModule]) */
302 void modelbuilder__ToolContext__run_global_phases(val
* self
, val
* p0
) {
303 val
* var_mmodules
/* var mmodules: Array[MModule] */;
304 short int var
/* : Bool */;
305 short int var1
/* : Bool */;
306 long var2
/* : Int */;
307 long var3
/* : Int */;
308 short int var4
/* : Bool */;
309 short int var5
/* : Bool */;
310 short int var7
/* : Bool */;
311 val
* var8
/* : nullable Object */;
312 val
* var_mainmodule
/* var mainmodule: nullable Object */;
313 val
* var9
/* : MModule */;
314 val
* var10
/* : ModelBuilder */;
315 val
* var11
/* : Model */;
316 val
* var13
/* : Model */;
317 val
* var14
/* : null */;
318 val
* var15
/* : nullable Object */;
319 val
* var16
/* : String */;
320 val
* var18
/* : String */;
321 val
* var19
/* : Location */;
322 val
* var20
/* : nullable Object */;
323 val
* var21
/* : Location */;
324 val
* var23
/* : Location */;
325 val
* var24
/* : nullable SourceFile */;
326 val
* var26
/* : nullable SourceFile */;
327 long var27
/* : Int */;
328 long var28
/* : Int */;
329 long var29
/* : Int */;
330 long var30
/* : Int */;
331 short int var31
/* : Bool */;
332 val
* var33
/* : Sequence[Phase] */;
333 val
* var34
/* : Iterator[nullable Object] */;
334 short int var35
/* : Bool */;
335 val
* var36
/* : nullable Object */;
336 val
* var_phase
/* var phase: Phase */;
337 short int var37
/* : Bool */;
338 short int var39
/* : Bool */;
341 var
= array__AbstractArrayRead__is_empty(var_mmodules
);
344 if (unlikely(!var1
)) {
345 PRINT_ERROR("Runtime error: %s", "Assert failed");
346 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 61);
350 var2
= array__AbstractArrayRead__length(var_mmodules
);
354 { /* Inline kernel#Int#== (var2,var3) on <var2:Int> */
364 var8
= abstract_collection__SequenceRead__first(var_mmodules
);
366 var_mainmodule
= var8
;
368 var9
= NEW_mmodule__MModule(&type_mmodule__MModule
);
370 var10
= modelbuilder__ToolContext__modelbuilder(self
);
373 { /* Inline modelbuilder#ModelBuilder#model (var10) on <var10:ModelBuilder> */
374 var13
= var10
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <var10:ModelBuilder> */
375 if (unlikely(var13
== NULL
)) {
376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
377 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
386 var15
= abstract_collection__SequenceRead__first(var_mmodules
);
389 { /* Inline mmodule#MModule#name (var15) on <var15:nullable Object(MModule)> */
390 var18
= var15
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var15:nullable Object(MModule)> */
391 if (unlikely(var18
== NULL
)) {
392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
393 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86);
400 var19
= NEW_location__Location(&type_location__Location
);
402 var20
= abstract_collection__SequenceRead__first(var_mmodules
);
405 { /* Inline mmodule#MModule#location (var20) on <var20:nullable Object(MModule)> */
406 var23
= var20
->attrs
[COLOR_mmodule__MModule___location
].val
; /* _location on <var20:nullable Object(MModule)> */
407 if (unlikely(var23
== NULL
)) {
408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
409 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 89);
417 { /* Inline location#Location#file (var21) on <var21:Location> */
418 var26
= var21
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var21:Location> */
428 location__Location__init(var19
, var24
, var27
, var28
, var29
, var30
); /* Direct call location#Location#init on <var19:Location>*/
431 mmodule__MModule__init(var9
, var11
, var14
, var16
, var19
); /* Direct call mmodule#MModule#init on <var9:MModule>*/
433 var_mainmodule
= var9
;
436 { /* Inline mmodule#MModule#is_fictive= (var_mainmodule,var31) on <var_mainmodule:nullable Object(MModule)> */
437 var_mainmodule
->attrs
[COLOR_mmodule__MModule___is_fictive
].s
= var31
; /* _is_fictive on <var_mainmodule:nullable Object(MModule)> */
442 mmodule__MModule__set_imported_mmodules(var_mainmodule
, var_mmodules
); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/
446 var33
= phase__ToolContext__phases_list(self
);
449 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var33
) /* iterator on <var33:Sequence[Phase]>*/;
453 var35
= ((short int (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var34
) /* is_ok on <var34:Iterator[nullable Object]>*/;
457 var36
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var34
) /* item on <var34:Iterator[nullable Object]>*/;
461 { /* Inline phase#Phase#disabled (var_phase) on <var_phase:Phase> */
462 var39
= var_phase
->attrs
[COLOR_phase__Phase___disabled
].s
; /* _disabled on <var_phase:Phase> */
472 ((void (*)(val
*, val
*, val
*))(var_phase
->class->vft
[COLOR_modelbuilder__Phase__process_mainmodule
]))(var_phase
, var_mainmodule
, var_mmodules
) /* process_mainmodule on <var_phase:Phase>*/;
474 CONTINUE_label
: (void)0;
476 ((void (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var34
) /* next on <var34:Iterator[nullable Object]>*/;
479 BREAK_label
: (void)0;
482 /* method modelbuilder#ToolContext#run_global_phases for (self: Object, Array[MModule]) */
483 void VIRTUAL_modelbuilder__ToolContext__run_global_phases(val
* self
, val
* p0
) {
484 modelbuilder__ToolContext__run_global_phases(self
, p0
); /* Direct call modelbuilder#ToolContext#run_global_phases on <self:Object(ToolContext)>*/
487 /* method modelbuilder#Phase#process_mainmodule for (self: Phase, MModule, SequenceRead[MModule]) */
488 void modelbuilder__Phase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
489 val
* var_mainmodule
/* var mainmodule: MModule */;
490 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
492 var_given_mmodules
= p1
;
495 /* method modelbuilder#Phase#process_mainmodule for (self: Object, MModule, SequenceRead[MModule]) */
496 void VIRTUAL_modelbuilder__Phase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
497 val
* var_mainmodule
/* var mainmodule: MModule */;
498 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
499 { /* Inline modelbuilder#Phase#process_mainmodule (self,p0,p1) on <self:Object(Phase)> */
501 var_given_mmodules
= p1
;
506 /* method modelbuilder#ModelBuilder#model for (self: ModelBuilder): Model */
507 val
* modelbuilder__ModelBuilder__model(val
* self
) {
508 val
* var
/* : Model */;
509 val
* var1
/* : Model */;
510 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
511 if (unlikely(var1
== NULL
)) {
512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
513 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
520 /* method modelbuilder#ModelBuilder#model for (self: Object): Model */
521 val
* VIRTUAL_modelbuilder__ModelBuilder__model(val
* self
) {
522 val
* var
/* : Model */;
523 val
* var1
/* : Model */;
524 val
* var3
/* : Model */;
525 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:Object(ModelBuilder)> */
526 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:Object(ModelBuilder)> */
527 if (unlikely(var3
== NULL
)) {
528 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
529 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
539 /* method modelbuilder#ModelBuilder#model= for (self: ModelBuilder, Model) */
540 void modelbuilder__ModelBuilder__model_61d(val
* self
, val
* p0
) {
541 self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
= p0
; /* _model on <self:ModelBuilder> */
544 /* method modelbuilder#ModelBuilder#model= for (self: Object, Model) */
545 void VIRTUAL_modelbuilder__ModelBuilder__model_61d(val
* self
, val
* p0
) {
546 { /* Inline modelbuilder#ModelBuilder#model= (self,p0) on <self:Object(ModelBuilder)> */
547 self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
= p0
; /* _model on <self:Object(ModelBuilder)> */
552 /* method modelbuilder#ModelBuilder#toolcontext for (self: ModelBuilder): ToolContext */
553 val
* modelbuilder__ModelBuilder__toolcontext(val
* self
) {
554 val
* var
/* : ToolContext */;
555 val
* var1
/* : ToolContext */;
556 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
557 if (unlikely(var1
== NULL
)) {
558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
559 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
566 /* method modelbuilder#ModelBuilder#toolcontext for (self: Object): ToolContext */
567 val
* VIRTUAL_modelbuilder__ModelBuilder__toolcontext(val
* self
) {
568 val
* var
/* : ToolContext */;
569 val
* var1
/* : ToolContext */;
570 val
* var3
/* : ToolContext */;
571 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:Object(ModelBuilder)> */
572 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:Object(ModelBuilder)> */
573 if (unlikely(var3
== NULL
)) {
574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
575 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
585 /* method modelbuilder#ModelBuilder#toolcontext= for (self: ModelBuilder, ToolContext) */
586 void modelbuilder__ModelBuilder__toolcontext_61d(val
* self
, val
* p0
) {
587 self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
= p0
; /* _toolcontext on <self:ModelBuilder> */
590 /* method modelbuilder#ModelBuilder#toolcontext= for (self: Object, ToolContext) */
591 void VIRTUAL_modelbuilder__ModelBuilder__toolcontext_61d(val
* self
, val
* p0
) {
592 { /* Inline modelbuilder#ModelBuilder#toolcontext= (self,p0) on <self:Object(ModelBuilder)> */
593 self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
= p0
; /* _toolcontext on <self:Object(ModelBuilder)> */
598 /* method modelbuilder#ModelBuilder#run_phases for (self: ModelBuilder) */
599 void modelbuilder__ModelBuilder__run_phases(val
* self
) {
600 val
* var
/* : Model */;
601 val
* var2
/* : Model */;
602 val
* var3
/* : Array[MModule] */;
603 val
* var5
/* : Array[MModule] */;
604 val
* var6
/* : Array[nullable Object] */;
605 val
* var_mmodules
/* var mmodules: Array[MModule] */;
606 val
* var7
/* : Model */;
607 val
* var9
/* : Model */;
608 val
* var10
/* : POSet[MModule] */;
609 val
* var12
/* : POSet[MModule] */;
610 val
* var13
/* : Array[AModule] */;
611 val
* var_nmodules
/* var nmodules: Array[AModule] */;
612 val
* var14
/* : ArrayIterator[nullable Object] */;
613 short int var15
/* : Bool */;
614 val
* var16
/* : nullable Object */;
615 val
* var_mm
/* var mm: MModule */;
616 val
* var17
/* : HashMap[MModule, AModule] */;
617 val
* var19
/* : HashMap[MModule, AModule] */;
618 val
* var20
/* : nullable Object */;
619 val
* var21
/* : ToolContext */;
620 val
* var23
/* : ToolContext */;
621 val
* var24
/* : ToolContext */;
622 val
* var26
/* : ToolContext */;
623 val
* var27
/* : OptionBool */;
624 val
* var29
/* : OptionBool */;
625 val
* var30
/* : nullable Object */;
626 val
* var32
/* : nullable Object */;
627 short int var33
/* : Bool */;
628 val
* var34
/* : ToolContext */;
629 val
* var36
/* : ToolContext */;
631 val
* var37
/* : String */;
632 char* var38
/* : NativeString */;
633 long var39
/* : Int */;
634 val
* var40
/* : FlatString */;
635 long var41
/* : Int */;
636 long var42
/* : Int */;
638 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:ModelBuilder> */
639 var2
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
640 if (unlikely(var2
== NULL
)) {
641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
642 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
650 { /* Inline mmodule#Model#mmodules (var) on <var:Model> */
651 var5
= var
->attrs
[COLOR_mmodule__Model___mmodules
].val
; /* _mmodules on <var:Model> */
652 if (unlikely(var5
== NULL
)) {
653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
654 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 28);
662 var6
= array__Collection__to_a(var3
);
666 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:ModelBuilder> */
667 var9
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
668 if (unlikely(var9
== NULL
)) {
669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
670 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
678 { /* Inline mmodule#Model#mmodule_importation_hierarchy (var7) on <var7:Model> */
679 var12
= var7
->attrs
[COLOR_mmodule__Model___mmodule_importation_hierarchy
].val
; /* _mmodule_importation_hierarchy on <var7:Model> */
680 if (unlikely(var12
== NULL
)) {
681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
682 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 37);
690 sorter__Comparator__sort(var10
, var_mmodules
); /* Direct call sorter#Comparator#sort on <var10:POSet[MModule]>*/
692 var13
= NEW_array__Array(&type_array__Arrayparser_nodes__AModule
);
694 array__Array__init(var13
); /* Direct call array#Array#init on <var13:Array[AModule]>*/
696 var_nmodules
= var13
;
698 var14
= array__AbstractArrayRead__iterator(var_mmodules
);
702 var15
= array__ArrayIterator__is_ok(var14
);
706 var16
= array__ArrayIterator__item(var14
);
710 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:ModelBuilder> */
711 var19
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
712 if (unlikely(var19
== NULL
)) {
713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
714 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
722 var20
= hash_collection__HashMap___91d_93d(var17
, var_mm
);
725 array__Array__add(var_nmodules
, var20
); /* Direct call array#Array#add on <var_nmodules:Array[AModule]>*/
727 CONTINUE_label
: (void)0;
729 array__ArrayIterator__next(var14
); /* Direct call array#ArrayIterator#next on <var14:ArrayIterator[nullable Object]>*/
732 BREAK_label
: (void)0;
734 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
735 var23
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
736 if (unlikely(var23
== NULL
)) {
737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
738 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
746 phase__ToolContext__run_phases(var21
, var_nmodules
); /* Direct call phase#ToolContext#run_phases on <var21:ToolContext>*/
749 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
750 var26
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
751 if (unlikely(var26
== NULL
)) {
752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
753 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
761 { /* Inline modelbuilder#ToolContext#opt_only_metamodel (var24) on <var24:ToolContext> */
762 var29
= var24
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_metamodel
].val
; /* _opt_only_metamodel on <var24:ToolContext> */
763 if (unlikely(var29
== NULL
)) {
764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
765 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40);
773 { /* Inline opts#Option#value (var27) on <var27:OptionBool> */
774 var32
= var27
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var27:OptionBool> */
779 var33
= ((struct instance_kernel__Bool
*)var30
)->value
; /* autounbox from nullable Object to Bool */;
782 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
783 var36
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
784 if (unlikely(var36
== NULL
)) {
785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
786 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
796 var38
= "*** ONLY METAMODEL";
798 var40
= string__NativeString__to_s_with_length(var38
, var39
);
804 toolcontext__ToolContext__info(var34
, var37
, var41
); /* Direct call toolcontext#ToolContext#info on <var34:ToolContext>*/
808 { /* Inline kernel#Object#exit (self,var42) on <self:ModelBuilder> */
817 /* method modelbuilder#ModelBuilder#run_phases for (self: Object) */
818 void VIRTUAL_modelbuilder__ModelBuilder__run_phases(val
* self
) {
819 modelbuilder__ModelBuilder__run_phases(self
); /* Direct call modelbuilder#ModelBuilder#run_phases on <self:Object(ModelBuilder)>*/
822 /* method modelbuilder#ModelBuilder#init for (self: ModelBuilder, Model, ToolContext) */
823 void modelbuilder__ModelBuilder__init(val
* self
, val
* p0
, val
* p1
) {
824 val
* var_model
/* var model: Model */;
825 val
* var_toolcontext
/* var toolcontext: ToolContext */;
826 val
* var
/* : nullable ModelBuilder */;
827 val
* var4
/* : nullable ModelBuilder */;
828 val
* var5
/* : null */;
829 short int var6
/* : Bool */;
830 short int var7
/* : Bool */;
831 val
* var_other
/* var other: nullable Object */;
832 short int var9
/* : Bool */;
833 short int var11
/* : Bool */;
834 val
* var13
/* : Array[String] */;
835 val
* var15
/* : Array[String] */;
836 val
* var16
/* : OptionArray */;
837 val
* var18
/* : OptionArray */;
838 val
* var19
/* : nullable Object */;
839 val
* var21
/* : nullable Object */;
841 val
* var22
/* : String */;
842 char* var23
/* : NativeString */;
843 long var24
/* : Int */;
844 val
* var25
/* : FlatString */;
845 val
* var26
/* : String */;
846 val
* var_path_env
/* var path_env: String */;
847 short int var27
/* : Bool */;
848 short int var28
/* : Bool */;
849 val
* var29
/* : Array[String] */;
850 val
* var31
/* : Array[String] */;
851 char var32
/* : Char */;
852 val
* var33
/* : Array[Text] */;
853 val
* var34
/* : Pattern */;
854 val
* var35
/* : nullable String */;
855 val
* var37
/* : nullable String */;
856 val
* var_nit_dir
/* var nit_dir: nullable String */;
857 val
* var38
/* : null */;
858 short int var39
/* : Bool */;
859 short int var40
/* : Bool */;
860 val
* var_other42
/* var other: nullable Object */;
861 short int var43
/* : Bool */;
862 short int var44
/* : Bool */;
863 short int var45
/* : Bool */;
864 static val
* varonce46
;
865 val
* var47
/* : String */;
866 char* var48
/* : NativeString */;
867 long var49
/* : Int */;
868 val
* var50
/* : FlatString */;
869 val
* var51
/* : Array[Object] */;
870 long var52
/* : Int */;
871 val
* var53
/* : NativeArray[Object] */;
872 val
* var54
/* : String */;
873 val
* var_libname
/* var libname: String */;
874 short int var55
/* : Bool */;
875 val
* var56
/* : Array[String] */;
876 val
* var58
/* : Array[String] */;
878 var_toolcontext
= p1
;
880 { /* Inline modelbuilder#ModelBuilder#model= (self,var_model) on <self:ModelBuilder> */
881 self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
= var_model
; /* _model on <self:ModelBuilder> */
886 { /* Inline modelbuilder#ModelBuilder#toolcontext= (self,var_toolcontext) on <self:ModelBuilder> */
887 self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
= var_toolcontext
; /* _toolcontext on <self:ModelBuilder> */
892 { /* Inline modelbuilder#ToolContext#modelbuilder_real (var_toolcontext) on <var_toolcontext:ToolContext> */
893 var4
= var_toolcontext
->attrs
[COLOR_modelbuilder__ToolContext___modelbuilder_real
].val
; /* _modelbuilder_real on <var_toolcontext:ToolContext> */
900 var6
= 1; /* is null */
902 var6
= 0; /* arg is null but recv is not */
905 { /* Inline kernel#Object#== (var,var5) on <var:nullable ModelBuilder> */
908 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ModelBuilder(ModelBuilder)> */
909 var11
= var
== var_other
;
921 if (unlikely(!var6
)) {
922 PRINT_ERROR("Runtime error: %s", "Assert failed");
923 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 127);
927 { /* Inline modelbuilder#ToolContext#modelbuilder_real= (var_toolcontext,self) on <var_toolcontext:ToolContext> */
928 var_toolcontext
->attrs
[COLOR_modelbuilder__ToolContext___modelbuilder_real
].val
= self
; /* _modelbuilder_real on <var_toolcontext:ToolContext> */
933 { /* Inline modelbuilder#ModelBuilder#paths (self) on <self:ModelBuilder> */
934 var15
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___paths
].val
; /* _paths on <self:ModelBuilder> */
935 if (unlikely(var15
== NULL
)) {
936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths");
937 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289);
945 { /* Inline modelbuilder#ToolContext#opt_path (var_toolcontext) on <var_toolcontext:ToolContext> */
946 var18
= var_toolcontext
->attrs
[COLOR_modelbuilder__ToolContext___opt_path
].val
; /* _opt_path on <var_toolcontext:ToolContext> */
947 if (unlikely(var18
== NULL
)) {
948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path");
949 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37);
957 { /* Inline opts#Option#value (var16) on <var16:OptionArray> */
958 var21
= var16
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var16:OptionArray> */
964 abstract_collection__Sequence__append(var13
, var19
); /* Direct call abstract_collection#Sequence#append on <var13:Array[String]>*/
971 var25
= string__NativeString__to_s_with_length(var23
, var24
);
976 var26
= environ__String__environ(var22
);
978 var_path_env
= var26
;
980 var27
= string__Text__is_empty(var_path_env
);
985 { /* Inline modelbuilder#ModelBuilder#paths (self) on <self:ModelBuilder> */
986 var31
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___paths
].val
; /* _paths on <self:ModelBuilder> */
987 if (unlikely(var31
== NULL
)) {
988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths");
989 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289);
998 var34
= BOX_kernel__Char(var32
); /* autobox from Char to Pattern */
999 var33
= string_search__Text__split_with(var_path_env
, var34
);
1002 abstract_collection__Sequence__append(var29
, var33
); /* Direct call abstract_collection#Sequence#append on <var29:Array[String]>*/
1007 { /* Inline toolcontext#ToolContext#nit_dir (var_toolcontext) on <var_toolcontext:ToolContext> */
1008 var37
= var_toolcontext
->attrs
[COLOR_toolcontext__ToolContext___nit_dir
].val
; /* _nit_dir on <var_toolcontext:ToolContext> */
1010 RET_LABEL36
:(void)0;
1013 var_nit_dir
= var35
;
1015 if (var_nit_dir
== NULL
) {
1016 var39
= 0; /* is null */
1018 var39
= 1; /* arg is null and recv is not */
1021 { /* Inline kernel#Object#!= (var_nit_dir,var38) on <var_nit_dir:nullable String> */
1022 var_other42
= var38
;
1024 var44
= ((short int (*)(val
*, val
*))(var_nit_dir
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nit_dir
, var_other42
) /* == on <var_nit_dir:nullable String(String)>*/;
1030 RET_LABEL41
:(void)0;
1040 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1044 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
1045 { /* var51 = array_instance Array[Object] */
1047 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
1048 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var_nit_dir
;
1049 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var47
;
1051 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
1055 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
1057 var_libname
= var54
;
1059 var55
= file__String__file_exists(var_libname
);
1063 { /* Inline modelbuilder#ModelBuilder#paths (self) on <self:ModelBuilder> */
1064 var58
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___paths
].val
; /* _paths on <self:ModelBuilder> */
1065 if (unlikely(var58
== NULL
)) {
1066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths");
1067 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289);
1071 RET_LABEL57
:(void)0;
1075 array__Array__add(var56
, var_libname
); /* Direct call array#Array#add on <var56:Array[String]>*/
1083 /* method modelbuilder#ModelBuilder#init for (self: Object, Model, ToolContext) */
1084 void VIRTUAL_modelbuilder__ModelBuilder__init(val
* self
, val
* p0
, val
* p1
) {
1085 modelbuilder__ModelBuilder__init(self
, p0
, p1
); /* Direct call modelbuilder#ModelBuilder#init on <self:Object(ModelBuilder)>*/
1088 /* method modelbuilder#ModelBuilder#parse for (self: ModelBuilder, Sequence[String]): Array[MModule] */
1089 val
* modelbuilder__ModelBuilder__parse(val
* self
, val
* p0
) {
1090 val
* var
/* : Array[MModule] */;
1091 val
* var_modules
/* var modules: Sequence[String] */;
1092 long var1
/* : Int */;
1093 long var3
/* : Int */;
1094 long var_time0
/* var time0: Int */;
1095 val
* var4
/* : ToolContext */;
1096 val
* var6
/* : ToolContext */;
1097 static val
* varonce
;
1098 val
* var7
/* : String */;
1099 char* var8
/* : NativeString */;
1100 long var9
/* : Int */;
1101 val
* var10
/* : FlatString */;
1102 long var11
/* : Int */;
1103 val
* var12
/* : ArraySet[MModule] */;
1104 val
* var_mmodules
/* var mmodules: ArraySet[MModule] */;
1105 val
* var13
/* : Iterator[nullable Object] */;
1106 short int var14
/* : Bool */;
1107 val
* var15
/* : nullable Object */;
1108 val
* var_a
/* var a: String */;
1109 val
* var16
/* : nullable AModule */;
1110 val
* var_nmodule
/* var nmodule: nullable AModule */;
1111 val
* var17
/* : null */;
1112 short int var18
/* : Bool */;
1113 short int var19
/* : Bool */;
1114 val
* var_other
/* var other: nullable Object */;
1115 short int var21
/* : Bool */;
1116 short int var23
/* : Bool */;
1117 val
* var24
/* : nullable MModule */;
1118 val
* var26
/* : nullable MModule */;
1119 long var27
/* : Int */;
1120 long var29
/* : Int */;
1121 long var_time1
/* var time1: Int */;
1122 val
* var30
/* : ToolContext */;
1123 val
* var32
/* : ToolContext */;
1124 static val
* varonce33
;
1125 val
* var34
/* : String */;
1126 char* var35
/* : NativeString */;
1127 long var36
/* : Int */;
1128 val
* var37
/* : FlatString */;
1129 long var38
/* : Int */;
1130 short int var40
/* : Bool */;
1133 const char* var_class_name
;
1134 long var41
/* : Int */;
1135 static val
* varonce42
;
1136 val
* var43
/* : String */;
1137 char* var44
/* : NativeString */;
1138 long var45
/* : Int */;
1139 val
* var46
/* : FlatString */;
1140 val
* var47
/* : Array[Object] */;
1141 long var48
/* : Int */;
1142 val
* var49
/* : NativeArray[Object] */;
1143 val
* var50
/* : Object */;
1144 val
* var51
/* : String */;
1145 long var52
/* : Int */;
1146 val
* var53
/* : ToolContext */;
1147 val
* var55
/* : ToolContext */;
1148 val
* var56
/* : ToolContext */;
1149 val
* var58
/* : ToolContext */;
1150 val
* var59
/* : OptionBool */;
1151 val
* var61
/* : OptionBool */;
1152 val
* var62
/* : nullable Object */;
1153 val
* var64
/* : nullable Object */;
1154 short int var65
/* : Bool */;
1155 val
* var66
/* : ToolContext */;
1156 val
* var68
/* : ToolContext */;
1157 static val
* varonce69
;
1158 val
* var70
/* : String */;
1159 char* var71
/* : NativeString */;
1160 long var72
/* : Int */;
1161 val
* var73
/* : FlatString */;
1162 long var74
/* : Int */;
1163 long var75
/* : Int */;
1164 val
* var77
/* : Array[nullable Object] */;
1167 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
1168 var3
= kernel_Any_Any_get_time_0(self
);
1176 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1177 var6
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1178 if (unlikely(var6
== NULL
)) {
1179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1180 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
1190 var8
= "*** PARSE ***";
1192 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1198 toolcontext__ToolContext__info(var4
, var7
, var11
); /* Direct call toolcontext#ToolContext#info on <var4:ToolContext>*/
1200 var12
= NEW_array__ArraySet(&type_array__ArraySetmmodule__MModule
);
1202 array__ArraySet__init(var12
); /* Direct call array#ArraySet#init on <var12:ArraySet[MModule]>*/
1204 var_mmodules
= var12
;
1206 var13
= ((val
* (*)(val
*))(var_modules
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_modules
) /* iterator on <var_modules:Sequence[String]>*/;
1210 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
1214 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
1218 var16
= modelbuilder__ModelBuilder__load_module(self
, var_a
);
1220 var_nmodule
= var16
;
1222 if (var_nmodule
== NULL
) {
1223 var18
= 1; /* is null */
1225 var18
= 0; /* arg is null but recv is not */
1228 { /* Inline kernel#Object#== (var_nmodule,var17) on <var_nmodule:nullable AModule> */
1231 { /* Inline kernel#Object#is_same_instance (var_nmodule,var_other) on <var_nmodule:nullable AModule(AModule)> */
1232 var23
= var_nmodule
== var_other
;
1235 RET_LABEL22
:(void)0;
1240 RET_LABEL20
:(void)0;
1245 goto CONTINUE_label
;
1249 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:nullable AModule(AModule)> */
1250 var26
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:nullable AModule(AModule)> */
1252 RET_LABEL25
:(void)0;
1255 if (unlikely(var24
== NULL
)) {
1256 PRINT_ERROR("Runtime error: %s", "Cast failed");
1257 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 161);
1261 array__ArraySet__add(var_mmodules
, var24
); /* Direct call array#ArraySet#add on <var_mmodules:ArraySet[MModule]>*/
1263 CONTINUE_label
: (void)0;
1265 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
1268 BREAK_label
: (void)0;
1270 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
1271 var29
= kernel_Any_Any_get_time_0(self
);
1274 RET_LABEL28
:(void)0;
1279 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1280 var32
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1281 if (unlikely(var32
== NULL
)) {
1282 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1283 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
1287 RET_LABEL31
:(void)0;
1293 var35
= "*** END PARSE: ";
1295 var37
= string__NativeString__to_s_with_length(var35
, var36
);
1300 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
1301 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
1302 /* <var_time0:Int> isa OTHER */
1303 var40
= 1; /* easy <var_time0:Int> isa OTHER*/
1304 if (unlikely(!var40
)) {
1305 var_class_name
= type_kernel__Int
.name
;
1306 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1307 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1310 var41
= var_time1
- var_time0
;
1313 RET_LABEL39
:(void)0;
1321 var46
= string__NativeString__to_s_with_length(var44
, var45
);
1325 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
1326 { /* var47 = array_instance Array[Object] */
1328 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
1329 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var34
;
1330 var50
= BOX_kernel__Int(var38
); /* autobox from Int to Object */
1331 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var50
;
1332 ((struct instance_array__NativeArray
*)var49
)->values
[2] = (val
*) var43
;
1334 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
1338 var51
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
1342 toolcontext__ToolContext__info(var30
, var51
, var52
); /* Direct call toolcontext#ToolContext#info on <var30:ToolContext>*/
1345 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1346 var55
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1347 if (unlikely(var55
== NULL
)) {
1348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1349 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
1353 RET_LABEL54
:(void)0;
1357 toolcontext__ToolContext__check_errors(var53
); /* Direct call toolcontext#ToolContext#check_errors on <var53:ToolContext>*/
1360 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1361 var58
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1362 if (unlikely(var58
== NULL
)) {
1363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1364 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
1368 RET_LABEL57
:(void)0;
1372 { /* Inline modelbuilder#ToolContext#opt_only_parse (var56) on <var56:ToolContext> */
1373 var61
= var56
->attrs
[COLOR_modelbuilder__ToolContext___opt_only_parse
].val
; /* _opt_only_parse on <var56:ToolContext> */
1374 if (unlikely(var61
== NULL
)) {
1375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse");
1376 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43);
1380 RET_LABEL60
:(void)0;
1384 { /* Inline opts#Option#value (var59) on <var59:OptionBool> */
1385 var64
= var59
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var59:OptionBool> */
1387 RET_LABEL63
:(void)0;
1390 var65
= ((struct instance_kernel__Bool
*)var62
)->value
; /* autounbox from nullable Object to Bool */;
1393 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1394 var68
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1395 if (unlikely(var68
== NULL
)) {
1396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1397 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
1401 RET_LABEL67
:(void)0;
1407 var71
= "*** ONLY PARSE...";
1409 var73
= string__NativeString__to_s_with_length(var71
, var72
);
1415 toolcontext__ToolContext__info(var66
, var70
, var74
); /* Direct call toolcontext#ToolContext#info on <var66:ToolContext>*/
1419 { /* Inline kernel#Object#exit (self,var75) on <self:ModelBuilder> */
1421 RET_LABEL76
:(void)0;
1427 var77
= array__Collection__to_a(var_mmodules
);
1434 /* method modelbuilder#ModelBuilder#parse for (self: Object, Sequence[String]): Array[MModule] */
1435 val
* VIRTUAL_modelbuilder__ModelBuilder__parse(val
* self
, val
* p0
) {
1436 val
* var
/* : Array[MModule] */;
1437 val
* var1
/* : Array[MModule] */;
1438 var1
= modelbuilder__ModelBuilder__parse(self
, p0
);
1443 /* method modelbuilder#ModelBuilder#try_get_mclass_by_name for (self: ModelBuilder, ANode, MModule, String): nullable MClass */
1444 val
* modelbuilder__ModelBuilder__try_get_mclass_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1445 val
* var
/* : nullable MClass */;
1446 val
* var_anode
/* var anode: ANode */;
1447 val
* var_mmodule
/* var mmodule: MModule */;
1448 val
* var_name
/* var name: String */;
1449 val
* var1
/* : Model */;
1450 val
* var3
/* : Model */;
1451 val
* var4
/* : nullable Array[MClass] */;
1452 val
* var_classes
/* var classes: nullable Array[MClass] */;
1453 val
* var5
/* : null */;
1454 short int var6
/* : Bool */;
1455 short int var7
/* : Bool */;
1456 val
* var8
/* : null */;
1457 val
* var9
/* : null */;
1458 val
* var_res
/* var res: nullable MClass */;
1459 val
* var10
/* : ArrayIterator[nullable Object] */;
1460 short int var11
/* : Bool */;
1461 val
* var12
/* : nullable Object */;
1462 val
* var_mclass
/* var mclass: MClass */;
1463 val
* var13
/* : POSetElement[MModule] */;
1464 val
* var15
/* : POSetElement[MModule] */;
1465 val
* var16
/* : MModule */;
1466 val
* var18
/* : MModule */;
1467 short int var19
/* : Bool */;
1468 short int var20
/* : Bool */;
1469 val
* var21
/* : MModule */;
1470 val
* var23
/* : MModule */;
1471 val
* var24
/* : MVisibility */;
1472 val
* var26
/* : MVisibility */;
1473 short int var27
/* : Bool */;
1474 short int var28
/* : Bool */;
1475 val
* var29
/* : null */;
1476 short int var30
/* : Bool */;
1477 short int var31
/* : Bool */;
1478 val
* var_other
/* var other: nullable Object */;
1479 short int var33
/* : Bool */;
1480 short int var35
/* : Bool */;
1481 static val
* varonce
;
1482 val
* var36
/* : String */;
1483 char* var37
/* : NativeString */;
1484 long var38
/* : Int */;
1485 val
* var39
/* : FlatString */;
1486 static val
* varonce40
;
1487 val
* var41
/* : String */;
1488 char* var42
/* : NativeString */;
1489 long var43
/* : Int */;
1490 val
* var44
/* : FlatString */;
1491 val
* var45
/* : String */;
1492 static val
* varonce46
;
1493 val
* var47
/* : String */;
1494 char* var48
/* : NativeString */;
1495 long var49
/* : Int */;
1496 val
* var50
/* : FlatString */;
1497 val
* var51
/* : String */;
1498 val
* var52
/* : Array[Object] */;
1499 long var53
/* : Int */;
1500 val
* var54
/* : NativeArray[Object] */;
1501 val
* var55
/* : String */;
1502 val
* var56
/* : null */;
1507 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:ModelBuilder> */
1508 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
1509 if (unlikely(var3
== NULL
)) {
1510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1511 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
1519 var4
= model__Model__get_mclasses_by_name(var1
, var_name
);
1523 if (var_classes
== NULL
) {
1524 var6
= 1; /* is null */
1526 var6
= 0; /* arg is null but recv is not */
1529 var7
= abstract_collection__SequenceRead___61d_61d(var_classes
, var5
);
1541 var10
= array__AbstractArrayRead__iterator(var_classes
);
1545 var11
= array__ArrayIterator__is_ok(var10
);
1549 var12
= array__ArrayIterator__item(var10
);
1553 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
1554 var15
= var_mmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mmodule:MModule> */
1555 if (unlikely(var15
== NULL
)) {
1556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1557 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
1561 RET_LABEL14
:(void)0;
1565 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
1566 var18
= var_mclass
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
1567 if (unlikely(var18
== NULL
)) {
1568 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
1569 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
1573 RET_LABEL17
:(void)0;
1577 var19
= poset__POSetElement___60d_61d(var13
, var16
);
1581 goto CONTINUE_label
;
1585 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
1586 var23
= var_mclass
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
1587 if (unlikely(var23
== NULL
)) {
1588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
1589 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
1593 RET_LABEL22
:(void)0;
1597 { /* Inline model#MClass#visibility (var_mclass) on <var_mclass:MClass> */
1598 var26
= var_mclass
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <var_mclass:MClass> */
1599 if (unlikely(var26
== NULL
)) {
1600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
1601 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359);
1605 RET_LABEL25
:(void)0;
1609 var27
= mmodule__MModule__is_visible(var_mmodule
, var21
, var24
);
1613 goto CONTINUE_label
;
1617 if (var_res
== NULL
) {
1618 var30
= 1; /* is null */
1620 var30
= 0; /* arg is null but recv is not */
1623 { /* Inline kernel#Object#== (var_res,var29) on <var_res:nullable MClass> */
1626 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MClass(MClass)> */
1627 var35
= var_res
== var_other
;
1630 RET_LABEL34
:(void)0;
1635 RET_LABEL32
:(void)0;
1640 var_res
= var_mclass
;
1645 var37
= "Ambigous class name \'";
1647 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1654 var42
= "\'; conflict between ";
1656 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1661 var45
= model__MClass__full_name(var_mclass
);
1668 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1673 var51
= model__MClass__full_name(var_res
);
1675 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
1676 { /* var52 = array_instance Array[Object] */
1678 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
1679 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var36
;
1680 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_name
;
1681 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var41
;
1682 ((struct instance_array__NativeArray
*)var54
)->values
[3] = (val
*) var45
;
1683 ((struct instance_array__NativeArray
*)var54
)->values
[4] = (val
*) var47
;
1684 ((struct instance_array__NativeArray
*)var54
)->values
[5] = (val
*) var51
;
1686 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
1690 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
1693 modelbuilder__ModelBuilder__error(self
, var_anode
, var55
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1699 CONTINUE_label
: (void)0;
1701 array__ArrayIterator__next(var10
); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
1704 BREAK_label
: (void)0;
1710 /* method modelbuilder#ModelBuilder#try_get_mclass_by_name for (self: Object, ANode, MModule, String): nullable MClass */
1711 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mclass_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1712 val
* var
/* : nullable MClass */;
1713 val
* var1
/* : nullable MClass */;
1714 var1
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, p0
, p1
, p2
);
1719 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2 for (self: ModelBuilder, ANode, MModule, MType, String): nullable MProperty */
1720 val
* modelbuilder__ModelBuilder__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1721 val
* var
/* : nullable MProperty */;
1722 val
* var_anode
/* var anode: ANode */;
1723 val
* var_mmodule
/* var mmodule: MModule */;
1724 val
* var_mtype
/* var mtype: MType */;
1725 val
* var_name
/* var name: String */;
1726 val
* var1
/* : Model */;
1727 val
* var3
/* : Model */;
1728 val
* var4
/* : nullable Array[MProperty] */;
1729 val
* var_props
/* var props: nullable Array[MProperty] */;
1730 val
* var5
/* : null */;
1731 short int var6
/* : Bool */;
1732 short int var7
/* : Bool */;
1733 val
* var8
/* : null */;
1734 val
* var9
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1735 val
* var11
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1736 val
* var12
/* : nullable Object */;
1737 val
* var_cache
/* var cache: nullable MProperty */;
1738 val
* var13
/* : null */;
1739 short int var14
/* : Bool */;
1740 short int var15
/* : Bool */;
1741 val
* var_other
/* var other: nullable Object */;
1742 short int var17
/* : Bool */;
1743 short int var18
/* : Bool */;
1744 short int var19
/* : Bool */;
1745 val
* var20
/* : null */;
1746 val
* var_res
/* var res: nullable MProperty */;
1747 val
* var21
/* : null */;
1748 val
* var_ress
/* var ress: nullable Array[MProperty] */;
1749 val
* var22
/* : ArrayIterator[nullable Object] */;
1750 short int var23
/* : Bool */;
1751 val
* var24
/* : nullable Object */;
1752 val
* var_mprop
/* var mprop: MProperty */;
1753 short int var25
/* : Bool */;
1754 short int var26
/* : Bool */;
1755 val
* var27
/* : MClassDef */;
1756 val
* var29
/* : MClassDef */;
1757 val
* var30
/* : MModule */;
1758 val
* var32
/* : MModule */;
1759 val
* var33
/* : MVisibility */;
1760 val
* var35
/* : MVisibility */;
1761 short int var36
/* : Bool */;
1762 short int var37
/* : Bool */;
1763 val
* var38
/* : null */;
1764 short int var39
/* : Bool */;
1765 short int var40
/* : Bool */;
1766 val
* var_other42
/* var other: nullable Object */;
1767 short int var43
/* : Bool */;
1768 short int var45
/* : Bool */;
1769 short int var46
/* : Bool */;
1770 short int var47
/* : Bool */;
1771 short int var48
/* : Bool */;
1772 short int var49
/* : Bool */;
1775 short int var_
/* var : Bool */;
1776 short int var50
/* : Bool */;
1779 short int var_53
/* var : Bool */;
1780 short int var54
/* : Bool */;
1781 short int var56
/* : Bool */;
1782 short int var_57
/* var : Bool */;
1783 short int var58
/* : Bool */;
1784 short int var60
/* : Bool */;
1785 val
* var61
/* : MClassDef */;
1786 val
* var63
/* : MClassDef */;
1787 val
* var64
/* : MClassType */;
1788 val
* var66
/* : MClassType */;
1789 val
* var_restype
/* var restype: MClassType */;
1790 val
* var67
/* : MClassDef */;
1791 val
* var69
/* : MClassDef */;
1792 val
* var70
/* : MClassType */;
1793 val
* var72
/* : MClassType */;
1794 val
* var_mproptype
/* var mproptype: MClassType */;
1795 val
* var73
/* : null */;
1796 short int var74
/* : Bool */;
1797 val
* var75
/* : null */;
1798 short int var76
/* : Bool */;
1799 short int var77
/* : Bool */;
1800 val
* var78
/* : Array[MProperty] */;
1801 short int var79
/* : Bool */;
1802 short int var80
/* : Bool */;
1803 val
* var81
/* : null */;
1804 short int var82
/* : Bool */;
1805 short int var83
/* : Bool */;
1806 short int var85
/* : Bool */;
1807 short int var86
/* : Bool */;
1808 short int var87
/* : Bool */;
1809 short int var_88
/* var : Bool */;
1810 short int var89
/* : Bool */;
1813 short int var_92
/* var : Bool */;
1814 short int var93
/* : Bool */;
1815 short int var95
/* : Bool */;
1816 val
* var96
/* : MClassDef */;
1817 val
* var98
/* : MClassDef */;
1818 val
* var99
/* : MClassType */;
1819 val
* var101
/* : MClassType */;
1820 val
* var_restype102
/* var restype: MClassType */;
1821 val
* var103
/* : Array[MProperty] */;
1822 val
* var_ress2
/* var ress2: Array[MProperty] */;
1823 val
* var104
/* : ArrayIterator[nullable Object] */;
1824 short int var105
/* : Bool */;
1825 val
* var106
/* : nullable Object */;
1826 val
* var_mprop107
/* var mprop: MProperty */;
1827 val
* var108
/* : MClassDef */;
1828 val
* var110
/* : MClassDef */;
1829 val
* var111
/* : MClassType */;
1830 val
* var113
/* : MClassType */;
1831 val
* var_mproptype114
/* var mproptype: MClassType */;
1832 val
* var115
/* : null */;
1833 short int var116
/* : Bool */;
1834 short int var117
/* : Bool */;
1835 short int var118
/* : Bool */;
1836 short int var119
/* : Bool */;
1839 short int var122
/* : Bool */;
1840 short int var_123
/* var : Bool */;
1841 short int var124
/* : Bool */;
1842 short int var126
/* : Bool */;
1843 short int var127
/* : Bool */;
1844 short int var129
/* : Bool */;
1845 val
* var130
/* : null */;
1846 val
* var131
/* : null */;
1847 short int var132
/* : Bool */;
1848 short int var133
/* : Bool */;
1849 short int var135
/* : Bool */;
1850 short int var136
/* : Bool */;
1851 short int var137
/* : Bool */;
1852 long var138
/* : Int */;
1853 long var139
/* : Int */;
1854 short int var140
/* : Bool */;
1855 short int var142
/* : Bool */;
1858 const char* var_class_name
;
1859 short int var145
/* : Bool */;
1860 val
* var146
/* : Array[String] */;
1861 val
* var_s
/* var s: Array[String] */;
1862 val
* var147
/* : ArrayIterator[nullable Object] */;
1863 short int var148
/* : Bool */;
1864 val
* var149
/* : nullable Object */;
1865 val
* var_mprop150
/* var mprop: MProperty */;
1866 val
* var151
/* : String */;
1867 static val
* varonce
;
1868 val
* var153
/* : String */;
1869 char* var154
/* : NativeString */;
1870 long var155
/* : Int */;
1871 val
* var156
/* : FlatString */;
1872 static val
* varonce157
;
1873 val
* var158
/* : String */;
1874 char* var159
/* : NativeString */;
1875 long var160
/* : Int */;
1876 val
* var161
/* : FlatString */;
1877 static val
* varonce162
;
1878 val
* var163
/* : String */;
1879 char* var164
/* : NativeString */;
1880 long var165
/* : Int */;
1881 val
* var166
/* : FlatString */;
1882 static val
* varonce167
;
1883 val
* var168
/* : String */;
1884 char* var169
/* : NativeString */;
1885 long var170
/* : Int */;
1886 val
* var171
/* : FlatString */;
1887 val
* var172
/* : String */;
1888 val
* var173
/* : Array[Object] */;
1889 long var174
/* : Int */;
1890 val
* var175
/* : NativeArray[Object] */;
1891 val
* var176
/* : String */;
1892 val
* var177
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1893 val
* var179
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1899 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:ModelBuilder> */
1900 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
1901 if (unlikely(var3
== NULL
)) {
1902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1903 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
1911 var4
= model__Model__get_mproperties_by_name(var1
, var_name
);
1915 if (var_props
== NULL
) {
1916 var6
= 1; /* is null */
1918 var6
= 0; /* arg is null but recv is not */
1921 var7
= abstract_collection__SequenceRead___61d_61d(var_props
, var5
);
1931 { /* Inline modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache (self) on <self:ModelBuilder> */
1932 var11
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache
].val
; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1933 if (unlikely(var11
== NULL
)) {
1934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
1935 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280);
1939 RET_LABEL10
:(void)0;
1943 var12
= more_collections__HashMap3___91d_93d(var9
, var_mmodule
, var_mtype
, var_name
);
1947 if (var_cache
== NULL
) {
1948 var14
= 0; /* is null */
1950 var14
= 1; /* arg is null and recv is not */
1953 { /* Inline kernel#Object#!= (var_cache,var13) on <var_cache:nullable MProperty> */
1956 var18
= ((short int (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_cache
, var_other
) /* == on <var_cache:nullable MProperty(MProperty)>*/;
1962 RET_LABEL16
:(void)0;
1976 var22
= array__AbstractArrayRead__iterator(var_props
);
1980 var23
= array__ArrayIterator__is_ok(var22
);
1984 var24
= array__ArrayIterator__item(var22
);
1988 var25
= model__MType__has_mproperty(var_mtype
, var_mmodule
, var_mprop
);
1992 goto CONTINUE_label
;
1996 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty> */
1997 var29
= var_mprop
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mprop:MProperty> */
1998 if (unlikely(var29
== NULL
)) {
1999 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
2000 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
2004 RET_LABEL28
:(void)0;
2008 { /* Inline model#MClassDef#mmodule (var27) on <var27:MClassDef> */
2009 var32
= var27
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var27:MClassDef> */
2010 if (unlikely(var32
== NULL
)) {
2011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2012 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
2016 RET_LABEL31
:(void)0;
2020 { /* Inline model#MProperty#visibility (var_mprop) on <var_mprop:MProperty> */
2021 var35
= var_mprop
->attrs
[COLOR_model__MProperty___visibility
].val
; /* _visibility on <var_mprop:MProperty> */
2022 if (unlikely(var35
== NULL
)) {
2023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
2024 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1617);
2028 RET_LABEL34
:(void)0;
2032 var36
= mmodule__MModule__is_visible(var_mmodule
, var30
, var33
);
2036 goto CONTINUE_label
;
2040 if (var_res
== NULL
) {
2041 var39
= 1; /* is null */
2043 var39
= 0; /* arg is null but recv is not */
2046 { /* Inline kernel#Object#== (var_res,var38) on <var_res:nullable MProperty> */
2047 var_other42
= var38
;
2049 { /* Inline kernel#Object#is_same_instance (var_res,var_other42) on <var_res:nullable MProperty(MProperty)> */
2050 var45
= var_res
== var_other42
;
2053 RET_LABEL44
:(void)0;
2058 RET_LABEL41
:(void)0;
2063 var_res
= var_mprop
;
2064 goto CONTINUE_label
;
2067 /* <var_res:nullable MProperty(MProperty)> isa MMethod */
2068 cltype
= type_model__MMethod
.color
;
2069 idtype
= type_model__MMethod
.id
;
2070 if(cltype
>= var_res
->type
->table_size
) {
2073 var49
= var_res
->type
->type_table
[cltype
] == idtype
;
2077 /* <var_mprop:MProperty> isa MMethod */
2078 cltype51
= type_model__MMethod
.color
;
2079 idtype52
= type_model__MMethod
.id
;
2080 if(cltype51
>= var_mprop
->type
->table_size
) {
2083 var50
= var_mprop
->type
->type_table
[cltype51
] == idtype52
;
2092 { /* Inline model#MMethod#is_init (var_res) on <var_res:nullable MProperty(MMethod)> */
2093 var56
= var_res
->attrs
[COLOR_model__MMethod___is_init
].s
; /* _is_init on <var_res:nullable MProperty(MMethod)> */
2095 RET_LABEL55
:(void)0;
2105 { /* Inline model#MMethod#is_init (var_mprop) on <var_mprop:MProperty(MMethod)> */
2106 var60
= var_mprop
->attrs
[COLOR_model__MMethod___is_init
].s
; /* _is_init on <var_mprop:MProperty(MMethod)> */
2108 RET_LABEL59
:(void)0;
2117 { /* Inline model#MProperty#intro_mclassdef (var_res) on <var_res:nullable MProperty(MMethod)> */
2118 var63
= var_res
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_res:nullable MProperty(MMethod)> */
2119 if (unlikely(var63
== NULL
)) {
2120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
2121 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
2125 RET_LABEL62
:(void)0;
2129 { /* Inline model#MClassDef#bound_mtype (var61) on <var61:MClassDef> */
2130 var66
= var61
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var61:MClassDef> */
2131 if (unlikely(var66
== NULL
)) {
2132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2133 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
2137 RET_LABEL65
:(void)0;
2140 var_restype
= var64
;
2142 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
2143 var69
= var_mprop
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
2144 if (unlikely(var69
== NULL
)) {
2145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
2146 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
2150 RET_LABEL68
:(void)0;
2154 { /* Inline model#MClassDef#bound_mtype (var67) on <var67:MClassDef> */
2155 var72
= var67
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var67:MClassDef> */
2156 if (unlikely(var72
== NULL
)) {
2157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2158 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
2162 RET_LABEL71
:(void)0;
2165 var_mproptype
= var70
;
2168 var74
= model__MType__is_subtype(var_mproptype
, var_mmodule
, var73
, var_restype
);
2171 var_res
= var_mprop
;
2172 goto CONTINUE_label
;
2178 if (var_ress
== NULL
) {
2179 var76
= 1; /* is null */
2181 var76
= 0; /* arg is null but recv is not */
2184 var77
= abstract_collection__SequenceRead___61d_61d(var_ress
, var75
);
2188 var78
= NEW_array__Array(&type_array__Arraymodel__MProperty
);
2190 array__Array__init(var78
); /* Direct call array#Array#init on <var78:Array[MProperty]>*/
2194 array__Array__add(var_ress
, var_res
); /* Direct call array#Array#add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
2199 array__Array__add(var_ress
, var_mprop
); /* Direct call array#Array#add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
2201 CONTINUE_label
: (void)0;
2203 array__ArrayIterator__next(var22
); /* Direct call array#ArrayIterator#next on <var22:ArrayIterator[nullable Object]>*/
2206 BREAK_label
: (void)0;
2208 if (var_ress
== NULL
) {
2209 var82
= 0; /* is null */
2211 var82
= 1; /* arg is null and recv is not */
2214 { /* Inline kernel#Object#!= (var_ress,var81) on <var_ress:nullable Array[MProperty]> */
2217 var86
= ((short int (*)(val
*, val
*))(var_ress
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ress
, var_other
) /* == on <var_ress:nullable Array[MProperty](Array[MProperty])>*/;
2223 RET_LABEL84
:(void)0;
2229 /* <var_res:nullable MProperty> isa MMethod */
2230 cltype90
= type_model__MMethod
.color
;
2231 idtype91
= type_model__MMethod
.id
;
2232 if(var_res
== NULL
) {
2235 if(cltype90
>= var_res
->type
->table_size
) {
2238 var89
= var_res
->type
->type_table
[cltype90
] == idtype91
;
2248 { /* Inline model#MMethod#is_init (var_res) on <var_res:nullable MProperty(MMethod)> */
2249 var95
= var_res
->attrs
[COLOR_model__MMethod___is_init
].s
; /* _is_init on <var_res:nullable MProperty(MMethod)> */
2251 RET_LABEL94
:(void)0;
2260 { /* Inline model#MProperty#intro_mclassdef (var_res) on <var_res:nullable MProperty(MMethod)> */
2261 var98
= var_res
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_res:nullable MProperty(MMethod)> */
2262 if (unlikely(var98
== NULL
)) {
2263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
2264 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
2268 RET_LABEL97
:(void)0;
2272 { /* Inline model#MClassDef#bound_mtype (var96) on <var96:MClassDef> */
2273 var101
= var96
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var96:MClassDef> */
2274 if (unlikely(var101
== NULL
)) {
2275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2276 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
2280 RET_LABEL100
:(void)0;
2283 var_restype102
= var99
;
2284 var103
= NEW_array__Array(&type_array__Arraymodel__MProperty
);
2286 array__Array__init(var103
); /* Direct call array#Array#init on <var103:Array[MProperty]>*/
2290 var104
= array__AbstractArrayRead__iterator(var_ress
);
2294 var105
= array__ArrayIterator__is_ok(var104
);
2298 var106
= array__ArrayIterator__item(var104
);
2300 var_mprop107
= var106
;
2302 { /* Inline model#MProperty#intro_mclassdef (var_mprop107) on <var_mprop107:MProperty> */
2303 var110
= var_mprop107
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mprop107:MProperty> */
2304 if (unlikely(var110
== NULL
)) {
2305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
2306 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
2310 RET_LABEL109
:(void)0;
2314 { /* Inline model#MClassDef#bound_mtype (var108) on <var108:MClassDef> */
2315 var113
= var108
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var108:MClassDef> */
2316 if (unlikely(var113
== NULL
)) {
2317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2318 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
2322 RET_LABEL112
:(void)0;
2325 var_mproptype114
= var111
;
2328 var116
= model__MType__is_subtype(var_restype102
, var_mmodule
, var115
, var_mproptype114
);
2333 array__Array__add(var_ress2
, var_mprop107
); /* Direct call array#Array#add on <var_ress2:Array[MProperty]>*/
2336 /* <var_mprop107:MProperty> isa MMethod */
2337 cltype120
= type_model__MMethod
.color
;
2338 idtype121
= type_model__MMethod
.id
;
2339 if(cltype120
>= var_mprop107
->type
->table_size
) {
2342 var119
= var_mprop107
->type
->type_table
[cltype120
] == idtype121
;
2350 { /* Inline model#MMethod#is_init (var_mprop107) on <var_mprop107:MProperty(MMethod)> */
2351 var126
= var_mprop107
->attrs
[COLOR_model__MMethod___is_init
].s
; /* _is_init on <var_mprop107:MProperty(MMethod)> */
2353 RET_LABEL125
:(void)0;
2361 array__Array__add(var_ress2
, var_mprop107
); /* Direct call array#Array#add on <var_ress2:Array[MProperty]>*/
2366 CONTINUE_label128
: (void)0;
2368 array__ArrayIterator__next(var104
); /* Direct call array#ArrayIterator#next on <var104:ArrayIterator[nullable Object]>*/
2371 BREAK_label128
: (void)0;
2373 var129
= array__AbstractArrayRead__is_empty(var_ress2
);
2379 var_ress
= var_ress2
;
2381 array__Array__add(var_ress
, var_res
); /* Direct call array#Array#add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
2387 if (var_ress
== NULL
) {
2388 var132
= 0; /* is null */
2390 var132
= 1; /* arg is null and recv is not */
2393 { /* Inline kernel#Object#!= (var_ress,var131) on <var_ress:nullable Array[MProperty]> */
2396 var136
= ((short int (*)(val
*, val
*))(var_ress
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ress
, var_other
) /* == on <var_ress:nullable Array[MProperty](Array[MProperty])>*/;
2402 RET_LABEL134
:(void)0;
2408 var138
= array__AbstractArrayRead__length(var_ress
);
2412 { /* Inline kernel#Int#> (var138,var139) on <var138:Int> */
2413 /* Covariant cast for argument 0 (i) <var139:Int> isa OTHER */
2414 /* <var139:Int> isa OTHER */
2415 var142
= 1; /* easy <var139:Int> isa OTHER*/
2416 if (unlikely(!var142
)) {
2417 var_class_name
= type_kernel__Int
.name
;
2418 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2419 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
2422 var145
= var138
> var139
;
2425 RET_LABEL141
:(void)0;
2428 if (unlikely(!var140
)) {
2429 PRINT_ERROR("Runtime error: %s", "Assert failed");
2430 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 270);
2433 var146
= NEW_array__Array(&type_array__Arraystring__String
);
2435 array__Array__init(var146
); /* Direct call array#Array#init on <var146:Array[String]>*/
2439 var147
= array__AbstractArrayRead__iterator(var_ress
);
2443 var148
= array__ArrayIterator__is_ok(var147
);
2447 var149
= array__ArrayIterator__item(var147
);
2449 var_mprop150
= var149
;
2451 var151
= model__MProperty__full_name(var_mprop150
);
2454 array__Array__add(var_s
, var151
); /* Direct call array#Array#add on <var_s:Array[String]>*/
2456 CONTINUE_label152
: (void)0;
2458 array__ArrayIterator__next(var147
); /* Direct call array#ArrayIterator#next on <var147:ArrayIterator[nullable Object]>*/
2461 BREAK_label152
: (void)0;
2465 var154
= "Ambigous property name \'";
2467 var156
= string__NativeString__to_s_with_length(var154
, var155
);
2472 var158
= varonce157
;
2476 var161
= string__NativeString__to_s_with_length(var159
, var160
);
2478 varonce157
= var158
;
2481 var163
= varonce162
;
2483 var164
= "; conflict between ";
2485 var166
= string__NativeString__to_s_with_length(var164
, var165
);
2487 varonce162
= var163
;
2490 var168
= varonce167
;
2494 var171
= string__NativeString__to_s_with_length(var169
, var170
);
2496 varonce167
= var168
;
2499 var172
= string__Collection__join(var_s
, var168
);
2501 var173
= NEW_array__Array(&type_array__Arraykernel__Object
);
2502 { /* var173 = array_instance Array[Object] */
2504 var175
= NEW_array__NativeArray(var174
, &type_array__NativeArraykernel__Object
);
2505 ((struct instance_array__NativeArray
*)var175
)->values
[0] = (val
*) var153
;
2506 ((struct instance_array__NativeArray
*)var175
)->values
[1] = (val
*) var_name
;
2507 ((struct instance_array__NativeArray
*)var175
)->values
[2] = (val
*) var158
;
2508 ((struct instance_array__NativeArray
*)var175
)->values
[3] = (val
*) var_mtype
;
2509 ((struct instance_array__NativeArray
*)var175
)->values
[4] = (val
*) var163
;
2510 ((struct instance_array__NativeArray
*)var175
)->values
[5] = (val
*) var172
;
2512 ((void (*)(val
*, val
*, long))(var173
->class->vft
[COLOR_array__Array__with_native
]))(var173
, var175
, var174
) /* with_native on <var173:Array[Object]>*/;
2516 var176
= ((val
* (*)(val
*))(var173
->class->vft
[COLOR_string__Object__to_s
]))(var173
) /* to_s on <var173:Array[Object]>*/;
2519 modelbuilder__ModelBuilder__error(self
, var_anode
, var176
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
2524 { /* Inline modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache (self) on <self:ModelBuilder> */
2525 var179
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache
].val
; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
2526 if (unlikely(var179
== NULL
)) {
2527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
2528 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280);
2532 RET_LABEL178
:(void)0;
2536 more_collections__HashMap3___91d_93d_61d(var177
, var_mmodule
, var_mtype
, var_name
, var_res
); /* Direct call more_collections#HashMap3#[]= on <var177:HashMap3[MModule, MType, String, nullable MProperty]>*/
2543 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2 for (self: Object, ANode, MModule, MType, String): nullable MProperty */
2544 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2545 val
* var
/* : nullable MProperty */;
2546 val
* var1
/* : nullable MProperty */;
2547 var1
= modelbuilder__ModelBuilder__try_get_mproperty_by_name2(self
, p0
, p1
, p2
, p3
);
2552 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache for (self: ModelBuilder): HashMap3[MModule, MType, String, nullable MProperty] */
2553 val
* modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(val
* self
) {
2554 val
* var
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
2555 val
* var1
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
2556 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache
].val
; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
2557 if (unlikely(var1
== NULL
)) {
2558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
2559 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280);
2566 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache for (self: Object): HashMap3[MModule, MType, String, nullable MProperty] */
2567 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(val
* self
) {
2568 val
* var
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
2569 val
* var1
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
2570 val
* var3
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
2571 { /* Inline modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache (self) on <self:Object(ModelBuilder)> */
2572 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache
].val
; /* _try_get_mproperty_by_name2_cache on <self:Object(ModelBuilder)> */
2573 if (unlikely(var3
== NULL
)) {
2574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
2575 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280);
2585 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name for (self: ModelBuilder, ANode, MClassDef, String): nullable MProperty */
2586 val
* modelbuilder__ModelBuilder__try_get_mproperty_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2587 val
* var
/* : nullable MProperty */;
2588 val
* var_anode
/* var anode: ANode */;
2589 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2590 val
* var_name
/* var name: String */;
2591 val
* var1
/* : MModule */;
2592 val
* var3
/* : MModule */;
2593 val
* var4
/* : MClassType */;
2594 val
* var6
/* : MClassType */;
2595 val
* var7
/* : nullable MProperty */;
2600 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
2601 var3
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var_mclassdef:MClassDef> */
2602 if (unlikely(var3
== NULL
)) {
2603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2604 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
2612 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
2613 var6
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
2614 if (unlikely(var6
== NULL
)) {
2615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2616 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
2624 var7
= modelbuilder__ModelBuilder__try_get_mproperty_by_name2(self
, var_anode
, var1
, var4
, var_name
);
2631 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name for (self: Object, ANode, MClassDef, String): nullable MProperty */
2632 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2633 val
* var
/* : nullable MProperty */;
2634 val
* var1
/* : nullable MProperty */;
2635 var1
= modelbuilder__ModelBuilder__try_get_mproperty_by_name(self
, p0
, p1
, p2
);
2640 /* method modelbuilder#ModelBuilder#paths for (self: ModelBuilder): Array[String] */
2641 val
* modelbuilder__ModelBuilder__paths(val
* self
) {
2642 val
* var
/* : Array[String] */;
2643 val
* var1
/* : Array[String] */;
2644 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___paths
].val
; /* _paths on <self:ModelBuilder> */
2645 if (unlikely(var1
== NULL
)) {
2646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths");
2647 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289);
2654 /* method modelbuilder#ModelBuilder#paths for (self: Object): Array[String] */
2655 val
* VIRTUAL_modelbuilder__ModelBuilder__paths(val
* self
) {
2656 val
* var
/* : Array[String] */;
2657 val
* var1
/* : Array[String] */;
2658 val
* var3
/* : Array[String] */;
2659 { /* Inline modelbuilder#ModelBuilder#paths (self) on <self:Object(ModelBuilder)> */
2660 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___paths
].val
; /* _paths on <self:Object(ModelBuilder)> */
2661 if (unlikely(var3
== NULL
)) {
2662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths");
2663 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289);
2673 /* method modelbuilder#ModelBuilder#search_mmodule_by_name for (self: ModelBuilder, ANode, nullable MGroup, String): nullable ModulePath */
2674 val
* modelbuilder__ModelBuilder__search_mmodule_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2675 val
* var
/* : nullable ModulePath */;
2676 val
* var_anode
/* var anode: ANode */;
2677 val
* var_mgroup
/* var mgroup: nullable MGroup */;
2678 val
* var_name
/* var name: String */;
2679 val
* var_c
/* var c: nullable MGroup */;
2680 val
* var1
/* : null */;
2681 short int var2
/* : Bool */;
2682 short int var3
/* : Bool */;
2683 val
* var_other
/* var other: nullable Object */;
2684 short int var5
/* : Bool */;
2685 short int var6
/* : Bool */;
2686 short int var7
/* : Bool */;
2687 val
* var8
/* : nullable String */;
2688 val
* var10
/* : nullable String */;
2689 val
* var_dirname
/* var dirname: nullable String */;
2690 val
* var11
/* : null */;
2691 short int var12
/* : Bool */;
2692 short int var13
/* : Bool */;
2693 static val
* varonce
;
2694 val
* var14
/* : String */;
2695 char* var15
/* : NativeString */;
2696 long var16
/* : Int */;
2697 val
* var17
/* : FlatString */;
2698 short int var18
/* : Bool */;
2699 static val
* varonce19
;
2700 val
* var20
/* : String */;
2701 char* var21
/* : NativeString */;
2702 long var22
/* : Int */;
2703 val
* var23
/* : FlatString */;
2704 val
* var24
/* : String */;
2705 val
* var25
/* : String */;
2706 static val
* varonce26
;
2707 val
* var27
/* : String */;
2708 char* var28
/* : NativeString */;
2709 long var29
/* : Int */;
2710 val
* var30
/* : FlatString */;
2711 val
* var31
/* : String */;
2712 val
* var_try_file
/* var try_file: String */;
2713 short int var32
/* : Bool */;
2714 val
* var33
/* : String */;
2715 val
* var34
/* : nullable ModulePath */;
2716 val
* var_res
/* var res: nullable ModulePath */;
2717 val
* var35
/* : null */;
2718 short int var36
/* : Bool */;
2719 short int var37
/* : Bool */;
2720 short int var39
/* : Bool */;
2721 short int var40
/* : Bool */;
2722 short int var41
/* : Bool */;
2723 static val
* varonce42
;
2724 val
* var43
/* : String */;
2725 char* var44
/* : NativeString */;
2726 long var45
/* : Int */;
2727 val
* var46
/* : FlatString */;
2728 val
* var47
/* : String */;
2729 val
* var48
/* : String */;
2730 static val
* varonce49
;
2731 val
* var50
/* : String */;
2732 char* var51
/* : NativeString */;
2733 long var52
/* : Int */;
2734 val
* var53
/* : FlatString */;
2735 val
* var54
/* : String */;
2736 val
* var55
/* : String */;
2737 static val
* varonce56
;
2738 val
* var57
/* : String */;
2739 char* var58
/* : NativeString */;
2740 long var59
/* : Int */;
2741 val
* var60
/* : FlatString */;
2742 val
* var61
/* : String */;
2743 short int var62
/* : Bool */;
2744 val
* var63
/* : String */;
2745 val
* var64
/* : nullable ModulePath */;
2746 val
* var_res65
/* var res: nullable ModulePath */;
2747 val
* var66
/* : null */;
2748 short int var67
/* : Bool */;
2749 short int var68
/* : Bool */;
2750 short int var70
/* : Bool */;
2751 short int var71
/* : Bool */;
2752 short int var72
/* : Bool */;
2753 val
* var73
/* : nullable MGroup */;
2754 val
* var75
/* : nullable MGroup */;
2755 val
* var76
/* : Array[String] */;
2756 val
* var78
/* : Array[String] */;
2757 val
* var_lookpaths
/* var lookpaths: Array[String] */;
2758 val
* var79
/* : null */;
2759 short int var80
/* : Bool */;
2760 short int var81
/* : Bool */;
2761 short int var83
/* : Bool */;
2762 short int var84
/* : Bool */;
2763 short int var85
/* : Bool */;
2764 val
* var86
/* : MProject */;
2765 val
* var88
/* : MProject */;
2766 val
* var89
/* : nullable MGroup */;
2767 val
* var91
/* : nullable MGroup */;
2768 val
* var92
/* : nullable String */;
2769 val
* var94
/* : nullable String */;
2770 val
* var_dirname95
/* var dirname: nullable String */;
2771 val
* var96
/* : null */;
2772 short int var97
/* : Bool */;
2773 short int var98
/* : Bool */;
2774 short int var100
/* : Bool */;
2775 short int var101
/* : Bool */;
2776 short int var102
/* : Bool */;
2777 static val
* varonce103
;
2778 val
* var104
/* : String */;
2779 char* var105
/* : NativeString */;
2780 long var106
/* : Int */;
2781 val
* var107
/* : FlatString */;
2782 val
* var108
/* : String */;
2783 val
* var109
/* : String */;
2784 short int var110
/* : Bool */;
2785 short int var111
/* : Bool */;
2786 short int var112
/* : Bool */;
2787 short int var_
/* var : Bool */;
2788 short int var113
/* : Bool */;
2789 val
* var114
/* : Array[nullable Object] */;
2790 val
* var115
/* : Location */;
2791 val
* var116
/* : nullable ModulePath */;
2792 val
* var_candidate
/* var candidate: nullable ModulePath */;
2793 val
* var117
/* : null */;
2794 short int var118
/* : Bool */;
2795 short int var119
/* : Bool */;
2796 val
* var_other121
/* var other: nullable Object */;
2797 short int var122
/* : Bool */;
2798 short int var124
/* : Bool */;
2799 val
* var125
/* : null */;
2800 short int var126
/* : Bool */;
2801 short int var127
/* : Bool */;
2802 short int var129
/* : Bool */;
2803 short int var130
/* : Bool */;
2804 short int var131
/* : Bool */;
2805 static val
* varonce132
;
2806 val
* var133
/* : String */;
2807 char* var134
/* : NativeString */;
2808 long var135
/* : Int */;
2809 val
* var136
/* : FlatString */;
2810 static val
* varonce137
;
2811 val
* var138
/* : String */;
2812 char* var139
/* : NativeString */;
2813 long var140
/* : Int */;
2814 val
* var141
/* : FlatString */;
2815 val
* var142
/* : String */;
2816 val
* var144
/* : String */;
2817 static val
* varonce145
;
2818 val
* var146
/* : String */;
2819 char* var147
/* : NativeString */;
2820 long var148
/* : Int */;
2821 val
* var149
/* : FlatString */;
2822 static val
* varonce150
;
2823 val
* var151
/* : String */;
2824 char* var152
/* : NativeString */;
2825 long var153
/* : Int */;
2826 val
* var154
/* : FlatString */;
2827 val
* var155
/* : String */;
2828 val
* var156
/* : Array[Object] */;
2829 long var157
/* : Int */;
2830 val
* var158
/* : NativeArray[Object] */;
2831 val
* var159
/* : String */;
2832 static val
* varonce160
;
2833 val
* var161
/* : String */;
2834 char* var162
/* : NativeString */;
2835 long var163
/* : Int */;
2836 val
* var164
/* : FlatString */;
2837 static val
* varonce165
;
2838 val
* var166
/* : String */;
2839 char* var167
/* : NativeString */;
2840 long var168
/* : Int */;
2841 val
* var169
/* : FlatString */;
2842 static val
* varonce170
;
2843 val
* var171
/* : String */;
2844 char* var172
/* : NativeString */;
2845 long var173
/* : Int */;
2846 val
* var174
/* : FlatString */;
2847 val
* var175
/* : String */;
2848 val
* var176
/* : Array[Object] */;
2849 long var177
/* : Int */;
2850 val
* var178
/* : NativeArray[Object] */;
2851 val
* var179
/* : String */;
2852 val
* var180
/* : null */;
2859 if (var_c
== NULL
) {
2860 var2
= 0; /* is null */
2862 var2
= 1; /* arg is null and recv is not */
2865 { /* Inline kernel#Object#!= (var_c,var1) on <var_c:nullable MGroup> */
2868 var6
= ((short int (*)(val
*, val
*))(var_c
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_c
, var_other
) /* == on <var_c:nullable MGroup(MGroup)>*/;
2880 { /* Inline mproject#MGroup#filepath (var_c) on <var_c:nullable MGroup(MGroup)> */
2881 var10
= var_c
->attrs
[COLOR_mproject__MGroup___filepath
].val
; /* _filepath on <var_c:nullable MGroup(MGroup)> */
2888 if (var_dirname
== NULL
) {
2889 var12
= 1; /* is null */
2891 var12
= 0; /* arg is null but recv is not */
2894 var13
= string__FlatString___61d_61d(var_dirname
, var11
);
2906 var17
= string__NativeString__to_s_with_length(var15
, var16
);
2911 var18
= string__Text__has_suffix(var_dirname
, var14
);
2922 var23
= string__NativeString__to_s_with_length(var21
, var22
);
2927 var24
= string__FlatString___43d(var_dirname
, var20
);
2930 var25
= string__FlatString___43d(var24
, var_name
);
2937 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2942 var31
= string__FlatString___43d(var25
, var27
);
2944 var_try_file
= var31
;
2946 var32
= file__String__file_exists(var_try_file
);
2950 var33
= file__String__simplify_path(var_try_file
);
2953 var34
= modelbuilder__ModelBuilder__identify_file(self
, var33
);
2957 if (var_res
== NULL
) {
2958 var36
= 0; /* is null */
2960 var36
= 1; /* arg is null and recv is not */
2963 { /* Inline kernel#Object#!= (var_res,var35) on <var_res:nullable ModulePath> */
2966 var40
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable ModulePath(ModulePath)>*/;
2972 RET_LABEL38
:(void)0;
2976 if (unlikely(!var36
)) {
2977 PRINT_ERROR("Runtime error: %s", "Assert failed");
2978 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 311);
2990 var46
= string__NativeString__to_s_with_length(var44
, var45
);
2995 var47
= string__FlatString___43d(var_dirname
, var43
);
2998 var48
= string__FlatString___43d(var47
, var_name
);
3005 var53
= string__NativeString__to_s_with_length(var51
, var52
);
3010 var54
= string__FlatString___43d(var48
, var50
);
3013 var55
= string__FlatString___43d(var54
, var_name
);
3020 var60
= string__NativeString__to_s_with_length(var58
, var59
);
3025 var61
= string__FlatString___43d(var55
, var57
);
3027 var_try_file
= var61
;
3029 var62
= file__String__file_exists(var_try_file
);
3033 var63
= file__String__simplify_path(var_try_file
);
3036 var64
= modelbuilder__ModelBuilder__identify_file(self
, var63
);
3040 if (var_res65
== NULL
) {
3041 var67
= 0; /* is null */
3043 var67
= 1; /* arg is null and recv is not */
3046 { /* Inline kernel#Object#!= (var_res65,var66) on <var_res65:nullable ModulePath> */
3049 var71
= ((short int (*)(val
*, val
*))(var_res65
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res65
, var_other
) /* == on <var_res65:nullable ModulePath(ModulePath)>*/;
3055 RET_LABEL69
:(void)0;
3059 if (unlikely(!var67
)) {
3060 PRINT_ERROR("Runtime error: %s", "Assert failed");
3061 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 319);
3069 { /* Inline mproject#MGroup#parent (var_c) on <var_c:nullable MGroup(MGroup)> */
3070 var75
= var_c
->attrs
[COLOR_mproject__MGroup___parent
].val
; /* _parent on <var_c:nullable MGroup(MGroup)> */
3072 RET_LABEL74
:(void)0;
3076 CONTINUE_label
: (void)0;
3078 BREAK_label
: (void)0;
3080 { /* Inline modelbuilder#ModelBuilder#paths (self) on <self:ModelBuilder> */
3081 var78
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___paths
].val
; /* _paths on <self:ModelBuilder> */
3082 if (unlikely(var78
== NULL
)) {
3083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths");
3084 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289);
3088 RET_LABEL77
:(void)0;
3091 var_lookpaths
= var76
;
3093 if (var_mgroup
== NULL
) {
3094 var80
= 0; /* is null */
3096 var80
= 1; /* arg is null and recv is not */
3099 { /* Inline kernel#Object#!= (var_mgroup,var79) on <var_mgroup:nullable MGroup> */
3102 var84
= ((short int (*)(val
*, val
*))(var_mgroup
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mgroup
, var_other
) /* == on <var_mgroup:nullable MGroup(MGroup)>*/;
3108 RET_LABEL82
:(void)0;
3114 { /* Inline mproject#MGroup#mproject (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
3115 var88
= var_mgroup
->attrs
[COLOR_mproject__MGroup___mproject
].val
; /* _mproject on <var_mgroup:nullable MGroup(MGroup)> */
3116 if (unlikely(var88
== NULL
)) {
3117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproject");
3118 PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 60);
3122 RET_LABEL87
:(void)0;
3126 { /* Inline mproject#MProject#root (var86) on <var86:MProject> */
3127 var91
= var86
->attrs
[COLOR_mproject__MProject___root
].val
; /* _root on <var86:MProject> */
3129 RET_LABEL90
:(void)0;
3132 if (var89
== NULL
) {
3133 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3134 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 332);
3137 { /* Inline mproject#MGroup#filepath (var89) on <var89:nullable MGroup> */
3138 if (unlikely(var89
== NULL
)) {
3139 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3140 PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 83);
3143 var94
= var89
->attrs
[COLOR_mproject__MGroup___filepath
].val
; /* _filepath on <var89:nullable MGroup> */
3145 RET_LABEL93
:(void)0;
3148 var_dirname95
= var92
;
3150 if (var_dirname95
== NULL
) {
3151 var97
= 0; /* is null */
3153 var97
= 1; /* arg is null and recv is not */
3156 { /* Inline kernel#Object#!= (var_dirname95,var96) on <var_dirname95:nullable String> */
3159 var101
= ((short int (*)(val
*, val
*))(var_dirname95
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_dirname95
, var_other
) /* == on <var_dirname95:nullable String(String)>*/;
3165 RET_LABEL99
:(void)0;
3171 var104
= varonce103
;
3175 var107
= string__NativeString__to_s_with_length(var105
, var106
);
3177 varonce103
= var104
;
3180 var108
= file__String__join_path(var_dirname95
, var104
);
3183 var109
= file__String__simplify_path(var108
);
3185 var_dirname95
= var109
;
3187 var111
= array__AbstractArrayRead__has(var_lookpaths
, var_dirname95
);
3193 var113
= file__String__file_exists(var_dirname95
);
3201 var114
= array__Collection__to_a(var_lookpaths
);
3203 var_lookpaths
= var114
;
3205 array__Array__add(var_lookpaths
, var_dirname95
); /* Direct call array#Array#add on <var_lookpaths:Array[String]>*/
3214 var115
= ((val
* (*)(val
*))(var_anode
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_anode
) /* hot_location on <var_anode:ANode>*/;
3217 var116
= modelbuilder__ModelBuilder__search_module_in_paths(self
, var115
, var_name
, var_lookpaths
);
3219 var_candidate
= var116
;
3221 if (var_candidate
== NULL
) {
3222 var118
= 1; /* is null */
3224 var118
= 0; /* arg is null but recv is not */
3227 { /* Inline kernel#Object#== (var_candidate,var117) on <var_candidate:nullable ModulePath> */
3228 var_other121
= var117
;
3230 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other121) on <var_candidate:nullable ModulePath(ModulePath)> */
3231 var124
= var_candidate
== var_other121
;
3234 RET_LABEL123
:(void)0;
3239 RET_LABEL120
:(void)0;
3245 if (var_mgroup
== NULL
) {
3246 var126
= 0; /* is null */
3248 var126
= 1; /* arg is null and recv is not */
3251 { /* Inline kernel#Object#!= (var_mgroup,var125) on <var_mgroup:nullable MGroup> */
3254 var130
= ((short int (*)(val
*, val
*))(var_mgroup
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mgroup
, var_other
) /* == on <var_mgroup:nullable MGroup(MGroup)>*/;
3260 RET_LABEL128
:(void)0;
3266 var133
= varonce132
;
3268 var134
= "Error: cannot find module ";
3270 var136
= string__NativeString__to_s_with_length(var134
, var135
);
3272 varonce132
= var133
;
3275 var138
= varonce137
;
3279 var141
= string__NativeString__to_s_with_length(var139
, var140
);
3281 varonce137
= var138
;
3284 { /* Inline mproject#MGroup#name (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
3285 var144
= var_mgroup
->attrs
[COLOR_mproject__MGroup___name
].val
; /* _name on <var_mgroup:nullable MGroup(MGroup)> */
3286 if (unlikely(var144
== NULL
)) {
3287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3288 PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 56);
3292 RET_LABEL143
:(void)0;
3296 var146
= varonce145
;
3298 var147
= ". tried ";
3300 var149
= string__NativeString__to_s_with_length(var147
, var148
);
3302 varonce145
= var146
;
3305 var151
= varonce150
;
3309 var154
= string__NativeString__to_s_with_length(var152
, var153
);
3311 varonce150
= var151
;
3314 var155
= string__Collection__join(var_lookpaths
, var151
);
3316 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
3317 { /* var156 = array_instance Array[Object] */
3319 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
3320 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var133
;
3321 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_name
;
3322 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var138
;
3323 ((struct instance_array__NativeArray
*)var158
)->values
[3] = (val
*) var142
;
3324 ((struct instance_array__NativeArray
*)var158
)->values
[4] = (val
*) var146
;
3325 ((struct instance_array__NativeArray
*)var158
)->values
[5] = (val
*) var155
;
3327 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
3331 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
3334 modelbuilder__ModelBuilder__error(self
, var_anode
, var159
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
3338 var161
= varonce160
;
3340 var162
= "Error: cannot find module ";
3342 var164
= string__NativeString__to_s_with_length(var162
, var163
);
3344 varonce160
= var161
;
3347 var166
= varonce165
;
3349 var167
= ". tried ";
3351 var169
= string__NativeString__to_s_with_length(var167
, var168
);
3353 varonce165
= var166
;
3356 var171
= varonce170
;
3360 var174
= string__NativeString__to_s_with_length(var172
, var173
);
3362 varonce170
= var171
;
3365 var175
= string__Collection__join(var_lookpaths
, var171
);
3367 var176
= NEW_array__Array(&type_array__Arraykernel__Object
);
3368 { /* var176 = array_instance Array[Object] */
3370 var178
= NEW_array__NativeArray(var177
, &type_array__NativeArraykernel__Object
);
3371 ((struct instance_array__NativeArray
*)var178
)->values
[0] = (val
*) var161
;
3372 ((struct instance_array__NativeArray
*)var178
)->values
[1] = (val
*) var_name
;
3373 ((struct instance_array__NativeArray
*)var178
)->values
[2] = (val
*) var166
;
3374 ((struct instance_array__NativeArray
*)var178
)->values
[3] = (val
*) var175
;
3376 ((void (*)(val
*, val
*, long))(var176
->class->vft
[COLOR_array__Array__with_native
]))(var176
, var178
, var177
) /* with_native on <var176:Array[Object]>*/;
3380 var179
= ((val
* (*)(val
*))(var176
->class->vft
[COLOR_string__Object__to_s
]))(var176
) /* to_s on <var176:Array[Object]>*/;
3383 modelbuilder__ModelBuilder__error(self
, var_anode
, var179
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
3391 var
= var_candidate
;
3396 /* method modelbuilder#ModelBuilder#search_mmodule_by_name for (self: Object, ANode, nullable MGroup, String): nullable ModulePath */
3397 val
* VIRTUAL_modelbuilder__ModelBuilder__search_mmodule_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3398 val
* var
/* : nullable ModulePath */;
3399 val
* var1
/* : nullable ModulePath */;
3400 var1
= modelbuilder__ModelBuilder__search_mmodule_by_name(self
, p0
, p1
, p2
);
3405 /* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: ModelBuilder, ANode, nullable MGroup, String): nullable MModule */
3406 val
* modelbuilder__ModelBuilder__get_mmodule_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3407 val
* var
/* : nullable MModule */;
3408 val
* var_anode
/* var anode: ANode */;
3409 val
* var_mgroup
/* var mgroup: nullable MGroup */;
3410 val
* var_name
/* var name: String */;
3411 val
* var1
/* : nullable ModulePath */;
3412 val
* var_path
/* var path: nullable ModulePath */;
3413 val
* var2
/* : null */;
3414 short int var3
/* : Bool */;
3415 short int var4
/* : Bool */;
3416 val
* var_other
/* var other: nullable Object */;
3417 short int var6
/* : Bool */;
3418 short int var8
/* : Bool */;
3419 val
* var9
/* : null */;
3420 val
* var10
/* : String */;
3421 val
* var12
/* : String */;
3422 val
* var13
/* : nullable AModule */;
3423 val
* var_res
/* var res: nullable AModule */;
3424 val
* var14
/* : null */;
3425 short int var15
/* : Bool */;
3426 short int var16
/* : Bool */;
3427 short int var18
/* : Bool */;
3428 short int var20
/* : Bool */;
3429 val
* var21
/* : null */;
3430 val
* var22
/* : nullable MModule */;
3431 val
* var24
/* : nullable MModule */;
3436 var1
= modelbuilder__ModelBuilder__search_mmodule_by_name(self
, var_anode
, var_mgroup
, var_name
);
3440 if (var_path
== NULL
) {
3441 var3
= 1; /* is null */
3443 var3
= 0; /* arg is null but recv is not */
3446 { /* Inline kernel#Object#== (var_path,var2) on <var_path:nullable ModulePath> */
3449 { /* Inline kernel#Object#is_same_instance (var_path,var_other) on <var_path:nullable ModulePath(ModulePath)> */
3450 var8
= var_path
== var_other
;
3469 { /* Inline modelbuilder#ModulePath#filepath (var_path) on <var_path:nullable ModulePath(ModulePath)> */
3470 var12
= var_path
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
; /* _filepath on <var_path:nullable ModulePath(ModulePath)> */
3471 if (unlikely(var12
== NULL
)) {
3472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath");
3473 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733);
3477 RET_LABEL11
:(void)0;
3481 var13
= modelbuilder__ModelBuilder__load_module(self
, var10
);
3485 if (var_res
== NULL
) {
3486 var15
= 1; /* is null */
3488 var15
= 0; /* arg is null but recv is not */
3491 { /* Inline kernel#Object#== (var_res,var14) on <var_res:nullable AModule> */
3494 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable AModule(AModule)> */
3495 var20
= var_res
== var_other
;
3498 RET_LABEL19
:(void)0;
3503 RET_LABEL17
:(void)0;
3514 { /* Inline modelbuilder#AModule#mmodule (var_res) on <var_res:nullable AModule(AModule)> */
3515 var24
= var_res
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_res:nullable AModule(AModule)> */
3517 RET_LABEL23
:(void)0;
3520 if (unlikely(var22
== NULL
)) {
3521 PRINT_ERROR("Runtime error: %s", "Cast failed");
3522 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 365);
3530 /* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: Object, ANode, nullable MGroup, String): nullable MModule */
3531 val
* VIRTUAL_modelbuilder__ModelBuilder__get_mmodule_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3532 val
* var
/* : nullable MModule */;
3533 val
* var1
/* : nullable MModule */;
3534 var1
= modelbuilder__ModelBuilder__get_mmodule_by_name(self
, p0
, p1
, p2
);
3539 /* method modelbuilder#ModelBuilder#search_module_in_paths for (self: ModelBuilder, nullable Location, String, Collection[String]): nullable ModulePath */
3540 val
* modelbuilder__ModelBuilder__search_module_in_paths(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3541 val
* var
/* : nullable ModulePath */;
3542 val
* var_location
/* var location: nullable Location */;
3543 val
* var_name
/* var name: String */;
3544 val
* var_lookpaths
/* var lookpaths: Collection[String] */;
3545 val
* var1
/* : null */;
3546 val
* var_candidate
/* var candidate: nullable String */;
3547 val
* var2
/* : Iterator[nullable Object] */;
3548 short int var3
/* : Bool */;
3549 val
* var4
/* : nullable Object */;
3550 val
* var_dirname
/* var dirname: String */;
3551 static val
* varonce
;
3552 val
* var5
/* : String */;
3553 char* var6
/* : NativeString */;
3554 long var7
/* : Int */;
3555 val
* var8
/* : FlatString */;
3556 val
* var9
/* : String */;
3557 val
* var10
/* : String */;
3558 static val
* varonce11
;
3559 val
* var12
/* : String */;
3560 char* var13
/* : NativeString */;
3561 long var14
/* : Int */;
3562 val
* var15
/* : FlatString */;
3563 val
* var16
/* : String */;
3564 val
* var17
/* : String */;
3565 val
* var_try_file
/* var try_file: String */;
3566 short int var18
/* : Bool */;
3567 val
* var19
/* : null */;
3568 short int var20
/* : Bool */;
3569 short int var21
/* : Bool */;
3570 short int var22
/* : Bool */;
3571 short int var23
/* : Bool */;
3572 val
* var_other
/* var other: nullable Object */;
3573 short int var25
/* : Bool */;
3574 short int var26
/* : Bool */;
3575 short int var27
/* : Bool */;
3576 val
* var28
/* : String */;
3577 val
* var_abs_candidate
/* var abs_candidate: String */;
3578 val
* var29
/* : String */;
3579 val
* var_abs_try_file
/* var abs_try_file: String */;
3580 short int var30
/* : Bool */;
3581 short int var31
/* : Bool */;
3582 short int var33
/* : Bool */;
3583 short int var34
/* : Bool */;
3584 short int var35
/* : Bool */;
3585 val
* var36
/* : ToolContext */;
3586 val
* var38
/* : ToolContext */;
3587 static val
* varonce39
;
3588 val
* var40
/* : String */;
3589 char* var41
/* : NativeString */;
3590 long var42
/* : Int */;
3591 val
* var43
/* : FlatString */;
3592 static val
* varonce44
;
3593 val
* var45
/* : String */;
3594 char* var46
/* : NativeString */;
3595 long var47
/* : Int */;
3596 val
* var48
/* : FlatString */;
3597 static val
* varonce49
;
3598 val
* var50
/* : String */;
3599 char* var51
/* : NativeString */;
3600 long var52
/* : Int */;
3601 val
* var53
/* : FlatString */;
3602 val
* var54
/* : Array[Object] */;
3603 long var55
/* : Int */;
3604 val
* var56
/* : NativeArray[Object] */;
3605 val
* var57
/* : String */;
3606 static val
* varonce58
;
3607 val
* var59
/* : String */;
3608 char* var60
/* : NativeString */;
3609 long var61
/* : Int */;
3610 val
* var62
/* : FlatString */;
3611 val
* var63
/* : String */;
3612 val
* var64
/* : String */;
3613 static val
* varonce65
;
3614 val
* var66
/* : String */;
3615 char* var67
/* : NativeString */;
3616 long var68
/* : Int */;
3617 val
* var69
/* : FlatString */;
3618 val
* var70
/* : String */;
3619 val
* var71
/* : String */;
3620 static val
* varonce72
;
3621 val
* var73
/* : String */;
3622 char* var74
/* : NativeString */;
3623 long var75
/* : Int */;
3624 val
* var76
/* : FlatString */;
3625 val
* var77
/* : String */;
3626 val
* var78
/* : String */;
3627 short int var79
/* : Bool */;
3628 val
* var80
/* : null */;
3629 short int var81
/* : Bool */;
3630 short int var82
/* : Bool */;
3631 short int var83
/* : Bool */;
3632 short int var84
/* : Bool */;
3633 short int var86
/* : Bool */;
3634 short int var87
/* : Bool */;
3635 short int var88
/* : Bool */;
3636 val
* var89
/* : String */;
3637 val
* var_abs_candidate90
/* var abs_candidate: String */;
3638 val
* var91
/* : String */;
3639 val
* var_abs_try_file92
/* var abs_try_file: String */;
3640 short int var93
/* : Bool */;
3641 short int var94
/* : Bool */;
3642 short int var96
/* : Bool */;
3643 short int var97
/* : Bool */;
3644 short int var98
/* : Bool */;
3645 val
* var99
/* : ToolContext */;
3646 val
* var101
/* : ToolContext */;
3647 static val
* varonce102
;
3648 val
* var103
/* : String */;
3649 char* var104
/* : NativeString */;
3650 long var105
/* : Int */;
3651 val
* var106
/* : FlatString */;
3652 static val
* varonce107
;
3653 val
* var108
/* : String */;
3654 char* var109
/* : NativeString */;
3655 long var110
/* : Int */;
3656 val
* var111
/* : FlatString */;
3657 static val
* varonce112
;
3658 val
* var113
/* : String */;
3659 char* var114
/* : NativeString */;
3660 long var115
/* : Int */;
3661 val
* var116
/* : FlatString */;
3662 val
* var117
/* : Array[Object] */;
3663 long var118
/* : Int */;
3664 val
* var119
/* : NativeArray[Object] */;
3665 val
* var120
/* : String */;
3666 val
* var121
/* : null */;
3667 short int var122
/* : Bool */;
3668 short int var123
/* : Bool */;
3669 val
* var124
/* : null */;
3670 val
* var125
/* : nullable ModulePath */;
3675 var_candidate
= var1
;
3677 var2
= ((val
* (*)(val
*))(var_lookpaths
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_lookpaths
) /* iterator on <var_lookpaths:Collection[String]>*/;
3681 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
3685 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
3693 var8
= string__NativeString__to_s_with_length(var6
, var7
);
3698 var9
= string__FlatString___43d(var_dirname
, var5
);
3701 var10
= string__FlatString___43d(var9
, var_name
);
3708 var15
= string__NativeString__to_s_with_length(var13
, var14
);
3713 var16
= string__FlatString___43d(var10
, var12
);
3716 var17
= file__String__simplify_path(var16
);
3718 var_try_file
= var17
;
3720 var18
= file__String__file_exists(var_try_file
);
3724 if (var_candidate
== NULL
) {
3725 var20
= 1; /* is null */
3727 var20
= 0; /* arg is null but recv is not */
3730 var21
= string__FlatString___61d_61d(var_candidate
, var19
);
3734 var_candidate
= var_try_file
;
3737 { /* Inline kernel#Object#!= (var_candidate,var_try_file) on <var_candidate:nullable String(String)> */
3738 var_other
= var_try_file
;
3740 var26
= ((short int (*)(val
*, val
*))(var_candidate
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_candidate
, var_other
) /* == on <var_candidate:nullable String(String)>*/;
3746 RET_LABEL24
:(void)0;
3752 var28
= modelbuilder__ModelBuilder__module_absolute_path(self
, var_candidate
);
3754 var_abs_candidate
= var28
;
3756 var29
= modelbuilder__ModelBuilder__module_absolute_path(self
, var_try_file
);
3758 var_abs_try_file
= var29
;
3760 { /* Inline kernel#Object#!= (var_abs_candidate,var_abs_try_file) on <var_abs_candidate:String> */
3761 var_other
= var_abs_try_file
;
3763 var34
= ((short int (*)(val
*, val
*))(var_abs_candidate
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_abs_candidate
, var_other
) /* == on <var_abs_candidate:String>*/;
3769 RET_LABEL32
:(void)0;
3775 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3776 var38
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
3777 if (unlikely(var38
== NULL
)) {
3778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3779 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
3783 RET_LABEL37
:(void)0;
3789 var41
= "Error: conflicting module file for ";
3791 var43
= string__NativeString__to_s_with_length(var41
, var42
);
3800 var48
= string__NativeString__to_s_with_length(var46
, var47
);
3809 var53
= string__NativeString__to_s_with_length(var51
, var52
);
3813 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
3814 { /* var54 = array_instance Array[Object] */
3816 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
3817 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var40
;
3818 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_name
;
3819 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var45
;
3820 ((struct instance_array__NativeArray
*)var56
)->values
[3] = (val
*) var_candidate
;
3821 ((struct instance_array__NativeArray
*)var56
)->values
[4] = (val
*) var50
;
3822 ((struct instance_array__NativeArray
*)var56
)->values
[5] = (val
*) var_try_file
;
3824 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
3828 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
3831 toolcontext__ToolContext__error(var36
, var_location
, var57
); /* Direct call toolcontext#ToolContext#error on <var36:ToolContext>*/
3845 var62
= string__NativeString__to_s_with_length(var60
, var61
);
3850 var63
= string__FlatString___43d(var_dirname
, var59
);
3853 var64
= string__FlatString___43d(var63
, var_name
);
3860 var69
= string__NativeString__to_s_with_length(var67
, var68
);
3865 var70
= string__FlatString___43d(var64
, var66
);
3868 var71
= string__FlatString___43d(var70
, var_name
);
3875 var76
= string__NativeString__to_s_with_length(var74
, var75
);
3880 var77
= string__FlatString___43d(var71
, var73
);
3883 var78
= file__String__simplify_path(var77
);
3885 var_try_file
= var78
;
3887 var79
= file__String__file_exists(var_try_file
);
3891 if (var_candidate
== NULL
) {
3892 var81
= 1; /* is null */
3894 var81
= 0; /* arg is null but recv is not */
3897 var82
= string__FlatString___61d_61d(var_candidate
, var80
);
3901 var_candidate
= var_try_file
;
3904 { /* Inline kernel#Object#!= (var_candidate,var_try_file) on <var_candidate:nullable String(String)> */
3905 var_other
= var_try_file
;
3907 var87
= ((short int (*)(val
*, val
*))(var_candidate
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_candidate
, var_other
) /* == on <var_candidate:nullable String(String)>*/;
3913 RET_LABEL85
:(void)0;
3919 var89
= modelbuilder__ModelBuilder__module_absolute_path(self
, var_candidate
);
3921 var_abs_candidate90
= var89
;
3923 var91
= modelbuilder__ModelBuilder__module_absolute_path(self
, var_try_file
);
3925 var_abs_try_file92
= var91
;
3927 { /* Inline kernel#Object#!= (var_abs_candidate90,var_abs_try_file92) on <var_abs_candidate90:String> */
3928 var_other
= var_abs_try_file92
;
3930 var97
= ((short int (*)(val
*, val
*))(var_abs_candidate90
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_abs_candidate90
, var_other
) /* == on <var_abs_candidate90:String>*/;
3936 RET_LABEL95
:(void)0;
3942 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3943 var101
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
3944 if (unlikely(var101
== NULL
)) {
3945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3946 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
3950 RET_LABEL100
:(void)0;
3954 var103
= varonce102
;
3956 var104
= "Error: conflicting module file for ";
3958 var106
= string__NativeString__to_s_with_length(var104
, var105
);
3960 varonce102
= var103
;
3963 var108
= varonce107
;
3967 var111
= string__NativeString__to_s_with_length(var109
, var110
);
3969 varonce107
= var108
;
3972 var113
= varonce112
;
3976 var116
= string__NativeString__to_s_with_length(var114
, var115
);
3978 varonce112
= var113
;
3980 var117
= NEW_array__Array(&type_array__Arraykernel__Object
);
3981 { /* var117 = array_instance Array[Object] */
3983 var119
= NEW_array__NativeArray(var118
, &type_array__NativeArraykernel__Object
);
3984 ((struct instance_array__NativeArray
*)var119
)->values
[0] = (val
*) var103
;
3985 ((struct instance_array__NativeArray
*)var119
)->values
[1] = (val
*) var_name
;
3986 ((struct instance_array__NativeArray
*)var119
)->values
[2] = (val
*) var108
;
3987 ((struct instance_array__NativeArray
*)var119
)->values
[3] = (val
*) var_candidate
;
3988 ((struct instance_array__NativeArray
*)var119
)->values
[4] = (val
*) var113
;
3989 ((struct instance_array__NativeArray
*)var119
)->values
[5] = (val
*) var_try_file
;
3991 ((void (*)(val
*, val
*, long))(var117
->class->vft
[COLOR_array__Array__with_native
]))(var117
, var119
, var118
) /* with_native on <var117:Array[Object]>*/;
3995 var120
= ((val
* (*)(val
*))(var117
->class->vft
[COLOR_string__Object__to_s
]))(var117
) /* to_s on <var117:Array[Object]>*/;
3998 toolcontext__ToolContext__error(var99
, var_location
, var120
); /* Direct call toolcontext#ToolContext#error on <var99:ToolContext>*/
4007 CONTINUE_label
: (void)0;
4009 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
4012 BREAK_label
: (void)0;
4014 if (var_candidate
== NULL
) {
4015 var122
= 1; /* is null */
4017 var122
= 0; /* arg is null but recv is not */
4020 var123
= string__FlatString___61d_61d(var_candidate
, var121
);
4030 var125
= modelbuilder__ModelBuilder__identify_file(self
, var_candidate
);
4037 /* method modelbuilder#ModelBuilder#search_module_in_paths for (self: Object, nullable Location, String, Collection[String]): nullable ModulePath */
4038 val
* VIRTUAL_modelbuilder__ModelBuilder__search_module_in_paths(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4039 val
* var
/* : nullable ModulePath */;
4040 val
* var1
/* : nullable ModulePath */;
4041 var1
= modelbuilder__ModelBuilder__search_module_in_paths(self
, p0
, p1
, p2
);
4046 /* method modelbuilder#ModelBuilder#identified_files for (self: ModelBuilder): HashMap[String, nullable ModulePath] */
4047 val
* modelbuilder__ModelBuilder__identified_files(val
* self
) {
4048 val
* var
/* : HashMap[String, nullable ModulePath] */;
4049 val
* var1
/* : HashMap[String, nullable ModulePath] */;
4050 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___identified_files
].val
; /* _identified_files on <self:ModelBuilder> */
4051 if (unlikely(var1
== NULL
)) {
4052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files");
4053 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405);
4060 /* method modelbuilder#ModelBuilder#identified_files for (self: Object): HashMap[String, nullable ModulePath] */
4061 val
* VIRTUAL_modelbuilder__ModelBuilder__identified_files(val
* self
) {
4062 val
* var
/* : HashMap[String, nullable ModulePath] */;
4063 val
* var1
/* : HashMap[String, nullable ModulePath] */;
4064 val
* var3
/* : HashMap[String, nullable ModulePath] */;
4065 { /* Inline modelbuilder#ModelBuilder#identified_files (self) on <self:Object(ModelBuilder)> */
4066 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___identified_files
].val
; /* _identified_files on <self:Object(ModelBuilder)> */
4067 if (unlikely(var3
== NULL
)) {
4068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files");
4069 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405);
4079 /* method modelbuilder#ModelBuilder#identify_file for (self: ModelBuilder, String): nullable ModulePath */
4080 val
* modelbuilder__ModelBuilder__identify_file(val
* self
, val
* p0
) {
4081 val
* var
/* : nullable ModulePath */;
4082 val
* var_path
/* var path: String */;
4083 val
* var1
/* : nullable String */;
4084 static val
* varonce
;
4085 val
* var2
/* : String */;
4086 char* var3
/* : NativeString */;
4087 long var4
/* : Int */;
4088 val
* var5
/* : FlatString */;
4089 short int var6
/* : Bool */;
4090 short int var7
/* : Bool */;
4091 val
* var_other
/* var other: nullable Object */;
4092 short int var9
/* : Bool */;
4093 short int var10
/* : Bool */;
4094 short int var11
/* : Bool */;
4095 val
* var12
/* : null */;
4096 val
* var13
/* : Array[String] */;
4097 val
* var15
/* : Array[String] */;
4098 val
* var16
/* : nullable ModulePath */;
4099 val
* var_res
/* var res: nullable ModulePath */;
4100 val
* var17
/* : null */;
4101 short int var18
/* : Bool */;
4102 short int var19
/* : Bool */;
4103 short int var21
/* : Bool */;
4104 short int var22
/* : Bool */;
4105 short int var23
/* : Bool */;
4106 val
* var24
/* : null */;
4107 val
* var_candidate
/* var candidate: nullable Object */;
4108 short int var25
/* : Bool */;
4109 val
* var26
/* : nullable MGroup */;
4110 val
* var_mgroup
/* var mgroup: nullable MGroup */;
4111 val
* var27
/* : null */;
4112 short int var28
/* : Bool */;
4113 short int var29
/* : Bool */;
4114 short int var31
/* : Bool */;
4115 short int var32
/* : Bool */;
4116 short int var33
/* : Bool */;
4117 val
* var34
/* : nullable String */;
4118 val
* var36
/* : nullable String */;
4119 val
* var37
/* : String */;
4120 val
* var39
/* : String */;
4121 static val
* varonce40
;
4122 val
* var41
/* : String */;
4123 char* var42
/* : NativeString */;
4124 long var43
/* : Int */;
4125 val
* var44
/* : FlatString */;
4126 val
* var45
/* : String */;
4127 val
* var46
/* : String */;
4128 val
* var_owner_path
/* var owner_path: String */;
4129 short int var47
/* : Bool */;
4130 val
* var48
/* : null */;
4131 short int var49
/* : Bool */;
4132 short int var50
/* : Bool */;
4133 val
* var51
/* : ToolContext */;
4134 val
* var53
/* : ToolContext */;
4135 val
* var54
/* : null */;
4136 static val
* varonce55
;
4137 val
* var56
/* : String */;
4138 char* var57
/* : NativeString */;
4139 long var58
/* : Int */;
4140 val
* var59
/* : FlatString */;
4141 static val
* varonce60
;
4142 val
* var61
/* : String */;
4143 char* var62
/* : NativeString */;
4144 long var63
/* : Int */;
4145 val
* var64
/* : FlatString */;
4146 val
* var65
/* : Array[Object] */;
4147 long var66
/* : Int */;
4148 val
* var67
/* : NativeArray[Object] */;
4149 val
* var68
/* : String */;
4150 val
* var69
/* : null */;
4151 static val
* varonce70
;
4152 val
* var71
/* : String */;
4153 char* var72
/* : NativeString */;
4154 long var73
/* : Int */;
4155 val
* var74
/* : FlatString */;
4156 val
* var75
/* : String */;
4157 val
* var_pn
/* var pn: String */;
4158 val
* var76
/* : String */;
4159 val
* var_rp
/* var rp: String */;
4160 val
* var77
/* : HashMap[String, nullable ModulePath] */;
4161 val
* var79
/* : HashMap[String, nullable ModulePath] */;
4162 short int var80
/* : Bool */;
4163 val
* var81
/* : HashMap[String, nullable ModulePath] */;
4164 val
* var83
/* : HashMap[String, nullable ModulePath] */;
4165 val
* var84
/* : nullable Object */;
4166 static val
* varonce85
;
4167 val
* var86
/* : String */;
4168 char* var87
/* : NativeString */;
4169 long var88
/* : Int */;
4170 val
* var89
/* : FlatString */;
4171 val
* var90
/* : String */;
4172 val
* var91
/* : String */;
4173 val
* var_mgrouppath
/* var mgrouppath: String */;
4174 val
* var92
/* : nullable MGroup */;
4175 val
* var_mgroup93
/* var mgroup: nullable MGroup */;
4176 val
* var94
/* : null */;
4177 short int var95
/* : Bool */;
4178 short int var96
/* : Bool */;
4179 val
* var_other98
/* var other: nullable Object */;
4180 short int var99
/* : Bool */;
4181 short int var101
/* : Bool */;
4182 val
* var102
/* : MProject */;
4183 val
* var103
/* : Model */;
4184 val
* var105
/* : Model */;
4185 val
* var_mproject
/* var mproject: MProject */;
4186 val
* var106
/* : MGroup */;
4187 val
* var107
/* : null */;
4188 val
* var110
/* : ToolContext */;
4189 val
* var112
/* : ToolContext */;
4190 static val
* varonce113
;
4191 val
* var114
/* : String */;
4192 char* var115
/* : NativeString */;
4193 long var116
/* : Int */;
4194 val
* var117
/* : FlatString */;
4195 static val
* varonce118
;
4196 val
* var119
/* : String */;
4197 char* var120
/* : NativeString */;
4198 long var121
/* : Int */;
4199 val
* var122
/* : FlatString */;
4200 val
* var123
/* : Array[Object] */;
4201 long var124
/* : Int */;
4202 val
* var125
/* : NativeArray[Object] */;
4203 val
* var126
/* : String */;
4204 long var127
/* : Int */;
4205 val
* var128
/* : ModulePath */;
4206 val
* var_res130
/* var res: ModulePath */;
4207 val
* var131
/* : Array[ModulePath] */;
4208 val
* var133
/* : Array[ModulePath] */;
4209 val
* var134
/* : HashMap[String, nullable ModulePath] */;
4210 val
* var136
/* : HashMap[String, nullable ModulePath] */;
4213 var1
= file__String__file_extension(var_path
);
4220 var5
= string__NativeString__to_s_with_length(var3
, var4
);
4225 var6
= 1; /* <var2:String> cannot be null */
4227 { /* Inline kernel#Object#!= (var1,var2) on <var1:nullable String> */
4230 var10
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_other
) /* == on <var1:nullable String(String)>*/;
4243 { /* Inline modelbuilder#ModelBuilder#paths (self) on <self:ModelBuilder> */
4244 var15
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___paths
].val
; /* _paths on <self:ModelBuilder> */
4245 if (unlikely(var15
== NULL
)) {
4246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths");
4247 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289);
4251 RET_LABEL14
:(void)0;
4255 var16
= modelbuilder__ModelBuilder__search_module_in_paths(self
, var12
, var_path
, var13
);
4259 if (var_res
== NULL
) {
4260 var18
= 0; /* is null */
4262 var18
= 1; /* arg is null and recv is not */
4265 { /* Inline kernel#Object#!= (var_res,var17) on <var_res:nullable ModulePath> */
4268 var22
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable ModulePath(ModulePath)>*/;
4274 RET_LABEL20
:(void)0;
4284 var_candidate
= var24
;
4286 var25
= file__String__file_exists(var_path
);
4290 var26
= modelbuilder__ModelBuilder__get_mgroup(self
, var_path
);
4294 if (var_mgroup
== NULL
) {
4295 var28
= 0; /* is null */
4297 var28
= 1; /* arg is null and recv is not */
4300 { /* Inline kernel#Object#!= (var_mgroup,var27) on <var_mgroup:nullable MGroup> */
4303 var32
= ((short int (*)(val
*, val
*))(var_mgroup
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mgroup
, var_other
) /* == on <var_mgroup:nullable MGroup(MGroup)>*/;
4309 RET_LABEL30
:(void)0;
4315 { /* Inline mproject#MGroup#filepath (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
4316 var36
= var_mgroup
->attrs
[COLOR_mproject__MGroup___filepath
].val
; /* _filepath on <var_mgroup:nullable MGroup(MGroup)> */
4318 RET_LABEL35
:(void)0;
4322 { /* Inline mproject#MGroup#name (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
4323 var39
= var_mgroup
->attrs
[COLOR_mproject__MGroup___name
].val
; /* _name on <var_mgroup:nullable MGroup(MGroup)> */
4324 if (unlikely(var39
== NULL
)) {
4325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4326 PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 56);
4330 RET_LABEL38
:(void)0;
4338 var44
= string__NativeString__to_s_with_length(var42
, var43
);
4343 var45
= string__FlatString___43d(var37
, var41
);
4345 if (var34
== NULL
) {
4346 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4347 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 423);
4350 var46
= file__String__join_path(var34
, var45
);
4352 var_owner_path
= var46
;
4354 var47
= file__String__file_exists(var_owner_path
);
4357 var_candidate
= var_owner_path
;
4365 if (var_candidate
== NULL
) {
4366 var49
= 1; /* is null */
4368 var49
= 0; /* arg is null but recv is not */
4371 var50
= string__FlatString___61d_61d(var_candidate
, var48
);
4376 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4377 var53
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4378 if (unlikely(var53
== NULL
)) {
4379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4380 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4384 RET_LABEL52
:(void)0;
4391 var57
= "Error: cannot find module `";
4393 var59
= string__NativeString__to_s_with_length(var57
, var58
);
4402 var64
= string__NativeString__to_s_with_length(var62
, var63
);
4406 var65
= NEW_array__Array(&type_array__Arraykernel__Object
);
4407 { /* var65 = array_instance Array[Object] */
4409 var67
= NEW_array__NativeArray(var66
, &type_array__NativeArraykernel__Object
);
4410 ((struct instance_array__NativeArray
*)var67
)->values
[0] = (val
*) var56
;
4411 ((struct instance_array__NativeArray
*)var67
)->values
[1] = (val
*) var_path
;
4412 ((struct instance_array__NativeArray
*)var67
)->values
[2] = (val
*) var61
;
4414 ((void (*)(val
*, val
*, long))(var65
->class->vft
[COLOR_array__Array__with_native
]))(var65
, var67
, var66
) /* with_native on <var65:Array[Object]>*/;
4418 var68
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__to_s
]))(var65
) /* to_s on <var65:Array[Object]>*/;
4421 toolcontext__ToolContext__error(var51
, var54
, var68
); /* Direct call toolcontext#ToolContext#error on <var51:ToolContext>*/
4428 var_path
= var_candidate
;
4436 var74
= string__NativeString__to_s_with_length(var72
, var73
);
4441 var75
= file__String__basename(var_path
, var71
);
4445 var76
= modelbuilder__ModelBuilder__module_absolute_path(self
, var_path
);
4449 { /* Inline modelbuilder#ModelBuilder#identified_files (self) on <self:ModelBuilder> */
4450 var79
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___identified_files
].val
; /* _identified_files on <self:ModelBuilder> */
4451 if (unlikely(var79
== NULL
)) {
4452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files");
4453 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405);
4457 RET_LABEL78
:(void)0;
4461 var80
= abstract_collection__MapRead__has_key(var77
, var_rp
);
4465 { /* Inline modelbuilder#ModelBuilder#identified_files (self) on <self:ModelBuilder> */
4466 var83
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___identified_files
].val
; /* _identified_files on <self:ModelBuilder> */
4467 if (unlikely(var83
== NULL
)) {
4468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files");
4469 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405);
4473 RET_LABEL82
:(void)0;
4477 var84
= hash_collection__HashMap___91d_93d(var81
, var_rp
);
4488 var89
= string__NativeString__to_s_with_length(var87
, var88
);
4493 var90
= file__String__join_path(var_path
, var86
);
4496 var91
= file__String__simplify_path(var90
);
4498 var_mgrouppath
= var91
;
4500 var92
= modelbuilder__ModelBuilder__get_mgroup(self
, var_mgrouppath
);
4502 var_mgroup93
= var92
;
4504 if (var_mgroup93
== NULL
) {
4505 var95
= 1; /* is null */
4507 var95
= 0; /* arg is null but recv is not */
4510 { /* Inline kernel#Object#== (var_mgroup93,var94) on <var_mgroup93:nullable MGroup> */
4511 var_other98
= var94
;
4513 { /* Inline kernel#Object#is_same_instance (var_mgroup93,var_other98) on <var_mgroup93:nullable MGroup(MGroup)> */
4514 var101
= var_mgroup93
== var_other98
;
4517 RET_LABEL100
:(void)0;
4522 RET_LABEL97
:(void)0;
4527 var102
= NEW_mproject__MProject(&type_mproject__MProject
);
4529 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:ModelBuilder> */
4530 var105
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
4531 if (unlikely(var105
== NULL
)) {
4532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4533 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
4537 RET_LABEL104
:(void)0;
4541 mproject__MProject__init(var102
, var_pn
, var103
); /* Direct call mproject#MProject#init on <var102:MProject>*/
4543 var_mproject
= var102
;
4544 var106
= NEW_mproject__MGroup(&type_mproject__MGroup
);
4547 mproject__MGroup__init(var106
, var_pn
, var_mproject
, var107
); /* Direct call mproject#MGroup#init on <var106:MGroup>*/
4549 var_mgroup93
= var106
;
4551 { /* Inline mproject#MGroup#filepath= (var_mgroup93,var_path) on <var_mgroup93:nullable MGroup(MGroup)> */
4552 var_mgroup93
->attrs
[COLOR_mproject__MGroup___filepath
].val
= var_path
; /* _filepath on <var_mgroup93:nullable MGroup(MGroup)> */
4553 RET_LABEL108
:(void)0;
4557 { /* Inline mproject#MProject#root= (var_mproject,var_mgroup93) on <var_mproject:MProject> */
4558 var_mproject
->attrs
[COLOR_mproject__MProject___root
].val
= var_mgroup93
; /* _root on <var_mproject:MProject> */
4559 RET_LABEL109
:(void)0;
4563 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4564 var112
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4565 if (unlikely(var112
== NULL
)) {
4566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4567 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4571 RET_LABEL111
:(void)0;
4575 var114
= varonce113
;
4577 var115
= "found project `";
4579 var117
= string__NativeString__to_s_with_length(var115
, var116
);
4581 varonce113
= var114
;
4584 var119
= varonce118
;
4588 var122
= string__NativeString__to_s_with_length(var120
, var121
);
4590 varonce118
= var119
;
4592 var123
= NEW_array__Array(&type_array__Arraykernel__Object
);
4593 { /* var123 = array_instance Array[Object] */
4595 var125
= NEW_array__NativeArray(var124
, &type_array__NativeArraykernel__Object
);
4596 ((struct instance_array__NativeArray
*)var125
)->values
[0] = (val
*) var114
;
4597 ((struct instance_array__NativeArray
*)var125
)->values
[1] = (val
*) var_pn
;
4598 ((struct instance_array__NativeArray
*)var125
)->values
[2] = (val
*) var119
;
4599 ((struct instance_array__NativeArray
*)var125
)->values
[3] = (val
*) var_path
;
4601 ((void (*)(val
*, val
*, long))(var123
->class->vft
[COLOR_array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
4605 var126
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
4609 toolcontext__ToolContext__info(var110
, var126
, var127
); /* Direct call toolcontext#ToolContext#info on <var110:ToolContext>*/
4613 var128
= NEW_modelbuilder__ModulePath(&type_modelbuilder__ModulePath
);
4615 { /* Inline modelbuilder#ModulePath#init (var128,var_pn,var_path,var_mgroup93) on <var128:ModulePath> */
4616 var128
->attrs
[COLOR_modelbuilder__ModulePath___name
].val
= var_pn
; /* _name on <var128:ModulePath> */
4617 var128
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
= var_path
; /* _filepath on <var128:ModulePath> */
4618 var128
->attrs
[COLOR_modelbuilder__ModulePath___mgroup
].val
= var_mgroup93
; /* _mgroup on <var128:ModulePath> */
4619 RET_LABEL129
:(void)0;
4622 var_res130
= var128
;
4624 { /* Inline modelbuilder#MGroup#module_paths (var_mgroup93) on <var_mgroup93:nullable MGroup(MGroup)> */
4625 var133
= var_mgroup93
->attrs
[COLOR_modelbuilder__MGroup___module_paths
].val
; /* _module_paths on <var_mgroup93:nullable MGroup(MGroup)> */
4626 if (unlikely(var133
== NULL
)) {
4627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _module_paths");
4628 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 746);
4632 RET_LABEL132
:(void)0;
4636 array__Array__add(var131
, var_res130
); /* Direct call array#Array#add on <var131:Array[ModulePath]>*/
4639 { /* Inline modelbuilder#ModelBuilder#identified_files (self) on <self:ModelBuilder> */
4640 var136
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___identified_files
].val
; /* _identified_files on <self:ModelBuilder> */
4641 if (unlikely(var136
== NULL
)) {
4642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files");
4643 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405);
4647 RET_LABEL135
:(void)0;
4651 hash_collection__HashMap___91d_93d_61d(var134
, var_rp
, var_res130
); /* Direct call hash_collection#HashMap#[]= on <var134:HashMap[String, nullable ModulePath]>*/
4658 /* method modelbuilder#ModelBuilder#identify_file for (self: Object, String): nullable ModulePath */
4659 val
* VIRTUAL_modelbuilder__ModelBuilder__identify_file(val
* self
, val
* p0
) {
4660 val
* var
/* : nullable ModulePath */;
4661 val
* var1
/* : nullable ModulePath */;
4662 var1
= modelbuilder__ModelBuilder__identify_file(self
, p0
);
4667 /* method modelbuilder#ModelBuilder#mgroups for (self: ModelBuilder): HashMap[String, nullable MGroup] */
4668 val
* modelbuilder__ModelBuilder__mgroups(val
* self
) {
4669 val
* var
/* : HashMap[String, nullable MGroup] */;
4670 val
* var1
/* : HashMap[String, nullable MGroup] */;
4671 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mgroups
].val
; /* _mgroups on <self:ModelBuilder> */
4672 if (unlikely(var1
== NULL
)) {
4673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups");
4674 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460);
4681 /* method modelbuilder#ModelBuilder#mgroups for (self: Object): HashMap[String, nullable MGroup] */
4682 val
* VIRTUAL_modelbuilder__ModelBuilder__mgroups(val
* self
) {
4683 val
* var
/* : HashMap[String, nullable MGroup] */;
4684 val
* var1
/* : HashMap[String, nullable MGroup] */;
4685 val
* var3
/* : HashMap[String, nullable MGroup] */;
4686 { /* Inline modelbuilder#ModelBuilder#mgroups (self) on <self:Object(ModelBuilder)> */
4687 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mgroups
].val
; /* _mgroups on <self:Object(ModelBuilder)> */
4688 if (unlikely(var3
== NULL
)) {
4689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups");
4690 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460);
4700 /* method modelbuilder#ModelBuilder#get_mgroup for (self: ModelBuilder, String): nullable MGroup */
4701 val
* modelbuilder__ModelBuilder__get_mgroup(val
* self
, val
* p0
) {
4702 val
* var
/* : nullable MGroup */;
4703 val
* var_dirpath
/* var dirpath: String */;
4704 val
* var1
/* : String */;
4705 val
* var_rdp
/* var rdp: String */;
4706 val
* var2
/* : HashMap[String, nullable MGroup] */;
4707 val
* var4
/* : HashMap[String, nullable MGroup] */;
4708 short int var5
/* : Bool */;
4709 val
* var6
/* : HashMap[String, nullable MGroup] */;
4710 val
* var8
/* : HashMap[String, nullable MGroup] */;
4711 val
* var9
/* : nullable Object */;
4712 static val
* varonce
;
4713 val
* var10
/* : String */;
4714 char* var11
/* : NativeString */;
4715 long var12
/* : Int */;
4716 val
* var13
/* : FlatString */;
4717 val
* var14
/* : String */;
4718 val
* var_pn
/* var pn: String */;
4719 static val
* varonce15
;
4720 val
* var16
/* : String */;
4721 char* var17
/* : NativeString */;
4722 long var18
/* : Int */;
4723 val
* var19
/* : FlatString */;
4724 val
* var20
/* : String */;
4725 val
* var21
/* : String */;
4726 val
* var22
/* : String */;
4727 val
* var_mp
/* var mp: String */;
4728 val
* var_dirpath2
/* var dirpath2: String */;
4729 short int var23
/* : Bool */;
4730 short int var24
/* : Bool */;
4731 static val
* varonce25
;
4732 val
* var26
/* : String */;
4733 char* var27
/* : NativeString */;
4734 long var28
/* : Int */;
4735 val
* var29
/* : FlatString */;
4736 short int var30
/* : Bool */;
4737 short int var31
/* : Bool */;
4738 val
* var32
/* : String */;
4739 static val
* varonce33
;
4740 val
* var34
/* : String */;
4741 char* var35
/* : NativeString */;
4742 long var36
/* : Int */;
4743 val
* var37
/* : FlatString */;
4744 val
* var38
/* : String */;
4745 val
* var39
/* : null */;
4746 static val
* varonce40
;
4747 val
* var41
/* : String */;
4748 char* var42
/* : NativeString */;
4749 long var43
/* : Int */;
4750 val
* var44
/* : FlatString */;
4751 val
* var45
/* : String */;
4752 val
* var46
/* : String */;
4753 val
* var_parentpath
/* var parentpath: String */;
4754 val
* var47
/* : nullable MGroup */;
4755 val
* var_parent
/* var parent: nullable MGroup */;
4756 val
* var48
/* : null */;
4757 short int var49
/* : Bool */;
4758 short int var50
/* : Bool */;
4759 val
* var_other
/* var other: nullable Object */;
4760 short int var52
/* : Bool */;
4761 short int var54
/* : Bool */;
4762 val
* var55
/* : MProject */;
4763 val
* var56
/* : Model */;
4764 val
* var58
/* : Model */;
4765 val
* var_mproject
/* var mproject: MProject */;
4766 val
* var59
/* : MGroup */;
4767 val
* var60
/* : null */;
4768 val
* var_mgroup
/* var mgroup: nullable Object */;
4769 val
* var62
/* : ToolContext */;
4770 val
* var64
/* : ToolContext */;
4771 static val
* varonce65
;
4772 val
* var66
/* : String */;
4773 char* var67
/* : NativeString */;
4774 long var68
/* : Int */;
4775 val
* var69
/* : FlatString */;
4776 static val
* varonce70
;
4777 val
* var71
/* : String */;
4778 char* var72
/* : NativeString */;
4779 long var73
/* : Int */;
4780 val
* var74
/* : FlatString */;
4781 val
* var75
/* : Array[Object] */;
4782 long var76
/* : Int */;
4783 val
* var77
/* : NativeArray[Object] */;
4784 val
* var78
/* : String */;
4785 long var79
/* : Int */;
4786 val
* var80
/* : MGroup */;
4787 val
* var81
/* : MProject */;
4788 val
* var83
/* : MProject */;
4789 val
* var84
/* : ToolContext */;
4790 val
* var86
/* : ToolContext */;
4791 static val
* varonce87
;
4792 val
* var88
/* : String */;
4793 char* var89
/* : NativeString */;
4794 long var90
/* : Int */;
4795 val
* var91
/* : FlatString */;
4796 val
* var92
/* : String */;
4797 static val
* varonce93
;
4798 val
* var94
/* : String */;
4799 char* var95
/* : NativeString */;
4800 long var96
/* : Int */;
4801 val
* var97
/* : FlatString */;
4802 val
* var98
/* : Array[Object] */;
4803 long var99
/* : Int */;
4804 val
* var100
/* : NativeArray[Object] */;
4805 val
* var101
/* : String */;
4806 long var102
/* : Int */;
4807 static val
* varonce103
;
4808 val
* var104
/* : String */;
4809 char* var105
/* : NativeString */;
4810 long var106
/* : Int */;
4811 val
* var107
/* : FlatString */;
4812 val
* var108
/* : String */;
4813 val
* var_readme
/* var readme: String */;
4814 short int var109
/* : Bool */;
4815 short int var110
/* : Bool */;
4816 static val
* varonce111
;
4817 val
* var112
/* : String */;
4818 char* var113
/* : NativeString */;
4819 long var114
/* : Int */;
4820 val
* var115
/* : FlatString */;
4821 val
* var116
/* : String */;
4822 short int var117
/* : Bool */;
4823 val
* var118
/* : MDoc */;
4824 val
* var_mdoc
/* var mdoc: MDoc */;
4825 val
* var120
/* : IFStream */;
4826 val
* var_s
/* var s: IFStream */;
4827 short int var121
/* : Bool */;
4828 short int var122
/* : Bool */;
4829 val
* var123
/* : Array[String] */;
4830 val
* var125
/* : Array[String] */;
4831 val
* var126
/* : String */;
4832 val
* var130
/* : HashMap[String, nullable MGroup] */;
4833 val
* var132
/* : HashMap[String, nullable MGroup] */;
4836 var1
= modelbuilder__ModelBuilder__module_absolute_path(self
, var_dirpath
);
4840 { /* Inline modelbuilder#ModelBuilder#mgroups (self) on <self:ModelBuilder> */
4841 var4
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mgroups
].val
; /* _mgroups on <self:ModelBuilder> */
4842 if (unlikely(var4
== NULL
)) {
4843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups");
4844 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460);
4852 var5
= abstract_collection__MapRead__has_key(var2
, var_rdp
);
4856 { /* Inline modelbuilder#ModelBuilder#mgroups (self) on <self:ModelBuilder> */
4857 var8
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mgroups
].val
; /* _mgroups on <self:ModelBuilder> */
4858 if (unlikely(var8
== NULL
)) {
4859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups");
4860 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460);
4868 var9
= hash_collection__HashMap___91d_93d(var6
, var_rdp
);
4879 var13
= string__NativeString__to_s_with_length(var11
, var12
);
4884 var14
= file__String__basename(var_rdp
, var10
);
4892 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4897 var20
= string__FlatString___43d(var_pn
, var16
);
4900 var21
= file__String__join_path(var_dirpath
, var20
);
4903 var22
= file__String__simplify_path(var21
);
4906 var_dirpath2
= var_dirpath
;
4908 var23
= file__String__file_exists(var_mp
);
4917 var29
= string__NativeString__to_s_with_length(var27
, var28
);
4922 var31
= string__FlatString___61d_61d(var_pn
, var26
);
4927 var32
= file__String__dirname(var_rdp
);
4929 var_dirpath2
= var32
;
4935 var37
= string__NativeString__to_s_with_length(var35
, var36
);
4940 var38
= file__String__basename(var_dirpath2
, var34
);
4955 var44
= string__NativeString__to_s_with_length(var42
, var43
);
4960 var45
= file__String__join_path(var_dirpath
, var41
);
4963 var46
= file__String__simplify_path(var45
);
4965 var_parentpath
= var46
;
4967 var47
= modelbuilder__ModelBuilder__get_mgroup(self
, var_parentpath
);
4971 if (var_parent
== NULL
) {
4972 var49
= 1; /* is null */
4974 var49
= 0; /* arg is null but recv is not */
4977 { /* Inline kernel#Object#== (var_parent,var48) on <var_parent:nullable MGroup> */
4980 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable MGroup(MGroup)> */
4981 var54
= var_parent
== var_other
;
4984 RET_LABEL53
:(void)0;
4989 RET_LABEL51
:(void)0;
4994 var55
= NEW_mproject__MProject(&type_mproject__MProject
);
4996 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:ModelBuilder> */
4997 var58
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
4998 if (unlikely(var58
== NULL
)) {
4999 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
5000 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
5004 RET_LABEL57
:(void)0;
5008 mproject__MProject__init(var55
, var_pn
, var56
); /* Direct call mproject#MProject#init on <var55:MProject>*/
5010 var_mproject
= var55
;
5011 var59
= NEW_mproject__MGroup(&type_mproject__MGroup
);
5014 mproject__MGroup__init(var59
, var_pn
, var_mproject
, var60
); /* Direct call mproject#MGroup#init on <var59:MGroup>*/
5018 { /* Inline mproject#MProject#root= (var_mproject,var_mgroup) on <var_mproject:MProject> */
5019 var_mproject
->attrs
[COLOR_mproject__MProject___root
].val
= var_mgroup
; /* _root on <var_mproject:MProject> */
5020 RET_LABEL61
:(void)0;
5024 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5025 var64
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5026 if (unlikely(var64
== NULL
)) {
5027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5028 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5032 RET_LABEL63
:(void)0;
5038 var67
= "found project `";
5040 var69
= string__NativeString__to_s_with_length(var67
, var68
);
5049 var74
= string__NativeString__to_s_with_length(var72
, var73
);
5053 var75
= NEW_array__Array(&type_array__Arraykernel__Object
);
5054 { /* var75 = array_instance Array[Object] */
5056 var77
= NEW_array__NativeArray(var76
, &type_array__NativeArraykernel__Object
);
5057 ((struct instance_array__NativeArray
*)var77
)->values
[0] = (val
*) var66
;
5058 ((struct instance_array__NativeArray
*)var77
)->values
[1] = (val
*) var_mproject
;
5059 ((struct instance_array__NativeArray
*)var77
)->values
[2] = (val
*) var71
;
5060 ((struct instance_array__NativeArray
*)var77
)->values
[3] = (val
*) var_dirpath
;
5062 ((void (*)(val
*, val
*, long))(var75
->class->vft
[COLOR_array__Array__with_native
]))(var75
, var77
, var76
) /* with_native on <var75:Array[Object]>*/;
5066 var78
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_string__Object__to_s
]))(var75
) /* to_s on <var75:Array[Object]>*/;
5070 toolcontext__ToolContext__info(var62
, var78
, var79
); /* Direct call toolcontext#ToolContext#info on <var62:ToolContext>*/
5073 var80
= NEW_mproject__MGroup(&type_mproject__MGroup
);
5075 { /* Inline mproject#MGroup#mproject (var_parent) on <var_parent:nullable MGroup(MGroup)> */
5076 var83
= var_parent
->attrs
[COLOR_mproject__MGroup___mproject
].val
; /* _mproject on <var_parent:nullable MGroup(MGroup)> */
5077 if (unlikely(var83
== NULL
)) {
5078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproject");
5079 PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 60);
5083 RET_LABEL82
:(void)0;
5087 mproject__MGroup__init(var80
, var_pn
, var81
, var_parent
); /* Direct call mproject#MGroup#init on <var80:MGroup>*/
5091 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5092 var86
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5093 if (unlikely(var86
== NULL
)) {
5094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5095 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5099 RET_LABEL85
:(void)0;
5105 var89
= "found sub group `";
5107 var91
= string__NativeString__to_s_with_length(var89
, var90
);
5112 var92
= mproject__MGroup__full_name(var_mgroup
);
5119 var97
= string__NativeString__to_s_with_length(var95
, var96
);
5123 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
5124 { /* var98 = array_instance Array[Object] */
5126 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
5127 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var88
;
5128 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var92
;
5129 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
5130 ((struct instance_array__NativeArray
*)var100
)->values
[3] = (val
*) var_dirpath
;
5132 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
5136 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
5140 toolcontext__ToolContext__info(var84
, var101
, var102
); /* Direct call toolcontext#ToolContext#info on <var84:ToolContext>*/
5144 var104
= varonce103
;
5146 var105
= "README.md";
5148 var107
= string__NativeString__to_s_with_length(var105
, var106
);
5150 varonce103
= var104
;
5153 var108
= file__String__join_path(var_dirpath2
, var104
);
5155 var_readme
= var108
;
5157 var109
= file__String__file_exists(var_readme
);
5162 var112
= varonce111
;
5166 var115
= string__NativeString__to_s_with_length(var113
, var114
);
5168 varonce111
= var112
;
5171 var116
= file__String__join_path(var_dirpath2
, var112
);
5173 var_readme
= var116
;
5177 var117
= file__String__file_exists(var_readme
);
5180 var118
= NEW_mdoc__MDoc(&type_mdoc__MDoc
);
5182 { /* Inline mdoc#MDoc#init (var118) on <var118:MDoc> */
5183 RET_LABEL119
:(void)0;
5187 var120
= NEW_file__IFStream(&type_file__IFStream
);
5189 file__IFStream__open(var120
, var_readme
); /* Direct call file#IFStream#open on <var120:IFStream>*/
5194 var121
= stream__BufferedIStream__eof(var_s
);
5199 { /* Inline mdoc#MDoc#content (var_mdoc) on <var_mdoc:MDoc> */
5200 var125
= var_mdoc
->attrs
[COLOR_mdoc__MDoc___content
].val
; /* _content on <var_mdoc:MDoc> */
5201 if (unlikely(var125
== NULL
)) {
5202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
5203 PRINT_ERROR(" (%s:%d)\n", "src/model/mdoc.nit", 22);
5207 RET_LABEL124
:(void)0;
5211 var126
= stream__IStream__read_line(var_s
);
5214 array__Array__add(var123
, var126
); /* Direct call array#Array#add on <var123:Array[String]>*/
5216 CONTINUE_label
: (void)0;
5218 BREAK_label
: (void)0;
5220 { /* Inline mdoc#MEntity#mdoc= (var_mgroup,var_mdoc) on <var_mgroup:nullable Object(MGroup)> */
5221 var_mgroup
->attrs
[COLOR_mdoc__MEntity___mdoc
].val
= var_mdoc
; /* _mdoc on <var_mgroup:nullable Object(MGroup)> */
5222 RET_LABEL127
:(void)0;
5226 { /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mgroup) on <var_mdoc:MDoc> */
5227 var_mdoc
->attrs
[COLOR_mdoc__MDoc___original_mentity
].val
= var_mgroup
; /* _original_mentity on <var_mdoc:MDoc> */
5228 RET_LABEL128
:(void)0;
5234 { /* Inline mproject#MGroup#filepath= (var_mgroup,var_dirpath) on <var_mgroup:nullable Object(MGroup)> */
5235 var_mgroup
->attrs
[COLOR_mproject__MGroup___filepath
].val
= var_dirpath
; /* _filepath on <var_mgroup:nullable Object(MGroup)> */
5236 RET_LABEL129
:(void)0;
5240 { /* Inline modelbuilder#ModelBuilder#mgroups (self) on <self:ModelBuilder> */
5241 var132
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mgroups
].val
; /* _mgroups on <self:ModelBuilder> */
5242 if (unlikely(var132
== NULL
)) {
5243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups");
5244 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460);
5248 RET_LABEL131
:(void)0;
5252 hash_collection__HashMap___91d_93d_61d(var130
, var_rdp
, var_mgroup
); /* Direct call hash_collection#HashMap#[]= on <var130:HashMap[String, nullable MGroup]>*/
5259 /* method modelbuilder#ModelBuilder#get_mgroup for (self: Object, String): nullable MGroup */
5260 val
* VIRTUAL_modelbuilder__ModelBuilder__get_mgroup(val
* self
, val
* p0
) {
5261 val
* var
/* : nullable MGroup */;
5262 val
* var1
/* : nullable MGroup */;
5263 var1
= modelbuilder__ModelBuilder__get_mgroup(self
, p0
);
5268 /* method modelbuilder#ModelBuilder#module_absolute_path for (self: ModelBuilder, String): String */
5269 val
* modelbuilder__ModelBuilder__module_absolute_path(val
* self
, val
* p0
) {
5270 val
* var
/* : String */;
5271 val
* var_path
/* var path: String */;
5272 val
* var1
/* : String */;
5273 val
* var2
/* : String */;
5274 val
* var3
/* : String */;
5277 var1
= file__Object__getcwd(self
);
5280 var2
= file__String__join_path(var1
, var_path
);
5283 var3
= file__String__simplify_path(var2
);
5290 /* method modelbuilder#ModelBuilder#module_absolute_path for (self: Object, String): String */
5291 val
* VIRTUAL_modelbuilder__ModelBuilder__module_absolute_path(val
* self
, val
* p0
) {
5292 val
* var
/* : String */;
5293 val
* var1
/* : String */;
5294 var1
= modelbuilder__ModelBuilder__module_absolute_path(self
, p0
);
5299 /* method modelbuilder#ModelBuilder#load_module_ast for (self: ModelBuilder, String): nullable AModule */
5300 val
* modelbuilder__ModelBuilder__load_module_ast(val
* self
, val
* p0
) {
5301 val
* var
/* : nullable AModule */;
5302 val
* var_filename
/* var filename: String */;
5303 val
* var1
/* : nullable String */;
5304 static val
* varonce
;
5305 val
* var2
/* : String */;
5306 char* var3
/* : NativeString */;
5307 long var4
/* : Int */;
5308 val
* var5
/* : FlatString */;
5309 short int var6
/* : Bool */;
5310 short int var7
/* : Bool */;
5311 val
* var_other
/* var other: nullable Object */;
5312 short int var9
/* : Bool */;
5313 short int var10
/* : Bool */;
5314 short int var11
/* : Bool */;
5315 val
* var12
/* : ToolContext */;
5316 val
* var14
/* : ToolContext */;
5317 val
* var15
/* : null */;
5318 static val
* varonce16
;
5319 val
* var17
/* : String */;
5320 char* var18
/* : NativeString */;
5321 long var19
/* : Int */;
5322 val
* var20
/* : FlatString */;
5323 static val
* varonce21
;
5324 val
* var22
/* : String */;
5325 char* var23
/* : NativeString */;
5326 long var24
/* : Int */;
5327 val
* var25
/* : FlatString */;
5328 val
* var26
/* : Array[Object] */;
5329 long var27
/* : Int */;
5330 val
* var28
/* : NativeArray[Object] */;
5331 val
* var29
/* : String */;
5332 val
* var30
/* : null */;
5333 short int var31
/* : Bool */;
5334 short int var32
/* : Bool */;
5335 val
* var33
/* : ToolContext */;
5336 val
* var35
/* : ToolContext */;
5337 val
* var36
/* : null */;
5338 static val
* varonce37
;
5339 val
* var38
/* : String */;
5340 char* var39
/* : NativeString */;
5341 long var40
/* : Int */;
5342 val
* var41
/* : FlatString */;
5343 static val
* varonce42
;
5344 val
* var43
/* : String */;
5345 char* var44
/* : NativeString */;
5346 long var45
/* : Int */;
5347 val
* var46
/* : FlatString */;
5348 val
* var47
/* : Array[Object] */;
5349 long var48
/* : Int */;
5350 val
* var49
/* : NativeArray[Object] */;
5351 val
* var50
/* : String */;
5352 val
* var51
/* : null */;
5353 val
* var52
/* : ToolContext */;
5354 val
* var54
/* : ToolContext */;
5355 static val
* varonce55
;
5356 val
* var56
/* : String */;
5357 char* var57
/* : NativeString */;
5358 long var58
/* : Int */;
5359 val
* var59
/* : FlatString */;
5360 val
* var60
/* : Array[Object] */;
5361 long var61
/* : Int */;
5362 val
* var62
/* : NativeArray[Object] */;
5363 val
* var63
/* : String */;
5364 long var64
/* : Int */;
5365 val
* var65
/* : IFStream */;
5366 val
* var_file
/* var file: IFStream */;
5367 val
* var66
/* : Lexer */;
5368 val
* var67
/* : SourceFile */;
5369 val
* var_lexer
/* var lexer: Lexer */;
5370 val
* var68
/* : Parser */;
5371 val
* var_parser
/* var parser: Parser */;
5372 val
* var69
/* : Start */;
5373 val
* var_tree
/* var tree: Start */;
5374 static val
* varonce70
;
5375 val
* var71
/* : String */;
5376 char* var72
/* : NativeString */;
5377 long var73
/* : Int */;
5378 val
* var74
/* : FlatString */;
5379 val
* var75
/* : String */;
5380 val
* var_mod_name
/* var mod_name: String */;
5381 val
* var76
/* : nullable AModule */;
5382 val
* var_nmodule
/* var nmodule: nullable AModule */;
5383 val
* var77
/* : null */;
5384 short int var78
/* : Bool */;
5385 short int var79
/* : Bool */;
5386 val
* var_other81
/* var other: nullable Object */;
5387 short int var82
/* : Bool */;
5388 short int var84
/* : Bool */;
5389 val
* var85
/* : EOF */;
5390 val
* var_neof
/* var neof: EOF */;
5391 short int var86
/* : Bool */;
5394 val
* var87
/* : String */;
5395 val
* var89
/* : String */;
5396 val
* var90
/* : null */;
5399 var1
= file__String__file_extension(var_filename
);
5406 var5
= string__NativeString__to_s_with_length(var3
, var4
);
5411 var6
= 1; /* <var2:String> cannot be null */
5413 { /* Inline kernel#Object#!= (var1,var2) on <var1:nullable String> */
5416 var10
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_other
) /* == on <var1:nullable String(String)>*/;
5428 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5429 var14
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5430 if (unlikely(var14
== NULL
)) {
5431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5432 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5436 RET_LABEL13
:(void)0;
5443 var18
= "Error: file ";
5445 var20
= string__NativeString__to_s_with_length(var18
, var19
);
5452 var23
= " is not a valid nit module.";
5454 var25
= string__NativeString__to_s_with_length(var23
, var24
);
5458 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
5459 { /* var26 = array_instance Array[Object] */
5461 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
5462 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
5463 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_filename
;
5464 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
5466 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
5470 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
5473 toolcontext__ToolContext__error(var12
, var15
, var29
); /* Direct call toolcontext#ToolContext#error on <var12:ToolContext>*/
5481 var31
= file__String__file_exists(var_filename
);
5486 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5487 var35
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5488 if (unlikely(var35
== NULL
)) {
5489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5490 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5494 RET_LABEL34
:(void)0;
5501 var39
= "Error: file ";
5503 var41
= string__NativeString__to_s_with_length(var39
, var40
);
5510 var44
= " not found.";
5512 var46
= string__NativeString__to_s_with_length(var44
, var45
);
5516 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
5517 { /* var47 = array_instance Array[Object] */
5519 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
5520 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var38
;
5521 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var_filename
;
5522 ((struct instance_array__NativeArray
*)var49
)->values
[2] = (val
*) var43
;
5524 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
5528 var50
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
5531 toolcontext__ToolContext__error(var33
, var36
, var50
); /* Direct call toolcontext#ToolContext#error on <var33:ToolContext>*/
5539 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5540 var54
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5541 if (unlikely(var54
== NULL
)) {
5542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5543 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5547 RET_LABEL53
:(void)0;
5553 var57
= "load module ";
5555 var59
= string__NativeString__to_s_with_length(var57
, var58
);
5559 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
5560 { /* var60 = array_instance Array[Object] */
5562 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
5563 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var56
;
5564 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_filename
;
5566 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
5570 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
5574 toolcontext__ToolContext__info(var52
, var63
, var64
); /* Direct call toolcontext#ToolContext#info on <var52:ToolContext>*/
5576 var65
= NEW_file__IFStream(&type_file__IFStream
);
5578 file__IFStream__open(var65
, var_filename
); /* Direct call file#IFStream#open on <var65:IFStream>*/
5581 var66
= NEW_lexer_work__Lexer(&type_lexer_work__Lexer
);
5582 var67
= NEW_location__SourceFile(&type_location__SourceFile
);
5584 location__SourceFile__init(var67
, var_filename
, var_file
); /* Direct call location#SourceFile#init on <var67:SourceFile>*/
5587 lexer_work__Lexer__init(var66
, var67
); /* Direct call lexer_work#Lexer#init on <var66:Lexer>*/
5590 var68
= NEW_parser_work__Parser(&type_parser_work__Parser
);
5592 parser_work__Parser__init(var68
, var_lexer
); /* Direct call parser_work#Parser#init on <var68:Parser>*/
5596 var69
= parser_work__Parser__parse(var_parser
);
5600 file__IFStream__close(var_file
); /* Direct call file#IFStream#close on <var_file:IFStream>*/
5607 var74
= string__NativeString__to_s_with_length(var72
, var73
);
5612 var75
= file__String__basename(var_filename
, var71
);
5614 var_mod_name
= var75
;
5616 var76
= parser_nodes__Start__n_base(var_tree
);
5618 var_nmodule
= var76
;
5620 if (var_nmodule
== NULL
) {
5621 var78
= 1; /* is null */
5623 var78
= 0; /* arg is null but recv is not */
5626 { /* Inline kernel#Object#== (var_nmodule,var77) on <var_nmodule:nullable AModule> */
5627 var_other81
= var77
;
5629 { /* Inline kernel#Object#is_same_instance (var_nmodule,var_other81) on <var_nmodule:nullable AModule(AModule)> */
5630 var84
= var_nmodule
== var_other81
;
5633 RET_LABEL83
:(void)0;
5638 RET_LABEL80
:(void)0;
5644 var85
= parser_nodes__Start__n_eof(var_tree
);
5647 /* <var_neof:EOF> isa AError */
5648 cltype
= type_parser_nodes__AError
.color
;
5649 idtype
= type_parser_nodes__AError
.id
;
5650 if(cltype
>= var_neof
->type
->table_size
) {
5653 var86
= var_neof
->type
->type_table
[cltype
] == idtype
;
5655 if (unlikely(!var86
)) {
5656 PRINT_ERROR("Runtime error: %s", "Assert failed");
5657 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 552);
5661 { /* Inline lexer_work#AError#message (var_neof) on <var_neof:EOF(AError)> */
5662 var89
= var_neof
->attrs
[COLOR_lexer_work__AError___message
].val
; /* _message on <var_neof:EOF(AError)> */
5663 if (unlikely(var89
== NULL
)) {
5664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message");
5665 PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 55);
5669 RET_LABEL88
:(void)0;
5673 modelbuilder__ModelBuilder__error(self
, var_neof
, var87
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
5685 /* method modelbuilder#ModelBuilder#load_module_ast for (self: Object, String): nullable AModule */
5686 val
* VIRTUAL_modelbuilder__ModelBuilder__load_module_ast(val
* self
, val
* p0
) {
5687 val
* var
/* : nullable AModule */;
5688 val
* var1
/* : nullable AModule */;
5689 var1
= modelbuilder__ModelBuilder__load_module_ast(self
, p0
);
5694 /* method modelbuilder#ModelBuilder#load_module for (self: ModelBuilder, String): nullable AModule */
5695 val
* modelbuilder__ModelBuilder__load_module(val
* self
, val
* p0
) {
5696 val
* var
/* : nullable AModule */;
5697 val
* var_filename
/* var filename: String */;
5698 val
* var1
/* : nullable ModulePath */;
5699 val
* var_file
/* var file: nullable ModulePath */;
5700 val
* var2
/* : null */;
5701 short int var3
/* : Bool */;
5702 short int var4
/* : Bool */;
5703 val
* var_other
/* var other: nullable Object */;
5704 short int var6
/* : Bool */;
5705 short int var8
/* : Bool */;
5706 val
* var9
/* : null */;
5707 val
* var10
/* : nullable MModule */;
5708 val
* var12
/* : nullable MModule */;
5709 val
* var_mmodule
/* var mmodule: nullable MModule */;
5710 val
* var13
/* : null */;
5711 short int var14
/* : Bool */;
5712 short int var15
/* : Bool */;
5713 val
* var_other17
/* var other: nullable Object */;
5714 short int var18
/* : Bool */;
5715 short int var19
/* : Bool */;
5716 short int var20
/* : Bool */;
5717 val
* var21
/* : HashMap[MModule, AModule] */;
5718 val
* var23
/* : HashMap[MModule, AModule] */;
5719 val
* var24
/* : nullable Object */;
5720 val
* var25
/* : String */;
5721 val
* var27
/* : String */;
5722 val
* var28
/* : nullable AModule */;
5723 val
* var_nmodule
/* var nmodule: nullable AModule */;
5724 val
* var29
/* : null */;
5725 short int var30
/* : Bool */;
5726 short int var31
/* : Bool */;
5727 short int var33
/* : Bool */;
5728 short int var35
/* : Bool */;
5729 val
* var36
/* : null */;
5730 val
* var37
/* : MGroup */;
5731 val
* var39
/* : MGroup */;
5732 val
* var40
/* : String */;
5733 val
* var42
/* : String */;
5734 val
* var43
/* : nullable MModule */;
5735 val
* var44
/* : null */;
5736 short int var45
/* : Bool */;
5737 short int var46
/* : Bool */;
5738 short int var48
/* : Bool */;
5739 short int var50
/* : Bool */;
5740 val
* var51
/* : null */;
5743 var1
= modelbuilder__ModelBuilder__identify_file(self
, var_filename
);
5747 if (var_file
== NULL
) {
5748 var3
= 1; /* is null */
5750 var3
= 0; /* arg is null but recv is not */
5753 { /* Inline kernel#Object#== (var_file,var2) on <var_file:nullable ModulePath> */
5756 { /* Inline kernel#Object#is_same_instance (var_file,var_other) on <var_file:nullable ModulePath(ModulePath)> */
5757 var8
= var_file
== var_other
;
5776 { /* Inline modelbuilder#ModulePath#mmodule (var_file) on <var_file:nullable ModulePath(ModulePath)> */
5777 var12
= var_file
->attrs
[COLOR_modelbuilder__ModulePath___mmodule
].val
; /* _mmodule on <var_file:nullable ModulePath(ModulePath)> */
5779 RET_LABEL11
:(void)0;
5782 var_mmodule
= var10
;
5784 if (var_mmodule
== NULL
) {
5785 var14
= 0; /* is null */
5787 var14
= 1; /* arg is null and recv is not */
5790 { /* Inline kernel#Object#!= (var_mmodule,var13) on <var_mmodule:nullable MModule> */
5791 var_other17
= var13
;
5793 var19
= ((short int (*)(val
*, val
*))(var_mmodule
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mmodule
, var_other17
) /* == on <var_mmodule:nullable MModule(MModule)>*/;
5799 RET_LABEL16
:(void)0;
5805 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:ModelBuilder> */
5806 var23
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
5807 if (unlikely(var23
== NULL
)) {
5808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
5809 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
5813 RET_LABEL22
:(void)0;
5817 var24
= hash_collection__HashMap___91d_93d(var21
, var_mmodule
);
5824 { /* Inline modelbuilder#ModulePath#filepath (var_file) on <var_file:nullable ModulePath(ModulePath)> */
5825 var27
= var_file
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
; /* _filepath on <var_file:nullable ModulePath(ModulePath)> */
5826 if (unlikely(var27
== NULL
)) {
5827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath");
5828 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733);
5832 RET_LABEL26
:(void)0;
5836 var28
= modelbuilder__ModelBuilder__load_module_ast(self
, var25
);
5838 var_nmodule
= var28
;
5840 if (var_nmodule
== NULL
) {
5841 var30
= 1; /* is null */
5843 var30
= 0; /* arg is null but recv is not */
5846 { /* Inline kernel#Object#== (var_nmodule,var29) on <var_nmodule:nullable AModule> */
5849 { /* Inline kernel#Object#is_same_instance (var_nmodule,var_other) on <var_nmodule:nullable AModule(AModule)> */
5850 var35
= var_nmodule
== var_other
;
5853 RET_LABEL34
:(void)0;
5858 RET_LABEL32
:(void)0;
5869 { /* Inline modelbuilder#ModulePath#mgroup (var_file) on <var_file:nullable ModulePath(ModulePath)> */
5870 var39
= var_file
->attrs
[COLOR_modelbuilder__ModulePath___mgroup
].val
; /* _mgroup on <var_file:nullable ModulePath(ModulePath)> */
5871 if (unlikely(var39
== NULL
)) {
5872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup");
5873 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736);
5877 RET_LABEL38
:(void)0;
5881 { /* Inline modelbuilder#ModulePath#name (var_file) on <var_file:nullable ModulePath(ModulePath)> */
5882 var42
= var_file
->attrs
[COLOR_modelbuilder__ModulePath___name
].val
; /* _name on <var_file:nullable ModulePath(ModulePath)> */
5883 if (unlikely(var42
== NULL
)) {
5884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5885 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 729);
5889 RET_LABEL41
:(void)0;
5893 var43
= modelbuilder__ModelBuilder__build_a_mmodule(self
, var37
, var40
, var_nmodule
);
5895 var_mmodule
= var43
;
5897 if (var_mmodule
== NULL
) {
5898 var45
= 1; /* is null */
5900 var45
= 0; /* arg is null but recv is not */
5903 { /* Inline kernel#Object#== (var_mmodule,var44) on <var_mmodule:nullable MModule> */
5906 { /* Inline kernel#Object#is_same_instance (var_mmodule,var_other) on <var_mmodule:nullable MModule(MModule)> */
5907 var50
= var_mmodule
== var_other
;
5910 RET_LABEL49
:(void)0;
5915 RET_LABEL47
:(void)0;
5926 { /* Inline modelbuilder#ModulePath#mmodule= (var_file,var_mmodule) on <var_file:nullable ModulePath(ModulePath)> */
5927 var_file
->attrs
[COLOR_modelbuilder__ModulePath___mmodule
].val
= var_mmodule
; /* _mmodule on <var_file:nullable ModulePath(ModulePath)> */
5928 RET_LABEL52
:(void)0;
5932 modelbuilder__ModelBuilder__build_module_importation(self
, var_nmodule
); /* Direct call modelbuilder#ModelBuilder#build_module_importation on <self:ModelBuilder>*/
5939 /* method modelbuilder#ModelBuilder#load_module for (self: Object, String): nullable AModule */
5940 val
* VIRTUAL_modelbuilder__ModelBuilder__load_module(val
* self
, val
* p0
) {
5941 val
* var
/* : nullable AModule */;
5942 val
* var1
/* : nullable AModule */;
5943 var1
= modelbuilder__ModelBuilder__load_module(self
, p0
);
5948 /* method modelbuilder#ModelBuilder#build_a_mmodule for (self: ModelBuilder, nullable MGroup, String, AModule): nullable MModule */
5949 val
* modelbuilder__ModelBuilder__build_a_mmodule(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5950 val
* var
/* : nullable MModule */;
5951 val
* var_mgroup
/* var mgroup: nullable MGroup */;
5952 val
* var_mod_name
/* var mod_name: String */;
5953 val
* var_nmodule
/* var nmodule: AModule */;
5954 val
* var1
/* : nullable AModuledecl */;
5955 val
* var_decl
/* var decl: nullable AModuledecl */;
5956 val
* var2
/* : null */;
5957 short int var3
/* : Bool */;
5958 short int var4
/* : Bool */;
5959 val
* var_other
/* var other: nullable Object */;
5960 short int var6
/* : Bool */;
5961 short int var8
/* : Bool */;
5962 val
* var9
/* : AModuleName */;
5963 val
* var10
/* : TId */;
5964 val
* var11
/* : String */;
5965 val
* var_decl_name
/* var decl_name: String */;
5966 short int var12
/* : Bool */;
5967 short int var13
/* : Bool */;
5968 val
* var_other15
/* var other: nullable Object */;
5969 short int var16
/* : Bool */;
5970 short int var17
/* : Bool */;
5971 short int var18
/* : Bool */;
5972 val
* var19
/* : AModuleName */;
5973 static val
* varonce
;
5974 val
* var20
/* : String */;
5975 char* var21
/* : NativeString */;
5976 long var22
/* : Int */;
5977 val
* var23
/* : FlatString */;
5978 static val
* varonce24
;
5979 val
* var25
/* : String */;
5980 char* var26
/* : NativeString */;
5981 long var27
/* : Int */;
5982 val
* var28
/* : FlatString */;
5983 val
* var29
/* : Array[Object] */;
5984 long var30
/* : Int */;
5985 val
* var31
/* : NativeArray[Object] */;
5986 val
* var32
/* : String */;
5987 val
* var33
/* : MModule */;
5988 val
* var34
/* : Model */;
5989 val
* var36
/* : Model */;
5990 val
* var37
/* : Location */;
5991 val
* var_mmodule
/* var mmodule: MModule */;
5992 val
* var39
/* : Array[AModule] */;
5993 val
* var41
/* : Array[AModule] */;
5994 val
* var42
/* : HashMap[MModule, AModule] */;
5995 val
* var44
/* : HashMap[MModule, AModule] */;
5996 val
* var45
/* : null */;
5997 short int var46
/* : Bool */;
5998 short int var47
/* : Bool */;
5999 short int var49
/* : Bool */;
6000 short int var50
/* : Bool */;
6001 short int var51
/* : Bool */;
6002 val
* var52
/* : nullable ADoc */;
6003 val
* var_ndoc
/* var ndoc: nullable ADoc */;
6004 val
* var53
/* : null */;
6005 short int var54
/* : Bool */;
6006 short int var55
/* : Bool */;
6007 short int var57
/* : Bool */;
6008 short int var58
/* : Bool */;
6009 short int var59
/* : Bool */;
6010 val
* var60
/* : MDoc */;
6011 val
* var_mdoc
/* var mdoc: MDoc */;
6016 var1
= parser_nodes__AModule__n_moduledecl(var_nmodule
);
6020 if (var_decl
== NULL
) {
6021 var3
= 1; /* is null */
6023 var3
= 0; /* arg is null but recv is not */
6026 { /* Inline kernel#Object#== (var_decl,var2) on <var_decl:nullable AModuledecl> */
6029 { /* Inline kernel#Object#is_same_instance (var_decl,var_other) on <var_decl:nullable AModuledecl(AModuledecl)> */
6030 var8
= var_decl
== var_other
;
6045 var9
= parser_nodes__AModuledecl__n_name(var_decl
);
6048 var10
= parser_nodes__AModuleName__n_id(var9
);
6051 var11
= lexer_work__Token__text(var10
);
6053 var_decl_name
= var11
;
6055 { /* Inline kernel#Object#!= (var_decl_name,var_mod_name) on <var_decl_name:String> */
6056 var_other15
= var_mod_name
;
6058 var17
= ((short int (*)(val
*, val
*))(var_decl_name
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_decl_name
, var_other15
) /* == on <var_decl_name:String>*/;
6064 RET_LABEL14
:(void)0;
6070 var19
= parser_nodes__AModuledecl__n_name(var_decl
);
6075 var21
= "Error: module name missmatch; declared ";
6077 var23
= string__NativeString__to_s_with_length(var21
, var22
);
6084 var26
= " file named ";
6086 var28
= string__NativeString__to_s_with_length(var26
, var27
);
6090 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
6091 { /* var29 = array_instance Array[Object] */
6093 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
6094 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var20
;
6095 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_decl_name
;
6096 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
6097 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var_mod_name
;
6099 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
6103 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
6106 modelbuilder__ModelBuilder__error(self
, var19
, var32
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6111 var33
= NEW_mmodule__MModule(&type_mmodule__MModule
);
6113 { /* Inline modelbuilder#ModelBuilder#model (self) on <self:ModelBuilder> */
6114 var36
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
6115 if (unlikely(var36
== NULL
)) {
6116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
6117 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
6121 RET_LABEL35
:(void)0;
6125 var37
= parser_nodes__ANode__location(var_nmodule
);
6128 mmodule__MModule__init(var33
, var34
, var_mgroup
, var_mod_name
, var37
); /* Direct call mmodule#MModule#init on <var33:MModule>*/
6130 var_mmodule
= var33
;
6132 { /* Inline modelbuilder#AModule#mmodule= (var_nmodule,var_mmodule) on <var_nmodule:AModule> */
6133 var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
= var_mmodule
; /* _mmodule on <var_nmodule:AModule> */
6134 RET_LABEL38
:(void)0;
6138 { /* Inline modelbuilder#ModelBuilder#nmodules (self) on <self:ModelBuilder> */
6139 var41
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___nmodules
].val
; /* _nmodules on <self:ModelBuilder> */
6140 if (unlikely(var41
== NULL
)) {
6141 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nmodules");
6142 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 694);
6146 RET_LABEL40
:(void)0;
6150 array__Array__add(var39
, var_nmodule
); /* Direct call array#Array#add on <var39:Array[AModule]>*/
6153 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:ModelBuilder> */
6154 var44
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
6155 if (unlikely(var44
== NULL
)) {
6156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
6157 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
6161 RET_LABEL43
:(void)0;
6165 hash_collection__HashMap___91d_93d_61d(var42
, var_mmodule
, var_nmodule
); /* Direct call hash_collection#HashMap#[]= on <var42:HashMap[MModule, AModule]>*/
6168 if (var_decl
== NULL
) {
6169 var46
= 0; /* is null */
6171 var46
= 1; /* arg is null and recv is not */
6174 { /* Inline kernel#Object#!= (var_decl,var45) on <var_decl:nullable AModuledecl> */
6175 var_other15
= var45
;
6177 var50
= ((short int (*)(val
*, val
*))(var_decl
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_decl
, var_other15
) /* == on <var_decl:nullable AModuledecl(AModuledecl)>*/;
6183 RET_LABEL48
:(void)0;
6189 var52
= parser_nodes__AModuledecl__n_doc(var_decl
);
6193 if (var_ndoc
== NULL
) {
6194 var54
= 0; /* is null */
6196 var54
= 1; /* arg is null and recv is not */
6199 { /* Inline kernel#Object#!= (var_ndoc,var53) on <var_ndoc:nullable ADoc> */
6200 var_other15
= var53
;
6202 var58
= ((short int (*)(val
*, val
*))(var_ndoc
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ndoc
, var_other15
) /* == on <var_ndoc:nullable ADoc(ADoc)>*/;
6208 RET_LABEL56
:(void)0;
6214 var60
= modelbuilder__ADoc__to_mdoc(var_ndoc
);
6218 { /* Inline mdoc#MEntity#mdoc= (var_mmodule,var_mdoc) on <var_mmodule:MModule> */
6219 var_mmodule
->attrs
[COLOR_mdoc__MEntity___mdoc
].val
= var_mdoc
; /* _mdoc on <var_mmodule:MModule> */
6220 RET_LABEL61
:(void)0;
6224 { /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mmodule) on <var_mdoc:MDoc> */
6225 var_mdoc
->attrs
[COLOR_mdoc__MDoc___original_mentity
].val
= var_mmodule
; /* _original_mentity on <var_mdoc:MDoc> */
6226 RET_LABEL62
:(void)0;
6238 /* method modelbuilder#ModelBuilder#build_a_mmodule for (self: Object, nullable MGroup, String, AModule): nullable MModule */
6239 val
* VIRTUAL_modelbuilder__ModelBuilder__build_a_mmodule(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6240 val
* var
/* : nullable MModule */;
6241 val
* var1
/* : nullable MModule */;
6242 var1
= modelbuilder__ModelBuilder__build_a_mmodule(self
, p0
, p1
, p2
);
6247 /* method modelbuilder#ModelBuilder#build_module_importation for (self: ModelBuilder, AModule) */
6248 void modelbuilder__ModelBuilder__build_module_importation(val
* self
, val
* p0
) {
6249 val
* var_nmodule
/* var nmodule: AModule */;
6250 short int var
/* : Bool */;
6251 short int var2
/* : Bool */;
6252 short int var3
/* : Bool */;
6253 val
* var5
/* : nullable MModule */;
6254 val
* var7
/* : nullable MModule */;
6255 val
* var_mmodule
/* var mmodule: MModule */;
6256 short int var8
/* : Bool */;
6257 short int var_stdimport
/* var stdimport: Bool */;
6258 val
* var9
/* : Array[MModule] */;
6259 val
* var_imported_modules
/* var imported_modules: Array[MModule] */;
6260 val
* var10
/* : ANodes[AImport] */;
6261 val
* var12
/* : ANodes[AImport] */;
6262 val
* var13
/* : Iterator[ANode] */;
6263 short int var14
/* : Bool */;
6264 val
* var15
/* : nullable Object */;
6265 val
* var_aimport
/* var aimport: AImport */;
6266 short int var16
/* : Bool */;
6267 short int var17
/* : Bool */;
6270 short int var18
/* : Bool */;
6271 val
* var19
/* : nullable MGroup */;
6272 val
* var21
/* : nullable MGroup */;
6273 val
* var_mgroup
/* var mgroup: nullable MGroup */;
6274 val
* var22
/* : AModuleName */;
6275 val
* var23
/* : nullable TQuad */;
6276 val
* var24
/* : null */;
6277 short int var25
/* : Bool */;
6278 short int var26
/* : Bool */;
6279 val
* var_other
/* var other: nullable Object */;
6280 short int var28
/* : Bool */;
6281 short int var29
/* : Bool */;
6282 short int var30
/* : Bool */;
6283 val
* var31
/* : null */;
6284 val
* var32
/* : AModuleName */;
6285 val
* var33
/* : ANodes[TId] */;
6286 val
* var35
/* : ANodes[TId] */;
6287 val
* var36
/* : Iterator[ANode] */;
6288 short int var37
/* : Bool */;
6289 val
* var38
/* : nullable Object */;
6290 val
* var_grp
/* var grp: TId */;
6291 val
* var39
/* : String */;
6292 val
* var40
/* : nullable ModulePath */;
6293 val
* var_path
/* var path: nullable ModulePath */;
6294 val
* var41
/* : null */;
6295 short int var42
/* : Bool */;
6296 short int var43
/* : Bool */;
6297 val
* var_other45
/* var other: nullable Object */;
6298 short int var46
/* : Bool */;
6299 short int var48
/* : Bool */;
6300 val
* var49
/* : MGroup */;
6301 val
* var51
/* : MGroup */;
6302 val
* var53
/* : AModuleName */;
6303 val
* var54
/* : TId */;
6304 val
* var55
/* : String */;
6305 val
* var_mod_name
/* var mod_name: String */;
6306 val
* var56
/* : AModuleName */;
6307 val
* var57
/* : nullable MModule */;
6308 val
* var_sup
/* var sup: nullable MModule */;
6309 val
* var58
/* : null */;
6310 short int var59
/* : Bool */;
6311 short int var60
/* : Bool */;
6312 short int var62
/* : Bool */;
6313 short int var64
/* : Bool */;
6314 val
* var66
/* : AVisibility */;
6315 val
* var67
/* : MVisibility */;
6316 val
* var_mvisibility
/* var mvisibility: MVisibility */;
6317 val
* var68
/* : MVisibility */;
6318 short int var69
/* : Bool */;
6319 short int var70
/* : Bool */;
6320 short int var72
/* : Bool */;
6321 short int var74
/* : Bool */;
6322 val
* var75
/* : AVisibility */;
6323 static val
* varonce
;
6324 val
* var76
/* : String */;
6325 char* var77
/* : NativeString */;
6326 long var78
/* : Int */;
6327 val
* var79
/* : FlatString */;
6328 short int var80
/* : Bool */;
6329 short int var81
/* : Bool */;
6330 short int var83
/* : Bool */;
6331 short int var85
/* : Bool */;
6332 val
* var86
/* : AModuleName */;
6333 static val
* varonce87
;
6334 val
* var88
/* : String */;
6335 char* var89
/* : NativeString */;
6336 long var90
/* : Int */;
6337 val
* var91
/* : FlatString */;
6338 static val
* varonce92
;
6339 val
* var93
/* : String */;
6340 char* var94
/* : NativeString */;
6341 long var95
/* : Int */;
6342 val
* var96
/* : FlatString */;
6343 val
* var97
/* : Array[Object] */;
6344 long var98
/* : Int */;
6345 val
* var99
/* : NativeArray[Object] */;
6346 val
* var100
/* : String */;
6347 val
* var101
/* : POSetElement[MModule] */;
6348 val
* var103
/* : POSetElement[MModule] */;
6349 short int var104
/* : Bool */;
6350 val
* var105
/* : AModuleName */;
6351 static val
* varonce106
;
6352 val
* var107
/* : String */;
6353 char* var108
/* : NativeString */;
6354 long var109
/* : Int */;
6355 val
* var110
/* : FlatString */;
6356 static val
* varonce111
;
6357 val
* var112
/* : String */;
6358 char* var113
/* : NativeString */;
6359 long var114
/* : Int */;
6360 val
* var115
/* : FlatString */;
6361 static val
* varonce116
;
6362 val
* var117
/* : String */;
6363 char* var118
/* : NativeString */;
6364 long var119
/* : Int */;
6365 val
* var120
/* : FlatString */;
6366 val
* var121
/* : Array[Object] */;
6367 long var122
/* : Int */;
6368 val
* var123
/* : NativeArray[Object] */;
6369 val
* var124
/* : String */;
6370 static val
* varonce125
;
6371 val
* var126
/* : String */;
6372 char* var127
/* : NativeString */;
6373 long var128
/* : Int */;
6374 val
* var129
/* : FlatString */;
6375 val
* var_mod_name130
/* var mod_name: String */;
6376 val
* var131
/* : null */;
6377 val
* var132
/* : nullable MModule */;
6378 val
* var_sup133
/* var sup: nullable MModule */;
6379 val
* var134
/* : null */;
6380 short int var135
/* : Bool */;
6381 short int var136
/* : Bool */;
6382 short int var138
/* : Bool */;
6383 short int var139
/* : Bool */;
6384 short int var140
/* : Bool */;
6385 val
* var141
/* : MVisibility */;
6386 val
* var142
/* : ToolContext */;
6387 val
* var144
/* : ToolContext */;
6388 static val
* varonce145
;
6389 val
* var146
/* : String */;
6390 char* var147
/* : NativeString */;
6391 long var148
/* : Int */;
6392 val
* var149
/* : FlatString */;
6393 static val
* varonce150
;
6394 val
* var151
/* : String */;
6395 char* var152
/* : NativeString */;
6396 long var153
/* : Int */;
6397 val
* var154
/* : FlatString */;
6398 val
* var155
/* : String */;
6399 val
* var156
/* : Array[Object] */;
6400 long var157
/* : Int */;
6401 val
* var158
/* : NativeArray[Object] */;
6402 val
* var159
/* : String */;
6403 long var160
/* : Int */;
6406 { /* Inline modelbuilder#AModule#is_importation_done (var_nmodule) on <var_nmodule:AModule> */
6407 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___is_importation_done
].s
; /* _is_importation_done on <var_nmodule:AModule> */
6418 { /* Inline modelbuilder#AModule#is_importation_done= (var_nmodule,var3) on <var_nmodule:AModule> */
6419 var_nmodule
->attrs
[COLOR_modelbuilder__AModule___is_importation_done
].s
= var3
; /* _is_importation_done on <var_nmodule:AModule> */
6424 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
6425 var7
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
6430 if (unlikely(var5
== NULL
)) {
6431 PRINT_ERROR("Runtime error: %s", "Cast failed");
6432 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 648);
6437 var_stdimport
= var8
;
6438 var9
= NEW_array__Array(&type_array__Arraymmodule__MModule
);
6440 array__Array__init(var9
); /* Direct call array#Array#init on <var9:Array[MModule]>*/
6442 var_imported_modules
= var9
;
6444 { /* Inline parser_nodes#AModule#n_imports (var_nmodule) on <var_nmodule:AModule> */
6445 var12
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_imports
].val
; /* _n_imports on <var_nmodule:AModule> */
6446 if (unlikely(var12
== NULL
)) {
6447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports");
6448 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 697);
6452 RET_LABEL11
:(void)0;
6456 var13
= parser_nodes__ANodes__iterator(var10
);
6460 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[ANode]>*/;
6464 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[ANode]>*/;
6466 var_aimport
= var15
;
6468 var_stdimport
= var16
;
6469 /* <var_aimport:AImport> isa AStdImport */
6470 cltype
= type_parser_nodes__AStdImport
.color
;
6471 idtype
= type_parser_nodes__AStdImport
.id
;
6472 if(cltype
>= var_aimport
->type
->table_size
) {
6475 var17
= var_aimport
->type
->type_table
[cltype
] == idtype
;
6479 goto CONTINUE_label
;
6483 { /* Inline mmodule#MModule#mgroup (var_mmodule) on <var_mmodule:MModule> */
6484 var21
= var_mmodule
->attrs
[COLOR_mmodule__MModule___mgroup
].val
; /* _mgroup on <var_mmodule:MModule> */
6486 RET_LABEL20
:(void)0;
6491 var22
= parser_nodes__AStdImport__n_name(var_aimport
);
6494 var23
= parser_nodes__AModuleName__n_quad(var22
);
6497 if (var23
== NULL
) {
6498 var25
= 0; /* is null */
6500 var25
= 1; /* arg is null and recv is not */
6503 { /* Inline kernel#Object#!= (var23,var24) on <var23:nullable TQuad> */
6506 var29
= ((short int (*)(val
*, val
*))(var23
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var23
, var_other
) /* == on <var23:nullable TQuad(TQuad)>*/;
6512 RET_LABEL27
:(void)0;
6522 var32
= parser_nodes__AStdImport__n_name(var_aimport
);
6525 { /* Inline parser_nodes#AModuleName#n_path (var32) on <var32:AModuleName> */
6526 var35
= var32
->attrs
[COLOR_parser_nodes__AModuleName___n_path
].val
; /* _n_path on <var32:AModuleName> */
6527 if (unlikely(var35
== NULL
)) {
6528 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_path");
6529 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2349);
6533 RET_LABEL34
:(void)0;
6537 var36
= parser_nodes__ANodes__iterator(var33
);
6541 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var36
) /* is_ok on <var36:Iterator[ANode]>*/;
6545 var38
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var36
) /* item on <var36:Iterator[ANode]>*/;
6549 var39
= lexer_work__Token__text(var_grp
);
6552 var40
= modelbuilder__ModelBuilder__search_mmodule_by_name(self
, var_grp
, var_mgroup
, var39
);
6556 if (var_path
== NULL
) {
6557 var42
= 1; /* is null */
6559 var42
= 0; /* arg is null but recv is not */
6562 { /* Inline kernel#Object#== (var_path,var41) on <var_path:nullable ModulePath> */
6563 var_other45
= var41
;
6565 { /* Inline kernel#Object#is_same_instance (var_path,var_other45) on <var_path:nullable ModulePath(ModulePath)> */
6566 var48
= var_path
== var_other45
;
6569 RET_LABEL47
:(void)0;
6574 RET_LABEL44
:(void)0;
6583 { /* Inline modelbuilder#ModulePath#mgroup (var_path) on <var_path:nullable ModulePath(ModulePath)> */
6584 var51
= var_path
->attrs
[COLOR_modelbuilder__ModulePath___mgroup
].val
; /* _mgroup on <var_path:nullable ModulePath(ModulePath)> */
6585 if (unlikely(var51
== NULL
)) {
6586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup");
6587 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736);
6591 RET_LABEL50
:(void)0;
6595 CONTINUE_label52
: (void)0;
6597 ((void (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var36
) /* next on <var36:Iterator[ANode]>*/;
6600 BREAK_label52
: (void)0;
6602 var53
= parser_nodes__AStdImport__n_name(var_aimport
);
6605 var54
= parser_nodes__AModuleName__n_id(var53
);
6608 var55
= lexer_work__Token__text(var54
);
6610 var_mod_name
= var55
;
6612 var56
= parser_nodes__AStdImport__n_name(var_aimport
);
6615 var57
= modelbuilder__ModelBuilder__get_mmodule_by_name(self
, var56
, var_mgroup
, var_mod_name
);
6619 if (var_sup
== NULL
) {
6620 var59
= 1; /* is null */
6622 var59
= 0; /* arg is null but recv is not */
6625 { /* Inline kernel#Object#== (var_sup,var58) on <var_sup:nullable MModule> */
6626 var_other45
= var58
;
6628 { /* Inline kernel#Object#is_same_instance (var_sup,var_other45) on <var_sup:nullable MModule(MModule)> */
6629 var64
= var_sup
== var_other45
;
6632 RET_LABEL63
:(void)0;
6637 RET_LABEL61
:(void)0;
6642 goto CONTINUE_label
;
6646 { /* Inline modelbuilder#AStdImport#mmodule= (var_aimport,var_sup) on <var_aimport:AImport(AStdImport)> */
6647 var_aimport
->attrs
[COLOR_modelbuilder__AStdImport___mmodule
].val
= var_sup
; /* _mmodule on <var_aimport:AImport(AStdImport)> */
6648 RET_LABEL65
:(void)0;
6652 array__Array__add(var_imported_modules
, var_sup
); /* Direct call array#Array#add on <var_imported_modules:Array[MModule]>*/
6655 var66
= parser_nodes__AStdImport__n_visibility(var_aimport
);
6658 var67
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_modelbuilder__AVisibility__mvisibility
]))(var66
) /* mvisibility on <var66:AVisibility>*/;
6660 var_mvisibility
= var67
;
6662 var68
= model_base__Object__protected_visibility(self
);
6665 { /* Inline kernel#Object#== (var_mvisibility,var68) on <var_mvisibility:MVisibility> */
6666 var_other45
= var68
;
6668 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other45) on <var_mvisibility:MVisibility> */
6669 var74
= var_mvisibility
== var_other45
;
6672 RET_LABEL73
:(void)0;
6677 RET_LABEL71
:(void)0;
6683 var75
= parser_nodes__AStdImport__n_visibility(var_aimport
);
6688 var77
= "Error: only properties can be protected.";
6690 var79
= string__NativeString__to_s_with_length(var77
, var78
);
6695 modelbuilder__ModelBuilder__error(self
, var75
, var76
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6701 { /* Inline kernel#Object#== (var_sup,var_mmodule) on <var_sup:nullable MModule(MModule)> */
6702 var_other45
= var_mmodule
;
6704 { /* Inline kernel#Object#is_same_instance (var_sup,var_other45) on <var_sup:nullable MModule(MModule)> */
6705 var85
= var_sup
== var_other45
;
6708 RET_LABEL84
:(void)0;
6713 RET_LABEL82
:(void)0;
6719 var86
= parser_nodes__AStdImport__n_name(var_aimport
);
6724 var89
= "Error: Dependency loop in module ";
6726 var91
= string__NativeString__to_s_with_length(var89
, var90
);
6735 var96
= string__NativeString__to_s_with_length(var94
, var95
);
6739 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
6740 { /* var97 = array_instance Array[Object] */
6742 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
6743 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var88
;
6744 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var_mmodule
;
6745 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
6747 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
6751 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
6754 modelbuilder__ModelBuilder__error(self
, var86
, var100
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6759 { /* Inline mmodule#MModule#in_importation (var_sup) on <var_sup:nullable MModule(MModule)> */
6760 var103
= var_sup
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_sup:nullable MModule(MModule)> */
6761 if (unlikely(var103
== NULL
)) {
6762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
6763 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
6767 RET_LABEL102
:(void)0;
6771 var104
= poset__POSetElement___60d(var101
, var_mmodule
);
6775 var105
= parser_nodes__AStdImport__n_name(var_aimport
);
6778 var107
= varonce106
;
6780 var108
= "Error: Dependency loop between modules ";
6782 var110
= string__NativeString__to_s_with_length(var108
, var109
);
6784 varonce106
= var107
;
6787 var112
= varonce111
;
6791 var115
= string__NativeString__to_s_with_length(var113
, var114
);
6793 varonce111
= var112
;
6796 var117
= varonce116
;
6800 var120
= string__NativeString__to_s_with_length(var118
, var119
);
6802 varonce116
= var117
;
6804 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
6805 { /* var121 = array_instance Array[Object] */
6807 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
6808 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var107
;
6809 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var_mmodule
;
6810 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var112
;
6811 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var_sup
;
6812 ((struct instance_array__NativeArray
*)var123
)->values
[4] = (val
*) var117
;
6814 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
6818 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
6821 modelbuilder__ModelBuilder__error(self
, var105
, var124
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6827 mmodule__MModule__set_visibility_for(var_mmodule
, var_sup
, var_mvisibility
); /* Direct call mmodule#MModule#set_visibility_for on <var_mmodule:MModule>*/
6829 CONTINUE_label
: (void)0;
6831 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[ANode]>*/;
6834 BREAK_label
: (void)0;
6837 var126
= varonce125
;
6839 var127
= "standard";
6841 var129
= string__NativeString__to_s_with_length(var127
, var128
);
6843 varonce125
= var126
;
6845 var_mod_name130
= var126
;
6848 var132
= modelbuilder__ModelBuilder__get_mmodule_by_name(self
, var_nmodule
, var131
, var_mod_name130
);
6850 var_sup133
= var132
;
6852 if (var_sup133
== NULL
) {
6853 var135
= 0; /* is null */
6855 var135
= 1; /* arg is null and recv is not */
6858 { /* Inline kernel#Object#!= (var_sup133,var134) on <var_sup133:nullable MModule> */
6861 var139
= ((short int (*)(val
*, val
*))(var_sup133
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sup133
, var_other
) /* == on <var_sup133:nullable MModule(MModule)>*/;
6867 RET_LABEL137
:(void)0;
6873 array__Array__add(var_imported_modules
, var_sup133
); /* Direct call array#Array#add on <var_imported_modules:Array[MModule]>*/
6876 var141
= model_base__Object__public_visibility(self
);
6879 mmodule__MModule__set_visibility_for(var_mmodule
, var_sup133
, var141
); /* Direct call mmodule#MModule#set_visibility_for on <var_mmodule:MModule>*/
6886 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
6887 var144
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
6888 if (unlikely(var144
== NULL
)) {
6889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6890 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
6894 RET_LABEL143
:(void)0;
6898 var146
= varonce145
;
6900 var147
= " imports ";
6902 var149
= string__NativeString__to_s_with_length(var147
, var148
);
6904 varonce145
= var146
;
6907 var151
= varonce150
;
6911 var154
= string__NativeString__to_s_with_length(var152
, var153
);
6913 varonce150
= var151
;
6916 var155
= string__Collection__join(var_imported_modules
, var151
);
6918 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
6919 { /* var156 = array_instance Array[Object] */
6921 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
6922 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var_mmodule
;
6923 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var146
;
6924 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var155
;
6926 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
6930 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
6934 toolcontext__ToolContext__info(var142
, var159
, var160
); /* Direct call toolcontext#ToolContext#info on <var142:ToolContext>*/
6937 mmodule__MModule__set_imported_mmodules(var_mmodule
, var_imported_modules
); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mmodule:MModule>*/
6941 /* method modelbuilder#ModelBuilder#build_module_importation for (self: Object, AModule) */
6942 void VIRTUAL_modelbuilder__ModelBuilder__build_module_importation(val
* self
, val
* p0
) {
6943 modelbuilder__ModelBuilder__build_module_importation(self
, p0
); /* Direct call modelbuilder#ModelBuilder#build_module_importation on <self:Object(ModelBuilder)>*/
6946 /* method modelbuilder#ModelBuilder#nmodules for (self: ModelBuilder): Array[AModule] */
6947 val
* modelbuilder__ModelBuilder__nmodules(val
* self
) {
6948 val
* var
/* : Array[AModule] */;
6949 val
* var1
/* : Array[AModule] */;
6950 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___nmodules
].val
; /* _nmodules on <self:ModelBuilder> */
6951 if (unlikely(var1
== NULL
)) {
6952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nmodules");
6953 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 694);
6960 /* method modelbuilder#ModelBuilder#nmodules for (self: Object): Array[AModule] */
6961 val
* VIRTUAL_modelbuilder__ModelBuilder__nmodules(val
* self
) {
6962 val
* var
/* : Array[AModule] */;
6963 val
* var1
/* : Array[AModule] */;
6964 val
* var3
/* : Array[AModule] */;
6965 { /* Inline modelbuilder#ModelBuilder#nmodules (self) on <self:Object(ModelBuilder)> */
6966 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___nmodules
].val
; /* _nmodules on <self:Object(ModelBuilder)> */
6967 if (unlikely(var3
== NULL
)) {
6968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nmodules");
6969 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 694);
6979 /* method modelbuilder#ModelBuilder#mmodule2nmodule for (self: ModelBuilder): HashMap[MModule, AModule] */
6980 val
* modelbuilder__ModelBuilder__mmodule2nmodule(val
* self
) {
6981 val
* var
/* : HashMap[MModule, AModule] */;
6982 val
* var1
/* : HashMap[MModule, AModule] */;
6983 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
6984 if (unlikely(var1
== NULL
)) {
6985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
6986 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
6993 /* method modelbuilder#ModelBuilder#mmodule2nmodule for (self: Object): HashMap[MModule, AModule] */
6994 val
* VIRTUAL_modelbuilder__ModelBuilder__mmodule2nmodule(val
* self
) {
6995 val
* var
/* : HashMap[MModule, AModule] */;
6996 val
* var1
/* : HashMap[MModule, AModule] */;
6997 val
* var3
/* : HashMap[MModule, AModule] */;
6998 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:Object(ModelBuilder)> */
6999 var3
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:Object(ModelBuilder)> */
7000 if (unlikely(var3
== NULL
)) {
7001 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
7002 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
7012 /* method modelbuilder#ModelBuilder#error for (self: ModelBuilder, ANode, String) */
7013 void modelbuilder__ModelBuilder__error(val
* self
, val
* p0
, val
* p1
) {
7014 val
* var_n
/* var n: ANode */;
7015 val
* var_text
/* var text: String */;
7016 val
* var
/* : ToolContext */;
7017 val
* var2
/* : ToolContext */;
7018 val
* var3
/* : Location */;
7022 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
7023 var2
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
7024 if (unlikely(var2
== NULL
)) {
7025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7026 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
7034 var3
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_n
) /* hot_location on <var_n:ANode>*/;
7037 toolcontext__ToolContext__error(var
, var3
, var_text
); /* Direct call toolcontext#ToolContext#error on <var:ToolContext>*/
7041 /* method modelbuilder#ModelBuilder#error for (self: Object, ANode, String) */
7042 void VIRTUAL_modelbuilder__ModelBuilder__error(val
* self
, val
* p0
, val
* p1
) {
7043 modelbuilder__ModelBuilder__error(self
, p0
, p1
); /* Direct call modelbuilder#ModelBuilder#error on <self:Object(ModelBuilder)>*/
7046 /* method modelbuilder#ModelBuilder#warning for (self: ModelBuilder, ANode, String) */
7047 void modelbuilder__ModelBuilder__warning(val
* self
, val
* p0
, val
* p1
) {
7048 val
* var_n
/* var n: ANode */;
7049 val
* var_text
/* var text: String */;
7050 val
* var
/* : ToolContext */;
7051 val
* var2
/* : ToolContext */;
7052 val
* var3
/* : Location */;
7056 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
7057 var2
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
7058 if (unlikely(var2
== NULL
)) {
7059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7060 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
7068 var3
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_n
) /* hot_location on <var_n:ANode>*/;
7071 toolcontext__ToolContext__warning(var
, var3
, var_text
); /* Direct call toolcontext#ToolContext#warning on <var:ToolContext>*/
7075 /* method modelbuilder#ModelBuilder#warning for (self: Object, ANode, String) */
7076 void VIRTUAL_modelbuilder__ModelBuilder__warning(val
* self
, val
* p0
, val
* p1
) {
7077 modelbuilder__ModelBuilder__warning(self
, p0
, p1
); /* Direct call modelbuilder#ModelBuilder#warning on <self:Object(ModelBuilder)>*/
7080 /* method modelbuilder#ModelBuilder#force_get_primitive_method for (self: ModelBuilder, ANode, String, MClass, MModule): MMethod */
7081 val
* modelbuilder__ModelBuilder__force_get_primitive_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
7082 val
* var
/* : MMethod */;
7083 val
* var_n
/* var n: ANode */;
7084 val
* var_name
/* var name: String */;
7085 val
* var_recv
/* var recv: MClass */;
7086 val
* var_mmodule
/* var mmodule: MModule */;
7087 val
* var1
/* : nullable MMethod */;
7088 val
* var_res
/* var res: nullable MMethod */;
7089 val
* var2
/* : null */;
7090 short int var3
/* : Bool */;
7091 short int var4
/* : Bool */;
7092 val
* var_other
/* var other: nullable Object */;
7093 short int var6
/* : Bool */;
7094 short int var8
/* : Bool */;
7095 val
* var9
/* : ToolContext */;
7096 val
* var11
/* : ToolContext */;
7097 val
* var12
/* : Location */;
7098 static val
* varonce
;
7099 val
* var13
/* : String */;
7100 char* var14
/* : NativeString */;
7101 long var15
/* : Int */;
7102 val
* var16
/* : FlatString */;
7103 static val
* varonce17
;
7104 val
* var18
/* : String */;
7105 char* var19
/* : NativeString */;
7106 long var20
/* : Int */;
7107 val
* var21
/* : FlatString */;
7108 static val
* varonce22
;
7109 val
* var23
/* : String */;
7110 char* var24
/* : NativeString */;
7111 long var25
/* : Int */;
7112 val
* var26
/* : FlatString */;
7113 val
* var27
/* : Array[Object] */;
7114 long var28
/* : Int */;
7115 val
* var29
/* : NativeArray[Object] */;
7116 val
* var30
/* : String */;
7122 var1
= model__MModule__try_get_primitive_method(var_mmodule
, var_name
, var_recv
);
7126 if (var_res
== NULL
) {
7127 var3
= 1; /* is null */
7129 var3
= 0; /* arg is null but recv is not */
7132 { /* Inline kernel#Object#== (var_res,var2) on <var_res:nullable MMethod> */
7135 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MMethod(MMethod)> */
7136 var8
= var_res
== var_other
;
7150 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
7151 var11
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
7152 if (unlikely(var11
== NULL
)) {
7153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7154 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
7158 RET_LABEL10
:(void)0;
7162 var12
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_n
) /* hot_location on <var_n:ANode>*/;
7167 var14
= "Fatal Error: ";
7169 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7176 var19
= " must have a property named ";
7178 var21
= string__NativeString__to_s_with_length(var19
, var20
);
7187 var26
= string__NativeString__to_s_with_length(var24
, var25
);
7191 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
7192 { /* var27 = array_instance Array[Object] */
7194 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
7195 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var13
;
7196 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var_recv
;
7197 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var18
;
7198 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var_name
;
7199 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
7201 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
7205 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
7208 toolcontext__ToolContext__fatal_error(var9
, var12
, var30
); /* Direct call toolcontext#ToolContext#fatal_error on <var9:ToolContext>*/
7210 PRINT_ERROR("Runtime error: %s", "Aborted");
7211 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 721);
7220 /* method modelbuilder#ModelBuilder#force_get_primitive_method for (self: Object, ANode, String, MClass, MModule): MMethod */
7221 val
* VIRTUAL_modelbuilder__ModelBuilder__force_get_primitive_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
7222 val
* var
/* : MMethod */;
7223 val
* var1
/* : MMethod */;
7224 var1
= modelbuilder__ModelBuilder__force_get_primitive_method(self
, p0
, p1
, p2
, p3
);
7229 /* method modelbuilder#ModulePath#name for (self: ModulePath): String */
7230 val
* modelbuilder__ModulePath__name(val
* self
) {
7231 val
* var
/* : String */;
7232 val
* var1
/* : String */;
7233 var1
= self
->attrs
[COLOR_modelbuilder__ModulePath___name
].val
; /* _name on <self:ModulePath> */
7234 if (unlikely(var1
== NULL
)) {
7235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7236 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 729);
7243 /* method modelbuilder#ModulePath#name for (self: Object): String */
7244 val
* VIRTUAL_modelbuilder__ModulePath__name(val
* self
) {
7245 val
* var
/* : String */;
7246 val
* var1
/* : String */;
7247 val
* var3
/* : String */;
7248 { /* Inline modelbuilder#ModulePath#name (self) on <self:Object(ModulePath)> */
7249 var3
= self
->attrs
[COLOR_modelbuilder__ModulePath___name
].val
; /* _name on <self:Object(ModulePath)> */
7250 if (unlikely(var3
== NULL
)) {
7251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7252 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 729);
7262 /* method modelbuilder#ModulePath#filepath for (self: ModulePath): String */
7263 val
* modelbuilder__ModulePath__filepath(val
* self
) {
7264 val
* var
/* : String */;
7265 val
* var1
/* : String */;
7266 var1
= self
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
; /* _filepath on <self:ModulePath> */
7267 if (unlikely(var1
== NULL
)) {
7268 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath");
7269 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733);
7276 /* method modelbuilder#ModulePath#filepath for (self: Object): String */
7277 val
* VIRTUAL_modelbuilder__ModulePath__filepath(val
* self
) {
7278 val
* var
/* : String */;
7279 val
* var1
/* : String */;
7280 val
* var3
/* : String */;
7281 { /* Inline modelbuilder#ModulePath#filepath (self) on <self:Object(ModulePath)> */
7282 var3
= self
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
; /* _filepath on <self:Object(ModulePath)> */
7283 if (unlikely(var3
== NULL
)) {
7284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath");
7285 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733);
7295 /* method modelbuilder#ModulePath#mgroup for (self: ModulePath): MGroup */
7296 val
* modelbuilder__ModulePath__mgroup(val
* self
) {
7297 val
* var
/* : MGroup */;
7298 val
* var1
/* : MGroup */;
7299 var1
= self
->attrs
[COLOR_modelbuilder__ModulePath___mgroup
].val
; /* _mgroup on <self:ModulePath> */
7300 if (unlikely(var1
== NULL
)) {
7301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup");
7302 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736);
7309 /* method modelbuilder#ModulePath#mgroup for (self: Object): MGroup */
7310 val
* VIRTUAL_modelbuilder__ModulePath__mgroup(val
* self
) {
7311 val
* var
/* : MGroup */;
7312 val
* var1
/* : MGroup */;
7313 val
* var3
/* : MGroup */;
7314 { /* Inline modelbuilder#ModulePath#mgroup (self) on <self:Object(ModulePath)> */
7315 var3
= self
->attrs
[COLOR_modelbuilder__ModulePath___mgroup
].val
; /* _mgroup on <self:Object(ModulePath)> */
7316 if (unlikely(var3
== NULL
)) {
7317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup");
7318 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736);
7328 /* method modelbuilder#ModulePath#mmodule for (self: ModulePath): nullable MModule */
7329 val
* modelbuilder__ModulePath__mmodule(val
* self
) {
7330 val
* var
/* : nullable MModule */;
7331 val
* var1
/* : nullable MModule */;
7332 var1
= self
->attrs
[COLOR_modelbuilder__ModulePath___mmodule
].val
; /* _mmodule on <self:ModulePath> */
7337 /* method modelbuilder#ModulePath#mmodule for (self: Object): nullable MModule */
7338 val
* VIRTUAL_modelbuilder__ModulePath__mmodule(val
* self
) {
7339 val
* var
/* : nullable MModule */;
7340 val
* var1
/* : nullable MModule */;
7341 val
* var3
/* : nullable MModule */;
7342 { /* Inline modelbuilder#ModulePath#mmodule (self) on <self:Object(ModulePath)> */
7343 var3
= self
->attrs
[COLOR_modelbuilder__ModulePath___mmodule
].val
; /* _mmodule on <self:Object(ModulePath)> */
7351 /* method modelbuilder#ModulePath#mmodule= for (self: ModulePath, nullable MModule) */
7352 void modelbuilder__ModulePath__mmodule_61d(val
* self
, val
* p0
) {
7353 self
->attrs
[COLOR_modelbuilder__ModulePath___mmodule
].val
= p0
; /* _mmodule on <self:ModulePath> */
7356 /* method modelbuilder#ModulePath#mmodule= for (self: Object, nullable MModule) */
7357 void VIRTUAL_modelbuilder__ModulePath__mmodule_61d(val
* self
, val
* p0
) {
7358 { /* Inline modelbuilder#ModulePath#mmodule= (self,p0) on <self:Object(ModulePath)> */
7359 self
->attrs
[COLOR_modelbuilder__ModulePath___mmodule
].val
= p0
; /* _mmodule on <self:Object(ModulePath)> */
7364 /* method modelbuilder#ModulePath#to_s for (self: ModulePath): String */
7365 val
* modelbuilder__ModulePath__to_s(val
* self
) {
7366 val
* var
/* : String */;
7367 val
* var1
/* : String */;
7368 val
* var3
/* : String */;
7370 { /* Inline modelbuilder#ModulePath#filepath (self) on <self:ModulePath> */
7371 var3
= self
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
; /* _filepath on <self:ModulePath> */
7372 if (unlikely(var3
== NULL
)) {
7373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath");
7374 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733);
7386 /* method modelbuilder#ModulePath#to_s for (self: Object): String */
7387 val
* VIRTUAL_modelbuilder__ModulePath__to_s(val
* self
) {
7388 val
* var
/* : String */;
7389 val
* var1
/* : String */;
7390 var1
= modelbuilder__ModulePath__to_s(self
);
7395 /* method modelbuilder#ModulePath#init for (self: ModulePath, String, String, MGroup) */
7396 void modelbuilder__ModulePath__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7397 self
->attrs
[COLOR_modelbuilder__ModulePath___name
].val
= p0
; /* _name on <self:ModulePath> */
7398 self
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
= p1
; /* _filepath on <self:ModulePath> */
7399 self
->attrs
[COLOR_modelbuilder__ModulePath___mgroup
].val
= p2
; /* _mgroup on <self:ModulePath> */
7402 /* method modelbuilder#ModulePath#init for (self: Object, String, String, MGroup) */
7403 void VIRTUAL_modelbuilder__ModulePath__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7404 { /* Inline modelbuilder#ModulePath#init (self,p0,p1,p2) on <self:Object(ModulePath)> */
7405 self
->attrs
[COLOR_modelbuilder__ModulePath___name
].val
= p0
; /* _name on <self:Object(ModulePath)> */
7406 self
->attrs
[COLOR_modelbuilder__ModulePath___filepath
].val
= p1
; /* _filepath on <self:Object(ModulePath)> */
7407 self
->attrs
[COLOR_modelbuilder__ModulePath___mgroup
].val
= p2
; /* _mgroup on <self:Object(ModulePath)> */
7412 /* method modelbuilder#MGroup#module_paths for (self: MGroup): Array[ModulePath] */
7413 val
* modelbuilder__MGroup__module_paths(val
* self
) {
7414 val
* var
/* : Array[ModulePath] */;
7415 val
* var1
/* : Array[ModulePath] */;
7416 var1
= self
->attrs
[COLOR_modelbuilder__MGroup___module_paths
].val
; /* _module_paths on <self:MGroup> */
7417 if (unlikely(var1
== NULL
)) {
7418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _module_paths");
7419 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 746);
7426 /* method modelbuilder#MGroup#module_paths for (self: Object): Array[ModulePath] */
7427 val
* VIRTUAL_modelbuilder__MGroup__module_paths(val
* self
) {
7428 val
* var
/* : Array[ModulePath] */;
7429 val
* var1
/* : Array[ModulePath] */;
7430 val
* var3
/* : Array[ModulePath] */;
7431 { /* Inline modelbuilder#MGroup#module_paths (self) on <self:Object(MGroup)> */
7432 var3
= self
->attrs
[COLOR_modelbuilder__MGroup___module_paths
].val
; /* _module_paths on <self:Object(MGroup)> */
7433 if (unlikely(var3
== NULL
)) {
7434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _module_paths");
7435 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 746);
7445 /* method modelbuilder#AStdImport#mmodule= for (self: AStdImport, nullable MModule) */
7446 void modelbuilder__AStdImport__mmodule_61d(val
* self
, val
* p0
) {
7447 self
->attrs
[COLOR_modelbuilder__AStdImport___mmodule
].val
= p0
; /* _mmodule on <self:AStdImport> */
7450 /* method modelbuilder#AStdImport#mmodule= for (self: Object, nullable MModule) */
7451 void VIRTUAL_modelbuilder__AStdImport__mmodule_61d(val
* self
, val
* p0
) {
7452 { /* Inline modelbuilder#AStdImport#mmodule= (self,p0) on <self:Object(AStdImport)> */
7453 self
->attrs
[COLOR_modelbuilder__AStdImport___mmodule
].val
= p0
; /* _mmodule on <self:Object(AStdImport)> */
7458 /* method modelbuilder#AModule#mmodule for (self: AModule): nullable MModule */
7459 val
* modelbuilder__AModule__mmodule(val
* self
) {
7460 val
* var
/* : nullable MModule */;
7461 val
* var1
/* : nullable MModule */;
7462 var1
= self
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <self:AModule> */
7467 /* method modelbuilder#AModule#mmodule for (self: Object): nullable MModule */
7468 val
* VIRTUAL_modelbuilder__AModule__mmodule(val
* self
) {
7469 val
* var
/* : nullable MModule */;
7470 val
* var1
/* : nullable MModule */;
7471 val
* var3
/* : nullable MModule */;
7472 { /* Inline modelbuilder#AModule#mmodule (self) on <self:Object(AModule)> */
7473 var3
= self
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <self:Object(AModule)> */
7481 /* method modelbuilder#AModule#mmodule= for (self: AModule, nullable MModule) */
7482 void modelbuilder__AModule__mmodule_61d(val
* self
, val
* p0
) {
7483 self
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
= p0
; /* _mmodule on <self:AModule> */
7486 /* method modelbuilder#AModule#mmodule= for (self: Object, nullable MModule) */
7487 void VIRTUAL_modelbuilder__AModule__mmodule_61d(val
* self
, val
* p0
) {
7488 { /* Inline modelbuilder#AModule#mmodule= (self,p0) on <self:Object(AModule)> */
7489 self
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
= p0
; /* _mmodule on <self:Object(AModule)> */
7494 /* method modelbuilder#AModule#is_importation_done for (self: AModule): Bool */
7495 short int modelbuilder__AModule__is_importation_done(val
* self
) {
7496 short int var
/* : Bool */;
7497 short int var1
/* : Bool */;
7498 var1
= self
->attrs
[COLOR_modelbuilder__AModule___is_importation_done
].s
; /* _is_importation_done on <self:AModule> */
7503 /* method modelbuilder#AModule#is_importation_done for (self: Object): Bool */
7504 short int VIRTUAL_modelbuilder__AModule__is_importation_done(val
* self
) {
7505 short int var
/* : Bool */;
7506 short int var1
/* : Bool */;
7507 short int var3
/* : Bool */;
7508 { /* Inline modelbuilder#AModule#is_importation_done (self) on <self:Object(AModule)> */
7509 var3
= self
->attrs
[COLOR_modelbuilder__AModule___is_importation_done
].s
; /* _is_importation_done on <self:Object(AModule)> */
7517 /* method modelbuilder#AModule#is_importation_done= for (self: AModule, Bool) */
7518 void modelbuilder__AModule__is_importation_done_61d(val
* self
, short int p0
) {
7519 self
->attrs
[COLOR_modelbuilder__AModule___is_importation_done
].s
= p0
; /* _is_importation_done on <self:AModule> */
7522 /* method modelbuilder#AModule#is_importation_done= for (self: Object, Bool) */
7523 void VIRTUAL_modelbuilder__AModule__is_importation_done_61d(val
* self
, short int p0
) {
7524 { /* Inline modelbuilder#AModule#is_importation_done= (self,p0) on <self:Object(AModule)> */
7525 self
->attrs
[COLOR_modelbuilder__AModule___is_importation_done
].s
= p0
; /* _is_importation_done on <self:Object(AModule)> */
7530 /* method modelbuilder#AIntrudeVisibility#mvisibility for (self: AIntrudeVisibility): MVisibility */
7531 val
* modelbuilder__AIntrudeVisibility__mvisibility(val
* self
) {
7532 val
* var
/* : MVisibility */;
7533 val
* var1
/* : MVisibility */;
7535 var1
= model_base__Object__intrude_visibility(self
);
7542 /* method modelbuilder#AIntrudeVisibility#mvisibility for (self: Object): MVisibility */
7543 val
* VIRTUAL_modelbuilder__AIntrudeVisibility__mvisibility(val
* self
) {
7544 val
* var
/* : MVisibility */;
7545 val
* var1
/* : MVisibility */;
7546 var1
= modelbuilder__AIntrudeVisibility__mvisibility(self
);
7551 /* method modelbuilder#APublicVisibility#mvisibility for (self: APublicVisibility): MVisibility */
7552 val
* modelbuilder__APublicVisibility__mvisibility(val
* self
) {
7553 val
* var
/* : MVisibility */;
7554 val
* var1
/* : MVisibility */;
7556 var1
= model_base__Object__public_visibility(self
);
7563 /* method modelbuilder#APublicVisibility#mvisibility for (self: Object): MVisibility */
7564 val
* VIRTUAL_modelbuilder__APublicVisibility__mvisibility(val
* self
) {
7565 val
* var
/* : MVisibility */;
7566 val
* var1
/* : MVisibility */;
7567 var1
= modelbuilder__APublicVisibility__mvisibility(self
);
7572 /* method modelbuilder#AProtectedVisibility#mvisibility for (self: AProtectedVisibility): MVisibility */
7573 val
* modelbuilder__AProtectedVisibility__mvisibility(val
* self
) {
7574 val
* var
/* : MVisibility */;
7575 val
* var1
/* : MVisibility */;
7577 var1
= model_base__Object__protected_visibility(self
);
7584 /* method modelbuilder#AProtectedVisibility#mvisibility for (self: Object): MVisibility */
7585 val
* VIRTUAL_modelbuilder__AProtectedVisibility__mvisibility(val
* self
) {
7586 val
* var
/* : MVisibility */;
7587 val
* var1
/* : MVisibility */;
7588 var1
= modelbuilder__AProtectedVisibility__mvisibility(self
);
7593 /* method modelbuilder#APrivateVisibility#mvisibility for (self: APrivateVisibility): MVisibility */
7594 val
* modelbuilder__APrivateVisibility__mvisibility(val
* self
) {
7595 val
* var
/* : MVisibility */;
7596 val
* var1
/* : MVisibility */;
7598 var1
= model_base__Object__private_visibility(self
);
7605 /* method modelbuilder#APrivateVisibility#mvisibility for (self: Object): MVisibility */
7606 val
* VIRTUAL_modelbuilder__APrivateVisibility__mvisibility(val
* self
) {
7607 val
* var
/* : MVisibility */;
7608 val
* var1
/* : MVisibility */;
7609 var1
= modelbuilder__APrivateVisibility__mvisibility(self
);
7614 /* method modelbuilder#ADoc#mdoc_cache for (self: ADoc): nullable MDoc */
7615 val
* modelbuilder__ADoc__mdoc_cache(val
* self
) {
7616 val
* var
/* : nullable MDoc */;
7617 val
* var1
/* : nullable MDoc */;
7618 var1
= self
->attrs
[COLOR_modelbuilder__ADoc___mdoc_cache
].val
; /* _mdoc_cache on <self:ADoc> */
7623 /* method modelbuilder#ADoc#mdoc_cache for (self: Object): nullable MDoc */
7624 val
* VIRTUAL_modelbuilder__ADoc__mdoc_cache(val
* self
) {
7625 val
* var
/* : nullable MDoc */;
7626 val
* var1
/* : nullable MDoc */;
7627 val
* var3
/* : nullable MDoc */;
7628 { /* Inline modelbuilder#ADoc#mdoc_cache (self) on <self:Object(ADoc)> */
7629 var3
= self
->attrs
[COLOR_modelbuilder__ADoc___mdoc_cache
].val
; /* _mdoc_cache on <self:Object(ADoc)> */
7637 /* method modelbuilder#ADoc#mdoc_cache= for (self: ADoc, nullable MDoc) */
7638 void modelbuilder__ADoc__mdoc_cache_61d(val
* self
, val
* p0
) {
7639 self
->attrs
[COLOR_modelbuilder__ADoc___mdoc_cache
].val
= p0
; /* _mdoc_cache on <self:ADoc> */
7642 /* method modelbuilder#ADoc#mdoc_cache= for (self: Object, nullable MDoc) */
7643 void VIRTUAL_modelbuilder__ADoc__mdoc_cache_61d(val
* self
, val
* p0
) {
7644 { /* Inline modelbuilder#ADoc#mdoc_cache= (self,p0) on <self:Object(ADoc)> */
7645 self
->attrs
[COLOR_modelbuilder__ADoc___mdoc_cache
].val
= p0
; /* _mdoc_cache on <self:Object(ADoc)> */
7650 /* method modelbuilder#ADoc#to_mdoc for (self: ADoc): MDoc */
7651 val
* modelbuilder__ADoc__to_mdoc(val
* self
) {
7652 val
* var
/* : MDoc */;
7653 val
* var1
/* : nullable MDoc */;
7654 val
* var3
/* : nullable MDoc */;
7655 val
* var_res
/* var res: nullable MDoc */;
7656 val
* var4
/* : null */;
7657 short int var5
/* : Bool */;
7658 short int var6
/* : Bool */;
7659 val
* var_other
/* var other: nullable Object */;
7660 short int var8
/* : Bool */;
7661 short int var9
/* : Bool */;
7662 short int var10
/* : Bool */;
7663 val
* var11
/* : MDoc */;
7664 val
* var13
/* : ANodes[TComment] */;
7665 val
* var15
/* : ANodes[TComment] */;
7666 val
* var16
/* : Iterator[ANode] */;
7667 short int var17
/* : Bool */;
7668 val
* var18
/* : nullable Object */;
7669 val
* var_c
/* var c: TComment */;
7670 val
* var19
/* : String */;
7671 val
* var_text
/* var text: String */;
7672 long var20
/* : Int */;
7673 long var22
/* : Int */;
7674 long var23
/* : Int */;
7675 short int var24
/* : Bool */;
7676 short int var26
/* : Bool */;
7679 const char* var_class_name
;
7680 short int var27
/* : Bool */;
7681 val
* var28
/* : Array[String] */;
7682 val
* var30
/* : Array[String] */;
7683 static val
* varonce
;
7684 val
* var31
/* : String */;
7685 char* var32
/* : NativeString */;
7686 long var33
/* : Int */;
7687 val
* var34
/* : FlatString */;
7688 val
* var35
/* : SequenceRead[Char] */;
7689 val
* var37
/* : SequenceRead[Char] */;
7690 long var38
/* : Int */;
7691 val
* var39
/* : nullable Object */;
7692 char var40
/* : Char */;
7693 short int var41
/* : Bool */;
7694 short int var42
/* : Bool */;
7695 short int var44
/* : Bool */;
7696 char var45
/* : Char */;
7697 val
* var46
/* : SequenceRead[Char] */;
7698 val
* var48
/* : SequenceRead[Char] */;
7699 long var49
/* : Int */;
7700 val
* var50
/* : nullable Object */;
7701 char var51
/* : Char */;
7702 short int var52
/* : Bool */;
7703 short int var53
/* : Bool */;
7704 short int var55
/* : Bool */;
7705 char var56
/* : Char */;
7706 long var57
/* : Int */;
7707 val
* var58
/* : Text */;
7708 long var59
/* : Int */;
7709 val
* var60
/* : Text */;
7710 val
* var61
/* : SequenceRead[Char] */;
7711 val
* var63
/* : SequenceRead[Char] */;
7712 val
* var64
/* : nullable Object */;
7713 char var65
/* : Char */;
7714 short int var66
/* : Bool */;
7715 short int var67
/* : Bool */;
7716 short int var69
/* : Bool */;
7717 char var70
/* : Char */;
7718 long var71
/* : Int */;
7719 long var72
/* : Int */;
7720 long var74
/* : Int */;
7721 long var75
/* : Int */;
7722 long var76
/* : Int */;
7723 short int var78
/* : Bool */;
7726 const char* var_class_name81
;
7727 long var82
/* : Int */;
7728 val
* var83
/* : String */;
7729 val
* var84
/* : Array[String] */;
7730 val
* var86
/* : Array[String] */;
7732 { /* Inline modelbuilder#ADoc#mdoc_cache (self) on <self:ADoc> */
7733 var3
= self
->attrs
[COLOR_modelbuilder__ADoc___mdoc_cache
].val
; /* _mdoc_cache on <self:ADoc> */
7740 if (var_res
== NULL
) {
7741 var5
= 0; /* is null */
7743 var5
= 1; /* arg is null and recv is not */
7746 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MDoc> */
7749 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable MDoc(MDoc)>*/;
7764 var11
= NEW_mdoc__MDoc(&type_mdoc__MDoc
);
7766 { /* Inline mdoc#MDoc#init (var11) on <var11:MDoc> */
7767 RET_LABEL12
:(void)0;
7772 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
7773 var15
= self
->attrs
[COLOR_parser_nodes__ADoc___n_comment
].val
; /* _n_comment on <self:ADoc> */
7774 if (unlikely(var15
== NULL
)) {
7775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
7776 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2391);
7780 RET_LABEL14
:(void)0;
7784 var16
= parser_nodes__ANodes__iterator(var13
);
7788 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[ANode]>*/;
7792 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[ANode]>*/;
7796 var19
= lexer_work__Token__text(var_c
);
7800 { /* Inline string#FlatText#length (var_text) on <var_text:String> */
7801 var22
= var_text
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_text:String> */
7803 RET_LABEL21
:(void)0;
7808 { /* Inline kernel#Int#< (var20,var23) on <var20:Int> */
7809 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
7810 /* <var23:Int> isa OTHER */
7811 var26
= 1; /* easy <var23:Int> isa OTHER*/
7812 if (unlikely(!var26
)) {
7813 var_class_name
= type_kernel__Int
.name
;
7814 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7815 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
7818 var27
= var20
< var23
;
7821 RET_LABEL25
:(void)0;
7826 { /* Inline mdoc#MDoc#content (var_res) on <var_res:nullable MDoc(MDoc)> */
7827 var30
= var_res
->attrs
[COLOR_mdoc__MDoc___content
].val
; /* _content on <var_res:nullable MDoc(MDoc)> */
7828 if (unlikely(var30
== NULL
)) {
7829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
7830 PRINT_ERROR(" (%s:%d)\n", "src/model/mdoc.nit", 22);
7834 RET_LABEL29
:(void)0;
7842 var34
= string__NativeString__to_s_with_length(var32
, var33
);
7847 array__Array__add(var28
, var31
); /* Direct call array#Array#add on <var28:Array[String]>*/
7849 goto CONTINUE_label
;
7853 { /* Inline string#FlatString#chars (var_text) on <var_text:String> */
7854 var37
= var_text
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <var_text:String> */
7855 if (unlikely(var37
== NULL
)) {
7856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
7857 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
7861 RET_LABEL36
:(void)0;
7866 var39
= ((val
* (*)(val
*, long))(var35
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var35
, var38
) /* [] on <var35:SequenceRead[Char]>*/;
7870 { /* Inline kernel#Char#== (var39,var40) on <var39:nullable Object(Char)> */
7871 var44
= (var39
!= NULL
) && (var39
->class == &class_kernel__Char
);
7873 var45
= ((struct instance_kernel__Char
*)var39
)->value
; /* autounbox from nullable Object to Char */;
7874 var44
= (var45
== var40
);
7878 RET_LABEL43
:(void)0;
7882 if (unlikely(!var41
)) {
7883 PRINT_ERROR("Runtime error: %s", "Assert failed");
7884 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 792);
7888 { /* Inline string#FlatString#chars (var_text) on <var_text:String> */
7889 var48
= var_text
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <var_text:String> */
7890 if (unlikely(var48
== NULL
)) {
7891 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
7892 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
7896 RET_LABEL47
:(void)0;
7901 var50
= ((val
* (*)(val
*, long))(var46
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var46
, var49
) /* [] on <var46:SequenceRead[Char]>*/;
7905 { /* Inline kernel#Char#== (var50,var51) on <var50:nullable Object(Char)> */
7906 var55
= (var50
!= NULL
) && (var50
->class == &class_kernel__Char
);
7908 var56
= ((struct instance_kernel__Char
*)var50
)->value
; /* autounbox from nullable Object to Char */;
7909 var55
= (var56
== var51
);
7913 RET_LABEL54
:(void)0;
7920 var58
= string__Text__substring_from(var_text
, var57
);
7926 var60
= string__Text__substring_from(var_text
, var59
);
7931 { /* Inline string#FlatString#chars (var_text) on <var_text:String> */
7932 var63
= var_text
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <var_text:String> */
7933 if (unlikely(var63
== NULL
)) {
7934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
7935 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
7939 RET_LABEL62
:(void)0;
7943 var64
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var61
) /* last on <var61:SequenceRead[Char]>*/;
7947 { /* Inline kernel#Char#== (var64,var65) on <var64:nullable Object(Char)> */
7948 var69
= (var64
!= NULL
) && (var64
->class == &class_kernel__Char
);
7950 var70
= ((struct instance_kernel__Char
*)var64
)->value
; /* autounbox from nullable Object to Char */;
7951 var69
= (var70
== var65
);
7955 RET_LABEL68
:(void)0;
7962 { /* Inline string#FlatText#length (var_text) on <var_text:String> */
7963 var74
= var_text
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_text:String> */
7965 RET_LABEL73
:(void)0;
7970 { /* Inline kernel#Int#- (var72,var75) on <var72:Int> */
7971 /* Covariant cast for argument 0 (i) <var75:Int> isa OTHER */
7972 /* <var75:Int> isa OTHER */
7973 var78
= 1; /* easy <var75:Int> isa OTHER*/
7974 if (unlikely(!var78
)) {
7975 var_class_name81
= type_kernel__Int
.name
;
7976 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81
);
7977 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
7980 var82
= var72
- var75
;
7983 RET_LABEL77
:(void)0;
7987 var83
= string__FlatString__substring(var_text
, var71
, var76
);
7993 { /* Inline mdoc#MDoc#content (var_res) on <var_res:nullable MDoc(MDoc)> */
7994 var86
= var_res
->attrs
[COLOR_mdoc__MDoc___content
].val
; /* _content on <var_res:nullable MDoc(MDoc)> */
7995 if (unlikely(var86
== NULL
)) {
7996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
7997 PRINT_ERROR(" (%s:%d)\n", "src/model/mdoc.nit", 22);
8001 RET_LABEL85
:(void)0;
8005 array__Array__add(var84
, var_text
); /* Direct call array#Array#add on <var84:Array[String]>*/
8007 CONTINUE_label
: (void)0;
8009 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[ANode]>*/;
8012 BREAK_label
: (void)0;
8014 { /* Inline modelbuilder#ADoc#mdoc_cache= (self,var_res) on <self:ADoc> */
8015 self
->attrs
[COLOR_modelbuilder__ADoc___mdoc_cache
].val
= var_res
; /* _mdoc_cache on <self:ADoc> */
8016 RET_LABEL87
:(void)0;
8024 /* method modelbuilder#ADoc#to_mdoc for (self: Object): MDoc */
8025 val
* VIRTUAL_modelbuilder__ADoc__to_mdoc(val
* self
) {
8026 val
* var
/* : MDoc */;
8027 val
* var1
/* : MDoc */;
8028 var1
= modelbuilder__ADoc__to_mdoc(self
);