1 #include "nitc__modelbuilder.sep.0.h"
2 /* method modelbuilder#ToolContext#opt_ignore_visibility for (self: ToolContext): OptionBool */
3 val
* nitc__modelbuilder___ToolContext___opt_ignore_visibility(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_nitc__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_nitc__modelbuilder
, 27);
16 /* method modelbuilder#ToolContext#init for (self: ToolContext) */
17 void nitc__modelbuilder___ToolContext___core__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_nitc__modelbuilder___ToolContext___core__kernel__Object__init
]))(self
); /* init on <self:ToolContext>*/
28 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
29 var2
= self
->attrs
[COLOR_nitc__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_nitc__toolcontext
, 342);
40 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on <self:ToolContext> */
41 var5
= self
->attrs
[COLOR_nitc__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_nitc__modelbuilder
, 27);
51 var6
= NEW_core__Array(&type_core__Array__opts__Option
);
52 { /* var6 = array_instance Array[Option] */
53 var7
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
54 ((struct instance_core__NativeArray
*)var7
)->values
[0] = (val
*) var3
;
56 ((void(*)(val
* self
, val
* p0
, long p1
))(var6
->class->vft
[COLOR_core__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
* nitc__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
/* : String */;
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 */;
94 val
* var32
/* : ModelBuilder */;
95 val
* var33
/* : ModelBuilder */;
98 var1
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_mmodules
);
101 if (unlikely(!var2
)) {
102 PRINT_ERROR("Runtime error: %s", "Assert failed");
103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder
, 39);
107 { /* Inline array#AbstractArrayRead#length (var_mmodules) on <var_mmodules:Array[MModule]> */
108 var5
= var_mmodules
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_mmodules:Array[MModule]> */
114 { /* Inline kernel#Int#== (var3,1l) on <var3:Int> */
123 var9
= core___core__SequenceRead___Collection__first(var_mmodules
);
125 var_mainmodule
= var9
;
127 var10
= NEW_nitc__MModule(&type_nitc__MModule
);
129 var11
= nitc__modelbuilder_base___ToolContext___modelbuilder(self
);
132 { /* Inline modelbuilder_base#ModelBuilder#model (var11) on <var11:ModelBuilder> */
133 var14
= var11
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <var11:ModelBuilder> */
134 if (unlikely(var14
== NULL
)) {
135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
136 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 44);
144 var15
= core___core__SequenceRead___Collection__first(var_mmodules
);
147 { /* Inline mmodule#MModule#name (var15) on <var15:nullable Object(MModule)> */
148 var18
= var15
->attrs
[COLOR_nitc__mmodule__MModule___name
].val
; /* _name on <var15:nullable Object(MModule)> */
149 if (unlikely(var18
== NULL
)) {
150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 95);
158 if (likely(varonce
!=NULL
)) {
162 var21
= core__flat___NativeString___to_s_full(var20
, 2l, 2l);
167 var22
= ((val
*(*)(val
* self
, val
* p0
))(var16
->class->vft
[COLOR_core__abstract_text__String___43d
]))(var16
, var19
); /* + on <var16:String>*/
169 var23
= NEW_nitc__Location(&type_nitc__Location
);
171 var24
= core___core__SequenceRead___Collection__first(var_mmodules
);
174 { /* Inline mmodule#MModule#location (var24) on <var24:nullable Object(MModule)> */
175 var27
= var24
->attrs
[COLOR_nitc__mmodule__MModule___location
].val
; /* _location on <var24:nullable Object(MModule)> */
176 if (unlikely(var27
== NULL
)) {
177 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
178 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 98);
186 { /* Inline location#Location#file (var25) on <var25:Location> */
187 var30
= var25
->attrs
[COLOR_nitc__location__Location___file
].val
; /* _file on <var25:Location> */
193 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nitc__location__Location__file_61d
]))(var23
, var28
); /* file= on <var23:Location>*/
196 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nitc__location__Location__line_start_61d
]))(var23
, 0l); /* line_start= on <var23:Location>*/
199 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nitc__location__Location__line_end_61d
]))(var23
, 0l); /* line_end= on <var23:Location>*/
202 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nitc__location__Location__column_start_61d
]))(var23
, 0l); /* column_start= on <var23:Location>*/
205 ((void(*)(val
* self
, long p0
))(var23
->class->vft
[COLOR_nitc__location__Location__column_end_61d
]))(var23
, 0l); /* column_end= on <var23:Location>*/
208 ((void(*)(val
* self
))(var23
->class->vft
[COLOR_core__kernel__Object__init
]))(var23
); /* init on <var23:Location>*/
211 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__mmodule__MModule__model_61d
]))(var10
, var12
); /* model= on <var10:MModule>*/
214 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__mmodule__MModule__mgroup_61d
]))(var10
, ((val
*)NULL
)); /* mgroup= on <var10:MModule>*/
217 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__mmodule__MModule__name_61d
]))(var10
, var22
); /* name= on <var10:MModule>*/
220 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__mmodule__MModule__location_61d
]))(var10
, var23
); /* location= on <var10:MModule>*/
223 ((void(*)(val
* self
))(var10
->class->vft
[COLOR_core__kernel__Object__init
]))(var10
); /* init on <var10:MModule>*/
225 var_mainmodule
= var10
;
227 { /* Inline model_base#MEntity#is_fictive= (var_mainmodule,1) on <var_mainmodule:nullable Object(MModule)> */
228 var_mainmodule
->attrs
[COLOR_nitc__model_base__MEntity___is_fictive
].s
= 1; /* _is_fictive on <var_mainmodule:nullable Object(MModule)> */
233 nitc___nitc__MModule___set_imported_mmodules(var_mainmodule
, var_mmodules
); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/
236 var32
= nitc__modelbuilder_base___ToolContext___modelbuilder(self
);
239 nitc__loader___ModelBuilder___apply_conditional_importations(var32
, var_mainmodule
); /* Direct call loader#ModelBuilder#apply_conditional_importations on <var32:ModelBuilder>*/
242 var33
= nitc__modelbuilder_base___ToolContext___modelbuilder(self
);
245 nitc__modelbuilder___ModelBuilder___run_phases(var33
); /* Direct call modelbuilder#ModelBuilder#run_phases on <var33:ModelBuilder>*/
248 var
= var_mainmodule
;
253 /* method modelbuilder#ToolContext#run_global_phases for (self: ToolContext, Array[MModule]) */
254 void nitc__modelbuilder___ToolContext___run_global_phases(val
* self
, val
* p0
) {
255 val
* var_mmodules
/* var mmodules: Array[MModule] */;
256 short int var
/* : Bool */;
257 short int var1
/* : Bool */;
258 val
* var2
/* : MModule */;
259 val
* var_mainmodule
/* var mainmodule: MModule */;
260 val
* var3
/* : Sequence[Phase] */;
261 val
* var_
/* var : Sequence[Phase] */;
262 val
* var4
/* : Iterator[nullable Object] */;
263 val
* var_5
/* var : IndexedIterator[Phase] */;
264 short int var6
/* : Bool */;
265 val
* var7
/* : nullable Object */;
266 val
* var_phase
/* var phase: Phase */;
267 short int var8
/* : Bool */;
268 short int var10
/* : Bool */;
269 short int var12
/* : Bool */;
272 var
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_mmodules
);
277 var2
= nitc__mixin___ToolContext___make_main_module(self
, var_mmodules
);
279 var_mainmodule
= var2
;
281 var3
= nitc__phase___ToolContext___phases_list(self
);
285 var4
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Sequence[Phase]>*/
290 var6
= ((short int(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_5
); /* is_ok on <var_5:IndexedIterator[Phase]>*/
297 var7
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_5
); /* item on <var_5:IndexedIterator[Phase]>*/
301 { /* Inline phase#Phase#disabled (var_phase) on <var_phase:Phase> */
302 var10
= var_phase
->attrs
[COLOR_nitc__phase__Phase___disabled
].s
; /* _disabled on <var_phase:Phase> */
312 ((void(*)(val
* self
, val
* p0
, val
* p1
))(var_phase
->class->vft
[COLOR_nitc__modelbuilder__Phase__process_mainmodule
]))(var_phase
, var_mainmodule
, var_mmodules
); /* process_mainmodule on <var_phase:Phase>*/
314 BREAK_label11
: (void)0;
316 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_5
); /* next on <var_5:IndexedIterator[Phase]>*/
319 BREAK_label
: (void)0;
321 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_5
); /* finish on <var_5:IndexedIterator[Phase]>*/
326 var12
= nitc___nitc__ToolContext___check_errors(self
);
329 nitc___nitc__ToolContext___errors_info(self
); /* Direct call toolcontext#ToolContext#errors_info on <self:ToolContext>*/
333 /* method modelbuilder#Phase#process_mainmodule for (self: Phase, MModule, SequenceRead[MModule]) */
334 void nitc__modelbuilder___Phase___process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
335 val
* var_mainmodule
/* var mainmodule: MModule */;
336 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
338 var_given_mmodules
= p1
;
341 /* method modelbuilder#ModelBuilder#run_phases for (self: ModelBuilder) */
342 void nitc__modelbuilder___ModelBuilder___run_phases(val
* self
) {
343 val
* var
/* : Array[MModule] */;
344 val
* var2
/* : Array[MModule] */;
345 val
* var3
/* : Array[nullable Object] */;
346 val
* var_mmodules
/* var mmodules: Array[MModule] */;
347 val
* var4
/* : Model */;
348 val
* var6
/* : Model */;
349 val
* var7
/* : POSet[MModule] */;
350 val
* var9
/* : POSet[MModule] */;
351 val
* var10
/* : Array[AModule] */;
352 val
* var_nmodules
/* var nmodules: Array[AModule] */;
353 val
* var_
/* var : Array[MModule] */;
354 val
* var11
/* : IndexedIterator[nullable Object] */;
355 val
* var_12
/* var : IndexedIterator[MModule] */;
356 short int var13
/* : Bool */;
357 val
* var14
/* : nullable Object */;
358 val
* var_mm
/* var mm: MModule */;
359 short int var15
/* : Bool */;
360 short int var17
/* : Bool */;
361 val
* var19
/* : nullable AModule */;
362 val
* var20
/* : ToolContext */;
363 val
* var22
/* : ToolContext */;
364 val
* var23
/* : ToolContext */;
365 val
* var25
/* : ToolContext */;
366 val
* var26
/* : OptionBool */;
367 val
* var28
/* : OptionBool */;
368 val
* var29
/* : nullable Object */;
369 val
* var31
/* : nullable Object */;
370 short int var32
/* : Bool */;
371 val
* var33
/* : ToolContext */;
372 val
* var35
/* : ToolContext */;
374 val
* var36
/* : String */;
375 char* var37
/* : NativeString */;
376 val
* var38
/* : String */;
377 val
* var39
/* : ToolContext */;
378 val
* var41
/* : ToolContext */;
380 { /* Inline loader#ModelBuilder#parsed_modules (self) on <self:ModelBuilder> */
381 var2
= self
->attrs
[COLOR_nitc__loader__ModelBuilder___parsed_modules
].val
; /* _parsed_modules on <self:ModelBuilder> */
382 if (unlikely(var2
== NULL
)) {
383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parsed_modules");
384 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader
, 320);
392 var3
= core__array___Collection___to_a(var
);
396 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
397 var6
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <self:ModelBuilder> */
398 if (unlikely(var6
== NULL
)) {
399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
400 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 44);
408 { /* Inline mmodule#Model#mmodule_importation_hierarchy (var4) on <var4:Model> */
409 var9
= var4
->attrs
[COLOR_nitc__mmodule__Model___mmodule_importation_hierarchy
].val
; /* _mmodule_importation_hierarchy on <var4:Model> */
410 if (unlikely(var9
== NULL
)) {
411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
412 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 34);
420 core___core__Comparator___sort(var7
, var_mmodules
); /* Direct call sorter#Comparator#sort on <var7:POSet[MModule]>*/
422 var10
= NEW_core__Array(&type_core__Array__nitc__AModule
);
424 core___core__Array___core__kernel__Object__init(var10
); /* Direct call array#Array#init on <var10:Array[AModule]>*/
426 var_nmodules
= var10
;
429 var11
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
434 var13
= ((short int(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_12
); /* is_ok on <var_12:IndexedIterator[MModule]>*/
441 var14
= ((val
*(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_12
); /* item on <var_12:IndexedIterator[MModule]>*/
445 { /* Inline model_base#MEntity#is_fictive (var_mm) on <var_mm:MModule> */
446 var17
= var_mm
->attrs
[COLOR_nitc__model_base__MEntity___is_fictive
].s
; /* _is_fictive on <var_mm:MModule> */
456 var19
= nitc__loader___ModelBuilder___mmodule2node(self
, var_mm
);
458 if (unlikely(var19
== NULL
)) {
459 PRINT_ERROR("Runtime error: %s", "Cast failed");
460 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder
, 97);
464 core___core__Array___core__abstract_collection__SimpleCollection__add(var_nmodules
, var19
); /* Direct call array#Array#add on <var_nmodules:Array[AModule]>*/
466 BREAK_label18
: (void)0;
468 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_12
); /* next on <var_12:IndexedIterator[MModule]>*/
471 BREAK_label
: (void)0;
473 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_12
); /* finish on <var_12:IndexedIterator[MModule]>*/
476 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
477 var22
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
478 if (unlikely(var22
== NULL
)) {
479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
480 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
488 nitc__phase___ToolContext___run_phases(var20
, var_nmodules
); /* Direct call phase#ToolContext#run_phases on <var20:ToolContext>*/
491 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
492 var25
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
493 if (unlikely(var25
== NULL
)) {
494 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
495 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
503 { /* Inline loader#ToolContext#opt_only_metamodel (var23) on <var23:ToolContext> */
504 var28
= var23
->attrs
[COLOR_nitc__loader__ToolContext___opt_only_metamodel
].val
; /* _opt_only_metamodel on <var23:ToolContext> */
505 if (unlikely(var28
== NULL
)) {
506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
507 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader
, 47);
515 { /* Inline opts#Option#value (var26) on <var26:OptionBool> */
516 var31
= var26
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var26:OptionBool> */
521 var32
= (short int)((long)(var29
)>>2);
524 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
525 var35
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
526 if (unlikely(var35
== NULL
)) {
527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
535 if (likely(varonce
!=NULL
)) {
538 var37
= "*** ONLY METAMODEL";
539 var38
= core__flat___NativeString___to_s_full(var37
, 18l, 18l);
544 nitc___nitc__ToolContext___info(var33
, var36
, 1l); /* Direct call toolcontext#ToolContext#info on <var33:ToolContext>*/
547 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
548 var41
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
549 if (unlikely(var41
== NULL
)) {
550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
551 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
559 nitc___nitc__ToolContext___quit(var39
); /* Direct call toolcontext#ToolContext#quit on <var39:ToolContext>*/