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 long var7
/* : Int */;
24 val
* var8
/* : NativeArray[Option] */;
26 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit__modelbuilder___ToolContext___standard__kernel__Object__init
]))(self
) /* init on <self:ToolContext>*/;
29 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
30 var2
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
31 if (unlikely(var2
== NULL
)) {
32 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
33 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 270);
41 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on <self:ToolContext> */
42 var5
= self
->attrs
[COLOR_nit__modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <self:ToolContext> */
43 if (unlikely(var5
== NULL
)) {
44 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
45 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 27);
52 var6
= NEW_standard__Array(&type_standard__Array__opts__Option
);
53 { /* var6 = array_instance Array[Option] */
55 var8
= NEW_standard__NativeArray(var7
, &type_standard__NativeArray__opts__Option
);
56 ((struct instance_standard__NativeArray
*)var8
)->values
[0] = (val
*) var3
;
58 ((void (*)(val
* self
, val
* p0
, long p1
))(var6
->class->vft
[COLOR_standard__array__Array__with_native
]))(var6
, var8
, var7
) /* with_native on <var6:Array[Option]>*/;
62 opts___opts__OptionContext___add_option(var
, var6
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
66 /* method modelbuilder#ToolContext#make_main_module for (self: ToolContext, Array[MModule]): MModule */
67 val
* nit__modelbuilder___ToolContext___make_main_module(val
* self
, val
* p0
) {
68 val
* var
/* : MModule */;
69 val
* var_mmodules
/* var mmodules: Array[MModule] */;
70 short int var1
/* : Bool */;
71 short int var2
/* : Bool */;
72 long var3
/* : Int */;
73 long var5
/* : Int */;
74 long var6
/* : Int */;
75 short int var7
/* : Bool */;
76 short int var9
/* : Bool */;
77 val
* var10
/* : nullable Object */;
78 val
* var_mainmodule
/* var mainmodule: nullable Object */;
79 val
* var11
/* : MModule */;
80 val
* var12
/* : ModelBuilder */;
81 val
* var13
/* : Model */;
82 val
* var15
/* : Model */;
83 val
* var16
/* : null */;
84 val
* var17
/* : nullable Object */;
85 val
* var18
/* : String */;
86 val
* var20
/* : String */;
88 val
* var21
/* : String */;
89 char* var22
/* : NativeString */;
90 long var23
/* : Int */;
91 val
* var24
/* : FlatString */;
92 val
* var25
/* : String */;
93 val
* var26
/* : Location */;
94 val
* var27
/* : nullable Object */;
95 val
* var28
/* : Location */;
96 val
* var30
/* : Location */;
97 val
* var31
/* : nullable SourceFile */;
98 val
* var33
/* : nullable SourceFile */;
99 long var34
/* : Int */;
100 long var35
/* : Int */;
101 long var36
/* : Int */;
102 long var37
/* : Int */;
103 short int var38
/* : Bool */;
106 var1
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules
);
109 if (unlikely(!var2
)) {
110 PRINT_ERROR("Runtime error: %s", "Assert failed");
111 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 39);
115 { /* Inline array#AbstractArrayRead#length (var_mmodules) on <var_mmodules:Array[MModule]> */
116 var5
= var_mmodules
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mmodules:Array[MModule]> */
123 { /* Inline kernel#Int#== (var3,var6) on <var3:Int> */
132 var10
= standard___standard__SequenceRead___Collection__first(var_mmodules
);
134 var_mainmodule
= var10
;
136 var11
= NEW_nit__MModule(&type_nit__MModule
);
138 var12
= nit__modelbuilder_base___ToolContext___modelbuilder(self
);
141 { /* Inline modelbuilder_base#ModelBuilder#model (var12) on <var12:ModelBuilder> */
142 var15
= var12
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <var12:ModelBuilder> */
143 if (unlikely(var15
== NULL
)) {
144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
145 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
154 var17
= standard___standard__SequenceRead___Collection__first(var_mmodules
);
157 { /* Inline mmodule#MModule#name (var17) on <var17:nullable Object(MModule)> */
158 var20
= var17
->attrs
[COLOR_nit__mmodule__MModule___name
].val
; /* _name on <var17:nullable Object(MModule)> */
159 if (unlikely(var20
== NULL
)) {
160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 87);
173 var24
= standard___standard__NativeString___to_s_with_length(var22
, var23
);
178 var25
= ((val
* (*)(val
* self
, val
* p0
))(var18
->class->vft
[COLOR_standard__string__String___43d
]))(var18
, var21
) /* + on <var18:String>*/;
180 var26
= NEW_nit__Location(&type_nit__Location
);
182 var27
= standard___standard__SequenceRead___Collection__first(var_mmodules
);
185 { /* Inline mmodule#MModule#location (var27) on <var27:nullable Object(MModule)> */
186 var30
= var27
->attrs
[COLOR_nit__mmodule__MModule___location
].val
; /* _location on <var27:nullable Object(MModule)> */
187 if (unlikely(var30
== NULL
)) {
188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
189 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 90);
197 { /* Inline location#Location#file (var28) on <var28:Location> */
198 var33
= var28
->attrs
[COLOR_nit__location__Location___file
].val
; /* _file on <var28:Location> */
208 ((void (*)(val
* self
, val
* p0
))(var26
->class->vft
[COLOR_nit__location__Location__file_61d
]))(var26
, var31
) /* file= on <var26:Location>*/;
211 ((void (*)(val
* self
, long p0
))(var26
->class->vft
[COLOR_nit__location__Location__line_start_61d
]))(var26
, var34
) /* line_start= on <var26:Location>*/;
214 ((void (*)(val
* self
, long p0
))(var26
->class->vft
[COLOR_nit__location__Location__line_end_61d
]))(var26
, var35
) /* line_end= on <var26:Location>*/;
217 ((void (*)(val
* self
, long p0
))(var26
->class->vft
[COLOR_nit__location__Location__column_start_61d
]))(var26
, var36
) /* column_start= on <var26:Location>*/;
220 ((void (*)(val
* self
, long p0
))(var26
->class->vft
[COLOR_nit__location__Location__column_end_61d
]))(var26
, var37
) /* column_end= on <var26:Location>*/;
223 ((void (*)(val
* self
))(var26
->class->vft
[COLOR_standard__kernel__Object__init
]))(var26
) /* init on <var26:Location>*/;
226 ((void (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_nit__mmodule__MModule__model_61d
]))(var11
, var13
) /* model= on <var11:MModule>*/;
229 ((void (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_nit__mmodule__MModule__mgroup_61d
]))(var11
, var16
) /* mgroup= on <var11:MModule>*/;
232 ((void (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_nit__mmodule__MModule__name_61d
]))(var11
, var25
) /* name= on <var11:MModule>*/;
235 ((void (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_nit__mmodule__MModule__location_61d
]))(var11
, var26
) /* location= on <var11:MModule>*/;
238 ((void (*)(val
* self
))(var11
->class->vft
[COLOR_standard__kernel__Object__init
]))(var11
) /* init on <var11:MModule>*/;
240 var_mainmodule
= var11
;
243 { /* Inline mmodule#MModule#is_fictive= (var_mainmodule,var38) on <var_mainmodule:nullable Object(MModule)> */
244 var_mainmodule
->attrs
[COLOR_nit__mmodule__MModule___is_fictive
].s
= var38
; /* _is_fictive on <var_mainmodule:nullable Object(MModule)> */
249 nit___nit__MModule___set_imported_mmodules(var_mainmodule
, var_mmodules
); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/
252 var
= var_mainmodule
;
257 /* method modelbuilder#ToolContext#run_global_phases for (self: ToolContext, Array[MModule]) */
258 void nit__modelbuilder___ToolContext___run_global_phases(val
* self
, val
* p0
) {
259 val
* var_mmodules
/* var mmodules: Array[MModule] */;
260 val
* var
/* : MModule */;
261 val
* var_mainmodule
/* var mainmodule: MModule */;
262 val
* var1
/* : Sequence[Phase] */;
263 val
* var_
/* var : Sequence[Phase] */;
264 val
* var2
/* : Iterator[nullable Object] */;
265 val
* var_3
/* var : IndexedIterator[Phase] */;
266 short int var4
/* : Bool */;
267 val
* var5
/* : nullable Object */;
268 val
* var_phase
/* var phase: Phase */;
269 short int var6
/* : Bool */;
270 short int var8
/* : Bool */;
273 var
= nit__mixin___ToolContext___make_main_module(self
, var_mmodules
);
275 var_mainmodule
= var
;
277 var1
= nit__phase___ToolContext___phases_list(self
);
281 var2
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Sequence[Phase]>*/;
286 var4
= ((short int (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:IndexedIterator[Phase]>*/;
290 var5
= ((val
* (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:IndexedIterator[Phase]>*/;
294 { /* Inline phase#Phase#disabled (var_phase) on <var_phase:Phase> */
295 var8
= var_phase
->attrs
[COLOR_nit__phase__Phase___disabled
].s
; /* _disabled on <var_phase:Phase> */
305 ((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>*/;
307 BREAK_label
: (void)0;
309 ((void (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:IndexedIterator[Phase]>*/;
315 BREAK_label9
: (void)0;
317 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:IndexedIterator[Phase]> */
323 /* method modelbuilder#Phase#process_mainmodule for (self: Phase, MModule, SequenceRead[MModule]) */
324 void nit__modelbuilder___Phase___process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
325 val
* var_mainmodule
/* var mainmodule: MModule */;
326 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
328 var_given_mmodules
= p1
;
331 /* method modelbuilder#ModelBuilder#run_phases for (self: ModelBuilder) */
332 void nit__modelbuilder___ModelBuilder___run_phases(val
* self
) {
333 val
* var
/* : Model */;
334 val
* var2
/* : Model */;
335 val
* var3
/* : Array[MModule] */;
336 val
* var5
/* : Array[MModule] */;
337 val
* var6
/* : Array[nullable Object] */;
338 val
* var_mmodules
/* var mmodules: Array[MModule] */;
339 val
* var7
/* : Model */;
340 val
* var9
/* : Model */;
341 val
* var10
/* : POSet[MModule] */;
342 val
* var12
/* : POSet[MModule] */;
343 val
* var13
/* : Array[AModule] */;
344 val
* var_nmodules
/* var nmodules: Array[AModule] */;
345 val
* var_
/* var : Array[MModule] */;
346 val
* var14
/* : ArrayIterator[nullable Object] */;
347 val
* var_15
/* var : ArrayIterator[MModule] */;
348 short int var16
/* : Bool */;
349 val
* var17
/* : nullable Object */;
350 val
* var_mm
/* var mm: MModule */;
351 val
* var18
/* : nullable AModule */;
352 val
* var20
/* : ToolContext */;
353 val
* var22
/* : ToolContext */;
354 val
* var23
/* : ToolContext */;
355 val
* var25
/* : ToolContext */;
356 val
* var26
/* : OptionBool */;
357 val
* var28
/* : OptionBool */;
358 val
* var29
/* : nullable Object */;
359 val
* var31
/* : nullable Object */;
360 short int var32
/* : Bool */;
361 val
* var33
/* : ToolContext */;
362 val
* var35
/* : ToolContext */;
364 val
* var36
/* : String */;
365 char* var37
/* : NativeString */;
366 long var38
/* : Int */;
367 val
* var39
/* : FlatString */;
368 long var40
/* : Int */;
369 long var41
/* : Int */;
371 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
372 var2
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
373 if (unlikely(var2
== NULL
)) {
374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
375 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
383 { /* Inline mmodule#Model#mmodules (var) on <var:Model> */
384 var5
= var
->attrs
[COLOR_nit__mmodule__Model___mmodules
].val
; /* _mmodules on <var:Model> */
385 if (unlikely(var5
== NULL
)) {
386 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
387 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 27);
395 var6
= standard__array___Collection___to_a(var3
);
399 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
400 var9
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
401 if (unlikely(var9
== NULL
)) {
402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
411 { /* Inline mmodule#Model#mmodule_importation_hierarchy (var7) on <var7:Model> */
412 var12
= var7
->attrs
[COLOR_nit__mmodule__Model___mmodule_importation_hierarchy
].val
; /* _mmodule_importation_hierarchy on <var7:Model> */
413 if (unlikely(var12
== NULL
)) {
414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 30);
423 standard___standard__Comparator___sort(var10
, var_mmodules
); /* Direct call sorter#Comparator#sort on <var10:POSet[MModule]>*/
425 var13
= NEW_standard__Array(&type_standard__Array__nit__AModule
);
427 standard___standard__Array___standard__kernel__Object__init(var13
); /* Direct call array#Array#init on <var13:Array[AModule]>*/
429 var_nmodules
= var13
;
432 var14
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
437 var16
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_15
);
441 var17
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_15
);
445 var18
= nit__loader___ModelBuilder___mmodule2node(self
, var_mm
);
447 if (unlikely(var18
== NULL
)) {
448 PRINT_ERROR("Runtime error: %s", "Cast failed");
449 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 89);
453 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_nmodules
, var18
); /* Direct call array#Array#add on <var_nmodules:Array[AModule]>*/
456 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_15
); /* Direct call array#ArrayIterator#next on <var_15:ArrayIterator[MModule]>*/
462 BREAK_label
: (void)0;
464 { /* Inline abstract_collection#Iterator#finish (var_15) on <var_15:ArrayIterator[MModule]> */
469 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
470 var22
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
471 if (unlikely(var22
== NULL
)) {
472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
473 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
481 nit__phase___ToolContext___run_phases(var20
, var_nmodules
); /* Direct call phase#ToolContext#run_phases on <var20:ToolContext>*/
484 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
485 var25
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
486 if (unlikely(var25
== NULL
)) {
487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
488 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
496 { /* Inline loader#ToolContext#opt_only_metamodel (var23) on <var23:ToolContext> */
497 var28
= var23
->attrs
[COLOR_nit__loader__ToolContext___opt_only_metamodel
].val
; /* _opt_only_metamodel on <var23:ToolContext> */
498 if (unlikely(var28
== NULL
)) {
499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
500 PRINT_ERROR(" (%s:%d)\n", FILE_nit__loader
, 26);
508 { /* Inline opts#Option#value (var26) on <var26:OptionBool> */
509 var31
= var26
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var26:OptionBool> */
514 var32
= ((struct instance_standard__Bool
*)var29
)->value
; /* autounbox from nullable Object to Bool */;
517 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
518 var35
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
519 if (unlikely(var35
== NULL
)) {
520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
521 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
531 var37
= "*** ONLY METAMODEL";
533 var39
= standard___standard__NativeString___to_s_with_length(var37
, var38
);
539 nit___nit__ToolContext___info(var33
, var36
, var40
); /* Direct call toolcontext#ToolContext#info on <var33:ToolContext>*/
543 { /* Inline kernel#Object#exit (self,var41) on <self:ModelBuilder> */