tests: fix base_inline
[nit.git] / c_src / platform.sep.1.c
1 #include "platform.sep.0.h"
2 /* method platform#ToolContext#platform_phase for (self: ToolContext): Phase */
3 val* platform__ToolContext__platform_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_platform__ToolContext___64dplatform_phase].val; /* @platform_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @platform_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/platform.nit", 25);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method platform#ToolContext#platform_phase for (self: Object): Phase */
17 val* VIRTUAL_platform__ToolContext__platform_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = platform__ToolContext__platform_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method platform#ToolContext#platform_phase= for (self: ToolContext, Phase) */
26 void platform__ToolContext__platform_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_platform__ToolContext___64dplatform_phase].val = p0; /* @platform_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method platform#ToolContext#platform_phase= for (self: Object, Phase) */
31 void VIRTUAL_platform__ToolContext__platform_phase_61d(val* self, val* p0) {
32 platform__ToolContext__platform_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method platform#ToolContext#platform_from_name for (self: ToolContext, String): nullable Platform */
36 val* platform__ToolContext__platform_from_name(val* self, val* p0) {
37 val* var /* : nullable Platform */;
38 val* var_name /* var name: String */;
39 val* var1 /* : null */;
40 var_name = p0;
41 var1 = NULL;
42 var = var1;
43 goto RET_LABEL;
44 RET_LABEL:;
45 return var;
46 }
47 /* method platform#ToolContext#platform_from_name for (self: Object, String): nullable Platform */
48 val* VIRTUAL_platform__ToolContext__platform_from_name(val* self, val* p0) {
49 val* var /* : nullable Platform */;
50 val* var1 /* : nullable Platform */;
51 var1 = platform__ToolContext__platform_from_name(self, p0);
52 var = var1;
53 RET_LABEL:;
54 return var;
55 }
56 /* method platform#PlatformPhase#process_annotated_node for (self: PlatformPhase, ANode, AAnnotation) */
57 void platform__PlatformPhase__process_annotated_node(val* self, val* p0, val* p1) {
58 val* var_nmoduledecl /* var nmoduledecl: ANode */;
59 val* var_nat /* var nat: AAnnotation */;
60 static val* varonce;
61 val* var /* : String */;
62 char* var1 /* : NativeString */;
63 long var2 /* : Int */;
64 val* var3 /* : String */;
65 val* var_annotation_name /* var annotation_name: String */;
66 val* var4 /* : AAtid */;
67 val* var5 /* : Token */;
68 val* var6 /* : String */;
69 short int var7 /* : Bool */;
70 val* var8 /* : ToolContext */;
71 val* var9 /* : ModelBuilder */;
72 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
73 short int var10 /* : Bool */;
74 int cltype;
75 int idtype;
76 short int var11 /* : Bool */;
77 static val* varonce12;
78 val* var13 /* : String */;
79 char* var14 /* : NativeString */;
80 long var15 /* : Int */;
81 val* var16 /* : String */;
82 static val* varonce17;
83 val* var18 /* : String */;
84 char* var19 /* : NativeString */;
85 long var20 /* : Int */;
86 val* var21 /* : String */;
87 val* var22 /* : Array[Object] */;
88 long var23 /* : Int */;
89 val* var24 /* : NativeArray[Object] */;
90 val* var25 /* : String */;
91 val* var26 /* : ANodes[AAtArg] */;
92 val* var_args /* var args: ANodes[AAtArg] */;
93 long var27 /* : Int */;
94 long var28 /* : Int */;
95 short int var29 /* : Bool */;
96 short int var31 /* : Bool */;
97 int cltype32;
98 int idtype33;
99 const char* var_class_name;
100 short int var34 /* : Bool */;
101 static val* varonce35;
102 val* var36 /* : String */;
103 char* var37 /* : NativeString */;
104 long var38 /* : Int */;
105 val* var39 /* : String */;
106 static val* varonce40;
107 val* var41 /* : String */;
108 char* var42 /* : NativeString */;
109 long var43 /* : Int */;
110 val* var44 /* : String */;
111 val* var45 /* : Array[Object] */;
112 long var46 /* : Int */;
113 val* var47 /* : NativeArray[Object] */;
114 val* var48 /* : String */;
115 short int var49 /* : Bool */;
116 val* var50 /* : AModuleName */;
117 val* var51 /* : String */;
118 val* var_platform_name /* var platform_name: nullable Object */;
119 val* var52 /* : nullable Object */;
120 val* var_arg /* var arg: AAtArg */;
121 static val* varonce53;
122 val* var54 /* : String */;
123 char* var55 /* : NativeString */;
124 long var56 /* : Int */;
125 val* var57 /* : String */;
126 static val* varonce58;
127 val* var59 /* : String */;
128 char* var60 /* : NativeString */;
129 long var61 /* : Int */;
130 val* var62 /* : String */;
131 val* var63 /* : Array[Object] */;
132 long var64 /* : Int */;
133 val* var65 /* : NativeArray[Object] */;
134 val* var66 /* : String */;
135 val* var_format_error /* var format_error: String */;
136 short int var67 /* : Bool */;
137 int cltype68;
138 int idtype69;
139 short int var70 /* : Bool */;
140 val* var71 /* : AExpr */;
141 val* var_expr /* var expr: AExpr */;
142 short int var72 /* : Bool */;
143 int cltype73;
144 int idtype74;
145 short int var75 /* : Bool */;
146 val* var76 /* : String */;
147 val* var_target /* var target: String */;
148 long var77 /* : Int */;
149 long var78 /* : Int */;
150 long var79 /* : Int */;
151 long var80 /* : Int */;
152 long var82 /* : Int */;
153 val* var83 /* : String */;
154 val* var84 /* : nullable ANode */;
155 short int var85 /* : Bool */;
156 int cltype86;
157 int idtype87;
158 const char* var_class_name88;
159 val* var_nmodule /* var nmodule: AModule */;
160 val* var89 /* : nullable MModule */;
161 val* var_mmodule /* var mmodule: nullable MModule */;
162 val* var90 /* : ToolContext */;
163 val* var91 /* : nullable Platform */;
164 val* var_platform /* var platform: nullable Platform */;
165 val* var92 /* : null */;
166 short int var93 /* : Bool */;
167 val* var94 /* : ToolContext */;
168 val* var95 /* : Location */;
169 static val* varonce96;
170 val* var97 /* : String */;
171 char* var98 /* : NativeString */;
172 long var99 /* : Int */;
173 val* var100 /* : String */;
174 static val* varonce101;
175 val* var102 /* : String */;
176 char* var103 /* : NativeString */;
177 long var104 /* : Int */;
178 val* var105 /* : String */;
179 val* var106 /* : Array[Object] */;
180 long var107 /* : Int */;
181 val* var108 /* : NativeArray[Object] */;
182 val* var109 /* : String */;
183 val* var110 /* : nullable Platform */;
184 val* var_previous_target_platform /* var previous_target_platform: nullable Platform */;
185 short int var111 /* : Bool */;
186 val* var112 /* : null */;
187 short int var113 /* : Bool */;
188 short int var_ /* var : Bool */;
189 short int var114 /* : Bool */;
190 static val* varonce115;
191 val* var116 /* : String */;
192 char* var117 /* : NativeString */;
193 long var118 /* : Int */;
194 val* var119 /* : String */;
195 static val* varonce120;
196 val* var121 /* : String */;
197 char* var122 /* : NativeString */;
198 long var123 /* : Int */;
199 val* var124 /* : String */;
200 val* var125 /* : Array[Object] */;
201 long var126 /* : Int */;
202 val* var127 /* : NativeArray[Object] */;
203 val* var128 /* : String */;
204 var_nmoduledecl = p0;
205 var_nat = p1;
206 if (varonce) {
207 var = varonce;
208 } else {
209 var1 = "platform";
210 var2 = 8;
211 var3 = string__NativeString__to_s_with_length(var1, var2);
212 var = var3;
213 varonce = var;
214 }
215 var_annotation_name = var;
216 var4 = ((val* (*)(val*))(var_nat->class->vft[COLOR_parser_nodes__AAnnotation__n_atid]))(var_nat) /* n_atid on <var_nat:AAnnotation>*/;
217 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_parser_nodes__AAtid__n_id]))(var4) /* n_id on <var4:AAtid>*/;
218 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_parser_nodes__Token__text]))(var5) /* text on <var5:Token>*/;
219 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___33d_61d]))(var6, var_annotation_name) /* != on <var6:String>*/;
220 if (var7){
221 goto RET_LABEL;
222 } else {
223 }
224 var8 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:PlatformPhase>*/;
225 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var8) /* modelbuilder on <var8:ToolContext>*/;
226 var_modelbuilder = var9;
227 /* <var_nmoduledecl:ANode> isa AModuledecl */
228 cltype = type_parser_nodes__AModuledecl.color;
229 idtype = type_parser_nodes__AModuledecl.id;
230 if(cltype >= var_nmoduledecl->type->table_size) {
231 var10 = 0;
232 } else {
233 var10 = var_nmoduledecl->type->type_table[cltype] == idtype;
234 }
235 var11 = !var10;
236 if (var11){
237 if (varonce12) {
238 var13 = varonce12;
239 } else {
240 var14 = "Syntax error: only the declaration of modules may use \"";
241 var15 = 55;
242 var16 = string__NativeString__to_s_with_length(var14, var15);
243 var13 = var16;
244 varonce12 = var13;
245 }
246 if (varonce17) {
247 var18 = varonce17;
248 } else {
249 var19 = "\".";
250 var20 = 2;
251 var21 = string__NativeString__to_s_with_length(var19, var20);
252 var18 = var21;
253 varonce17 = var18;
254 }
255 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
256 { /* var22 = array_instance Array[Object] */
257 var23 = 3;
258 var24 = NEW_array__NativeArray(var23, &type_array__NativeArraykernel__Object);
259 ((struct instance_array__NativeArray*)var24)->values[0] = (val*) var13;
260 ((struct instance_array__NativeArray*)var24)->values[1] = (val*) var_annotation_name;
261 ((struct instance_array__NativeArray*)var24)->values[2] = (val*) var18;
262 ((void (*)(val*, val*, long))(var22->class->vft[COLOR_array__Array__with_native]))(var22, var24, var23) /* with_native on <var22:Array[Object]>*/;
263 }
264 var25 = ((val* (*)(val*))(var22->class->vft[COLOR_string__Object__to_s]))(var22) /* to_s on <var22:Array[Object]>*/;
265 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nat, var25) /* error on <var_modelbuilder:ModelBuilder>*/;
266 goto RET_LABEL;
267 } else {
268 }
269 var26 = ((val* (*)(val*))(var_nat->class->vft[COLOR_parser_nodes__AAnnotation__n_args]))(var_nat) /* n_args on <var_nat:AAnnotation>*/;
270 var_args = var26;
271 var27 = ((long (*)(val*))(var_args->class->vft[COLOR_abstract_collection__Collection__length]))(var_args) /* length on <var_args:ANodes[AAtArg]>*/;
272 var28 = 1;
273 { /* Inline kernel#Int#> (var27,var28) */
274 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
275 /* <var28:Int> isa OTHER */
276 var31 = 1; /* easy <var28:Int> isa OTHER*/
277 if (!var31) {
278 var_class_name = type_kernel__Int.name;
279 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
280 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
281 show_backtrace(1);
282 }
283 var34 = var27 > var28;
284 var29 = var34;
285 goto RET_LABEL30;
286 RET_LABEL30:(void)0;
287 }
288 if (var29){
289 if (varonce35) {
290 var36 = varonce35;
291 } else {
292 var37 = "Syntax error: \"";
293 var38 = 15;
294 var39 = string__NativeString__to_s_with_length(var37, var38);
295 var36 = var39;
296 varonce35 = var36;
297 }
298 if (varonce40) {
299 var41 = varonce40;
300 } else {
301 var42 = "\" expects at most a single argument.";
302 var43 = 36;
303 var44 = string__NativeString__to_s_with_length(var42, var43);
304 var41 = var44;
305 varonce40 = var41;
306 }
307 var45 = NEW_array__Array(&type_array__Arraykernel__Object);
308 { /* var45 = array_instance Array[Object] */
309 var46 = 3;
310 var47 = NEW_array__NativeArray(var46, &type_array__NativeArraykernel__Object);
311 ((struct instance_array__NativeArray*)var47)->values[0] = (val*) var36;
312 ((struct instance_array__NativeArray*)var47)->values[1] = (val*) var_annotation_name;
313 ((struct instance_array__NativeArray*)var47)->values[2] = (val*) var41;
314 ((void (*)(val*, val*, long))(var45->class->vft[COLOR_array__Array__with_native]))(var45, var47, var46) /* with_native on <var45:Array[Object]>*/;
315 }
316 var48 = ((val* (*)(val*))(var45->class->vft[COLOR_string__Object__to_s]))(var45) /* to_s on <var45:Array[Object]>*/;
317 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nat, var48) /* error on <var_modelbuilder:ModelBuilder>*/;
318 goto RET_LABEL;
319 } else {
320 var49 = ((short int (*)(val*))(var_args->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_args) /* is_empty on <var_args:ANodes[AAtArg]>*/;
321 if (var49){
322 var50 = ((val* (*)(val*))(var_nmoduledecl->class->vft[COLOR_parser_nodes__AModuledecl__n_name]))(var_nmoduledecl) /* n_name on <var_nmoduledecl:ANode(AModuledecl)>*/;
323 var51 = ((val* (*)(val*))(var50->class->vft[COLOR_modelize_property__Prod__collect_text]))(var50) /* collect_text on <var50:AModuleName>*/;
324 var_platform_name = var51;
325 } else {
326 var52 = ((val* (*)(val*))(var_args->class->vft[COLOR_abstract_collection__Collection__first]))(var_args) /* first on <var_args:ANodes[AAtArg]>*/;
327 var_arg = var52;
328 if (varonce53) {
329 var54 = varonce53;
330 } else {
331 var55 = "Syntax error: \"";
332 var56 = 15;
333 var57 = string__NativeString__to_s_with_length(var55, var56);
334 var54 = var57;
335 varonce53 = var54;
336 }
337 if (varonce58) {
338 var59 = varonce58;
339 } else {
340 var60 = "\" expects its argument to be the name of the target platform as a String literal.";
341 var61 = 81;
342 var62 = string__NativeString__to_s_with_length(var60, var61);
343 var59 = var62;
344 varonce58 = var59;
345 }
346 var63 = NEW_array__Array(&type_array__Arraykernel__Object);
347 { /* var63 = array_instance Array[Object] */
348 var64 = 3;
349 var65 = NEW_array__NativeArray(var64, &type_array__NativeArraykernel__Object);
350 ((struct instance_array__NativeArray*)var65)->values[0] = (val*) var54;
351 ((struct instance_array__NativeArray*)var65)->values[1] = (val*) var_annotation_name;
352 ((struct instance_array__NativeArray*)var65)->values[2] = (val*) var59;
353 ((void (*)(val*, val*, long))(var63->class->vft[COLOR_array__Array__with_native]))(var63, var65, var64) /* with_native on <var63:Array[Object]>*/;
354 }
355 var66 = ((val* (*)(val*))(var63->class->vft[COLOR_string__Object__to_s]))(var63) /* to_s on <var63:Array[Object]>*/;
356 var_format_error = var66;
357 /* <var_arg:AAtArg> isa AExprAtArg */
358 cltype68 = type_parser_nodes__AExprAtArg.color;
359 idtype69 = type_parser_nodes__AExprAtArg.id;
360 if(cltype68 >= var_arg->type->table_size) {
361 var67 = 0;
362 } else {
363 var67 = var_arg->type->type_table[cltype68] == idtype69;
364 }
365 var70 = !var67;
366 if (var70){
367 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nat, var_format_error) /* error on <var_modelbuilder:ModelBuilder>*/;
368 goto RET_LABEL;
369 } else {
370 }
371 var71 = ((val* (*)(val*))(var_arg->class->vft[COLOR_parser_nodes__AExprAtArg__n_expr]))(var_arg) /* n_expr on <var_arg:AAtArg(AExprAtArg)>*/;
372 var_expr = var71;
373 /* <var_expr:AExpr> isa AStringFormExpr */
374 cltype73 = type_parser_nodes__AStringFormExpr.color;
375 idtype74 = type_parser_nodes__AStringFormExpr.id;
376 if(cltype73 >= var_expr->type->table_size) {
377 var72 = 0;
378 } else {
379 var72 = var_expr->type->type_table[cltype73] == idtype74;
380 }
381 var75 = !var72;
382 if (var75){
383 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nat, var_format_error) /* error on <var_modelbuilder:ModelBuilder>*/;
384 goto RET_LABEL;
385 } else {
386 }
387 var76 = ((val* (*)(val*))(var_expr->class->vft[COLOR_modelize_property__Prod__collect_text]))(var_expr) /* collect_text on <var_expr:AExpr(AStringFormExpr)>*/;
388 var_target = var76;
389 var77 = 1;
390 var78 = ((long (*)(val*))(var_target->class->vft[COLOR_abstract_collection__Collection__length]))(var_target) /* length on <var_target:String>*/;
391 var79 = 2;
392 { /* Inline kernel#Int#- (var78,var79) */
393 var82 = var78 - var79;
394 var80 = var82;
395 goto RET_LABEL81;
396 RET_LABEL81:(void)0;
397 }
398 var83 = ((val* (*)(val*, long, long))(var_target->class->vft[COLOR_string__AbstractString__substring]))(var_target, var77, var80) /* substring on <var_target:String>*/;
399 var_platform_name = var83;
400 }
401 }
402 var84 = ((val* (*)(val*))(var_nmoduledecl->class->vft[COLOR_parser_nodes__ANode__parent]))(var_nmoduledecl) /* parent on <var_nmoduledecl:ANode(AModuledecl)>*/;
403 /* <var84:nullable ANode> isa AModule */
404 cltype86 = type_parser_nodes__AModule.color;
405 idtype87 = type_parser_nodes__AModule.id;
406 if(var84 == NULL) {
407 var85 = 0;
408 } else {
409 if(cltype86 >= var84->type->table_size) {
410 var85 = 0;
411 } else {
412 var85 = var84->type->type_table[cltype86] == idtype87;
413 }
414 }
415 if (!var85) {
416 var_class_name88 = var84 == NULL ? "null" : var84->type->name;
417 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name88);
418 fprintf(stderr, " (%s:%d)\n", "src/platform.nit", 75);
419 show_backtrace(1);
420 }
421 var_nmodule = var84;
422 var89 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__mmodule]))(var_nmodule) /* mmodule on <var_nmodule:AModule>*/;
423 var_mmodule = var89;
424 var90 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:PlatformPhase>*/;
425 var91 = ((val* (*)(val*, val*))(var90->class->vft[COLOR_platform__ToolContext__platform_from_name]))(var90, var_platform_name) /* platform_from_name on <var90:ToolContext>*/;
426 var_platform = var91;
427 var92 = NULL;
428 if (var_platform == NULL) {
429 var93 = 1; /* is null */
430 } else {
431 var93 = 0; /* arg is null but recv is not */
432 }
433 if (var93){
434 var94 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:PlatformPhase>*/;
435 var95 = ((val* (*)(val*))(var_nat->class->vft[COLOR_parser_nodes__ANode__location]))(var_nat) /* location on <var_nat:AAnnotation>*/;
436 if (varonce96) {
437 var97 = varonce96;
438 } else {
439 var98 = "Error: target platform \"";
440 var99 = 24;
441 var100 = string__NativeString__to_s_with_length(var98, var99);
442 var97 = var100;
443 varonce96 = var97;
444 }
445 if (varonce101) {
446 var102 = varonce101;
447 } else {
448 var103 = "\" unknown";
449 var104 = 9;
450 var105 = string__NativeString__to_s_with_length(var103, var104);
451 var102 = var105;
452 varonce101 = var102;
453 }
454 var106 = NEW_array__Array(&type_array__Arraykernel__Object);
455 { /* var106 = array_instance Array[Object] */
456 var107 = 3;
457 var108 = NEW_array__NativeArray(var107, &type_array__NativeArraykernel__Object);
458 ((struct instance_array__NativeArray*)var108)->values[0] = (val*) var97;
459 ((struct instance_array__NativeArray*)var108)->values[1] = (val*) var_platform_name;
460 ((struct instance_array__NativeArray*)var108)->values[2] = (val*) var102;
461 ((void (*)(val*, val*, long))(var106->class->vft[COLOR_array__Array__with_native]))(var106, var108, var107) /* with_native on <var106:Array[Object]>*/;
462 }
463 var109 = ((val* (*)(val*))(var106->class->vft[COLOR_string__Object__to_s]))(var106) /* to_s on <var106:Array[Object]>*/;
464 ((void (*)(val*, val*, val*))(var94->class->vft[COLOR_toolcontext__ToolContext__error]))(var94, var95, var109) /* error on <var94:ToolContext>*/;
465 goto RET_LABEL;
466 } else {
467 }
468 if (var_mmodule == NULL) {
469 fprintf(stderr, "Runtime error: %s", "Receiver is null");
470 fprintf(stderr, " (%s:%d)\n", "src/platform.nit", 84);
471 show_backtrace(1);
472 } else {
473 var110 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_platform__MModule__target_platform]))(var_mmodule) /* target_platform on <var_mmodule:nullable MModule>*/;
474 }
475 var_previous_target_platform = var110;
476 var112 = NULL;
477 if (var_previous_target_platform == NULL) {
478 var113 = 0; /* is null */
479 } else {
480 var113 = 1; /* arg is null and recv is not */
481 }
482 var_ = var113;
483 if (var113){
484 var114 = ((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)>*/;
485 var111 = var114;
486 } else {
487 var111 = var_;
488 }
489 if (var111){
490 if (varonce115) {
491 var116 = varonce115;
492 } else {
493 var117 = "Syntax error: a target platform has already been defined as \"";
494 var118 = 61;
495 var119 = string__NativeString__to_s_with_length(var117, var118);
496 var116 = var119;
497 varonce115 = var116;
498 }
499 if (varonce120) {
500 var121 = varonce120;
501 } else {
502 var122 = "\".";
503 var123 = 2;
504 var124 = string__NativeString__to_s_with_length(var122, var123);
505 var121 = var124;
506 varonce120 = var121;
507 }
508 var125 = NEW_array__Array(&type_array__Arraykernel__Object);
509 { /* var125 = array_instance Array[Object] */
510 var126 = 3;
511 var127 = NEW_array__NativeArray(var126, &type_array__NativeArraykernel__Object);
512 ((struct instance_array__NativeArray*)var127)->values[0] = (val*) var116;
513 ((struct instance_array__NativeArray*)var127)->values[1] = (val*) var_previous_target_platform;
514 ((struct instance_array__NativeArray*)var127)->values[2] = (val*) var121;
515 ((void (*)(val*, val*, long))(var125->class->vft[COLOR_array__Array__with_native]))(var125, var127, var126) /* with_native on <var125:Array[Object]>*/;
516 }
517 var128 = ((val* (*)(val*))(var125->class->vft[COLOR_string__Object__to_s]))(var125) /* to_s on <var125:Array[Object]>*/;
518 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nat, var128) /* error on <var_modelbuilder:ModelBuilder>*/;
519 } else {
520 }
521 if (var_mmodule == NULL) {
522 fprintf(stderr, "Runtime error: %s", "Receiver is null");
523 fprintf(stderr, " (%s:%d)\n", "src/platform.nit", 89);
524 show_backtrace(1);
525 } else {
526 ((void (*)(val*, val*))(var_mmodule->class->vft[COLOR_platform__MModule__local_target_platform_61d]))(var_mmodule, var_platform) /* local_target_platform= on <var_mmodule:nullable MModule>*/;
527 }
528 RET_LABEL:;
529 }
530 /* method platform#PlatformPhase#process_annotated_node for (self: Object, ANode, AAnnotation) */
531 void VIRTUAL_platform__PlatformPhase__process_annotated_node(val* self, val* p0, val* p1) {
532 platform__PlatformPhase__process_annotated_node(self, p0, p1);
533 RET_LABEL:;
534 }
535 /* method platform#MModule#local_target_platform for (self: MModule): nullable Platform */
536 val* platform__MModule__local_target_platform(val* self) {
537 val* var /* : nullable Platform */;
538 val* var1 /* : nullable Platform */;
539 var1 = self->attrs[COLOR_platform__MModule___64dlocal_target_platform].val; /* @local_target_platform on <self:MModule> */
540 var = var1;
541 RET_LABEL:;
542 return var;
543 }
544 /* method platform#MModule#local_target_platform for (self: Object): nullable Platform */
545 val* VIRTUAL_platform__MModule__local_target_platform(val* self) {
546 val* var /* : nullable Platform */;
547 val* var1 /* : nullable Platform */;
548 var1 = platform__MModule__local_target_platform(self);
549 var = var1;
550 RET_LABEL:;
551 return var;
552 }
553 /* method platform#MModule#local_target_platform= for (self: MModule, nullable Platform) */
554 void platform__MModule__local_target_platform_61d(val* self, val* p0) {
555 self->attrs[COLOR_platform__MModule___64dlocal_target_platform].val = p0; /* @local_target_platform on <self:MModule> */
556 RET_LABEL:;
557 }
558 /* method platform#MModule#local_target_platform= for (self: Object, nullable Platform) */
559 void VIRTUAL_platform__MModule__local_target_platform_61d(val* self, val* p0) {
560 platform__MModule__local_target_platform_61d(self, p0);
561 RET_LABEL:;
562 }
563 /* method platform#MModule#target_platform for (self: MModule): nullable Platform */
564 val* platform__MModule__target_platform(val* self) {
565 val* var /* : nullable Platform */;
566 val* var1 /* : nullable Platform */;
567 val* var_ltp /* var ltp: nullable Platform */;
568 val* var2 /* : null */;
569 short int var3 /* : Bool */;
570 val* var4 /* : POSetElement[MModule] */;
571 val* var5 /* : Collection[Object] */;
572 val* var6 /* : Iterator[nullable Object] */;
573 short int var7 /* : Bool */;
574 val* var8 /* : nullable Object */;
575 val* var_mmodule /* var mmodule: MModule */;
576 val* var9 /* : nullable Platform */;
577 val* var10 /* : null */;
578 short int var11 /* : Bool */;
579 val* var12 /* : null */;
580 var1 = ((val* (*)(val*))(self->class->vft[COLOR_platform__MModule__local_target_platform]))(self) /* local_target_platform on <self:MModule>*/;
581 var_ltp = var1;
582 var2 = NULL;
583 if (var_ltp == NULL) {
584 var3 = 0; /* is null */
585 } else {
586 var3 = 1; /* arg is null and recv is not */
587 }
588 if (var3){
589 var = var_ltp;
590 goto RET_LABEL;
591 } else {
592 }
593 var4 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__in_importation]))(self) /* in_importation on <self:MModule>*/;
594 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_poset__POSetElement__greaters]))(var4) /* greaters on <var4:POSetElement[MModule]>*/;
595 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Collection[Object](Collection[MModule])>*/;
596 for(;;) {
597 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
598 if(!var7) break;
599 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
600 var_mmodule = var8;
601 var9 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_platform__MModule__local_target_platform]))(var_mmodule) /* local_target_platform on <var_mmodule:MModule>*/;
602 var_ltp = var9;
603 var10 = NULL;
604 if (var_ltp == NULL) {
605 var11 = 0; /* is null */
606 } else {
607 var11 = 1; /* arg is null and recv is not */
608 }
609 if (var11){
610 var = var_ltp;
611 goto RET_LABEL;
612 } else {
613 }
614 CONTINUE_label: (void)0;
615 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
616 }
617 BREAK_label: (void)0;
618 var12 = NULL;
619 var = var12;
620 goto RET_LABEL;
621 RET_LABEL:;
622 return var;
623 }
624 /* method platform#MModule#target_platform for (self: Object): nullable Platform */
625 val* VIRTUAL_platform__MModule__target_platform(val* self) {
626 val* var /* : nullable Platform */;
627 val* var1 /* : nullable Platform */;
628 var1 = platform__MModule__target_platform(self);
629 var = var1;
630 RET_LABEL:;
631 return var;
632 }
633 /* method platform#Platform#supports_libunwind for (self: Platform): Bool */
634 short int platform__Platform__supports_libunwind(val* self) {
635 short int var /* : Bool */;
636 short int var1 /* : Bool */;
637 var1 = 1;
638 var = var1;
639 goto RET_LABEL;
640 RET_LABEL:;
641 return var;
642 }
643 /* method platform#Platform#supports_libunwind for (self: Object): Bool */
644 short int VIRTUAL_platform__Platform__supports_libunwind(val* self) {
645 short int var /* : Bool */;
646 short int var1 /* : Bool */;
647 var1 = platform__Platform__supports_libunwind(self);
648 var = var1;
649 RET_LABEL:;
650 return var;
651 }
652 /* method platform#Platform#init for (self: Platform) */
653 void platform__Platform__init(val* self) {
654 RET_LABEL:;
655 }
656 /* method platform#Platform#init for (self: Object) */
657 void VIRTUAL_platform__Platform__init(val* self) {
658 platform__Platform__init(self);
659 RET_LABEL:;
660 }