1 #include "nit__modelbuilder.sep.0.h"
2 /* method modelbuilder#ToolContext#opt_ignore_visibility for (self: ToolContext): OptionBool */
3 val
* nit__modelbuilder___ToolContext___opt_ignore_visibility(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_nit__modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 27);
16 /* method modelbuilder#ToolContext#init for (self: ToolContext) */
17 void nit__modelbuilder___ToolContext___standard__kernel__Object__init(val
* self
) {
18 val
* var
/* : OptionContext */;
19 val
* var2
/* : OptionContext */;
20 val
* var3
/* : OptionBool */;
21 val
* var5
/* : OptionBool */;
22 val
* var6
/* : Array[Option] */;
23 val
* var7
/* : NativeArray[Option] */;
25 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit__modelbuilder___ToolContext___standard__kernel__Object__init
]))(self
); /* init on <self:ToolContext>*/
28 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
29 var2
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
30 if (unlikely(var2
== NULL
)) {
31 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
32 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
40 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on <self:ToolContext> */
41 var5
= self
->attrs
[COLOR_nit__modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <self:ToolContext> */
42 if (unlikely(var5
== NULL
)) {
43 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
44 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 27);
51 var6
= NEW_standard__Array(&type_standard__Array__opts__Option
);
52 { /* var6 = array_instance Array[Option] */
53 var7
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
54 ((struct instance_standard__NativeArray
*)var7
)->values
[0] = (val
*) var3
;
56 ((void(*)(val
* self
, val
* p0
, long p1
))(var6
->class->vft
[COLOR_standard__array__Array__with_native
]))(var6
, var7
, 1l); /* with_native on <var6:Array[Option]>*/
60 opts___opts__OptionContext___add_option(var
, var6
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
64 /* method modelbuilder#ToolContext#make_main_module for (self: ToolContext, Array[MModule]): MModule */
65 val
* nit__modelbuilder___ToolContext___make_main_module(val
* self
, val
* p0
) {
66 val
* var
/* : MModule */;
67 val
* var_mmodules
/* var mmodules: Array[MModule] */;
68 short int var1
/* : Bool */;
69 short int var2
/* : Bool */;
70 long var3
/* : Int */;
71 long var5
/* : Int */;
72 short int var6
/* : Bool */;
73 short int var8
/* : Bool */;
74 val
* var9
/* : nullable Object */;
75 val
* var_mainmodule
/* var mainmodule: nullable Object */;
76 val
* var10
/* : MModule */;
77 val
* var11
/* : ModelBuilder */;
78 val
* var12
/* : Model */;
79 val
* var14
/* : Model */;
80 val
* var15
/* : nullable Object */;
81 val
* var16
/* : String */;
82 val
* var18
/* : String */;
84 val
* var19
/* : String */;
85 char* var20
/* : NativeString */;
86 val
* var21
/* : FlatString */;
87 val
* var22
/* : String */;
88 val
* var23
/* : Location */;
89 val
* var24
/* : nullable Object */;
90 val
* var25
/* : Location */;
91 val
* var27
/* : Location */;
92 val
* var28
/* : nullable SourceFile */;
93 val
* var30
/* : nullable SourceFile */;
96 var1
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules
);
99 if (unlikely(!var2
)) {
100 PRINT_ERROR("Runtime error: %s", "Assert failed");
101 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 39);
105 { /* Inline array#AbstractArrayRead#length (var_mmodules) on <var_mmodules:Array[MModule]> */
106 var5
= var_mmodules
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mmodules:Array[MModule]> */
112 { /* Inline kernel#Int#== (var3,1l) on <var3:Int> */
121 var9
= standard___standard__SequenceRead___Collection__first(var_mmodules
);
123 var_mainmodule
= var9
;
125 var10
= NEW_nit__MModule(&type_nit__MModule
);
127 var11
= nit__modelbuilder_base___ToolContext___modelbuilder(self
);
130 { /* Inline modelbuilder_base#ModelBuilder#model (var11) on <var11:ModelBuilder> */
131 var14
= var11
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <var11:ModelBuilder> */
132 if (unlikely(var14
== NULL
)) {
133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
134 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
142 var15
= standard___standard__SequenceRead___Collection__first(var_mmodules
);
145 { /* Inline mmodule#MModule#name (var15) on <var15:nullable Object(MModule)> */
146 var18
= var15
->attrs
[COLOR_nit__mmodule__MModule___name
].val
; /* _name on <var15:nullable Object(MModule)> */
147 if (unlikely(var18
== NULL
)) {
148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 87);
156 if (likely(varonce
!=NULL
)) {
160 var21
= standard___standard__NativeString___to_s_with_length(var20
, 2l);
165 var22
= ((val
*(*)(val
* self
, val
* p0
))(var16
->class->vft
[COLOR_standard__string__String___43d
]))(var16
, var19
); /* + on <var16:String>*/
167 var23
= NEW_nit__Location(&type_nit__Location
);
169 var24
= standard___standard__SequenceRead___Collection__first(var_mmodules
);
172 { /* Inline mmodule#MModule#location (var24) on <var24:nullable Object(MModule)> */
173 var27
= var24
->attrs
[COLOR_nit__mmodule__MModule___location
].val
; /* _location on <var24:nullable Object(MModule)> */
174 if (unlikely(var27
== NULL
)) {
175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 90);
184 { /* Inline location#Location#file (var25) on <var25:Location> */
185 var30
= var25
->attrs
[COLOR_nit__location__Location___file
].val
; /* _file on <var25:Location> */
191 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nit__location__Location__file_61d
]))(var23
, var28
); /* file= on <var23:Location>*/
194 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nit__location__Location__line_start_61d
]))(var23
, 0l); /* line_start= on <var23:Location>*/
197 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nit__location__Location__line_end_61d
]))(var23
, 0l); /* line_end= on <var23:Location>*/
200 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nit__location__Location__column_start_61d
]))(var23
, 0l); /* column_start= on <var23:Location>*/
203 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nit__location__Location__column_end_61d
]))(var23
, 0l); /* column_end= on <var23:Location>*/
206 ((void(*)(val
* self
))(var23
->class->vft
[COLOR_standard__kernel__Object__init
]))(var23
); /* init on <var23:Location>*/
209 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nit__mmodule__MModule__model_61d
]))(var10
, var12
); /* model= on <var10:MModule>*/
212 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nit__mmodule__MModule__mgroup_61d
]))(var10
, ((val
*)NULL
)); /* mgroup= on <var10:MModule>*/
215 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nit__mmodule__MModule__name_61d
]))(var10
, var22
); /* name= on <var10:MModule>*/
218 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nit__mmodule__MModule__location_61d
]))(var10
, var23
); /* location= on <var10:MModule>*/
221 ((void(*)(val
* self
))(var10
->class->vft
[COLOR_standard__kernel__Object__init
]))(var10
); /* init on <var10:MModule>*/
223 var_mainmodule
= var10
;
225 { /* Inline mmodule#MModule#is_fictive= (var_mainmodule,1) on <var_mainmodule:nullable Object(MModule)> */
226 var_mainmodule
->attrs
[COLOR_nit__mmodule__MModule___is_fictive
].s
= 1; /* _is_fictive on <var_mainmodule:nullable Object(MModule)> */
231 nit___nit__MModule___set_imported_mmodules(var_mainmodule
, var_mmodules
); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/
234 var
= var_mainmodule
;
239 /* method modelbuilder#ToolContext#run_global_phases for (self: ToolContext, Array[MModule]) */
240 void nit__modelbuilder___ToolContext___run_global_phases(val
* self
, val
* p0
) {
241 val
* var_mmodules
/* var mmodules: Array[MModule] */;
242 short int var
/* : Bool */;
243 short int var1
/* : Bool */;
244 val
* var2
/* : MModule */;
245 val
* var_mainmodule
/* var mainmodule: MModule */;
246 val
* var3
/* : Sequence[Phase] */;
247 val
* var_
/* var : Sequence[Phase] */;
248 val
* var4
/* : Iterator[nullable Object] */;
249 val
* var_5
/* var : IndexedIterator[Phase] */;
250 short int var6
/* : Bool */;
251 val
* var7
/* : nullable Object */;
252 val
* var_phase
/* var phase: Phase */;
253 short int var8
/* : Bool */;
254 short int var10
/* : Bool */;
255 short int var12
/* : Bool */;
258 var
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules
);
263 var2
= nit__mixin___ToolContext___make_main_module(self
, var_mmodules
);
265 var_mainmodule
= var2
;
267 var3
= nit__phase___ToolContext___phases_list(self
);
271 var4
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Sequence[Phase]>*/
276 var6
= ((short int(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_5
); /* is_ok on <var_5:IndexedIterator[Phase]>*/
280 var7
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_5
); /* item on <var_5:IndexedIterator[Phase]>*/
284 { /* Inline phase#Phase#disabled (var_phase) on <var_phase:Phase> */
285 var10
= var_phase
->attrs
[COLOR_nit__phase__Phase___disabled
].s
; /* _disabled on <var_phase:Phase> */
295 ((void(*)(val
* self
, val
* p0
, val
* p1
))(var_phase
->class->vft
[COLOR_nit__modelbuilder__Phase__process_mainmodule
]))(var_phase
, var_mainmodule
, var_mmodules
); /* process_mainmodule on <var_phase:Phase>*/
297 BREAK_label
: (void)0;
299 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_5
); /* next on <var_5:IndexedIterator[Phase]>*/
305 BREAK_label11
: (void)0;
307 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_5
); /* finish on <var_5:IndexedIterator[Phase]>*/
312 var12
= nit___nit__ToolContext___check_errors(self
);
315 nit___nit__ToolContext___errors_info(self
); /* Direct call toolcontext#ToolContext#errors_info on <self:ToolContext>*/
319 /* method modelbuilder#Phase#process_mainmodule for (self: Phase, MModule, SequenceRead[MModule]) */
320 void nit__modelbuilder___Phase___process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
321 val
* var_mainmodule
/* var mainmodule: MModule */;
322 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
324 var_given_mmodules
= p1
;
327 /* method modelbuilder#ModelBuilder#run_phases for (self: ModelBuilder) */
328 void nit__modelbuilder___ModelBuilder___run_phases(val
* self
) {
329 val
* var
/* : Model */;
330 val
* var2
/* : Model */;
331 val
* var3
/* : Array[MModule] */;
332 val
* var5
/* : Array[MModule] */;
333 val
* var6
/* : Array[nullable Object] */;
334 val
* var_mmodules
/* var mmodules: Array[MModule] */;
335 val
* var7
/* : Model */;
336 val
* var9
/* : Model */;
337 val
* var10
/* : POSet[MModule] */;
338 val
* var12
/* : POSet[MModule] */;
339 val
* var13
/* : Array[AModule] */;
340 val
* var_nmodules
/* var nmodules: Array[AModule] */;
341 val
* var_
/* var : Array[MModule] */;
342 val
* var14
/* : ArrayIterator[nullable Object] */;
343 val
* var_15
/* var : ArrayIterator[MModule] */;
344 short int var16
/* : Bool */;
345 val
* var17
/* : nullable Object */;
346 val
* var_mm
/* var mm: MModule */;
347 short int var18
/* : Bool */;
348 short int var20
/* : Bool */;
349 val
* var21
/* : nullable AModule */;
350 val
* var23
/* : ToolContext */;
351 val
* var25
/* : ToolContext */;
352 val
* var26
/* : ToolContext */;
353 val
* var28
/* : ToolContext */;
354 val
* var29
/* : OptionBool */;
355 val
* var31
/* : OptionBool */;
356 val
* var32
/* : nullable Object */;
357 val
* var34
/* : nullable Object */;
358 short int var35
/* : Bool */;
359 val
* var36
/* : ToolContext */;
360 val
* var38
/* : ToolContext */;
362 val
* var39
/* : String */;
363 char* var40
/* : NativeString */;
364 val
* var41
/* : FlatString */;
365 val
* var42
/* : Sys */;
367 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
368 var2
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
369 if (unlikely(var2
== NULL
)) {
370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
371 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
379 { /* Inline mmodule#Model#mmodules (var) on <var:Model> */
380 var5
= var
->attrs
[COLOR_nit__mmodule__Model___mmodules
].val
; /* _mmodules on <var:Model> */
381 if (unlikely(var5
== NULL
)) {
382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 27);
391 var6
= standard__array___Collection___to_a(var3
);
395 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
396 var9
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
397 if (unlikely(var9
== NULL
)) {
398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
399 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
407 { /* Inline mmodule#Model#mmodule_importation_hierarchy (var7) on <var7:Model> */
408 var12
= var7
->attrs
[COLOR_nit__mmodule__Model___mmodule_importation_hierarchy
].val
; /* _mmodule_importation_hierarchy on <var7:Model> */
409 if (unlikely(var12
== NULL
)) {
410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
411 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 30);
419 standard___standard__Comparator___sort(var10
, var_mmodules
); /* Direct call sorter#Comparator#sort on <var10:POSet[MModule]>*/
421 var13
= NEW_standard__Array(&type_standard__Array__nit__AModule
);
423 standard___standard__Array___standard__kernel__Object__init(var13
); /* Direct call array#Array#init on <var13:Array[AModule]>*/
425 var_nmodules
= var13
;
428 var14
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
433 var16
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_15
);
437 var17
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_15
);
441 { /* Inline mmodule#MModule#is_fictive (var_mm) on <var_mm:MModule> */
442 var20
= var_mm
->attrs
[COLOR_nit__mmodule__MModule___is_fictive
].s
; /* _is_fictive on <var_mm:MModule> */
452 var21
= nit__loader___ModelBuilder___mmodule2node(self
, var_mm
);
454 if (unlikely(var21
== NULL
)) {
455 PRINT_ERROR("Runtime error: %s", "Cast failed");
456 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 95);
460 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_nmodules
, var21
); /* Direct call array#Array#add on <var_nmodules:Array[AModule]>*/
462 BREAK_label
: (void)0;
464 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_15
); /* Direct call array#ArrayIterator#next on <var_15:ArrayIterator[MModule]>*/
470 BREAK_label22
: (void)0;
472 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_15
); /* Direct call array#ArrayIterator#finish on <var_15:ArrayIterator[MModule]>*/
475 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
476 var25
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
477 if (unlikely(var25
== NULL
)) {
478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
487 nit__phase___ToolContext___run_phases(var23
, var_nmodules
); /* Direct call phase#ToolContext#run_phases on <var23:ToolContext>*/
490 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
491 var28
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
492 if (unlikely(var28
== NULL
)) {
493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
494 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
502 { /* Inline loader#ToolContext#opt_only_metamodel (var26) on <var26:ToolContext> */
503 var31
= var26
->attrs
[COLOR_nit__loader__ToolContext___opt_only_metamodel
].val
; /* _opt_only_metamodel on <var26:ToolContext> */
504 if (unlikely(var31
== NULL
)) {
505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
506 PRINT_ERROR(" (%s:%d)\n", FILE_nit__loader
, 26);
514 { /* Inline opts#Option#value (var29) on <var29:OptionBool> */
515 var34
= var29
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var29:OptionBool> */
520 var35
= (short int)((long)(var32
)>>2);
523 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
524 var38
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
525 if (unlikely(var38
== NULL
)) {
526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
527 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
534 if (likely(varonce
!=NULL
)) {
537 var40
= "*** ONLY METAMODEL";
538 var41
= standard___standard__NativeString___to_s_with_length(var40
, 18l);
543 nit___nit__ToolContext___info(var36
, var39
, 1l); /* Direct call toolcontext#ToolContext#info on <var36:ToolContext>*/
547 { /* Inline kernel#Sys#exit (var42,0l) on <var42:Sys> */