Makefile: clean the clean recipes
[nit.git] / c_src / platform.sep.1.c
1 #include "platform.sep.0.h"
2 /* method platform#ToolContext#platform_from_name for (self: ToolContext, String): nullable Platform */
3 val* platform__ToolContext__platform_from_name(val* self, val* p0) {
4 val* var /* : nullable Platform */;
5 val* var_name /* var name: String */;
6 val* var1 /* : null */;
7 var_name = p0;
8 var1 = NULL;
9 var = var1;
10 goto RET_LABEL;
11 RET_LABEL:;
12 return var;
13 }
14 /* method platform#ToolContext#platform_from_name for (self: Object, String): nullable Platform */
15 val* VIRTUAL_platform__ToolContext__platform_from_name(val* self, val* p0) {
16 val* var /* : nullable Platform */;
17 val* var1 /* : nullable Platform */;
18 var1 = platform__ToolContext__platform_from_name(self, p0);
19 var = var1;
20 RET_LABEL:;
21 return var;
22 }
23 /* method platform#PlatformPhase#process_annotated_node for (self: PlatformPhase, ANode, AAnnotation) */
24 void platform__PlatformPhase__process_annotated_node(val* self, val* p0, val* p1) {
25 val* var_nmoduledecl /* var nmoduledecl: ANode */;
26 val* var_nat /* var nat: AAnnotation */;
27 static val* varonce;
28 val* var /* : String */;
29 char* var1 /* : NativeString */;
30 long var2 /* : Int */;
31 val* var3 /* : FlatString */;
32 val* var_annotation_name /* var annotation_name: String */;
33 val* var4 /* : String */;
34 short int var5 /* : Bool */;
35 short int var6 /* : Bool */;
36 val* var_other /* var other: nullable Object */;
37 short int var8 /* : Bool */;
38 short int var9 /* : Bool */;
39 short int var10 /* : Bool */;
40 val* var11 /* : ToolContext */;
41 val* var13 /* : ToolContext */;
42 val* var14 /* : ModelBuilder */;
43 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
44 short int var15 /* : Bool */;
45 int cltype;
46 int idtype;
47 short int var16 /* : Bool */;
48 static val* varonce17;
49 val* var18 /* : String */;
50 char* var19 /* : NativeString */;
51 long var20 /* : Int */;
52 val* var21 /* : FlatString */;
53 static val* varonce22;
54 val* var23 /* : String */;
55 char* var24 /* : NativeString */;
56 long var25 /* : Int */;
57 val* var26 /* : FlatString */;
58 val* var27 /* : Array[Object] */;
59 long var28 /* : Int */;
60 val* var29 /* : NativeArray[Object] */;
61 val* var30 /* : String */;
62 val* var31 /* : ANodes[AAtArg] */;
63 val* var33 /* : ANodes[AAtArg] */;
64 val* var_args /* var args: ANodes[AAtArg] */;
65 long var34 /* : Int */;
66 long var35 /* : Int */;
67 short int var36 /* : Bool */;
68 short int var38 /* : Bool */;
69 int cltype39;
70 int idtype40;
71 const char* var_class_name;
72 short int var41 /* : Bool */;
73 static val* varonce42;
74 val* var43 /* : String */;
75 char* var44 /* : NativeString */;
76 long var45 /* : Int */;
77 val* var46 /* : FlatString */;
78 static val* varonce47;
79 val* var48 /* : String */;
80 char* var49 /* : NativeString */;
81 long var50 /* : Int */;
82 val* var51 /* : FlatString */;
83 val* var52 /* : Array[Object] */;
84 long var53 /* : Int */;
85 val* var54 /* : NativeArray[Object] */;
86 val* var55 /* : String */;
87 short int var56 /* : Bool */;
88 val* var57 /* : AModuleName */;
89 val* var58 /* : String */;
90 val* var_platform_name /* var platform_name: nullable Object */;
91 val* var59 /* : nullable Object */;
92 val* var60 /* : nullable String */;
93 val* var61 /* : null */;
94 short int var62 /* : Bool */;
95 short int var63 /* : Bool */;
96 static val* varonce64;
97 val* var65 /* : String */;
98 char* var66 /* : NativeString */;
99 long var67 /* : Int */;
100 val* var68 /* : FlatString */;
101 static val* varonce69;
102 val* var70 /* : String */;
103 char* var71 /* : NativeString */;
104 long var72 /* : Int */;
105 val* var73 /* : FlatString */;
106 val* var74 /* : Array[Object] */;
107 long var75 /* : Int */;
108 val* var76 /* : NativeArray[Object] */;
109 val* var77 /* : String */;
110 val* var_format_error /* var format_error: String */;
111 val* var78 /* : nullable ANode */;
112 val* var80 /* : nullable ANode */;
113 short int var81 /* : Bool */;
114 int cltype82;
115 int idtype83;
116 const char* var_class_name84;
117 val* var_nmodule /* var nmodule: AModule */;
118 val* var85 /* : nullable MModule */;
119 val* var87 /* : nullable MModule */;
120 val* var_mmodule /* var mmodule: nullable MModule */;
121 val* var88 /* : ToolContext */;
122 val* var90 /* : ToolContext */;
123 val* var91 /* : nullable Platform */;
124 val* var_platform /* var platform: nullable Platform */;
125 val* var92 /* : null */;
126 short int var93 /* : Bool */;
127 short int var94 /* : Bool */;
128 val* var95 /* : ToolContext */;
129 val* var97 /* : ToolContext */;
130 val* var98 /* : Location */;
131 static val* varonce99;
132 val* var100 /* : String */;
133 char* var101 /* : NativeString */;
134 long var102 /* : Int */;
135 val* var103 /* : FlatString */;
136 static val* varonce104;
137 val* var105 /* : String */;
138 char* var106 /* : NativeString */;
139 long var107 /* : Int */;
140 val* var108 /* : FlatString */;
141 val* var109 /* : Array[Object] */;
142 long var110 /* : Int */;
143 val* var111 /* : NativeArray[Object] */;
144 val* var112 /* : String */;
145 val* var113 /* : nullable Platform */;
146 val* var_previous_target_platform /* var previous_target_platform: nullable Platform */;
147 short int var114 /* : Bool */;
148 val* var115 /* : null */;
149 short int var116 /* : Bool */;
150 short int var117 /* : Bool */;
151 short int var_ /* var : Bool */;
152 short int var118 /* : Bool */;
153 short int var119 /* : Bool */;
154 static val* varonce120;
155 val* var121 /* : String */;
156 char* var122 /* : NativeString */;
157 long var123 /* : Int */;
158 val* var124 /* : FlatString */;
159 static val* varonce125;
160 val* var126 /* : String */;
161 char* var127 /* : NativeString */;
162 long var128 /* : Int */;
163 val* var129 /* : FlatString */;
164 val* var130 /* : Array[Object] */;
165 long var131 /* : Int */;
166 val* var132 /* : NativeArray[Object] */;
167 val* var133 /* : String */;
168 var_nmoduledecl = p0;
169 var_nat = p1;
170 if (varonce) {
171 var = varonce;
172 } else {
173 var1 = "platform";
174 var2 = 8;
175 var3 = string__NativeString__to_s_with_length(var1, var2);
176 var = var3;
177 varonce = var;
178 }
179 var_annotation_name = var;
180 {
181 var4 = annotation__AAnnotation__name(var_nat);
182 }
183 {
184 { /* Inline kernel#Object#!= (var4,var_annotation_name) on <var4:String> */
185 var_other = var_annotation_name;
186 {
187 var9 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___61d_61d]))(var4, var_other) /* == on <var4:String>*/;
188 var8 = var9;
189 }
190 var10 = !var8;
191 var6 = var10;
192 goto RET_LABEL7;
193 RET_LABEL7:(void)0;
194 }
195 var5 = var6;
196 }
197 if (var5){
198 goto RET_LABEL;
199 } else {
200 }
201 {
202 { /* Inline phase#Phase#toolcontext (self) on <self:PlatformPhase> */
203 var13 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:PlatformPhase> */
204 if (unlikely(var13 == NULL)) {
205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
206 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
207 show_backtrace(1);
208 }
209 var11 = var13;
210 RET_LABEL12:(void)0;
211 }
212 }
213 {
214 var14 = modelbuilder__ToolContext__modelbuilder(var11);
215 }
216 var_modelbuilder = var14;
217 /* <var_nmoduledecl:ANode> isa AModuledecl */
218 cltype = type_parser_nodes__AModuledecl.color;
219 idtype = type_parser_nodes__AModuledecl.id;
220 if(cltype >= var_nmoduledecl->type->table_size) {
221 var15 = 0;
222 } else {
223 var15 = var_nmoduledecl->type->type_table[cltype] == idtype;
224 }
225 var16 = !var15;
226 if (var16){
227 if (varonce17) {
228 var18 = varonce17;
229 } else {
230 var19 = "Syntax error: only the declaration of modules may use \"";
231 var20 = 55;
232 var21 = string__NativeString__to_s_with_length(var19, var20);
233 var18 = var21;
234 varonce17 = var18;
235 }
236 if (varonce22) {
237 var23 = varonce22;
238 } else {
239 var24 = "\".";
240 var25 = 2;
241 var26 = string__NativeString__to_s_with_length(var24, var25);
242 var23 = var26;
243 varonce22 = var23;
244 }
245 var27 = NEW_array__Array(&type_array__Arraykernel__Object);
246 { /* var27 = array_instance Array[Object] */
247 var28 = 3;
248 var29 = NEW_array__NativeArray(var28, &type_array__NativeArraykernel__Object);
249 ((struct instance_array__NativeArray*)var29)->values[0] = (val*) var18;
250 ((struct instance_array__NativeArray*)var29)->values[1] = (val*) var_annotation_name;
251 ((struct instance_array__NativeArray*)var29)->values[2] = (val*) var23;
252 {
253 ((void (*)(val*, val*, long))(var27->class->vft[COLOR_array__Array__with_native]))(var27, var29, var28) /* with_native on <var27:Array[Object]>*/;
254 }
255 }
256 {
257 var30 = ((val* (*)(val*))(var27->class->vft[COLOR_string__Object__to_s]))(var27) /* to_s on <var27:Array[Object]>*/;
258 }
259 {
260 modelbuilder__ModelBuilder__error(var_modelbuilder, var_nat, var30); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
261 }
262 goto RET_LABEL;
263 } else {
264 }
265 {
266 { /* Inline parser_nodes#AAnnotation#n_args (var_nat) on <var_nat:AAnnotation> */
267 var33 = var_nat->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <var_nat:AAnnotation> */
268 if (unlikely(var33 == NULL)) {
269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
270 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2426);
271 show_backtrace(1);
272 }
273 var31 = var33;
274 RET_LABEL32:(void)0;
275 }
276 }
277 var_args = var31;
278 {
279 var34 = parser_nodes__ANodes__length(var_args);
280 }
281 var35 = 1;
282 {
283 { /* Inline kernel#Int#> (var34,var35) on <var34:Int> */
284 /* Covariant cast for argument 0 (i) <var35:Int> isa OTHER */
285 /* <var35:Int> isa OTHER */
286 var38 = 1; /* easy <var35:Int> isa OTHER*/
287 if (unlikely(!var38)) {
288 var_class_name = type_kernel__Int.name;
289 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
290 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
291 show_backtrace(1);
292 }
293 var41 = var34 > var35;
294 var36 = var41;
295 goto RET_LABEL37;
296 RET_LABEL37:(void)0;
297 }
298 }
299 if (var36){
300 if (varonce42) {
301 var43 = varonce42;
302 } else {
303 var44 = "Syntax error: \"";
304 var45 = 15;
305 var46 = string__NativeString__to_s_with_length(var44, var45);
306 var43 = var46;
307 varonce42 = var43;
308 }
309 if (varonce47) {
310 var48 = varonce47;
311 } else {
312 var49 = "\" expects at most a single argument.";
313 var50 = 36;
314 var51 = string__NativeString__to_s_with_length(var49, var50);
315 var48 = var51;
316 varonce47 = var48;
317 }
318 var52 = NEW_array__Array(&type_array__Arraykernel__Object);
319 { /* var52 = array_instance Array[Object] */
320 var53 = 3;
321 var54 = NEW_array__NativeArray(var53, &type_array__NativeArraykernel__Object);
322 ((struct instance_array__NativeArray*)var54)->values[0] = (val*) var43;
323 ((struct instance_array__NativeArray*)var54)->values[1] = (val*) var_annotation_name;
324 ((struct instance_array__NativeArray*)var54)->values[2] = (val*) var48;
325 {
326 ((void (*)(val*, val*, long))(var52->class->vft[COLOR_array__Array__with_native]))(var52, var54, var53) /* with_native on <var52:Array[Object]>*/;
327 }
328 }
329 {
330 var55 = ((val* (*)(val*))(var52->class->vft[COLOR_string__Object__to_s]))(var52) /* to_s on <var52:Array[Object]>*/;
331 }
332 {
333 modelbuilder__ModelBuilder__error(var_modelbuilder, var_nat, var55); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
334 }
335 goto RET_LABEL;
336 } else {
337 {
338 var56 = parser_nodes__ANodes__is_empty(var_args);
339 }
340 if (var56){
341 {
342 var57 = parser_nodes__AModuledecl__n_name(var_nmoduledecl);
343 }
344 {
345 var58 = modelize_property__Prod__collect_text(var57);
346 }
347 var_platform_name = var58;
348 } else {
349 {
350 var59 = abstract_collection__SequenceRead__first(var_args);
351 }
352 {
353 var60 = annotation__AAtArg__as_string(var59);
354 }
355 var_platform_name = var60;
356 var61 = NULL;
357 if (var_platform_name == NULL) {
358 var62 = 1; /* is null */
359 } else {
360 var62 = 0; /* arg is null but recv is not */
361 }
362 if (0) {
363 var63 = string__FlatString___61d_61d(var_platform_name, var61);
364 var62 = var63;
365 }
366 if (var62){
367 if (varonce64) {
368 var65 = varonce64;
369 } else {
370 var66 = "Syntax error: \"";
371 var67 = 15;
372 var68 = string__NativeString__to_s_with_length(var66, var67);
373 var65 = var68;
374 varonce64 = var65;
375 }
376 if (varonce69) {
377 var70 = varonce69;
378 } else {
379 var71 = "\" expects its argument to be the name of the target platform as a String literal.";
380 var72 = 81;
381 var73 = string__NativeString__to_s_with_length(var71, var72);
382 var70 = var73;
383 varonce69 = var70;
384 }
385 var74 = NEW_array__Array(&type_array__Arraykernel__Object);
386 { /* var74 = array_instance Array[Object] */
387 var75 = 3;
388 var76 = NEW_array__NativeArray(var75, &type_array__NativeArraykernel__Object);
389 ((struct instance_array__NativeArray*)var76)->values[0] = (val*) var65;
390 ((struct instance_array__NativeArray*)var76)->values[1] = (val*) var_annotation_name;
391 ((struct instance_array__NativeArray*)var76)->values[2] = (val*) var70;
392 {
393 ((void (*)(val*, val*, long))(var74->class->vft[COLOR_array__Array__with_native]))(var74, var76, var75) /* with_native on <var74:Array[Object]>*/;
394 }
395 }
396 {
397 var77 = ((val* (*)(val*))(var74->class->vft[COLOR_string__Object__to_s]))(var74) /* to_s on <var74:Array[Object]>*/;
398 }
399 var_format_error = var77;
400 {
401 modelbuilder__ModelBuilder__error(var_modelbuilder, var_nat, var_format_error); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
402 }
403 goto RET_LABEL;
404 } else {
405 }
406 }
407 }
408 {
409 { /* Inline parser_nodes#ANode#parent (var_nmoduledecl) on <var_nmoduledecl:ANode(AModuledecl)> */
410 var80 = var_nmoduledecl->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <var_nmoduledecl:ANode(AModuledecl)> */
411 var78 = var80;
412 RET_LABEL79:(void)0;
413 }
414 }
415 /* <var78:nullable ANode> isa AModule */
416 cltype82 = type_parser_nodes__AModule.color;
417 idtype83 = type_parser_nodes__AModule.id;
418 if(var78 == NULL) {
419 var81 = 0;
420 } else {
421 if(cltype82 >= var78->type->table_size) {
422 var81 = 0;
423 } else {
424 var81 = var78->type->type_table[cltype82] == idtype83;
425 }
426 }
427 if (unlikely(!var81)) {
428 var_class_name84 = var78 == NULL ? "null" : var78->type->name;
429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name84);
430 PRINT_ERROR(" (%s:%d)\n", "src/platform.nit", 66);
431 show_backtrace(1);
432 }
433 var_nmodule = var78;
434 {
435 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
436 var87 = var_nmodule->attrs[COLOR_modelbuilder__AModule___mmodule].val; /* _mmodule on <var_nmodule:AModule> */
437 var85 = var87;
438 RET_LABEL86:(void)0;
439 }
440 }
441 var_mmodule = var85;
442 {
443 { /* Inline phase#Phase#toolcontext (self) on <self:PlatformPhase> */
444 var90 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:PlatformPhase> */
445 if (unlikely(var90 == NULL)) {
446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
447 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
448 show_backtrace(1);
449 }
450 var88 = var90;
451 RET_LABEL89:(void)0;
452 }
453 }
454 {
455 var91 = platform__ToolContext__platform_from_name(var88, var_platform_name);
456 }
457 var_platform = var91;
458 var92 = NULL;
459 if (var_platform == NULL) {
460 var93 = 1; /* is null */
461 } else {
462 var93 = 0; /* arg is null but recv is not */
463 }
464 if (0) {
465 var94 = ((short int (*)(val*, val*))(var_platform->class->vft[COLOR_kernel__Object___61d_61d]))(var_platform, var92) /* == on <var_platform:nullable Platform>*/;
466 var93 = var94;
467 }
468 if (var93){
469 {
470 { /* Inline phase#Phase#toolcontext (self) on <self:PlatformPhase> */
471 var97 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:PlatformPhase> */
472 if (unlikely(var97 == NULL)) {
473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
474 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
475 show_backtrace(1);
476 }
477 var95 = var97;
478 RET_LABEL96:(void)0;
479 }
480 }
481 {
482 var98 = parser_nodes__ANode__location(var_nat);
483 }
484 if (varonce99) {
485 var100 = varonce99;
486 } else {
487 var101 = "Error: target platform \"";
488 var102 = 24;
489 var103 = string__NativeString__to_s_with_length(var101, var102);
490 var100 = var103;
491 varonce99 = var100;
492 }
493 if (varonce104) {
494 var105 = varonce104;
495 } else {
496 var106 = "\" unknown";
497 var107 = 9;
498 var108 = string__NativeString__to_s_with_length(var106, var107);
499 var105 = var108;
500 varonce104 = var105;
501 }
502 var109 = NEW_array__Array(&type_array__Arraykernel__Object);
503 { /* var109 = array_instance Array[Object] */
504 var110 = 3;
505 var111 = NEW_array__NativeArray(var110, &type_array__NativeArraykernel__Object);
506 ((struct instance_array__NativeArray*)var111)->values[0] = (val*) var100;
507 ((struct instance_array__NativeArray*)var111)->values[1] = (val*) var_platform_name;
508 ((struct instance_array__NativeArray*)var111)->values[2] = (val*) var105;
509 {
510 ((void (*)(val*, val*, long))(var109->class->vft[COLOR_array__Array__with_native]))(var109, var111, var110) /* with_native on <var109:Array[Object]>*/;
511 }
512 }
513 {
514 var112 = ((val* (*)(val*))(var109->class->vft[COLOR_string__Object__to_s]))(var109) /* to_s on <var109:Array[Object]>*/;
515 }
516 {
517 toolcontext__ToolContext__error(var95, var98, var112); /* Direct call toolcontext#ToolContext#error on <var95:ToolContext>*/
518 }
519 goto RET_LABEL;
520 } else {
521 }
522 if (var_mmodule == NULL) {
523 PRINT_ERROR("Runtime error: %s", "Receiver is null");
524 PRINT_ERROR(" (%s:%d)\n", "src/platform.nit", 75);
525 show_backtrace(1);
526 } else {
527 var113 = platform__MModule__target_platform(var_mmodule);
528 }
529 var_previous_target_platform = var113;
530 var115 = NULL;
531 if (var_previous_target_platform == NULL) {
532 var116 = 0; /* is null */
533 } else {
534 var116 = 1; /* arg is null and recv is not */
535 }
536 if (0) {
537 var117 = ((short int (*)(val*, val*))(var_previous_target_platform->class->vft[COLOR_kernel__Object___33d_61d]))(var_previous_target_platform, var115) /* != on <var_previous_target_platform:nullable Platform>*/;
538 var116 = var117;
539 }
540 var_ = var116;
541 if (var116){
542 {
543 var119 = ((short int (*)(val*, val*))(var_previous_target_platform->class->vft[COLOR_kernel__Object___33d_61d]))(var_previous_target_platform, var_platform) /* != on <var_previous_target_platform:nullable Platform(Platform)>*/;
544 var118 = var119;
545 }
546 var114 = var118;
547 } else {
548 var114 = var_;
549 }
550 if (var114){
551 if (varonce120) {
552 var121 = varonce120;
553 } else {
554 var122 = "Syntax error: a target platform has already been defined as \"";
555 var123 = 61;
556 var124 = string__NativeString__to_s_with_length(var122, var123);
557 var121 = var124;
558 varonce120 = var121;
559 }
560 if (varonce125) {
561 var126 = varonce125;
562 } else {
563 var127 = "\".";
564 var128 = 2;
565 var129 = string__NativeString__to_s_with_length(var127, var128);
566 var126 = var129;
567 varonce125 = var126;
568 }
569 var130 = NEW_array__Array(&type_array__Arraykernel__Object);
570 { /* var130 = array_instance Array[Object] */
571 var131 = 3;
572 var132 = NEW_array__NativeArray(var131, &type_array__NativeArraykernel__Object);
573 ((struct instance_array__NativeArray*)var132)->values[0] = (val*) var121;
574 ((struct instance_array__NativeArray*)var132)->values[1] = (val*) var_previous_target_platform;
575 ((struct instance_array__NativeArray*)var132)->values[2] = (val*) var126;
576 {
577 ((void (*)(val*, val*, long))(var130->class->vft[COLOR_array__Array__with_native]))(var130, var132, var131) /* with_native on <var130:Array[Object]>*/;
578 }
579 }
580 {
581 var133 = ((val* (*)(val*))(var130->class->vft[COLOR_string__Object__to_s]))(var130) /* to_s on <var130:Array[Object]>*/;
582 }
583 {
584 modelbuilder__ModelBuilder__error(var_modelbuilder, var_nat, var133); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
585 }
586 } else {
587 }
588 if (var_mmodule == NULL) {
589 PRINT_ERROR("Runtime error: %s", "Receiver is null");
590 PRINT_ERROR(" (%s:%d)\n", "src/platform.nit", 80);
591 show_backtrace(1);
592 } else {
593 { /* Inline platform#MModule#local_target_platform= (var_mmodule,var_platform) on <var_mmodule:nullable MModule> */
594 if (unlikely(var_mmodule == NULL)) {
595 PRINT_ERROR("Runtime error: %s", "Receiver is null");
596 PRINT_ERROR(" (%s:%d)\n", "src/platform.nit", 85);
597 show_backtrace(1);
598 }
599 var_mmodule->attrs[COLOR_platform__MModule___local_target_platform].val = var_platform; /* _local_target_platform on <var_mmodule:nullable MModule> */
600 RET_LABEL134:(void)0;
601 }
602 }
603 RET_LABEL:;
604 }
605 /* method platform#PlatformPhase#process_annotated_node for (self: Object, ANode, AAnnotation) */
606 void VIRTUAL_platform__PlatformPhase__process_annotated_node(val* self, val* p0, val* p1) {
607 platform__PlatformPhase__process_annotated_node(self, p0, p1); /* Direct call platform#PlatformPhase#process_annotated_node on <self:Object(PlatformPhase)>*/
608 RET_LABEL:;
609 }
610 /* method platform#MModule#local_target_platform for (self: MModule): nullable Platform */
611 val* platform__MModule__local_target_platform(val* self) {
612 val* var /* : nullable Platform */;
613 val* var1 /* : nullable Platform */;
614 var1 = self->attrs[COLOR_platform__MModule___local_target_platform].val; /* _local_target_platform on <self:MModule> */
615 var = var1;
616 RET_LABEL:;
617 return var;
618 }
619 /* method platform#MModule#local_target_platform for (self: Object): nullable Platform */
620 val* VIRTUAL_platform__MModule__local_target_platform(val* self) {
621 val* var /* : nullable Platform */;
622 val* var1 /* : nullable Platform */;
623 val* var3 /* : nullable Platform */;
624 { /* Inline platform#MModule#local_target_platform (self) on <self:Object(MModule)> */
625 var3 = self->attrs[COLOR_platform__MModule___local_target_platform].val; /* _local_target_platform on <self:Object(MModule)> */
626 var1 = var3;
627 RET_LABEL2:(void)0;
628 }
629 var = var1;
630 RET_LABEL:;
631 return var;
632 }
633 /* method platform#MModule#local_target_platform= for (self: MModule, nullable Platform) */
634 void platform__MModule__local_target_platform_61d(val* self, val* p0) {
635 self->attrs[COLOR_platform__MModule___local_target_platform].val = p0; /* _local_target_platform on <self:MModule> */
636 RET_LABEL:;
637 }
638 /* method platform#MModule#local_target_platform= for (self: Object, nullable Platform) */
639 void VIRTUAL_platform__MModule__local_target_platform_61d(val* self, val* p0) {
640 { /* Inline platform#MModule#local_target_platform= (self,p0) on <self:Object(MModule)> */
641 self->attrs[COLOR_platform__MModule___local_target_platform].val = p0; /* _local_target_platform on <self:Object(MModule)> */
642 RET_LABEL1:(void)0;
643 }
644 RET_LABEL:;
645 }
646 /* method platform#MModule#target_platform for (self: MModule): nullable Platform */
647 val* platform__MModule__target_platform(val* self) {
648 val* var /* : nullable Platform */;
649 val* var1 /* : nullable Platform */;
650 val* var3 /* : nullable Platform */;
651 val* var_ltp /* var ltp: nullable Platform */;
652 val* var4 /* : null */;
653 short int var5 /* : Bool */;
654 short int var6 /* : Bool */;
655 val* var7 /* : POSetElement[MModule] */;
656 val* var9 /* : POSetElement[MModule] */;
657 val* var10 /* : Collection[Object] */;
658 val* var11 /* : Iterator[nullable Object] */;
659 short int var12 /* : Bool */;
660 val* var13 /* : nullable Object */;
661 val* var_mmodule /* var mmodule: MModule */;
662 val* var14 /* : nullable Platform */;
663 val* var16 /* : nullable Platform */;
664 val* var17 /* : null */;
665 short int var18 /* : Bool */;
666 short int var19 /* : Bool */;
667 val* var20 /* : null */;
668 {
669 { /* Inline platform#MModule#local_target_platform (self) on <self:MModule> */
670 var3 = self->attrs[COLOR_platform__MModule___local_target_platform].val; /* _local_target_platform on <self:MModule> */
671 var1 = var3;
672 RET_LABEL2:(void)0;
673 }
674 }
675 var_ltp = var1;
676 var4 = NULL;
677 if (var_ltp == NULL) {
678 var5 = 0; /* is null */
679 } else {
680 var5 = 1; /* arg is null and recv is not */
681 }
682 if (0) {
683 var6 = ((short int (*)(val*, val*))(var_ltp->class->vft[COLOR_kernel__Object___33d_61d]))(var_ltp, var4) /* != on <var_ltp:nullable Platform>*/;
684 var5 = var6;
685 }
686 if (var5){
687 var = var_ltp;
688 goto RET_LABEL;
689 } else {
690 }
691 {
692 { /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
693 var9 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
694 if (unlikely(var9 == NULL)) {
695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
696 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
697 show_backtrace(1);
698 }
699 var7 = var9;
700 RET_LABEL8:(void)0;
701 }
702 }
703 {
704 var10 = poset__POSetElement__greaters(var7);
705 }
706 {
707 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on <var10:Collection[Object](Collection[MModule])>*/;
708 }
709 for(;;) {
710 {
711 var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on <var11:Iterator[nullable Object]>*/;
712 }
713 if(!var12) break;
714 {
715 var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on <var11:Iterator[nullable Object]>*/;
716 }
717 var_mmodule = var13;
718 {
719 { /* Inline platform#MModule#local_target_platform (var_mmodule) on <var_mmodule:MModule> */
720 var16 = var_mmodule->attrs[COLOR_platform__MModule___local_target_platform].val; /* _local_target_platform on <var_mmodule:MModule> */
721 var14 = var16;
722 RET_LABEL15:(void)0;
723 }
724 }
725 var_ltp = var14;
726 var17 = NULL;
727 if (var_ltp == NULL) {
728 var18 = 0; /* is null */
729 } else {
730 var18 = 1; /* arg is null and recv is not */
731 }
732 if (0) {
733 var19 = ((short int (*)(val*, val*))(var_ltp->class->vft[COLOR_kernel__Object___33d_61d]))(var_ltp, var17) /* != on <var_ltp:nullable Platform>*/;
734 var18 = var19;
735 }
736 if (var18){
737 var = var_ltp;
738 goto RET_LABEL;
739 } else {
740 }
741 CONTINUE_label: (void)0;
742 {
743 ((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on <var11:Iterator[nullable Object]>*/;
744 }
745 }
746 BREAK_label: (void)0;
747 var20 = NULL;
748 var = var20;
749 goto RET_LABEL;
750 RET_LABEL:;
751 return var;
752 }
753 /* method platform#MModule#target_platform for (self: Object): nullable Platform */
754 val* VIRTUAL_platform__MModule__target_platform(val* self) {
755 val* var /* : nullable Platform */;
756 val* var1 /* : nullable Platform */;
757 var1 = platform__MModule__target_platform(self);
758 var = var1;
759 RET_LABEL:;
760 return var;
761 }
762 /* method platform#Platform#supports_libunwind for (self: Platform): Bool */
763 short int platform__Platform__supports_libunwind(val* self) {
764 short int var /* : Bool */;
765 short int var1 /* : Bool */;
766 var1 = 1;
767 var = var1;
768 goto RET_LABEL;
769 RET_LABEL:;
770 return var;
771 }
772 /* method platform#Platform#supports_libunwind for (self: Object): Bool */
773 short int VIRTUAL_platform__Platform__supports_libunwind(val* self) {
774 short int var /* : Bool */;
775 short int var1 /* : Bool */;
776 var1 = platform__Platform__supports_libunwind(self);
777 var = var1;
778 RET_LABEL:;
779 return var;
780 }
781 /* method platform#Platform#supports_libgc for (self: Platform): Bool */
782 short int platform__Platform__supports_libgc(val* self) {
783 short int var /* : Bool */;
784 short int var1 /* : Bool */;
785 var1 = 1;
786 var = var1;
787 goto RET_LABEL;
788 RET_LABEL:;
789 return var;
790 }
791 /* method platform#Platform#supports_libgc for (self: Object): Bool */
792 short int VIRTUAL_platform__Platform__supports_libgc(val* self) {
793 short int var /* : Bool */;
794 short int var1 /* : Bool */;
795 var1 = platform__Platform__supports_libgc(self);
796 var = var1;
797 RET_LABEL:;
798 return var;
799 }
800 /* method platform#Platform#no_main for (self: Platform): Bool */
801 short int platform__Platform__no_main(val* self) {
802 short int var /* : Bool */;
803 short int var1 /* : Bool */;
804 var1 = 0;
805 var = var1;
806 goto RET_LABEL;
807 RET_LABEL:;
808 return var;
809 }
810 /* method platform#Platform#no_main for (self: Object): Bool */
811 short int VIRTUAL_platform__Platform__no_main(val* self) {
812 short int var /* : Bool */;
813 short int var1 /* : Bool */;
814 var1 = platform__Platform__no_main(self);
815 var = var1;
816 RET_LABEL:;
817 return var;
818 }