README: document nit_env.sh
[nit.git] / c_src / nit__platform.sep.1.c
1 #include "nit__platform.sep.0.h"
2 /* method platform#ToolContext#platform_from_name for (self: ToolContext, String): nullable Platform */
3 val* nit__platform___ToolContext___platform_from_name(val* self, val* p0) {
4 val* var /* : nullable Platform */;
5 val* var_name /* var name: String */;
6 var_name = p0;
7 var = ((val*)NULL);
8 goto RET_LABEL;
9 RET_LABEL:;
10 return var;
11 }
12 /* method platform#PlatformPhase#process_annotated_node for (self: PlatformPhase, ANode, AAnnotation) */
13 void nit__platform___nit__platform__PlatformPhase___nit__phase__Phase__process_annotated_node(val* self, val* p0, val* p1) {
14 val* var_nmoduledecl /* var nmoduledecl: ANode */;
15 val* var_nat /* var nat: AAnnotation */;
16 static val* varonce;
17 val* var /* : String */;
18 char* var1 /* : NativeString */;
19 val* var2 /* : FlatString */;
20 val* var_annotation_name /* var annotation_name: String */;
21 val* var3 /* : String */;
22 short int var4 /* : Bool */;
23 val* var_other /* var other: nullable Object */;
24 short int var6 /* : Bool */;
25 short int var7 /* : Bool */;
26 val* var8 /* : ToolContext */;
27 val* var10 /* : ToolContext */;
28 val* var11 /* : ModelBuilder */;
29 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
30 short int var12 /* : Bool */;
31 int cltype;
32 int idtype;
33 short int var13 /* : Bool */;
34 val* var15 /* : NativeArray[String] */;
35 static val* varonce14;
36 static val* varonce16;
37 val* var17 /* : String */;
38 char* var18 /* : NativeString */;
39 val* var19 /* : FlatString */;
40 static val* varonce20;
41 val* var21 /* : String */;
42 char* var22 /* : NativeString */;
43 val* var23 /* : FlatString */;
44 val* var24 /* : String */;
45 val* var25 /* : ANodes[AExpr] */;
46 val* var27 /* : ANodes[AExpr] */;
47 val* var_args /* var args: ANodes[AExpr] */;
48 long var28 /* : Int */;
49 short int var29 /* : Bool */;
50 short int var31 /* : Bool */;
51 int cltype32;
52 int idtype33;
53 const char* var_class_name;
54 short int var34 /* : Bool */;
55 val* var36 /* : NativeArray[String] */;
56 static val* varonce35;
57 static val* varonce37;
58 val* var38 /* : String */;
59 char* var39 /* : NativeString */;
60 val* var40 /* : FlatString */;
61 static val* varonce41;
62 val* var42 /* : String */;
63 char* var43 /* : NativeString */;
64 val* var44 /* : FlatString */;
65 val* var45 /* : String */;
66 short int var46 /* : Bool */;
67 val* var47 /* : AModuleName */;
68 val* var49 /* : AModuleName */;
69 val* var50 /* : String */;
70 val* var_platform_name /* var platform_name: nullable Object */;
71 val* var51 /* : nullable Object */;
72 val* var52 /* : nullable String */;
73 short int var53 /* : Bool */;
74 short int var54 /* : Bool */;
75 val* var56 /* : NativeArray[String] */;
76 static val* varonce55;
77 static val* varonce57;
78 val* var58 /* : String */;
79 char* var59 /* : NativeString */;
80 val* var60 /* : FlatString */;
81 static val* varonce61;
82 val* var62 /* : String */;
83 char* var63 /* : NativeString */;
84 val* var64 /* : FlatString */;
85 val* var65 /* : String */;
86 val* var_format_error /* var format_error: String */;
87 val* var66 /* : nullable ANode */;
88 val* var68 /* : nullable ANode */;
89 short int var69 /* : Bool */;
90 int cltype70;
91 int idtype71;
92 const char* var_class_name72;
93 val* var_nmodule /* var nmodule: AModule */;
94 val* var73 /* : nullable MModule */;
95 val* var75 /* : nullable MModule */;
96 val* var_mmodule /* var mmodule: nullable MModule */;
97 val* var76 /* : ToolContext */;
98 val* var78 /* : ToolContext */;
99 val* var79 /* : nullable Platform */;
100 val* var_platform /* var platform: nullable Platform */;
101 short int var80 /* : Bool */;
102 short int var81 /* : Bool */;
103 val* var_other83 /* var other: nullable Object */;
104 short int var84 /* : Bool */;
105 short int var86 /* : Bool */;
106 val* var87 /* : ToolContext */;
107 val* var89 /* : ToolContext */;
108 val* var90 /* : Location */;
109 val* var92 /* : Location */;
110 val* var94 /* : NativeArray[String] */;
111 static val* varonce93;
112 static val* varonce95;
113 val* var96 /* : String */;
114 char* var97 /* : NativeString */;
115 val* var98 /* : FlatString */;
116 static val* varonce99;
117 val* var100 /* : String */;
118 char* var101 /* : NativeString */;
119 val* var102 /* : FlatString */;
120 val* var103 /* : String */;
121 val* var104 /* : Message */;
122 val* var105 /* : nullable Platform */;
123 val* var_previous_target_platform /* var previous_target_platform: nullable Platform */;
124 short int var106 /* : Bool */;
125 short int var107 /* : Bool */;
126 short int var108 /* : Bool */;
127 short int var110 /* : Bool */;
128 short int var111 /* : Bool */;
129 short int var_ /* var : Bool */;
130 short int var112 /* : Bool */;
131 short int var114 /* : Bool */;
132 short int var115 /* : Bool */;
133 val* var117 /* : NativeArray[String] */;
134 static val* varonce116;
135 static val* varonce118;
136 val* var119 /* : String */;
137 char* var120 /* : NativeString */;
138 val* var121 /* : FlatString */;
139 static val* varonce122;
140 val* var123 /* : String */;
141 char* var124 /* : NativeString */;
142 val* var125 /* : FlatString */;
143 val* var126 /* : String */;
144 val* var127 /* : String */;
145 var_nmoduledecl = p0;
146 var_nat = p1;
147 if (likely(varonce!=NULL)) {
148 var = varonce;
149 } else {
150 var1 = "platform";
151 var2 = standard___standard__NativeString___to_s_with_length(var1, 8l);
152 var = var2;
153 varonce = var;
154 }
155 var_annotation_name = var;
156 {
157 var3 = nit___nit__AAnnotation___name(var_nat);
158 }
159 {
160 { /* Inline kernel#Object#!= (var3,var_annotation_name) on <var3:String> */
161 var_other = var_annotation_name;
162 {
163 var6 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var3, var_other); /* == on <var3:String>*/
164 }
165 var7 = !var6;
166 var4 = var7;
167 goto RET_LABEL5;
168 RET_LABEL5:(void)0;
169 }
170 }
171 if (var4){
172 goto RET_LABEL;
173 } else {
174 }
175 {
176 { /* Inline phase#Phase#toolcontext (self) on <self:PlatformPhase> */
177 var10 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:PlatformPhase> */
178 if (unlikely(var10 == NULL)) {
179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
180 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200);
181 fatal_exit(1);
182 }
183 var8 = var10;
184 RET_LABEL9:(void)0;
185 }
186 }
187 {
188 var11 = nit__modelbuilder_base___ToolContext___modelbuilder(var8);
189 }
190 var_modelbuilder = var11;
191 /* <var_nmoduledecl:ANode> isa AModuledecl */
192 cltype = type_nit__AModuledecl.color;
193 idtype = type_nit__AModuledecl.id;
194 if(cltype >= var_nmoduledecl->type->table_size) {
195 var12 = 0;
196 } else {
197 var12 = var_nmoduledecl->type->type_table[cltype] == idtype;
198 }
199 var13 = !var12;
200 if (var13){
201 if (unlikely(varonce14==NULL)) {
202 var15 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
203 if (likely(varonce16!=NULL)) {
204 var17 = varonce16;
205 } else {
206 var18 = "Syntax Error: only the declaration of modules may use `";
207 var19 = standard___standard__NativeString___to_s_with_length(var18, 55l);
208 var17 = var19;
209 varonce16 = var17;
210 }
211 ((struct instance_standard__NativeArray*)var15)->values[0]=var17;
212 if (likely(varonce20!=NULL)) {
213 var21 = varonce20;
214 } else {
215 var22 = "`.";
216 var23 = standard___standard__NativeString___to_s_with_length(var22, 2l);
217 var21 = var23;
218 varonce20 = var21;
219 }
220 ((struct instance_standard__NativeArray*)var15)->values[2]=var21;
221 } else {
222 var15 = varonce14;
223 varonce14 = NULL;
224 }
225 ((struct instance_standard__NativeArray*)var15)->values[1]=var_annotation_name;
226 {
227 var24 = ((val*(*)(val* self))(var15->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
228 }
229 varonce14 = var15;
230 {
231 nit___nit__ModelBuilder___error(var_modelbuilder, var_nat, var24); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
232 }
233 goto RET_LABEL;
234 } else {
235 }
236 {
237 { /* Inline parser_nodes#AAnnotation#n_args (var_nat) on <var_nat:AAnnotation> */
238 var27 = var_nat->attrs[COLOR_nit__parser_nodes__AAnnotation___n_args].val; /* _n_args on <var_nat:AAnnotation> */
239 if (unlikely(var27 == NULL)) {
240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
241 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2988);
242 fatal_exit(1);
243 }
244 var25 = var27;
245 RET_LABEL26:(void)0;
246 }
247 }
248 var_args = var25;
249 {
250 var28 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var_args);
251 }
252 {
253 { /* Inline kernel#Int#> (var28,1l) on <var28:Int> */
254 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
255 /* <1l:Int> isa OTHER */
256 var31 = 1; /* easy <1l:Int> isa OTHER*/
257 if (unlikely(!var31)) {
258 var_class_name = type_standard__Int.name;
259 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
260 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
261 fatal_exit(1);
262 }
263 var34 = var28 > 1l;
264 var29 = var34;
265 goto RET_LABEL30;
266 RET_LABEL30:(void)0;
267 }
268 }
269 if (var29){
270 if (unlikely(varonce35==NULL)) {
271 var36 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
272 if (likely(varonce37!=NULL)) {
273 var38 = varonce37;
274 } else {
275 var39 = "Syntax Error: `";
276 var40 = standard___standard__NativeString___to_s_with_length(var39, 15l);
277 var38 = var40;
278 varonce37 = var38;
279 }
280 ((struct instance_standard__NativeArray*)var36)->values[0]=var38;
281 if (likely(varonce41!=NULL)) {
282 var42 = varonce41;
283 } else {
284 var43 = "` expects at most a single argument.";
285 var44 = standard___standard__NativeString___to_s_with_length(var43, 36l);
286 var42 = var44;
287 varonce41 = var42;
288 }
289 ((struct instance_standard__NativeArray*)var36)->values[2]=var42;
290 } else {
291 var36 = varonce35;
292 varonce35 = NULL;
293 }
294 ((struct instance_standard__NativeArray*)var36)->values[1]=var_annotation_name;
295 {
296 var45 = ((val*(*)(val* self))(var36->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var36); /* native_to_s on <var36:NativeArray[String]>*/
297 }
298 varonce35 = var36;
299 {
300 nit___nit__ModelBuilder___error(var_modelbuilder, var_nat, var45); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
301 }
302 goto RET_LABEL;
303 } else {
304 {
305 var46 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var_args);
306 }
307 if (var46){
308 {
309 { /* Inline parser_nodes#AModuledecl#n_name (var_nmoduledecl) on <var_nmoduledecl:ANode(AModuledecl)> */
310 var49 = var_nmoduledecl->attrs[COLOR_nit__parser_nodes__AModuledecl___n_name].val; /* _n_name on <var_nmoduledecl:ANode(AModuledecl)> */
311 if (unlikely(var49 == NULL)) {
312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
313 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1120);
314 fatal_exit(1);
315 }
316 var47 = var49;
317 RET_LABEL48:(void)0;
318 }
319 }
320 {
321 var50 = nit__parser_work___Prod___collect_text(var47);
322 }
323 var_platform_name = var50;
324 } else {
325 {
326 var51 = standard___standard__SequenceRead___Collection__first(var_args);
327 }
328 {
329 var52 = nit__literal___AExpr___as_string(var51);
330 }
331 var_platform_name = var52;
332 if (var_platform_name == NULL) {
333 var53 = 1; /* is null */
334 } else {
335 var53 = 0; /* arg is null but recv is not */
336 }
337 if (0) {
338 var54 = ((short int(*)(val* self, val* p0))(var_platform_name->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_platform_name, ((val*)NULL)); /* == on <var_platform_name:nullable Object(nullable String)>*/
339 var53 = var54;
340 }
341 if (var53){
342 if (unlikely(varonce55==NULL)) {
343 var56 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
344 if (likely(varonce57!=NULL)) {
345 var58 = varonce57;
346 } else {
347 var59 = "Syntax Error: `";
348 var60 = standard___standard__NativeString___to_s_with_length(var59, 15l);
349 var58 = var60;
350 varonce57 = var58;
351 }
352 ((struct instance_standard__NativeArray*)var56)->values[0]=var58;
353 if (likely(varonce61!=NULL)) {
354 var62 = varonce61;
355 } else {
356 var63 = "` expects its argument to be the name of the target platform as a String literal.";
357 var64 = standard___standard__NativeString___to_s_with_length(var63, 81l);
358 var62 = var64;
359 varonce61 = var62;
360 }
361 ((struct instance_standard__NativeArray*)var56)->values[2]=var62;
362 } else {
363 var56 = varonce55;
364 varonce55 = NULL;
365 }
366 ((struct instance_standard__NativeArray*)var56)->values[1]=var_annotation_name;
367 {
368 var65 = ((val*(*)(val* self))(var56->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var56); /* native_to_s on <var56:NativeArray[String]>*/
369 }
370 varonce55 = var56;
371 var_format_error = var65;
372 {
373 nit___nit__ModelBuilder___error(var_modelbuilder, var_nat, var_format_error); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
374 }
375 goto RET_LABEL;
376 } else {
377 }
378 }
379 }
380 {
381 { /* Inline parser_nodes#ANode#parent (var_nmoduledecl) on <var_nmoduledecl:ANode(AModuledecl)> */
382 var68 = var_nmoduledecl->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <var_nmoduledecl:ANode(AModuledecl)> */
383 var66 = var68;
384 RET_LABEL67:(void)0;
385 }
386 }
387 /* <var66:nullable ANode> isa AModule */
388 cltype70 = type_nit__AModule.color;
389 idtype71 = type_nit__AModule.id;
390 if(var66 == NULL) {
391 var69 = 0;
392 } else {
393 if(cltype70 >= var66->type->table_size) {
394 var69 = 0;
395 } else {
396 var69 = var66->type->type_table[cltype70] == idtype71;
397 }
398 }
399 if (unlikely(!var69)) {
400 var_class_name72 = var66 == NULL ? "null" : var66->type->name;
401 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name72);
402 PRINT_ERROR(" (%s:%d)\n", FILE_nit__platform, 67);
403 fatal_exit(1);
404 }
405 var_nmodule = var66;
406 {
407 { /* Inline loader#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
408 var75 = var_nmodule->attrs[COLOR_nit__loader__AModule___mmodule].val; /* _mmodule on <var_nmodule:AModule> */
409 var73 = var75;
410 RET_LABEL74:(void)0;
411 }
412 }
413 var_mmodule = var73;
414 {
415 { /* Inline phase#Phase#toolcontext (self) on <self:PlatformPhase> */
416 var78 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:PlatformPhase> */
417 if (unlikely(var78 == NULL)) {
418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
419 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200);
420 fatal_exit(1);
421 }
422 var76 = var78;
423 RET_LABEL77:(void)0;
424 }
425 }
426 {
427 var79 = nit__platform___ToolContext___platform_from_name(var76, var_platform_name);
428 }
429 var_platform = var79;
430 if (var_platform == NULL) {
431 var80 = 1; /* is null */
432 } else {
433 var80 = 0; /* arg is null but recv is not */
434 }
435 if (0) {
436 { /* Inline kernel#Object#== (var_platform,((val*)NULL)) on <var_platform:nullable Platform> */
437 var_other83 = ((val*)NULL);
438 {
439 { /* Inline kernel#Object#is_same_instance (var_platform,var_other83) on <var_platform:nullable Platform(Platform)> */
440 var86 = var_platform == var_other83;
441 var84 = var86;
442 goto RET_LABEL85;
443 RET_LABEL85:(void)0;
444 }
445 }
446 var81 = var84;
447 goto RET_LABEL82;
448 RET_LABEL82:(void)0;
449 }
450 var80 = var81;
451 }
452 if (var80){
453 {
454 { /* Inline phase#Phase#toolcontext (self) on <self:PlatformPhase> */
455 var89 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:PlatformPhase> */
456 if (unlikely(var89 == NULL)) {
457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
458 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200);
459 fatal_exit(1);
460 }
461 var87 = var89;
462 RET_LABEL88:(void)0;
463 }
464 }
465 {
466 { /* Inline parser_nodes#ANode#location (var_nat) on <var_nat:AAnnotation> */
467 var92 = var_nat->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_nat:AAnnotation> */
468 if (unlikely(var92 == NULL)) {
469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
470 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
471 fatal_exit(1);
472 }
473 var90 = var92;
474 RET_LABEL91:(void)0;
475 }
476 }
477 if (unlikely(varonce93==NULL)) {
478 var94 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
479 if (likely(varonce95!=NULL)) {
480 var96 = varonce95;
481 } else {
482 var97 = "Error: target platform `";
483 var98 = standard___standard__NativeString___to_s_with_length(var97, 24l);
484 var96 = var98;
485 varonce95 = var96;
486 }
487 ((struct instance_standard__NativeArray*)var94)->values[0]=var96;
488 if (likely(varonce99!=NULL)) {
489 var100 = varonce99;
490 } else {
491 var101 = "` unknown.";
492 var102 = standard___standard__NativeString___to_s_with_length(var101, 10l);
493 var100 = var102;
494 varonce99 = var100;
495 }
496 ((struct instance_standard__NativeArray*)var94)->values[2]=var100;
497 } else {
498 var94 = varonce93;
499 varonce93 = NULL;
500 }
501 ((struct instance_standard__NativeArray*)var94)->values[1]=var_platform_name;
502 {
503 var103 = ((val*(*)(val* self))(var94->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var94); /* native_to_s on <var94:NativeArray[String]>*/
504 }
505 varonce93 = var94;
506 {
507 var104 = nit___nit__ToolContext___error(var87, var90, var103);
508 }
509 goto RET_LABEL;
510 } else {
511 }
512 if (var_mmodule == NULL) {
513 PRINT_ERROR("Runtime error: %s", "Receiver is null");
514 PRINT_ERROR(" (%s:%d)\n", FILE_nit__platform, 76);
515 fatal_exit(1);
516 } else {
517 var105 = nit__platform___MModule___target_platform(var_mmodule);
518 }
519 var_previous_target_platform = var105;
520 if (var_previous_target_platform == NULL) {
521 var107 = 0; /* is null */
522 } else {
523 var107 = 1; /* arg is null and recv is not */
524 }
525 if (0) {
526 { /* Inline kernel#Object#!= (var_previous_target_platform,((val*)NULL)) on <var_previous_target_platform:nullable Platform> */
527 var_other = ((val*)NULL);
528 {
529 var110 = ((short int(*)(val* self, val* p0))(var_previous_target_platform->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_previous_target_platform, var_other); /* == on <var_previous_target_platform:nullable Platform(Platform)>*/
530 }
531 var111 = !var110;
532 var108 = var111;
533 goto RET_LABEL109;
534 RET_LABEL109:(void)0;
535 }
536 var107 = var108;
537 }
538 var_ = var107;
539 if (var107){
540 {
541 { /* Inline kernel#Object#!= (var_previous_target_platform,var_platform) on <var_previous_target_platform:nullable Platform(Platform)> */
542 var_other = var_platform;
543 {
544 var114 = ((short int(*)(val* self, val* p0))(var_previous_target_platform->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_previous_target_platform, var_other); /* == on <var_previous_target_platform:nullable Platform(Platform)>*/
545 }
546 var115 = !var114;
547 var112 = var115;
548 goto RET_LABEL113;
549 RET_LABEL113:(void)0;
550 }
551 }
552 var106 = var112;
553 } else {
554 var106 = var_;
555 }
556 if (var106){
557 if (unlikely(varonce116==NULL)) {
558 var117 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
559 if (likely(varonce118!=NULL)) {
560 var119 = varonce118;
561 } else {
562 var120 = "Syntax Error: a target platform has already been defined as `";
563 var121 = standard___standard__NativeString___to_s_with_length(var120, 61l);
564 var119 = var121;
565 varonce118 = var119;
566 }
567 ((struct instance_standard__NativeArray*)var117)->values[0]=var119;
568 if (likely(varonce122!=NULL)) {
569 var123 = varonce122;
570 } else {
571 var124 = "`.";
572 var125 = standard___standard__NativeString___to_s_with_length(var124, 2l);
573 var123 = var125;
574 varonce122 = var123;
575 }
576 ((struct instance_standard__NativeArray*)var117)->values[2]=var123;
577 } else {
578 var117 = varonce116;
579 varonce116 = NULL;
580 }
581 {
582 var126 = ((val*(*)(val* self))(var_previous_target_platform->class->vft[COLOR_standard__string__Object__to_s]))(var_previous_target_platform); /* to_s on <var_previous_target_platform:nullable Platform(Platform)>*/
583 }
584 ((struct instance_standard__NativeArray*)var117)->values[1]=var126;
585 {
586 var127 = ((val*(*)(val* self))(var117->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var117); /* native_to_s on <var117:NativeArray[String]>*/
587 }
588 varonce116 = var117;
589 {
590 nit___nit__ModelBuilder___error(var_modelbuilder, var_nat, var127); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
591 }
592 } else {
593 }
594 if (var_mmodule == NULL) {
595 PRINT_ERROR("Runtime error: %s", "Receiver is null");
596 PRINT_ERROR(" (%s:%d)\n", FILE_nit__platform, 81);
597 fatal_exit(1);
598 } else {
599 { /* Inline platform#MModule#local_target_platform= (var_mmodule,var_platform) on <var_mmodule:nullable MModule> */
600 if (unlikely(var_mmodule == NULL)) {
601 PRINT_ERROR("Runtime error: %s", "Receiver is null");
602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__platform, 86);
603 fatal_exit(1);
604 }
605 var_mmodule->attrs[COLOR_nit__platform__MModule___local_target_platform].val = var_platform; /* _local_target_platform on <var_mmodule:nullable MModule> */
606 RET_LABEL128:(void)0;
607 }
608 }
609 RET_LABEL:;
610 }
611 /* method platform#MModule#local_target_platform for (self: MModule): nullable Platform */
612 val* nit__platform___MModule___local_target_platform(val* self) {
613 val* var /* : nullable Platform */;
614 val* var1 /* : nullable Platform */;
615 var1 = self->attrs[COLOR_nit__platform__MModule___local_target_platform].val; /* _local_target_platform on <self:MModule> */
616 var = var1;
617 RET_LABEL:;
618 return var;
619 }
620 /* method platform#MModule#local_target_platform= for (self: MModule, nullable Platform) */
621 void nit__platform___MModule___local_target_platform_61d(val* self, val* p0) {
622 self->attrs[COLOR_nit__platform__MModule___local_target_platform].val = p0; /* _local_target_platform on <self:MModule> */
623 RET_LABEL:;
624 }
625 /* method platform#MModule#target_platform for (self: MModule): nullable Platform */
626 val* nit__platform___MModule___target_platform(val* self) {
627 val* var /* : nullable Platform */;
628 val* var1 /* : nullable Platform */;
629 val* var3 /* : nullable Platform */;
630 val* var_ltp /* var ltp: nullable Platform */;
631 short int var4 /* : Bool */;
632 short int var5 /* : Bool */;
633 val* var_other /* var other: nullable Object */;
634 short int var7 /* : Bool */;
635 short int var8 /* : Bool */;
636 val* var9 /* : POSetElement[MModule] */;
637 val* var11 /* : POSetElement[MModule] */;
638 val* var12 /* : Collection[nullable Object] */;
639 val* var_ /* var : Collection[MModule] */;
640 val* var13 /* : Iterator[nullable Object] */;
641 val* var_14 /* var : Iterator[MModule] */;
642 short int var15 /* : Bool */;
643 val* var16 /* : nullable Object */;
644 val* var_mmodule /* var mmodule: MModule */;
645 val* var17 /* : nullable Platform */;
646 val* var19 /* : nullable Platform */;
647 short int var20 /* : Bool */;
648 short int var21 /* : Bool */;
649 short int var23 /* : Bool */;
650 short int var24 /* : Bool */;
651 {
652 { /* Inline platform#MModule#local_target_platform (self) on <self:MModule> */
653 var3 = self->attrs[COLOR_nit__platform__MModule___local_target_platform].val; /* _local_target_platform on <self:MModule> */
654 var1 = var3;
655 RET_LABEL2:(void)0;
656 }
657 }
658 var_ltp = var1;
659 if (var_ltp == NULL) {
660 var4 = 0; /* is null */
661 } else {
662 var4 = 1; /* arg is null and recv is not */
663 }
664 if (0) {
665 { /* Inline kernel#Object#!= (var_ltp,((val*)NULL)) on <var_ltp:nullable Platform> */
666 var_other = ((val*)NULL);
667 {
668 var7 = ((short int(*)(val* self, val* p0))(var_ltp->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ltp, var_other); /* == on <var_ltp:nullable Platform(Platform)>*/
669 }
670 var8 = !var7;
671 var5 = var8;
672 goto RET_LABEL6;
673 RET_LABEL6:(void)0;
674 }
675 var4 = var5;
676 }
677 if (var4){
678 var = var_ltp;
679 goto RET_LABEL;
680 } else {
681 }
682 {
683 { /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
684 var11 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
685 if (unlikely(var11 == NULL)) {
686 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
687 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96);
688 fatal_exit(1);
689 }
690 var9 = var11;
691 RET_LABEL10:(void)0;
692 }
693 }
694 {
695 var12 = poset___poset__POSetElement___greaters(var9);
696 }
697 var_ = var12;
698 {
699 var13 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[MModule]>*/
700 }
701 var_14 = var13;
702 for(;;) {
703 {
704 var15 = ((short int(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_14); /* is_ok on <var_14:Iterator[MModule]>*/
705 }
706 if (var15){
707 {
708 var16 = ((val*(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_14); /* item on <var_14:Iterator[MModule]>*/
709 }
710 var_mmodule = var16;
711 {
712 { /* Inline platform#MModule#local_target_platform (var_mmodule) on <var_mmodule:MModule> */
713 var19 = var_mmodule->attrs[COLOR_nit__platform__MModule___local_target_platform].val; /* _local_target_platform on <var_mmodule:MModule> */
714 var17 = var19;
715 RET_LABEL18:(void)0;
716 }
717 }
718 var_ltp = var17;
719 if (var_ltp == NULL) {
720 var20 = 0; /* is null */
721 } else {
722 var20 = 1; /* arg is null and recv is not */
723 }
724 if (0) {
725 { /* Inline kernel#Object#!= (var_ltp,((val*)NULL)) on <var_ltp:nullable Platform> */
726 var_other = ((val*)NULL);
727 {
728 var23 = ((short int(*)(val* self, val* p0))(var_ltp->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ltp, var_other); /* == on <var_ltp:nullable Platform(Platform)>*/
729 }
730 var24 = !var23;
731 var21 = var24;
732 goto RET_LABEL22;
733 RET_LABEL22:(void)0;
734 }
735 var20 = var21;
736 }
737 if (var20){
738 var = var_ltp;
739 goto RET_LABEL;
740 } else {
741 }
742 {
743 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_14); /* next on <var_14:Iterator[MModule]>*/
744 }
745 } else {
746 goto BREAK_label;
747 }
748 }
749 BREAK_label: (void)0;
750 {
751 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_14); /* finish on <var_14:Iterator[MModule]>*/
752 }
753 var = ((val*)NULL);
754 goto RET_LABEL;
755 RET_LABEL:;
756 return var;
757 }
758 /* method platform#Platform#supports_libunwind for (self: Platform): Bool */
759 short int nit___nit__Platform___supports_libunwind(val* self) {
760 short int var /* : Bool */;
761 var = 1;
762 goto RET_LABEL;
763 RET_LABEL:;
764 return var;
765 }
766 /* method platform#Platform#supports_libgc for (self: Platform): Bool */
767 short int nit___nit__Platform___supports_libgc(val* self) {
768 short int var /* : Bool */;
769 var = 1;
770 goto RET_LABEL;
771 RET_LABEL:;
772 return var;
773 }
774 /* method platform#Platform#no_main for (self: Platform): Bool */
775 short int nit___nit__Platform___no_main(val* self) {
776 short int var /* : Bool */;
777 var = 0;
778 goto RET_LABEL;
779 RET_LABEL:;
780 return var;
781 }
782 /* method platform#Platform#supports_linker_script for (self: Platform): Bool */
783 short int nit___nit__Platform___supports_linker_script(val* self) {
784 short int var /* : Bool */;
785 var = 1;
786 goto RET_LABEL;
787 RET_LABEL:;
788 return var;
789 }