README: document nit_env.sh
[nit.git] / c_src / nit__modelbuilder.sep.1.c
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);
10 fatal_exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
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] */;
24 {
25 ((void(*)(val* self))(self->class->vft[COLOR_nit__modelbuilder___ToolContext___standard__kernel__Object__init]))(self); /* init on <self:ToolContext>*/
26 }
27 {
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);
33 fatal_exit(1);
34 }
35 var = var2;
36 RET_LABEL1:(void)0;
37 }
38 }
39 {
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);
45 fatal_exit(1);
46 }
47 var3 = var5;
48 RET_LABEL4:(void)0;
49 }
50 }
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;
55 {
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]>*/
57 }
58 }
59 {
60 opts___opts__OptionContext___add_option(var, var6); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
61 }
62 RET_LABEL:;
63 }
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 */;
83 static val* varonce;
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 */;
94 var_mmodules = p0;
95 {
96 var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules);
97 }
98 var2 = !var1;
99 if (unlikely(!var2)) {
100 PRINT_ERROR("Runtime error: %s", "Assert failed");
101 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder, 39);
102 fatal_exit(1);
103 }
104 {
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]> */
107 var3 = var5;
108 RET_LABEL4:(void)0;
109 }
110 }
111 {
112 { /* Inline kernel#Int#== (var3,1l) on <var3:Int> */
113 var8 = var3 == 1l;
114 var6 = var8;
115 goto RET_LABEL7;
116 RET_LABEL7:(void)0;
117 }
118 }
119 if (var6){
120 {
121 var9 = standard___standard__SequenceRead___Collection__first(var_mmodules);
122 }
123 var_mainmodule = var9;
124 } else {
125 var10 = NEW_nit__MModule(&type_nit__MModule);
126 {
127 var11 = nit__modelbuilder_base___ToolContext___modelbuilder(self);
128 }
129 {
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);
135 fatal_exit(1);
136 }
137 var12 = var14;
138 RET_LABEL13:(void)0;
139 }
140 }
141 {
142 var15 = standard___standard__SequenceRead___Collection__first(var_mmodules);
143 }
144 {
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);
150 fatal_exit(1);
151 }
152 var16 = var18;
153 RET_LABEL17:(void)0;
154 }
155 }
156 if (likely(varonce!=NULL)) {
157 var19 = varonce;
158 } else {
159 var20 = "-m";
160 var21 = standard___standard__NativeString___to_s_with_length(var20, 2l);
161 var19 = var21;
162 varonce = var19;
163 }
164 {
165 var22 = ((val*(*)(val* self, val* p0))(var16->class->vft[COLOR_standard__string__String___43d]))(var16, var19); /* + on <var16:String>*/
166 }
167 var23 = NEW_nit__Location(&type_nit__Location);
168 {
169 var24 = standard___standard__SequenceRead___Collection__first(var_mmodules);
170 }
171 {
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);
177 fatal_exit(1);
178 }
179 var25 = var27;
180 RET_LABEL26:(void)0;
181 }
182 }
183 {
184 { /* Inline location#Location#file (var25) on <var25:Location> */
185 var30 = var25->attrs[COLOR_nit__location__Location___file].val; /* _file on <var25:Location> */
186 var28 = var30;
187 RET_LABEL29:(void)0;
188 }
189 }
190 {
191 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nit__location__Location__file_61d]))(var23, var28); /* file= on <var23:Location>*/
192 }
193 {
194 ((void(*)(val* self, long p0))(var23->class->vft[COLOR_nit__location__Location__line_start_61d]))(var23, 0l); /* line_start= on <var23:Location>*/
195 }
196 {
197 ((void(*)(val* self, long p0))(var23->class->vft[COLOR_nit__location__Location__line_end_61d]))(var23, 0l); /* line_end= on <var23:Location>*/
198 }
199 {
200 ((void(*)(val* self, long p0))(var23->class->vft[COLOR_nit__location__Location__column_start_61d]))(var23, 0l); /* column_start= on <var23:Location>*/
201 }
202 {
203 ((void(*)(val* self, long p0))(var23->class->vft[COLOR_nit__location__Location__column_end_61d]))(var23, 0l); /* column_end= on <var23:Location>*/
204 }
205 {
206 ((void(*)(val* self))(var23->class->vft[COLOR_standard__kernel__Object__init]))(var23); /* init on <var23:Location>*/
207 }
208 {
209 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nit__mmodule__MModule__model_61d]))(var10, var12); /* model= on <var10:MModule>*/
210 }
211 {
212 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nit__mmodule__MModule__mgroup_61d]))(var10, ((val*)NULL)); /* mgroup= on <var10:MModule>*/
213 }
214 {
215 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nit__mmodule__MModule__name_61d]))(var10, var22); /* name= on <var10:MModule>*/
216 }
217 {
218 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nit__mmodule__MModule__location_61d]))(var10, var23); /* location= on <var10:MModule>*/
219 }
220 {
221 ((void(*)(val* self))(var10->class->vft[COLOR_standard__kernel__Object__init]))(var10); /* init on <var10:MModule>*/
222 }
223 var_mainmodule = var10;
224 {
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)> */
227 RET_LABEL31:(void)0;
228 }
229 }
230 {
231 nit___nit__MModule___set_imported_mmodules(var_mainmodule, var_mmodules); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/
232 }
233 }
234 var = var_mainmodule;
235 goto RET_LABEL;
236 RET_LABEL:;
237 return var;
238 }
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 */;
256 var_mmodules = p0;
257 {
258 var = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules);
259 }
260 var1 = !var;
261 if (var1){
262 {
263 var2 = nit__mixin___ToolContext___make_main_module(self, var_mmodules);
264 }
265 var_mainmodule = var2;
266 {
267 var3 = nit__phase___ToolContext___phases_list(self);
268 }
269 var_ = var3;
270 {
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]>*/
272 }
273 var_5 = var4;
274 for(;;) {
275 {
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]>*/
277 }
278 if (var6){
279 {
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]>*/
281 }
282 var_phase = var7;
283 {
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> */
286 var8 = var10;
287 RET_LABEL9:(void)0;
288 }
289 }
290 if (var8){
291 goto BREAK_label;
292 } else {
293 }
294 {
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>*/
296 }
297 BREAK_label: (void)0;
298 {
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]>*/
300 }
301 } else {
302 goto BREAK_label11;
303 }
304 }
305 BREAK_label11: (void)0;
306 {
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]>*/
308 }
309 } else {
310 }
311 {
312 var12 = nit___nit__ToolContext___check_errors(self);
313 }
314 {
315 nit___nit__ToolContext___errors_info(self); /* Direct call toolcontext#ToolContext#errors_info on <self:ToolContext>*/
316 }
317 RET_LABEL:;
318 }
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] */;
323 var_mainmodule = p0;
324 var_given_mmodules = p1;
325 RET_LABEL:;
326 }
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 */;
361 static val* varonce;
362 val* var39 /* : String */;
363 char* var40 /* : NativeString */;
364 val* var41 /* : FlatString */;
365 val* var42 /* : Sys */;
366 {
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);
372 fatal_exit(1);
373 }
374 var = var2;
375 RET_LABEL1:(void)0;
376 }
377 }
378 {
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);
384 fatal_exit(1);
385 }
386 var3 = var5;
387 RET_LABEL4:(void)0;
388 }
389 }
390 {
391 var6 = standard__array___Collection___to_a(var3);
392 }
393 var_mmodules = var6;
394 {
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);
400 fatal_exit(1);
401 }
402 var7 = var9;
403 RET_LABEL8:(void)0;
404 }
405 }
406 {
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);
412 fatal_exit(1);
413 }
414 var10 = var12;
415 RET_LABEL11:(void)0;
416 }
417 }
418 {
419 standard___standard__Comparator___sort(var10, var_mmodules); /* Direct call sorter#Comparator#sort on <var10:POSet[MModule]>*/
420 }
421 var13 = NEW_standard__Array(&type_standard__Array__nit__AModule);
422 {
423 standard___standard__Array___standard__kernel__Object__init(var13); /* Direct call array#Array#init on <var13:Array[AModule]>*/
424 }
425 var_nmodules = var13;
426 var_ = var_mmodules;
427 {
428 var14 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
429 }
430 var_15 = var14;
431 for(;;) {
432 {
433 var16 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_15);
434 }
435 if (var16){
436 {
437 var17 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_15);
438 }
439 var_mm = var17;
440 {
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> */
443 var18 = var20;
444 RET_LABEL19:(void)0;
445 }
446 }
447 if (var18){
448 goto BREAK_label;
449 } else {
450 }
451 {
452 var21 = nit__loader___ModelBuilder___mmodule2node(self, var_mm);
453 }
454 if (unlikely(var21 == NULL)) {
455 PRINT_ERROR("Runtime error: %s", "Cast failed");
456 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder, 95);
457 fatal_exit(1);
458 }
459 {
460 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_nmodules, var21); /* Direct call array#Array#add on <var_nmodules:Array[AModule]>*/
461 }
462 BREAK_label: (void)0;
463 {
464 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_15); /* Direct call array#ArrayIterator#next on <var_15:ArrayIterator[MModule]>*/
465 }
466 } else {
467 goto BREAK_label22;
468 }
469 }
470 BREAK_label22: (void)0;
471 {
472 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_15); /* Direct call array#ArrayIterator#finish on <var_15:ArrayIterator[MModule]>*/
473 }
474 {
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);
480 fatal_exit(1);
481 }
482 var23 = var25;
483 RET_LABEL24:(void)0;
484 }
485 }
486 {
487 nit__phase___ToolContext___run_phases(var23, var_nmodules); /* Direct call phase#ToolContext#run_phases on <var23:ToolContext>*/
488 }
489 {
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);
495 fatal_exit(1);
496 }
497 var26 = var28;
498 RET_LABEL27:(void)0;
499 }
500 }
501 {
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);
507 fatal_exit(1);
508 }
509 var29 = var31;
510 RET_LABEL30:(void)0;
511 }
512 }
513 {
514 { /* Inline opts#Option#value (var29) on <var29:OptionBool> */
515 var34 = var29->attrs[COLOR_opts__Option___value].val; /* _value on <var29:OptionBool> */
516 var32 = var34;
517 RET_LABEL33:(void)0;
518 }
519 }
520 var35 = (short int)((long)(var32)>>2);
521 if (var35){
522 {
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);
528 fatal_exit(1);
529 }
530 var36 = var38;
531 RET_LABEL37:(void)0;
532 }
533 }
534 if (likely(varonce!=NULL)) {
535 var39 = varonce;
536 } else {
537 var40 = "*** ONLY METAMODEL";
538 var41 = standard___standard__NativeString___to_s_with_length(var40, 18l);
539 var39 = var41;
540 varonce = var39;
541 }
542 {
543 nit___nit__ToolContext___info(var36, var39, 1l); /* Direct call toolcontext#ToolContext#info on <var36:ToolContext>*/
544 }
545 var42 = glob_sys;
546 {
547 { /* Inline kernel#Sys#exit (var42,0l) on <var42:Sys> */
548 exit(0l);
549 RET_LABEL43:(void)0;
550 }
551 }
552 } else {
553 }
554 RET_LABEL:;
555 }