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