use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / abstract_compiler.sep.2.c
1 #include "abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AbstractCompilerVisitor#debug for (self: AbstractCompilerVisitor, String) */
3 void abstract_compiler__AbstractCompilerVisitor__debug(val* self, val* p0) {
4 val* var_message /* var message: String */;
5 val* var /* : nullable ANode */;
6 val* var_node /* var node: nullable ANode */;
7 val* var1 /* : null */;
8 short int var2 /* : Bool */;
9 static val* varonce;
10 val* var3 /* : String */;
11 char* var4 /* : NativeString */;
12 long var5 /* : Int */;
13 val* var6 /* : String */;
14 val* var7 /* : Array[Object] */;
15 long var8 /* : Int */;
16 val* var9 /* : NativeArray[Object] */;
17 val* var10 /* : String */;
18 static val* varonce11;
19 val* var12 /* : String */;
20 char* var13 /* : NativeString */;
21 long var14 /* : Int */;
22 val* var15 /* : String */;
23 static val* varonce16;
24 val* var17 /* : String */;
25 char* var18 /* : NativeString */;
26 long var19 /* : Int */;
27 val* var20 /* : String */;
28 val* var21 /* : Array[Object] */;
29 long var22 /* : Int */;
30 val* var23 /* : NativeArray[Object] */;
31 val* var24 /* : String */;
32 var_message = p0;
33 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
34 var_node = var;
35 var1 = NULL;
36 if (var_node == NULL) {
37 var2 = 1; /* is null */
38 } else {
39 var2 = 0; /* arg is null but recv is not */
40 }
41 if (var2){
42 if (varonce) {
43 var3 = varonce;
44 } else {
45 var4 = "?: ";
46 var5 = 3;
47 var6 = string__NativeString__to_s_with_length(var4, var5);
48 var3 = var6;
49 varonce = var3;
50 }
51 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
52 { /* var7 = array_instance Array[Object] */
53 var8 = 2;
54 var9 = NEW_array__NativeArray(var8, &type_array__NativeArraykernel__Object);
55 ((struct instance_array__NativeArray*)var9)->values[0] = (val*) var3;
56 ((struct instance_array__NativeArray*)var9)->values[1] = (val*) var_message;
57 ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
58 CHECK_NEW_array__Array(var7);
59 }
60 var10 = ((val* (*)(val*))(var7->class->vft[COLOR_string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
61 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var10) /* print on <self:AbstractCompilerVisitor>*/;
62 } else {
63 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__debug]))(var_node, var_message) /* debug on <var_node:nullable ANode(ANode)>*/;
64 }
65 if (varonce11) {
66 var12 = varonce11;
67 } else {
68 var13 = "/* DEBUG: ";
69 var14 = 10;
70 var15 = string__NativeString__to_s_with_length(var13, var14);
71 var12 = var15;
72 varonce11 = var12;
73 }
74 if (varonce16) {
75 var17 = varonce16;
76 } else {
77 var18 = " */";
78 var19 = 3;
79 var20 = string__NativeString__to_s_with_length(var18, var19);
80 var17 = var20;
81 varonce16 = var17;
82 }
83 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
84 { /* var21 = array_instance Array[Object] */
85 var22 = 3;
86 var23 = NEW_array__NativeArray(var22, &type_array__NativeArraykernel__Object);
87 ((struct instance_array__NativeArray*)var23)->values[0] = (val*) var12;
88 ((struct instance_array__NativeArray*)var23)->values[1] = (val*) var_message;
89 ((struct instance_array__NativeArray*)var23)->values[2] = (val*) var17;
90 ((void (*)(val*, val*, long))(var21->class->vft[COLOR_array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[Object]>*/;
91 CHECK_NEW_array__Array(var21);
92 }
93 var24 = ((val* (*)(val*))(var21->class->vft[COLOR_string__Object__to_s]))(var21) /* to_s on <var21:Array[Object]>*/;
94 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var24) /* add on <self:AbstractCompilerVisitor>*/;
95 RET_LABEL:;
96 }
97 /* method abstract_compiler#AbstractCompilerVisitor#debug for (self: Object, String) */
98 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__debug(val* self, val* p0) {
99 abstract_compiler__AbstractCompilerVisitor__debug(self, p0);
100 RET_LABEL:;
101 }
102 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef for (self: AbstractRuntimeFunction): MMethodDef */
103 val* abstract_compiler__AbstractRuntimeFunction__mmethoddef(val* self) {
104 val* var /* : MMethodDef */;
105 val* var1 /* : MMethodDef */;
106 var1 = self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val; /* @mmethoddef on <self:AbstractRuntimeFunction> */
107 if (var1 == NULL) {
108 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmethoddef", "src/abstract_compiler.nit", 969);
109 exit(1);
110 }
111 var = var1;
112 RET_LABEL:;
113 return var;
114 }
115 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef for (self: Object): MMethodDef */
116 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef(val* self) {
117 val* var /* : MMethodDef */;
118 val* var1 /* : MMethodDef */;
119 var1 = abstract_compiler__AbstractRuntimeFunction__mmethoddef(self);
120 var = var1;
121 RET_LABEL:;
122 return var;
123 }
124 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef= for (self: AbstractRuntimeFunction, MMethodDef) */
125 void abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d(val* self, val* p0) {
126 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val = p0; /* @mmethoddef on <self:AbstractRuntimeFunction> */
127 RET_LABEL:;
128 }
129 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef= for (self: Object, MMethodDef) */
130 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d(val* self, val* p0) {
131 abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d(self, p0);
132 RET_LABEL:;
133 }
134 /* method abstract_compiler#AbstractRuntimeFunction#c_name for (self: AbstractRuntimeFunction): String */
135 val* abstract_compiler__AbstractRuntimeFunction__c_name(val* self) {
136 val* var /* : String */;
137 val* var1 /* : nullable String */;
138 val* var_res /* var res: nullable String */;
139 val* var2 /* : null */;
140 short int var3 /* : Bool */;
141 val* var4 /* : String */;
142 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name_cache]))(self) /* c_name_cache on <self:AbstractRuntimeFunction>*/;
143 var_res = var1;
144 var2 = NULL;
145 if (var_res == NULL) {
146 var3 = 0; /* is null */
147 } else {
148 var3 = 1; /* arg is null and recv is not */
149 }
150 if (var3){
151 var = var_res;
152 goto RET_LABEL;
153 } else {
154 }
155 var4 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__build_c_name]))(self) /* build_c_name on <self:AbstractRuntimeFunction>*/;
156 var_res = var4;
157 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:AbstractRuntimeFunction>*/;
158 var = var_res;
159 goto RET_LABEL;
160 RET_LABEL:;
161 return var;
162 }
163 /* method abstract_compiler#AbstractRuntimeFunction#c_name for (self: Object): String */
164 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name(val* self) {
165 val* var /* : String */;
166 val* var1 /* : String */;
167 var1 = abstract_compiler__AbstractRuntimeFunction__c_name(self);
168 var = var1;
169 RET_LABEL:;
170 return var;
171 }
172 /* method abstract_compiler#AbstractRuntimeFunction#build_c_name for (self: AbstractRuntimeFunction): String */
173 val* abstract_compiler__AbstractRuntimeFunction__build_c_name(val* self) {
174 val* var /* : String */;
175 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/abstract_compiler.nit", 983);
176 exit(1);
177 RET_LABEL:;
178 return var;
179 }
180 /* method abstract_compiler#AbstractRuntimeFunction#build_c_name for (self: Object): String */
181 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__build_c_name(val* self) {
182 val* var /* : String */;
183 val* var1 /* : String */;
184 var1 = abstract_compiler__AbstractRuntimeFunction__build_c_name(self);
185 var = var1;
186 RET_LABEL:;
187 return var;
188 }
189 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache for (self: AbstractRuntimeFunction): nullable String */
190 val* abstract_compiler__AbstractRuntimeFunction__c_name_cache(val* self) {
191 val* var /* : nullable String */;
192 val* var1 /* : nullable String */;
193 var1 = self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dc_name_cache].val; /* @c_name_cache on <self:AbstractRuntimeFunction> */
194 var = var1;
195 RET_LABEL:;
196 return var;
197 }
198 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache for (self: Object): nullable String */
199 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name_cache(val* self) {
200 val* var /* : nullable String */;
201 val* var1 /* : nullable String */;
202 var1 = abstract_compiler__AbstractRuntimeFunction__c_name_cache(self);
203 var = var1;
204 RET_LABEL:;
205 return var;
206 }
207 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache= for (self: AbstractRuntimeFunction, nullable String) */
208 void abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d(val* self, val* p0) {
209 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dc_name_cache].val = p0; /* @c_name_cache on <self:AbstractRuntimeFunction> */
210 RET_LABEL:;
211 }
212 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache= for (self: Object, nullable String) */
213 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d(val* self, val* p0) {
214 abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d(self, p0);
215 RET_LABEL:;
216 }
217 /* method abstract_compiler#AbstractRuntimeFunction#call for (self: AbstractRuntimeFunction, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
218 val* abstract_compiler__AbstractRuntimeFunction__call(val* self, val* p0, val* p1) {
219 val* var /* : nullable RuntimeVariable */;
220 short int var1 /* : Bool */;
221 int cltype;
222 int idtype;
223 const struct type* type_struct;
224 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
225 /* <p0:AbstractCompilerVisitor> isa VISITOR */
226 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__AbstractRuntimeFunction_VTVISITOR];
227 cltype = type_struct->color;
228 idtype = type_struct->id;
229 if(cltype >= p0->type->table_size) {
230 var1 = 0;
231 } else {
232 var1 = p0->type->type_table[cltype] == idtype;
233 }
234 if (!var1) {
235 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 988);
236 exit(1);
237 }
238 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/abstract_compiler.nit", 988);
239 exit(1);
240 RET_LABEL:;
241 return var;
242 }
243 /* method abstract_compiler#AbstractRuntimeFunction#call for (self: Object, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
244 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__call(val* self, val* p0, val* p1) {
245 val* var /* : nullable RuntimeVariable */;
246 val* var1 /* : nullable RuntimeVariable */;
247 var1 = abstract_compiler__AbstractRuntimeFunction__call(self, p0, p1);
248 var = var1;
249 RET_LABEL:;
250 return var;
251 }
252 /* method abstract_compiler#AbstractRuntimeFunction#compile_to_c for (self: AbstractRuntimeFunction, AbstractCompiler) */
253 void abstract_compiler__AbstractRuntimeFunction__compile_to_c(val* self, val* p0) {
254 short int var /* : Bool */;
255 int cltype;
256 int idtype;
257 const struct type* type_struct;
258 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
259 /* <p0:AbstractCompiler> isa COMPILER */
260 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER];
261 cltype = type_struct->color;
262 idtype = type_struct->id;
263 if(cltype >= p0->type->table_size) {
264 var = 0;
265 } else {
266 var = p0->type->type_table[cltype] == idtype;
267 }
268 if (!var) {
269 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 992);
270 exit(1);
271 }
272 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/abstract_compiler.nit", 992);
273 exit(1);
274 RET_LABEL:;
275 }
276 /* method abstract_compiler#AbstractRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */
277 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__compile_to_c(val* self, val* p0) {
278 abstract_compiler__AbstractRuntimeFunction__compile_to_c(self, p0);
279 RET_LABEL:;
280 }
281 /* method abstract_compiler#AbstractRuntimeFunction#init for (self: AbstractRuntimeFunction, MMethodDef) */
282 void abstract_compiler__AbstractRuntimeFunction__init(val* self, val* p0) {
283 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val = p0; /* @mmethoddef on <self:AbstractRuntimeFunction> */
284 RET_LABEL:;
285 }
286 /* method abstract_compiler#AbstractRuntimeFunction#init for (self: Object, MMethodDef) */
287 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__init(val* self, val* p0) {
288 abstract_compiler__AbstractRuntimeFunction__init(self, p0);
289 RET_LABEL:;
290 }
291 /* method abstract_compiler#RuntimeVariable#name for (self: RuntimeVariable): String */
292 val* abstract_compiler__RuntimeVariable__name(val* self) {
293 val* var /* : String */;
294 val* var1 /* : String */;
295 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dname].val; /* @name on <self:RuntimeVariable> */
296 if (var1 == NULL) {
297 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/abstract_compiler.nit", 1002);
298 exit(1);
299 }
300 var = var1;
301 RET_LABEL:;
302 return var;
303 }
304 /* method abstract_compiler#RuntimeVariable#name for (self: Object): String */
305 val* VIRTUAL_abstract_compiler__RuntimeVariable__name(val* self) {
306 val* var /* : String */;
307 val* var1 /* : String */;
308 var1 = abstract_compiler__RuntimeVariable__name(self);
309 var = var1;
310 RET_LABEL:;
311 return var;
312 }
313 /* method abstract_compiler#RuntimeVariable#name= for (self: RuntimeVariable, String) */
314 void abstract_compiler__RuntimeVariable__name_61d(val* self, val* p0) {
315 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dname].val = p0; /* @name on <self:RuntimeVariable> */
316 RET_LABEL:;
317 }
318 /* method abstract_compiler#RuntimeVariable#name= for (self: Object, String) */
319 void VIRTUAL_abstract_compiler__RuntimeVariable__name_61d(val* self, val* p0) {
320 abstract_compiler__RuntimeVariable__name_61d(self, p0);
321 RET_LABEL:;
322 }
323 /* method abstract_compiler#RuntimeVariable#mtype for (self: RuntimeVariable): MType */
324 val* abstract_compiler__RuntimeVariable__mtype(val* self) {
325 val* var /* : MType */;
326 val* var1 /* : MType */;
327 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmtype].val; /* @mtype on <self:RuntimeVariable> */
328 if (var1 == NULL) {
329 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mtype", "src/abstract_compiler.nit", 1005);
330 exit(1);
331 }
332 var = var1;
333 RET_LABEL:;
334 return var;
335 }
336 /* method abstract_compiler#RuntimeVariable#mtype for (self: Object): MType */
337 val* VIRTUAL_abstract_compiler__RuntimeVariable__mtype(val* self) {
338 val* var /* : MType */;
339 val* var1 /* : MType */;
340 var1 = abstract_compiler__RuntimeVariable__mtype(self);
341 var = var1;
342 RET_LABEL:;
343 return var;
344 }
345 /* method abstract_compiler#RuntimeVariable#mtype= for (self: RuntimeVariable, MType) */
346 void abstract_compiler__RuntimeVariable__mtype_61d(val* self, val* p0) {
347 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmtype].val = p0; /* @mtype on <self:RuntimeVariable> */
348 RET_LABEL:;
349 }
350 /* method abstract_compiler#RuntimeVariable#mtype= for (self: Object, MType) */
351 void VIRTUAL_abstract_compiler__RuntimeVariable__mtype_61d(val* self, val* p0) {
352 abstract_compiler__RuntimeVariable__mtype_61d(self, p0);
353 RET_LABEL:;
354 }
355 /* method abstract_compiler#RuntimeVariable#mcasttype for (self: RuntimeVariable): MType */
356 val* abstract_compiler__RuntimeVariable__mcasttype(val* self) {
357 val* var /* : MType */;
358 val* var1 /* : MType */;
359 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmcasttype].val; /* @mcasttype on <self:RuntimeVariable> */
360 if (var1 == NULL) {
361 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mcasttype", "src/abstract_compiler.nit", 1008);
362 exit(1);
363 }
364 var = var1;
365 RET_LABEL:;
366 return var;
367 }
368 /* method abstract_compiler#RuntimeVariable#mcasttype for (self: Object): MType */
369 val* VIRTUAL_abstract_compiler__RuntimeVariable__mcasttype(val* self) {
370 val* var /* : MType */;
371 val* var1 /* : MType */;
372 var1 = abstract_compiler__RuntimeVariable__mcasttype(self);
373 var = var1;
374 RET_LABEL:;
375 return var;
376 }
377 /* method abstract_compiler#RuntimeVariable#mcasttype= for (self: RuntimeVariable, MType) */
378 void abstract_compiler__RuntimeVariable__mcasttype_61d(val* self, val* p0) {
379 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmcasttype].val = p0; /* @mcasttype on <self:RuntimeVariable> */
380 RET_LABEL:;
381 }
382 /* method abstract_compiler#RuntimeVariable#mcasttype= for (self: Object, MType) */
383 void VIRTUAL_abstract_compiler__RuntimeVariable__mcasttype_61d(val* self, val* p0) {
384 abstract_compiler__RuntimeVariable__mcasttype_61d(self, p0);
385 RET_LABEL:;
386 }
387 /* method abstract_compiler#RuntimeVariable#is_exact for (self: RuntimeVariable): Bool */
388 short int abstract_compiler__RuntimeVariable__is_exact(val* self) {
389 short int var /* : Bool */;
390 short int var1 /* : Bool */;
391 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dis_exact].s; /* @is_exact on <self:RuntimeVariable> */
392 var = var1;
393 RET_LABEL:;
394 return var;
395 }
396 /* method abstract_compiler#RuntimeVariable#is_exact for (self: Object): Bool */
397 short int VIRTUAL_abstract_compiler__RuntimeVariable__is_exact(val* self) {
398 short int var /* : Bool */;
399 short int var1 /* : Bool */;
400 var1 = abstract_compiler__RuntimeVariable__is_exact(self);
401 var = var1;
402 RET_LABEL:;
403 return var;
404 }
405 /* method abstract_compiler#RuntimeVariable#is_exact= for (self: RuntimeVariable, Bool) */
406 void abstract_compiler__RuntimeVariable__is_exact_61d(val* self, short int p0) {
407 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dis_exact].s = p0; /* @is_exact on <self:RuntimeVariable> */
408 RET_LABEL:;
409 }
410 /* method abstract_compiler#RuntimeVariable#is_exact= for (self: Object, Bool) */
411 void VIRTUAL_abstract_compiler__RuntimeVariable__is_exact_61d(val* self, short int p0) {
412 abstract_compiler__RuntimeVariable__is_exact_61d(self, p0);
413 RET_LABEL:;
414 }
415 /* method abstract_compiler#RuntimeVariable#init for (self: RuntimeVariable, String, MType, MType) */
416 void abstract_compiler__RuntimeVariable__init(val* self, val* p0, val* p1, val* p2) {
417 val* var_name /* var name: String */;
418 val* var_mtype /* var mtype: MType */;
419 val* var_mcasttype /* var mcasttype: MType */;
420 short int var /* : Bool */;
421 short int var1 /* : Bool */;
422 short int var2 /* : Bool */;
423 short int var3 /* : Bool */;
424 var_name = p0;
425 var_mtype = p1;
426 var_mcasttype = p2;
427 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__name_61d]))(self, var_name) /* name= on <self:RuntimeVariable>*/;
428 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype_61d]))(self, var_mtype) /* mtype= on <self:RuntimeVariable>*/;
429 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mcasttype_61d]))(self, var_mcasttype) /* mcasttype= on <self:RuntimeVariable>*/;
430 var = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
431 var1 = !var;
432 if (!var1) {
433 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/abstract_compiler.nit", 1020);
434 exit(1);
435 }
436 var2 = ((short int (*)(val*))(var_mcasttype->class->vft[COLOR_model__MType__need_anchor]))(var_mcasttype) /* need_anchor on <var_mcasttype:MType>*/;
437 var3 = !var2;
438 if (!var3) {
439 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/abstract_compiler.nit", 1021);
440 exit(1);
441 }
442 RET_LABEL:;
443 }
444 /* method abstract_compiler#RuntimeVariable#init for (self: Object, String, MType, MType) */
445 void VIRTUAL_abstract_compiler__RuntimeVariable__init(val* self, val* p0, val* p1, val* p2) {
446 abstract_compiler__RuntimeVariable__init(self, p0, p1, p2);
447 RET_LABEL:;
448 }
449 /* method abstract_compiler#RuntimeVariable#to_s for (self: RuntimeVariable): String */
450 val* abstract_compiler__RuntimeVariable__to_s(val* self) {
451 val* var /* : String */;
452 val* var1 /* : String */;
453 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__name]))(self) /* name on <self:RuntimeVariable>*/;
454 var = var1;
455 goto RET_LABEL;
456 RET_LABEL:;
457 return var;
458 }
459 /* method abstract_compiler#RuntimeVariable#to_s for (self: Object): String */
460 val* VIRTUAL_abstract_compiler__RuntimeVariable__to_s(val* self) {
461 val* var /* : String */;
462 val* var1 /* : String */;
463 var1 = abstract_compiler__RuntimeVariable__to_s(self);
464 var = var1;
465 RET_LABEL:;
466 return var;
467 }
468 /* method abstract_compiler#RuntimeVariable#inspect for (self: RuntimeVariable): String */
469 val* abstract_compiler__RuntimeVariable__inspect(val* self) {
470 val* var /* : String */;
471 short int var1 /* : Bool */;
472 static val* varonce;
473 val* var2 /* : String */;
474 char* var3 /* : NativeString */;
475 long var4 /* : Int */;
476 val* var5 /* : String */;
477 val* var_exact_str /* var exact_str: nullable Object */;
478 static val* varonce6;
479 val* var7 /* : String */;
480 char* var8 /* : NativeString */;
481 long var9 /* : Int */;
482 val* var10 /* : String */;
483 val* var11 /* : MType */;
484 val* var12 /* : MType */;
485 short int var13 /* : Bool */;
486 val* var14 /* : MType */;
487 val* var15 /* : Array[Object] */;
488 long var16 /* : Int */;
489 val* var17 /* : NativeArray[Object] */;
490 val* var18 /* : String */;
491 val* var_type_str /* var type_str: nullable Object */;
492 val* var19 /* : MType */;
493 static val* varonce20;
494 val* var21 /* : String */;
495 char* var22 /* : NativeString */;
496 long var23 /* : Int */;
497 val* var24 /* : String */;
498 val* var25 /* : MType */;
499 static val* varonce26;
500 val* var27 /* : String */;
501 char* var28 /* : NativeString */;
502 long var29 /* : Int */;
503 val* var30 /* : String */;
504 val* var31 /* : Array[Object] */;
505 long var32 /* : Int */;
506 val* var33 /* : NativeArray[Object] */;
507 val* var34 /* : String */;
508 val* var35 /* : Array[Object] */;
509 long var36 /* : Int */;
510 val* var_ /* var : Array[Object] */;
511 static val* varonce37;
512 val* var38 /* : String */;
513 char* var39 /* : NativeString */;
514 long var40 /* : Int */;
515 val* var41 /* : String */;
516 val* var42 /* : String */;
517 static val* varonce43;
518 val* var44 /* : String */;
519 char* var45 /* : NativeString */;
520 long var46 /* : Int */;
521 val* var47 /* : String */;
522 static val* varonce48;
523 val* var49 /* : String */;
524 char* var50 /* : NativeString */;
525 long var51 /* : Int */;
526 val* var52 /* : String */;
527 val* var53 /* : String */;
528 var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__is_exact]))(self) /* is_exact on <self:RuntimeVariable>*/;
529 if (var1){
530 if (varonce) {
531 var2 = varonce;
532 } else {
533 var3 = " exact";
534 var4 = 6;
535 var5 = string__NativeString__to_s_with_length(var3, var4);
536 var2 = var5;
537 varonce = var2;
538 }
539 var_exact_str = var2;
540 } else {
541 if (varonce6) {
542 var7 = varonce6;
543 } else {
544 var8 = "";
545 var9 = 0;
546 var10 = string__NativeString__to_s_with_length(var8, var9);
547 var7 = var10;
548 varonce6 = var7;
549 }
550 var_exact_str = var7;
551 }
552 var11 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(self) /* mtype on <self:RuntimeVariable>*/;
553 var12 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mcasttype]))(self) /* mcasttype on <self:RuntimeVariable>*/;
554 var13 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var12) /* == on <var11:MType>*/;
555 if (var13){
556 var14 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(self) /* mtype on <self:RuntimeVariable>*/;
557 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
558 { /* var15 = array_instance Array[Object] */
559 var16 = 2;
560 var17 = NEW_array__NativeArray(var16, &type_array__NativeArraykernel__Object);
561 ((struct instance_array__NativeArray*)var17)->values[0] = (val*) var14;
562 ((struct instance_array__NativeArray*)var17)->values[1] = (val*) var_exact_str;
563 ((void (*)(val*, val*, long))(var15->class->vft[COLOR_array__Array__with_native]))(var15, var17, var16) /* with_native on <var15:Array[Object]>*/;
564 CHECK_NEW_array__Array(var15);
565 }
566 var18 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on <var15:Array[Object]>*/;
567 var_type_str = var18;
568 } else {
569 var19 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(self) /* mtype on <self:RuntimeVariable>*/;
570 if (varonce20) {
571 var21 = varonce20;
572 } else {
573 var22 = "(";
574 var23 = 1;
575 var24 = string__NativeString__to_s_with_length(var22, var23);
576 var21 = var24;
577 varonce20 = var21;
578 }
579 var25 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mcasttype]))(self) /* mcasttype on <self:RuntimeVariable>*/;
580 if (varonce26) {
581 var27 = varonce26;
582 } else {
583 var28 = ")";
584 var29 = 1;
585 var30 = string__NativeString__to_s_with_length(var28, var29);
586 var27 = var30;
587 varonce26 = var27;
588 }
589 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
590 { /* var31 = array_instance Array[Object] */
591 var32 = 5;
592 var33 = NEW_array__NativeArray(var32, &type_array__NativeArraykernel__Object);
593 ((struct instance_array__NativeArray*)var33)->values[0] = (val*) var19;
594 ((struct instance_array__NativeArray*)var33)->values[1] = (val*) var21;
595 ((struct instance_array__NativeArray*)var33)->values[2] = (val*) var25;
596 ((struct instance_array__NativeArray*)var33)->values[3] = (val*) var_exact_str;
597 ((struct instance_array__NativeArray*)var33)->values[4] = (val*) var27;
598 ((void (*)(val*, val*, long))(var31->class->vft[COLOR_array__Array__with_native]))(var31, var33, var32) /* with_native on <var31:Array[Object]>*/;
599 CHECK_NEW_array__Array(var31);
600 }
601 var34 = ((val* (*)(val*))(var31->class->vft[COLOR_string__Object__to_s]))(var31) /* to_s on <var31:Array[Object]>*/;
602 var_type_str = var34;
603 }
604 var35 = NEW_array__Array(&type_array__Arraykernel__Object);
605 var36 = 5;
606 ((void (*)(val*, long))(var35->class->vft[COLOR_array__Array__with_capacity]))(var35, var36) /* with_capacity on <var35:Array[Object]>*/;
607 CHECK_NEW_array__Array(var35);
608 var_ = var35;
609 if (varonce37) {
610 var38 = varonce37;
611 } else {
612 var39 = "<";
613 var40 = 1;
614 var41 = string__NativeString__to_s_with_length(var39, var40);
615 var38 = var41;
616 varonce37 = var38;
617 }
618 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var38) /* add on <var_:Array[Object]>*/;
619 var42 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__name]))(self) /* name on <self:RuntimeVariable>*/;
620 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var42) /* add on <var_:Array[Object]>*/;
621 if (varonce43) {
622 var44 = varonce43;
623 } else {
624 var45 = ":";
625 var46 = 1;
626 var47 = string__NativeString__to_s_with_length(var45, var46);
627 var44 = var47;
628 varonce43 = var44;
629 }
630 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var44) /* add on <var_:Array[Object]>*/;
631 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_type_str) /* add on <var_:Array[Object]>*/;
632 if (varonce48) {
633 var49 = varonce48;
634 } else {
635 var50 = ">";
636 var51 = 1;
637 var52 = string__NativeString__to_s_with_length(var50, var51);
638 var49 = var52;
639 varonce48 = var49;
640 }
641 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var49) /* add on <var_:Array[Object]>*/;
642 var53 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
643 var = var53;
644 goto RET_LABEL;
645 RET_LABEL:;
646 return var;
647 }
648 /* method abstract_compiler#RuntimeVariable#inspect for (self: Object): String */
649 val* VIRTUAL_abstract_compiler__RuntimeVariable__inspect(val* self) {
650 val* var /* : String */;
651 val* var1 /* : String */;
652 var1 = abstract_compiler__RuntimeVariable__inspect(self);
653 var = var1;
654 RET_LABEL:;
655 return var;
656 }
657 /* method abstract_compiler#Frame#visitor for (self: Frame): AbstractCompilerVisitor */
658 val* abstract_compiler__Frame__visitor(val* self) {
659 val* var /* : AbstractCompilerVisitor */;
660 val* var1 /* : AbstractCompilerVisitor */;
661 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dvisitor].val; /* @visitor on <self:Frame> */
662 if (var1 == NULL) {
663 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @visitor", "src/abstract_compiler.nit", 1049);
664 exit(1);
665 }
666 var = var1;
667 RET_LABEL:;
668 return var;
669 }
670 /* method abstract_compiler#Frame#visitor for (self: Object): AbstractCompilerVisitor */
671 val* VIRTUAL_abstract_compiler__Frame__visitor(val* self) {
672 val* var /* : AbstractCompilerVisitor */;
673 val* var1 /* : AbstractCompilerVisitor */;
674 var1 = abstract_compiler__Frame__visitor(self);
675 var = var1;
676 RET_LABEL:;
677 return var;
678 }
679 /* method abstract_compiler#Frame#visitor= for (self: Frame, AbstractCompilerVisitor) */
680 void abstract_compiler__Frame__visitor_61d(val* self, val* p0) {
681 short int var /* : Bool */;
682 int cltype;
683 int idtype;
684 const struct type* type_struct;
685 /* Covariant cast for argument 0 (visitor) <p0:AbstractCompilerVisitor> isa VISITOR */
686 /* <p0:AbstractCompilerVisitor> isa VISITOR */
687 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__Frame_VTVISITOR];
688 cltype = type_struct->color;
689 idtype = type_struct->id;
690 if(cltype >= p0->type->table_size) {
691 var = 0;
692 } else {
693 var = p0->type->type_table[cltype] == idtype;
694 }
695 if (!var) {
696 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1049);
697 exit(1);
698 }
699 self->attrs[COLOR_abstract_compiler__Frame___64dvisitor].val = p0; /* @visitor on <self:Frame> */
700 RET_LABEL:;
701 }
702 /* method abstract_compiler#Frame#visitor= for (self: Object, AbstractCompilerVisitor) */
703 void VIRTUAL_abstract_compiler__Frame__visitor_61d(val* self, val* p0) {
704 abstract_compiler__Frame__visitor_61d(self, p0);
705 RET_LABEL:;
706 }
707 /* method abstract_compiler#Frame#mpropdef for (self: Frame): MPropDef */
708 val* abstract_compiler__Frame__mpropdef(val* self) {
709 val* var /* : MPropDef */;
710 val* var1 /* : MPropDef */;
711 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dmpropdef].val; /* @mpropdef on <self:Frame> */
712 if (var1 == NULL) {
713 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/abstract_compiler.nit", 1052);
714 exit(1);
715 }
716 var = var1;
717 RET_LABEL:;
718 return var;
719 }
720 /* method abstract_compiler#Frame#mpropdef for (self: Object): MPropDef */
721 val* VIRTUAL_abstract_compiler__Frame__mpropdef(val* self) {
722 val* var /* : MPropDef */;
723 val* var1 /* : MPropDef */;
724 var1 = abstract_compiler__Frame__mpropdef(self);
725 var = var1;
726 RET_LABEL:;
727 return var;
728 }
729 /* method abstract_compiler#Frame#mpropdef= for (self: Frame, MPropDef) */
730 void abstract_compiler__Frame__mpropdef_61d(val* self, val* p0) {
731 self->attrs[COLOR_abstract_compiler__Frame___64dmpropdef].val = p0; /* @mpropdef on <self:Frame> */
732 RET_LABEL:;
733 }
734 /* method abstract_compiler#Frame#mpropdef= for (self: Object, MPropDef) */
735 void VIRTUAL_abstract_compiler__Frame__mpropdef_61d(val* self, val* p0) {
736 abstract_compiler__Frame__mpropdef_61d(self, p0);
737 RET_LABEL:;
738 }
739 /* method abstract_compiler#Frame#receiver for (self: Frame): MClassType */
740 val* abstract_compiler__Frame__receiver(val* self) {
741 val* var /* : MClassType */;
742 val* var1 /* : MClassType */;
743 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dreceiver].val; /* @receiver on <self:Frame> */
744 if (var1 == NULL) {
745 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @receiver", "src/abstract_compiler.nit", 1056);
746 exit(1);
747 }
748 var = var1;
749 RET_LABEL:;
750 return var;
751 }
752 /* method abstract_compiler#Frame#receiver for (self: Object): MClassType */
753 val* VIRTUAL_abstract_compiler__Frame__receiver(val* self) {
754 val* var /* : MClassType */;
755 val* var1 /* : MClassType */;
756 var1 = abstract_compiler__Frame__receiver(self);
757 var = var1;
758 RET_LABEL:;
759 return var;
760 }
761 /* method abstract_compiler#Frame#receiver= for (self: Frame, MClassType) */
762 void abstract_compiler__Frame__receiver_61d(val* self, val* p0) {
763 self->attrs[COLOR_abstract_compiler__Frame___64dreceiver].val = p0; /* @receiver on <self:Frame> */
764 RET_LABEL:;
765 }
766 /* method abstract_compiler#Frame#receiver= for (self: Object, MClassType) */
767 void VIRTUAL_abstract_compiler__Frame__receiver_61d(val* self, val* p0) {
768 abstract_compiler__Frame__receiver_61d(self, p0);
769 RET_LABEL:;
770 }
771 /* method abstract_compiler#Frame#arguments for (self: Frame): Array[RuntimeVariable] */
772 val* abstract_compiler__Frame__arguments(val* self) {
773 val* var /* : Array[RuntimeVariable] */;
774 val* var1 /* : Array[RuntimeVariable] */;
775 var1 = self->attrs[COLOR_abstract_compiler__Frame___64darguments].val; /* @arguments on <self:Frame> */
776 if (var1 == NULL) {
777 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @arguments", "src/abstract_compiler.nit", 1059);
778 exit(1);
779 }
780 var = var1;
781 RET_LABEL:;
782 return var;
783 }
784 /* method abstract_compiler#Frame#arguments for (self: Object): Array[RuntimeVariable] */
785 val* VIRTUAL_abstract_compiler__Frame__arguments(val* self) {
786 val* var /* : Array[RuntimeVariable] */;
787 val* var1 /* : Array[RuntimeVariable] */;
788 var1 = abstract_compiler__Frame__arguments(self);
789 var = var1;
790 RET_LABEL:;
791 return var;
792 }
793 /* method abstract_compiler#Frame#arguments= for (self: Frame, Array[RuntimeVariable]) */
794 void abstract_compiler__Frame__arguments_61d(val* self, val* p0) {
795 self->attrs[COLOR_abstract_compiler__Frame___64darguments].val = p0; /* @arguments on <self:Frame> */
796 RET_LABEL:;
797 }
798 /* method abstract_compiler#Frame#arguments= for (self: Object, Array[RuntimeVariable]) */
799 void VIRTUAL_abstract_compiler__Frame__arguments_61d(val* self, val* p0) {
800 abstract_compiler__Frame__arguments_61d(self, p0);
801 RET_LABEL:;
802 }
803 /* method abstract_compiler#Frame#returnvar for (self: Frame): nullable RuntimeVariable */
804 val* abstract_compiler__Frame__returnvar(val* self) {
805 val* var /* : nullable RuntimeVariable */;
806 val* var1 /* : nullable RuntimeVariable */;
807 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dreturnvar].val; /* @returnvar on <self:Frame> */
808 var = var1;
809 RET_LABEL:;
810 return var;
811 }
812 /* method abstract_compiler#Frame#returnvar for (self: Object): nullable RuntimeVariable */
813 val* VIRTUAL_abstract_compiler__Frame__returnvar(val* self) {
814 val* var /* : nullable RuntimeVariable */;
815 val* var1 /* : nullable RuntimeVariable */;
816 var1 = abstract_compiler__Frame__returnvar(self);
817 var = var1;
818 RET_LABEL:;
819 return var;
820 }
821 /* method abstract_compiler#Frame#returnvar= for (self: Frame, nullable RuntimeVariable) */
822 void abstract_compiler__Frame__returnvar_61d(val* self, val* p0) {
823 self->attrs[COLOR_abstract_compiler__Frame___64dreturnvar].val = p0; /* @returnvar on <self:Frame> */
824 RET_LABEL:;
825 }
826 /* method abstract_compiler#Frame#returnvar= for (self: Object, nullable RuntimeVariable) */
827 void VIRTUAL_abstract_compiler__Frame__returnvar_61d(val* self, val* p0) {
828 abstract_compiler__Frame__returnvar_61d(self, p0);
829 RET_LABEL:;
830 }
831 /* method abstract_compiler#Frame#returnlabel for (self: Frame): nullable String */
832 val* abstract_compiler__Frame__returnlabel(val* self) {
833 val* var /* : nullable String */;
834 val* var1 /* : nullable String */;
835 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dreturnlabel].val; /* @returnlabel on <self:Frame> */
836 var = var1;
837 RET_LABEL:;
838 return var;
839 }
840 /* method abstract_compiler#Frame#returnlabel for (self: Object): nullable String */
841 val* VIRTUAL_abstract_compiler__Frame__returnlabel(val* self) {
842 val* var /* : nullable String */;
843 val* var1 /* : nullable String */;
844 var1 = abstract_compiler__Frame__returnlabel(self);
845 var = var1;
846 RET_LABEL:;
847 return var;
848 }
849 /* method abstract_compiler#Frame#returnlabel= for (self: Frame, nullable String) */
850 void abstract_compiler__Frame__returnlabel_61d(val* self, val* p0) {
851 self->attrs[COLOR_abstract_compiler__Frame___64dreturnlabel].val = p0; /* @returnlabel on <self:Frame> */
852 RET_LABEL:;
853 }
854 /* method abstract_compiler#Frame#returnlabel= for (self: Object, nullable String) */
855 void VIRTUAL_abstract_compiler__Frame__returnlabel_61d(val* self, val* p0) {
856 abstract_compiler__Frame__returnlabel_61d(self, p0);
857 RET_LABEL:;
858 }
859 /* method abstract_compiler#Frame#init for (self: Frame, AbstractCompilerVisitor, MPropDef, MClassType, Array[RuntimeVariable]) */
860 void abstract_compiler__Frame__init(val* self, val* p0, val* p1, val* p2, val* p3) {
861 short int var /* : Bool */;
862 int cltype;
863 int idtype;
864 const struct type* type_struct;
865 /* Covariant cast for argument 0 (visitor) <p0:AbstractCompilerVisitor> isa VISITOR */
866 /* <p0:AbstractCompilerVisitor> isa VISITOR */
867 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__Frame_VTVISITOR];
868 cltype = type_struct->color;
869 idtype = type_struct->id;
870 if(cltype >= p0->type->table_size) {
871 var = 0;
872 } else {
873 var = p0->type->type_table[cltype] == idtype;
874 }
875 if (!var) {
876 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1044);
877 exit(1);
878 }
879 self->attrs[COLOR_abstract_compiler__Frame___64dvisitor].val = p0; /* @visitor on <self:Frame> */
880 self->attrs[COLOR_abstract_compiler__Frame___64dmpropdef].val = p1; /* @mpropdef on <self:Frame> */
881 self->attrs[COLOR_abstract_compiler__Frame___64dreceiver].val = p2; /* @receiver on <self:Frame> */
882 self->attrs[COLOR_abstract_compiler__Frame___64darguments].val = p3; /* @arguments on <self:Frame> */
883 RET_LABEL:;
884 }
885 /* method abstract_compiler#Frame#init for (self: Object, AbstractCompilerVisitor, MPropDef, MClassType, Array[RuntimeVariable]) */
886 void VIRTUAL_abstract_compiler__Frame__init(val* self, val* p0, val* p1, val* p2, val* p3) {
887 abstract_compiler__Frame__init(self, p0, p1, p2, p3);
888 RET_LABEL:;
889 }
890 /* method abstract_compiler#ExternCFile#filename for (self: ExternCFile): String */
891 val* abstract_compiler__ExternCFile__filename(val* self) {
892 val* var /* : String */;
893 val* var1 /* : String */;
894 var1 = self->attrs[COLOR_abstract_compiler__ExternCFile___64dfilename].val; /* @filename on <self:ExternCFile> */
895 if (var1 == NULL) {
896 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @filename", "src/abstract_compiler.nit", 1071);
897 exit(1);
898 }
899 var = var1;
900 RET_LABEL:;
901 return var;
902 }
903 /* method abstract_compiler#ExternCFile#filename for (self: Object): String */
904 val* VIRTUAL_abstract_compiler__ExternCFile__filename(val* self) {
905 val* var /* : String */;
906 val* var1 /* : String */;
907 var1 = abstract_compiler__ExternCFile__filename(self);
908 var = var1;
909 RET_LABEL:;
910 return var;
911 }
912 /* method abstract_compiler#ExternCFile#filename= for (self: ExternCFile, String) */
913 void abstract_compiler__ExternCFile__filename_61d(val* self, val* p0) {
914 self->attrs[COLOR_abstract_compiler__ExternCFile___64dfilename].val = p0; /* @filename on <self:ExternCFile> */
915 RET_LABEL:;
916 }
917 /* method abstract_compiler#ExternCFile#filename= for (self: Object, String) */
918 void VIRTUAL_abstract_compiler__ExternCFile__filename_61d(val* self, val* p0) {
919 abstract_compiler__ExternCFile__filename_61d(self, p0);
920 RET_LABEL:;
921 }
922 /* method abstract_compiler#ExternCFile#cflags for (self: ExternCFile): String */
923 val* abstract_compiler__ExternCFile__cflags(val* self) {
924 val* var /* : String */;
925 val* var1 /* : String */;
926 var1 = self->attrs[COLOR_abstract_compiler__ExternCFile___64dcflags].val; /* @cflags on <self:ExternCFile> */
927 if (var1 == NULL) {
928 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @cflags", "src/abstract_compiler.nit", 1073);
929 exit(1);
930 }
931 var = var1;
932 RET_LABEL:;
933 return var;
934 }
935 /* method abstract_compiler#ExternCFile#cflags for (self: Object): String */
936 val* VIRTUAL_abstract_compiler__ExternCFile__cflags(val* self) {
937 val* var /* : String */;
938 val* var1 /* : String */;
939 var1 = abstract_compiler__ExternCFile__cflags(self);
940 var = var1;
941 RET_LABEL:;
942 return var;
943 }
944 /* method abstract_compiler#ExternCFile#cflags= for (self: ExternCFile, String) */
945 void abstract_compiler__ExternCFile__cflags_61d(val* self, val* p0) {
946 self->attrs[COLOR_abstract_compiler__ExternCFile___64dcflags].val = p0; /* @cflags on <self:ExternCFile> */
947 RET_LABEL:;
948 }
949 /* method abstract_compiler#ExternCFile#cflags= for (self: Object, String) */
950 void VIRTUAL_abstract_compiler__ExternCFile__cflags_61d(val* self, val* p0) {
951 abstract_compiler__ExternCFile__cflags_61d(self, p0);
952 RET_LABEL:;
953 }
954 /* method abstract_compiler#ExternCFile#init for (self: ExternCFile, String, String) */
955 void abstract_compiler__ExternCFile__init(val* self, val* p0, val* p1) {
956 self->attrs[COLOR_abstract_compiler__ExternCFile___64dfilename].val = p0; /* @filename on <self:ExternCFile> */
957 self->attrs[COLOR_abstract_compiler__ExternCFile___64dcflags].val = p1; /* @cflags on <self:ExternCFile> */
958 RET_LABEL:;
959 }
960 /* method abstract_compiler#ExternCFile#init for (self: Object, String, String) */
961 void VIRTUAL_abstract_compiler__ExternCFile__init(val* self, val* p0, val* p1) {
962 abstract_compiler__ExternCFile__init(self, p0, p1);
963 RET_LABEL:;
964 }
965 /* method abstract_compiler#MType#ctype for (self: MType): String */
966 val* abstract_compiler__MType__ctype(val* self) {
967 val* var /* : String */;
968 static val* varonce;
969 val* var1 /* : String */;
970 char* var2 /* : NativeString */;
971 long var3 /* : Int */;
972 val* var4 /* : String */;
973 if (varonce) {
974 var1 = varonce;
975 } else {
976 var2 = "val*";
977 var3 = 4;
978 var4 = string__NativeString__to_s_with_length(var2, var3);
979 var1 = var4;
980 varonce = var1;
981 }
982 var = var1;
983 goto RET_LABEL;
984 RET_LABEL:;
985 return var;
986 }
987 /* method abstract_compiler#MType#ctype for (self: Object): String */
988 val* VIRTUAL_abstract_compiler__MType__ctype(val* self) {
989 val* var /* : String */;
990 val* var1 /* : String */;
991 var1 = abstract_compiler__MType__ctype(self);
992 var = var1;
993 RET_LABEL:;
994 return var;
995 }
996 /* method abstract_compiler#MType#ctypename for (self: MType): String */
997 val* abstract_compiler__MType__ctypename(val* self) {
998 val* var /* : String */;
999 static val* varonce;
1000 val* var1 /* : String */;
1001 char* var2 /* : NativeString */;
1002 long var3 /* : Int */;
1003 val* var4 /* : String */;
1004 if (varonce) {
1005 var1 = varonce;
1006 } else {
1007 var2 = "val";
1008 var3 = 3;
1009 var4 = string__NativeString__to_s_with_length(var2, var3);
1010 var1 = var4;
1011 varonce = var1;
1012 }
1013 var = var1;
1014 goto RET_LABEL;
1015 RET_LABEL:;
1016 return var;
1017 }
1018 /* method abstract_compiler#MType#ctypename for (self: Object): String */
1019 val* VIRTUAL_abstract_compiler__MType__ctypename(val* self) {
1020 val* var /* : String */;
1021 val* var1 /* : String */;
1022 var1 = abstract_compiler__MType__ctypename(self);
1023 var = var1;
1024 RET_LABEL:;
1025 return var;
1026 }
1027 /* method abstract_compiler#MType#c_name for (self: MType): String */
1028 val* abstract_compiler__MType__c_name(val* self) {
1029 val* var /* : String */;
1030 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/abstract_compiler.nit", 1083);
1031 exit(1);
1032 RET_LABEL:;
1033 return var;
1034 }
1035 /* method abstract_compiler#MType#c_name for (self: Object): String */
1036 val* VIRTUAL_abstract_compiler__MType__c_name(val* self) {
1037 val* var /* : String */;
1038 val* var1 /* : String */;
1039 var1 = abstract_compiler__MType__c_name(self);
1040 var = var1;
1041 RET_LABEL:;
1042 return var;
1043 }
1044 /* method abstract_compiler#MType#c_name_cache for (self: MType): nullable String */
1045 val* abstract_compiler__MType__c_name_cache(val* self) {
1046 val* var /* : nullable String */;
1047 val* var1 /* : nullable String */;
1048 var1 = self->attrs[COLOR_abstract_compiler__MType___64dc_name_cache].val; /* @c_name_cache on <self:MType> */
1049 var = var1;
1050 RET_LABEL:;
1051 return var;
1052 }
1053 /* method abstract_compiler#MType#c_name_cache for (self: Object): nullable String */
1054 val* VIRTUAL_abstract_compiler__MType__c_name_cache(val* self) {
1055 val* var /* : nullable String */;
1056 val* var1 /* : nullable String */;
1057 var1 = abstract_compiler__MType__c_name_cache(self);
1058 var = var1;
1059 RET_LABEL:;
1060 return var;
1061 }
1062 /* method abstract_compiler#MType#c_name_cache= for (self: MType, nullable String) */
1063 void abstract_compiler__MType__c_name_cache_61d(val* self, val* p0) {
1064 self->attrs[COLOR_abstract_compiler__MType___64dc_name_cache].val = p0; /* @c_name_cache on <self:MType> */
1065 RET_LABEL:;
1066 }
1067 /* method abstract_compiler#MType#c_name_cache= for (self: Object, nullable String) */
1068 void VIRTUAL_abstract_compiler__MType__c_name_cache_61d(val* self, val* p0) {
1069 abstract_compiler__MType__c_name_cache_61d(self, p0);
1070 RET_LABEL:;
1071 }
1072 /* method abstract_compiler#MClassType#c_name for (self: MClassType): String */
1073 val* abstract_compiler__MClassType__c_name(val* self) {
1074 val* var /* : String */;
1075 val* var1 /* : nullable String */;
1076 val* var_res /* var res: nullable String */;
1077 val* var2 /* : null */;
1078 short int var3 /* : Bool */;
1079 val* var4 /* : Array[Object] */;
1080 long var5 /* : Int */;
1081 val* var_ /* var : Array[Object] */;
1082 static val* varonce;
1083 val* var6 /* : String */;
1084 char* var7 /* : NativeString */;
1085 long var8 /* : Int */;
1086 val* var9 /* : String */;
1087 val* var10 /* : MClass */;
1088 val* var11 /* : MModule */;
1089 val* var12 /* : String */;
1090 val* var13 /* : String */;
1091 static val* varonce14;
1092 val* var15 /* : String */;
1093 char* var16 /* : NativeString */;
1094 long var17 /* : Int */;
1095 val* var18 /* : String */;
1096 val* var19 /* : MClass */;
1097 val* var20 /* : String */;
1098 val* var21 /* : String */;
1099 static val* varonce22;
1100 val* var23 /* : String */;
1101 char* var24 /* : NativeString */;
1102 long var25 /* : Int */;
1103 val* var26 /* : String */;
1104 val* var27 /* : String */;
1105 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MClassType>*/;
1106 var_res = var1;
1107 var2 = NULL;
1108 if (var_res == NULL) {
1109 var3 = 0; /* is null */
1110 } else {
1111 var3 = 1; /* arg is null and recv is not */
1112 }
1113 if (var3){
1114 var = var_res;
1115 goto RET_LABEL;
1116 } else {
1117 }
1118 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1119 var5 = 5;
1120 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
1121 CHECK_NEW_array__Array(var4);
1122 var_ = var4;
1123 if (varonce) {
1124 var6 = varonce;
1125 } else {
1126 var7 = "";
1127 var8 = 0;
1128 var9 = string__NativeString__to_s_with_length(var7, var8);
1129 var6 = var9;
1130 varonce = var6;
1131 }
1132 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
1133 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1134 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MClass__intro_mmodule]))(var10) /* intro_mmodule on <var10:MClass>*/;
1135 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model_base__MModule__name]))(var11) /* name on <var11:MModule>*/;
1136 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__AbstractString__to_cmangle]))(var12) /* to_cmangle on <var12:String>*/;
1137 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
1138 if (varonce14) {
1139 var15 = varonce14;
1140 } else {
1141 var16 = "__";
1142 var17 = 2;
1143 var18 = string__NativeString__to_s_with_length(var16, var17);
1144 var15 = var18;
1145 varonce14 = var15;
1146 }
1147 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var15) /* add on <var_:Array[Object]>*/;
1148 var19 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1149 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MClass__name]))(var19) /* name on <var19:MClass>*/;
1150 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_string__AbstractString__to_cmangle]))(var20) /* to_cmangle on <var20:String>*/;
1151 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var21) /* add on <var_:Array[Object]>*/;
1152 if (varonce22) {
1153 var23 = varonce22;
1154 } else {
1155 var24 = "";
1156 var25 = 0;
1157 var26 = string__NativeString__to_s_with_length(var24, var25);
1158 var23 = var26;
1159 varonce22 = var23;
1160 }
1161 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var23) /* add on <var_:Array[Object]>*/;
1162 var27 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1163 var_res = var27;
1164 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MClassType>*/;
1165 var = var_res;
1166 goto RET_LABEL;
1167 RET_LABEL:;
1168 return var;
1169 }
1170 /* method abstract_compiler#MClassType#c_name for (self: Object): String */
1171 val* VIRTUAL_abstract_compiler__MClassType__c_name(val* self) {
1172 val* var /* : String */;
1173 val* var1 /* : String */;
1174 var1 = abstract_compiler__MClassType__c_name(self);
1175 var = var1;
1176 RET_LABEL:;
1177 return var;
1178 }
1179 /* method abstract_compiler#MClassType#ctype for (self: MClassType): String */
1180 val* abstract_compiler__MClassType__ctype(val* self) {
1181 val* var /* : String */;
1182 val* var1 /* : MClass */;
1183 val* var2 /* : String */;
1184 static val* varonce;
1185 val* var3 /* : String */;
1186 char* var4 /* : NativeString */;
1187 long var5 /* : Int */;
1188 val* var6 /* : String */;
1189 short int var7 /* : Bool */;
1190 static val* varonce8;
1191 val* var9 /* : String */;
1192 char* var10 /* : NativeString */;
1193 long var11 /* : Int */;
1194 val* var12 /* : String */;
1195 val* var13 /* : MClass */;
1196 val* var14 /* : String */;
1197 static val* varonce15;
1198 val* var16 /* : String */;
1199 char* var17 /* : NativeString */;
1200 long var18 /* : Int */;
1201 val* var19 /* : String */;
1202 short int var20 /* : Bool */;
1203 static val* varonce21;
1204 val* var22 /* : String */;
1205 char* var23 /* : NativeString */;
1206 long var24 /* : Int */;
1207 val* var25 /* : String */;
1208 val* var26 /* : MClass */;
1209 val* var27 /* : String */;
1210 static val* varonce28;
1211 val* var29 /* : String */;
1212 char* var30 /* : NativeString */;
1213 long var31 /* : Int */;
1214 val* var32 /* : String */;
1215 short int var33 /* : Bool */;
1216 static val* varonce34;
1217 val* var35 /* : String */;
1218 char* var36 /* : NativeString */;
1219 long var37 /* : Int */;
1220 val* var38 /* : String */;
1221 val* var39 /* : MClass */;
1222 val* var40 /* : String */;
1223 static val* varonce41;
1224 val* var42 /* : String */;
1225 char* var43 /* : NativeString */;
1226 long var44 /* : Int */;
1227 val* var45 /* : String */;
1228 short int var46 /* : Bool */;
1229 static val* varonce47;
1230 val* var48 /* : String */;
1231 char* var49 /* : NativeString */;
1232 long var50 /* : Int */;
1233 val* var51 /* : String */;
1234 val* var52 /* : MClass */;
1235 val* var53 /* : String */;
1236 static val* varonce54;
1237 val* var55 /* : String */;
1238 char* var56 /* : NativeString */;
1239 long var57 /* : Int */;
1240 val* var58 /* : String */;
1241 short int var59 /* : Bool */;
1242 static val* varonce60;
1243 val* var61 /* : String */;
1244 char* var62 /* : NativeString */;
1245 long var63 /* : Int */;
1246 val* var64 /* : String */;
1247 val* var65 /* : MClass */;
1248 val* var66 /* : String */;
1249 static val* varonce67;
1250 val* var68 /* : String */;
1251 char* var69 /* : NativeString */;
1252 long var70 /* : Int */;
1253 val* var71 /* : String */;
1254 short int var72 /* : Bool */;
1255 static val* varonce73;
1256 val* var74 /* : String */;
1257 char* var75 /* : NativeString */;
1258 long var76 /* : Int */;
1259 val* var77 /* : String */;
1260 val* var78 /* : MClass */;
1261 val* var79 /* : MClassKind */;
1262 val* var80 /* : MClassKind */;
1263 short int var81 /* : Bool */;
1264 static val* varonce82;
1265 val* var83 /* : String */;
1266 char* var84 /* : NativeString */;
1267 long var85 /* : Int */;
1268 val* var86 /* : String */;
1269 static val* varonce87;
1270 val* var88 /* : String */;
1271 char* var89 /* : NativeString */;
1272 long var90 /* : Int */;
1273 val* var91 /* : String */;
1274 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1275 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__name]))(var1) /* name on <var1:MClass>*/;
1276 if (varonce) {
1277 var3 = varonce;
1278 } else {
1279 var4 = "Int";
1280 var5 = 3;
1281 var6 = string__NativeString__to_s_with_length(var4, var5);
1282 var3 = var6;
1283 varonce = var3;
1284 }
1285 var7 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___61d_61d]))(var2, var3) /* == on <var2:String>*/;
1286 if (var7){
1287 if (varonce8) {
1288 var9 = varonce8;
1289 } else {
1290 var10 = "long";
1291 var11 = 4;
1292 var12 = string__NativeString__to_s_with_length(var10, var11);
1293 var9 = var12;
1294 varonce8 = var9;
1295 }
1296 var = var9;
1297 goto RET_LABEL;
1298 } else {
1299 var13 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1300 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__name]))(var13) /* name on <var13:MClass>*/;
1301 if (varonce15) {
1302 var16 = varonce15;
1303 } else {
1304 var17 = "Bool";
1305 var18 = 4;
1306 var19 = string__NativeString__to_s_with_length(var17, var18);
1307 var16 = var19;
1308 varonce15 = var16;
1309 }
1310 var20 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var16) /* == on <var14:String>*/;
1311 if (var20){
1312 if (varonce21) {
1313 var22 = varonce21;
1314 } else {
1315 var23 = "short int";
1316 var24 = 9;
1317 var25 = string__NativeString__to_s_with_length(var23, var24);
1318 var22 = var25;
1319 varonce21 = var22;
1320 }
1321 var = var22;
1322 goto RET_LABEL;
1323 } else {
1324 var26 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1325 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MClass__name]))(var26) /* name on <var26:MClass>*/;
1326 if (varonce28) {
1327 var29 = varonce28;
1328 } else {
1329 var30 = "Char";
1330 var31 = 4;
1331 var32 = string__NativeString__to_s_with_length(var30, var31);
1332 var29 = var32;
1333 varonce28 = var29;
1334 }
1335 var33 = ((short int (*)(val*, val*))(var27->class->vft[COLOR_kernel__Object___61d_61d]))(var27, var29) /* == on <var27:String>*/;
1336 if (var33){
1337 if (varonce34) {
1338 var35 = varonce34;
1339 } else {
1340 var36 = "char";
1341 var37 = 4;
1342 var38 = string__NativeString__to_s_with_length(var36, var37);
1343 var35 = var38;
1344 varonce34 = var35;
1345 }
1346 var = var35;
1347 goto RET_LABEL;
1348 } else {
1349 var39 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1350 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_model__MClass__name]))(var39) /* name on <var39:MClass>*/;
1351 if (varonce41) {
1352 var42 = varonce41;
1353 } else {
1354 var43 = "Float";
1355 var44 = 5;
1356 var45 = string__NativeString__to_s_with_length(var43, var44);
1357 var42 = var45;
1358 varonce41 = var42;
1359 }
1360 var46 = ((short int (*)(val*, val*))(var40->class->vft[COLOR_kernel__Object___61d_61d]))(var40, var42) /* == on <var40:String>*/;
1361 if (var46){
1362 if (varonce47) {
1363 var48 = varonce47;
1364 } else {
1365 var49 = "double";
1366 var50 = 6;
1367 var51 = string__NativeString__to_s_with_length(var49, var50);
1368 var48 = var51;
1369 varonce47 = var48;
1370 }
1371 var = var48;
1372 goto RET_LABEL;
1373 } else {
1374 var52 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1375 var53 = ((val* (*)(val*))(var52->class->vft[COLOR_model__MClass__name]))(var52) /* name on <var52:MClass>*/;
1376 if (varonce54) {
1377 var55 = varonce54;
1378 } else {
1379 var56 = "NativeString";
1380 var57 = 12;
1381 var58 = string__NativeString__to_s_with_length(var56, var57);
1382 var55 = var58;
1383 varonce54 = var55;
1384 }
1385 var59 = ((short int (*)(val*, val*))(var53->class->vft[COLOR_kernel__Object___61d_61d]))(var53, var55) /* == on <var53:String>*/;
1386 if (var59){
1387 if (varonce60) {
1388 var61 = varonce60;
1389 } else {
1390 var62 = "char*";
1391 var63 = 5;
1392 var64 = string__NativeString__to_s_with_length(var62, var63);
1393 var61 = var64;
1394 varonce60 = var61;
1395 }
1396 var = var61;
1397 goto RET_LABEL;
1398 } else {
1399 var65 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1400 var66 = ((val* (*)(val*))(var65->class->vft[COLOR_model__MClass__name]))(var65) /* name on <var65:MClass>*/;
1401 if (varonce67) {
1402 var68 = varonce67;
1403 } else {
1404 var69 = "NativeArray";
1405 var70 = 11;
1406 var71 = string__NativeString__to_s_with_length(var69, var70);
1407 var68 = var71;
1408 varonce67 = var68;
1409 }
1410 var72 = ((short int (*)(val*, val*))(var66->class->vft[COLOR_kernel__Object___61d_61d]))(var66, var68) /* == on <var66:String>*/;
1411 if (var72){
1412 if (varonce73) {
1413 var74 = varonce73;
1414 } else {
1415 var75 = "val*";
1416 var76 = 4;
1417 var77 = string__NativeString__to_s_with_length(var75, var76);
1418 var74 = var77;
1419 varonce73 = var74;
1420 }
1421 var = var74;
1422 goto RET_LABEL;
1423 } else {
1424 var78 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1425 var79 = ((val* (*)(val*))(var78->class->vft[COLOR_model__MClass__kind]))(var78) /* kind on <var78:MClass>*/;
1426 var80 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClassType>*/;
1427 var81 = ((short int (*)(val*, val*))(var79->class->vft[COLOR_kernel__Object___61d_61d]))(var79, var80) /* == on <var79:MClassKind>*/;
1428 if (var81){
1429 if (varonce82) {
1430 var83 = varonce82;
1431 } else {
1432 var84 = "void*";
1433 var85 = 5;
1434 var86 = string__NativeString__to_s_with_length(var84, var85);
1435 var83 = var86;
1436 varonce82 = var83;
1437 }
1438 var = var83;
1439 goto RET_LABEL;
1440 } else {
1441 if (varonce87) {
1442 var88 = varonce87;
1443 } else {
1444 var89 = "val*";
1445 var90 = 4;
1446 var91 = string__NativeString__to_s_with_length(var89, var90);
1447 var88 = var91;
1448 varonce87 = var88;
1449 }
1450 var = var88;
1451 goto RET_LABEL;
1452 }
1453 }
1454 }
1455 }
1456 }
1457 }
1458 }
1459 RET_LABEL:;
1460 return var;
1461 }
1462 /* method abstract_compiler#MClassType#ctype for (self: Object): String */
1463 val* VIRTUAL_abstract_compiler__MClassType__ctype(val* self) {
1464 val* var /* : String */;
1465 val* var1 /* : String */;
1466 var1 = abstract_compiler__MClassType__ctype(self);
1467 var = var1;
1468 RET_LABEL:;
1469 return var;
1470 }
1471 /* method abstract_compiler#MClassType#ctypename for (self: MClassType): String */
1472 val* abstract_compiler__MClassType__ctypename(val* self) {
1473 val* var /* : String */;
1474 val* var1 /* : MClass */;
1475 val* var2 /* : String */;
1476 static val* varonce;
1477 val* var3 /* : String */;
1478 char* var4 /* : NativeString */;
1479 long var5 /* : Int */;
1480 val* var6 /* : String */;
1481 short int var7 /* : Bool */;
1482 static val* varonce8;
1483 val* var9 /* : String */;
1484 char* var10 /* : NativeString */;
1485 long var11 /* : Int */;
1486 val* var12 /* : String */;
1487 val* var13 /* : MClass */;
1488 val* var14 /* : String */;
1489 static val* varonce15;
1490 val* var16 /* : String */;
1491 char* var17 /* : NativeString */;
1492 long var18 /* : Int */;
1493 val* var19 /* : String */;
1494 short int var20 /* : Bool */;
1495 static val* varonce21;
1496 val* var22 /* : String */;
1497 char* var23 /* : NativeString */;
1498 long var24 /* : Int */;
1499 val* var25 /* : String */;
1500 val* var26 /* : MClass */;
1501 val* var27 /* : String */;
1502 static val* varonce28;
1503 val* var29 /* : String */;
1504 char* var30 /* : NativeString */;
1505 long var31 /* : Int */;
1506 val* var32 /* : String */;
1507 short int var33 /* : Bool */;
1508 static val* varonce34;
1509 val* var35 /* : String */;
1510 char* var36 /* : NativeString */;
1511 long var37 /* : Int */;
1512 val* var38 /* : String */;
1513 val* var39 /* : MClass */;
1514 val* var40 /* : String */;
1515 static val* varonce41;
1516 val* var42 /* : String */;
1517 char* var43 /* : NativeString */;
1518 long var44 /* : Int */;
1519 val* var45 /* : String */;
1520 short int var46 /* : Bool */;
1521 static val* varonce47;
1522 val* var48 /* : String */;
1523 char* var49 /* : NativeString */;
1524 long var50 /* : Int */;
1525 val* var51 /* : String */;
1526 val* var52 /* : MClass */;
1527 val* var53 /* : String */;
1528 static val* varonce54;
1529 val* var55 /* : String */;
1530 char* var56 /* : NativeString */;
1531 long var57 /* : Int */;
1532 val* var58 /* : String */;
1533 short int var59 /* : Bool */;
1534 static val* varonce60;
1535 val* var61 /* : String */;
1536 char* var62 /* : NativeString */;
1537 long var63 /* : Int */;
1538 val* var64 /* : String */;
1539 val* var65 /* : MClass */;
1540 val* var66 /* : String */;
1541 static val* varonce67;
1542 val* var68 /* : String */;
1543 char* var69 /* : NativeString */;
1544 long var70 /* : Int */;
1545 val* var71 /* : String */;
1546 short int var72 /* : Bool */;
1547 static val* varonce73;
1548 val* var74 /* : String */;
1549 char* var75 /* : NativeString */;
1550 long var76 /* : Int */;
1551 val* var77 /* : String */;
1552 val* var78 /* : MClass */;
1553 val* var79 /* : MClassKind */;
1554 val* var80 /* : MClassKind */;
1555 short int var81 /* : Bool */;
1556 static val* varonce82;
1557 val* var83 /* : String */;
1558 char* var84 /* : NativeString */;
1559 long var85 /* : Int */;
1560 val* var86 /* : String */;
1561 static val* varonce87;
1562 val* var88 /* : String */;
1563 char* var89 /* : NativeString */;
1564 long var90 /* : Int */;
1565 val* var91 /* : String */;
1566 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1567 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__name]))(var1) /* name on <var1:MClass>*/;
1568 if (varonce) {
1569 var3 = varonce;
1570 } else {
1571 var4 = "Int";
1572 var5 = 3;
1573 var6 = string__NativeString__to_s_with_length(var4, var5);
1574 var3 = var6;
1575 varonce = var3;
1576 }
1577 var7 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___61d_61d]))(var2, var3) /* == on <var2:String>*/;
1578 if (var7){
1579 if (varonce8) {
1580 var9 = varonce8;
1581 } else {
1582 var10 = "l";
1583 var11 = 1;
1584 var12 = string__NativeString__to_s_with_length(var10, var11);
1585 var9 = var12;
1586 varonce8 = var9;
1587 }
1588 var = var9;
1589 goto RET_LABEL;
1590 } else {
1591 var13 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1592 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__name]))(var13) /* name on <var13:MClass>*/;
1593 if (varonce15) {
1594 var16 = varonce15;
1595 } else {
1596 var17 = "Bool";
1597 var18 = 4;
1598 var19 = string__NativeString__to_s_with_length(var17, var18);
1599 var16 = var19;
1600 varonce15 = var16;
1601 }
1602 var20 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var16) /* == on <var14:String>*/;
1603 if (var20){
1604 if (varonce21) {
1605 var22 = varonce21;
1606 } else {
1607 var23 = "s";
1608 var24 = 1;
1609 var25 = string__NativeString__to_s_with_length(var23, var24);
1610 var22 = var25;
1611 varonce21 = var22;
1612 }
1613 var = var22;
1614 goto RET_LABEL;
1615 } else {
1616 var26 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1617 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MClass__name]))(var26) /* name on <var26:MClass>*/;
1618 if (varonce28) {
1619 var29 = varonce28;
1620 } else {
1621 var30 = "Char";
1622 var31 = 4;
1623 var32 = string__NativeString__to_s_with_length(var30, var31);
1624 var29 = var32;
1625 varonce28 = var29;
1626 }
1627 var33 = ((short int (*)(val*, val*))(var27->class->vft[COLOR_kernel__Object___61d_61d]))(var27, var29) /* == on <var27:String>*/;
1628 if (var33){
1629 if (varonce34) {
1630 var35 = varonce34;
1631 } else {
1632 var36 = "c";
1633 var37 = 1;
1634 var38 = string__NativeString__to_s_with_length(var36, var37);
1635 var35 = var38;
1636 varonce34 = var35;
1637 }
1638 var = var35;
1639 goto RET_LABEL;
1640 } else {
1641 var39 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1642 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_model__MClass__name]))(var39) /* name on <var39:MClass>*/;
1643 if (varonce41) {
1644 var42 = varonce41;
1645 } else {
1646 var43 = "Float";
1647 var44 = 5;
1648 var45 = string__NativeString__to_s_with_length(var43, var44);
1649 var42 = var45;
1650 varonce41 = var42;
1651 }
1652 var46 = ((short int (*)(val*, val*))(var40->class->vft[COLOR_kernel__Object___61d_61d]))(var40, var42) /* == on <var40:String>*/;
1653 if (var46){
1654 if (varonce47) {
1655 var48 = varonce47;
1656 } else {
1657 var49 = "d";
1658 var50 = 1;
1659 var51 = string__NativeString__to_s_with_length(var49, var50);
1660 var48 = var51;
1661 varonce47 = var48;
1662 }
1663 var = var48;
1664 goto RET_LABEL;
1665 } else {
1666 var52 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1667 var53 = ((val* (*)(val*))(var52->class->vft[COLOR_model__MClass__name]))(var52) /* name on <var52:MClass>*/;
1668 if (varonce54) {
1669 var55 = varonce54;
1670 } else {
1671 var56 = "NativeString";
1672 var57 = 12;
1673 var58 = string__NativeString__to_s_with_length(var56, var57);
1674 var55 = var58;
1675 varonce54 = var55;
1676 }
1677 var59 = ((short int (*)(val*, val*))(var53->class->vft[COLOR_kernel__Object___61d_61d]))(var53, var55) /* == on <var53:String>*/;
1678 if (var59){
1679 if (varonce60) {
1680 var61 = varonce60;
1681 } else {
1682 var62 = "str";
1683 var63 = 3;
1684 var64 = string__NativeString__to_s_with_length(var62, var63);
1685 var61 = var64;
1686 varonce60 = var61;
1687 }
1688 var = var61;
1689 goto RET_LABEL;
1690 } else {
1691 var65 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1692 var66 = ((val* (*)(val*))(var65->class->vft[COLOR_model__MClass__name]))(var65) /* name on <var65:MClass>*/;
1693 if (varonce67) {
1694 var68 = varonce67;
1695 } else {
1696 var69 = "NativeArray";
1697 var70 = 11;
1698 var71 = string__NativeString__to_s_with_length(var69, var70);
1699 var68 = var71;
1700 varonce67 = var68;
1701 }
1702 var72 = ((short int (*)(val*, val*))(var66->class->vft[COLOR_kernel__Object___61d_61d]))(var66, var68) /* == on <var66:String>*/;
1703 if (var72){
1704 if (varonce73) {
1705 var74 = varonce73;
1706 } else {
1707 var75 = "val";
1708 var76 = 3;
1709 var77 = string__NativeString__to_s_with_length(var75, var76);
1710 var74 = var77;
1711 varonce73 = var74;
1712 }
1713 var = var74;
1714 goto RET_LABEL;
1715 } else {
1716 var78 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
1717 var79 = ((val* (*)(val*))(var78->class->vft[COLOR_model__MClass__kind]))(var78) /* kind on <var78:MClass>*/;
1718 var80 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClassType>*/;
1719 var81 = ((short int (*)(val*, val*))(var79->class->vft[COLOR_kernel__Object___61d_61d]))(var79, var80) /* == on <var79:MClassKind>*/;
1720 if (var81){
1721 if (varonce82) {
1722 var83 = varonce82;
1723 } else {
1724 var84 = "ptr";
1725 var85 = 3;
1726 var86 = string__NativeString__to_s_with_length(var84, var85);
1727 var83 = var86;
1728 varonce82 = var83;
1729 }
1730 var = var83;
1731 goto RET_LABEL;
1732 } else {
1733 if (varonce87) {
1734 var88 = varonce87;
1735 } else {
1736 var89 = "val";
1737 var90 = 3;
1738 var91 = string__NativeString__to_s_with_length(var89, var90);
1739 var88 = var91;
1740 varonce87 = var88;
1741 }
1742 var = var88;
1743 goto RET_LABEL;
1744 }
1745 }
1746 }
1747 }
1748 }
1749 }
1750 }
1751 RET_LABEL:;
1752 return var;
1753 }
1754 /* method abstract_compiler#MClassType#ctypename for (self: Object): String */
1755 val* VIRTUAL_abstract_compiler__MClassType__ctypename(val* self) {
1756 val* var /* : String */;
1757 val* var1 /* : String */;
1758 var1 = abstract_compiler__MClassType__ctypename(self);
1759 var = var1;
1760 RET_LABEL:;
1761 return var;
1762 }
1763 /* method abstract_compiler#MGenericType#c_name for (self: MGenericType): String */
1764 val* abstract_compiler__MGenericType__c_name(val* self) {
1765 val* var /* : String */;
1766 val* var1 /* : nullable String */;
1767 val* var_res /* var res: nullable String */;
1768 val* var2 /* : null */;
1769 short int var3 /* : Bool */;
1770 val* var4 /* : String */;
1771 val* var5 /* : Array[MType] */;
1772 val* var6 /* : Iterator[nullable Object] */;
1773 short int var7 /* : Bool */;
1774 val* var8 /* : nullable Object */;
1775 val* var_t /* var t: MType */;
1776 val* var9 /* : String */;
1777 val* var10 /* : String */;
1778 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MGenericType>*/;
1779 var_res = var1;
1780 var2 = NULL;
1781 if (var_res == NULL) {
1782 var3 = 0; /* is null */
1783 } else {
1784 var3 = 1; /* arg is null and recv is not */
1785 }
1786 if (var3){
1787 var = var_res;
1788 goto RET_LABEL;
1789 } else {
1790 }
1791 var4 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MGenericType__c_name]))(self) /* c_name on <self:MGenericType>*/;
1792 var_res = var4;
1793 var5 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__arguments]))(self) /* arguments on <self:MGenericType>*/;
1794 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Array[MType]>*/;
1795 for(;;) {
1796 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
1797 if(!var7) break;
1798 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
1799 var_t = var8;
1800 var9 = ((val* (*)(val*))(var_t->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_t) /* c_name on <var_t:MType>*/;
1801 var10 = ((val* (*)(val*, val*))(var_res->class->vft[COLOR_string__String___43d]))(var_res, var9) /* + on <var_res:nullable String(String)>*/;
1802 var_res = var10;
1803 CONTINUE_label: (void)0;
1804 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
1805 }
1806 BREAK_label: (void)0;
1807 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MGenericType>*/;
1808 var = var_res;
1809 goto RET_LABEL;
1810 RET_LABEL:;
1811 return var;
1812 }
1813 /* method abstract_compiler#MGenericType#c_name for (self: Object): String */
1814 val* VIRTUAL_abstract_compiler__MGenericType__c_name(val* self) {
1815 val* var /* : String */;
1816 val* var1 /* : String */;
1817 var1 = abstract_compiler__MGenericType__c_name(self);
1818 var = var1;
1819 RET_LABEL:;
1820 return var;
1821 }
1822 /* method abstract_compiler#MParameterType#c_name for (self: MParameterType): String */
1823 val* abstract_compiler__MParameterType__c_name(val* self) {
1824 val* var /* : String */;
1825 val* var1 /* : nullable String */;
1826 val* var_res /* var res: nullable String */;
1827 val* var2 /* : null */;
1828 short int var3 /* : Bool */;
1829 val* var4 /* : Array[Object] */;
1830 long var5 /* : Int */;
1831 val* var_ /* var : Array[Object] */;
1832 static val* varonce;
1833 val* var6 /* : String */;
1834 char* var7 /* : NativeString */;
1835 long var8 /* : Int */;
1836 val* var9 /* : String */;
1837 val* var10 /* : MClass */;
1838 val* var11 /* : String */;
1839 static val* varonce12;
1840 val* var13 /* : String */;
1841 char* var14 /* : NativeString */;
1842 long var15 /* : Int */;
1843 val* var16 /* : String */;
1844 long var17 /* : Int */;
1845 val* var18 /* : nullable Object */;
1846 static val* varonce19;
1847 val* var20 /* : String */;
1848 char* var21 /* : NativeString */;
1849 long var22 /* : Int */;
1850 val* var23 /* : String */;
1851 val* var24 /* : String */;
1852 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MParameterType>*/;
1853 var_res = var1;
1854 var2 = NULL;
1855 if (var_res == NULL) {
1856 var3 = 0; /* is null */
1857 } else {
1858 var3 = 1; /* arg is null and recv is not */
1859 }
1860 if (var3){
1861 var = var_res;
1862 goto RET_LABEL;
1863 } else {
1864 }
1865 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1866 var5 = 5;
1867 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
1868 CHECK_NEW_array__Array(var4);
1869 var_ = var4;
1870 if (varonce) {
1871 var6 = varonce;
1872 } else {
1873 var7 = "";
1874 var8 = 0;
1875 var9 = string__NativeString__to_s_with_length(var7, var8);
1876 var6 = var9;
1877 varonce = var6;
1878 }
1879 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
1880 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
1881 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_compiler__MClass__c_name]))(var10) /* c_name on <var10:MClass>*/;
1882 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
1883 if (varonce12) {
1884 var13 = varonce12;
1885 } else {
1886 var14 = "_FT";
1887 var15 = 3;
1888 var16 = string__NativeString__to_s_with_length(var14, var15);
1889 var13 = var16;
1890 varonce12 = var13;
1891 }
1892 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
1893 var17 = ((long (*)(val*))(self->class->vft[COLOR_model__MParameterType__rank]))(self) /* rank on <self:MParameterType>*/;
1894 var18 = BOX_kernel__Int(var17); /* autobox from Int to nullable Object */
1895 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var18) /* add on <var_:Array[Object]>*/;
1896 if (varonce19) {
1897 var20 = varonce19;
1898 } else {
1899 var21 = "";
1900 var22 = 0;
1901 var23 = string__NativeString__to_s_with_length(var21, var22);
1902 var20 = var23;
1903 varonce19 = var20;
1904 }
1905 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var20) /* add on <var_:Array[Object]>*/;
1906 var24 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1907 var_res = var24;
1908 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MParameterType>*/;
1909 var = var_res;
1910 goto RET_LABEL;
1911 RET_LABEL:;
1912 return var;
1913 }
1914 /* method abstract_compiler#MParameterType#c_name for (self: Object): String */
1915 val* VIRTUAL_abstract_compiler__MParameterType__c_name(val* self) {
1916 val* var /* : String */;
1917 val* var1 /* : String */;
1918 var1 = abstract_compiler__MParameterType__c_name(self);
1919 var = var1;
1920 RET_LABEL:;
1921 return var;
1922 }
1923 /* method abstract_compiler#MVirtualType#c_name for (self: MVirtualType): String */
1924 val* abstract_compiler__MVirtualType__c_name(val* self) {
1925 val* var /* : String */;
1926 val* var1 /* : nullable String */;
1927 val* var_res /* var res: nullable String */;
1928 val* var2 /* : null */;
1929 short int var3 /* : Bool */;
1930 val* var4 /* : Array[Object] */;
1931 long var5 /* : Int */;
1932 val* var_ /* var : Array[Object] */;
1933 static val* varonce;
1934 val* var6 /* : String */;
1935 char* var7 /* : NativeString */;
1936 long var8 /* : Int */;
1937 val* var9 /* : String */;
1938 val* var10 /* : MProperty */;
1939 val* var11 /* : MPropDef */;
1940 val* var12 /* : MClassDef */;
1941 val* var13 /* : MClass */;
1942 val* var14 /* : String */;
1943 static val* varonce15;
1944 val* var16 /* : String */;
1945 char* var17 /* : NativeString */;
1946 long var18 /* : Int */;
1947 val* var19 /* : String */;
1948 val* var20 /* : MProperty */;
1949 val* var21 /* : String */;
1950 static val* varonce22;
1951 val* var23 /* : String */;
1952 char* var24 /* : NativeString */;
1953 long var25 /* : Int */;
1954 val* var26 /* : String */;
1955 val* var27 /* : String */;
1956 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MVirtualType>*/;
1957 var_res = var1;
1958 var2 = NULL;
1959 if (var_res == NULL) {
1960 var3 = 0; /* is null */
1961 } else {
1962 var3 = 1; /* arg is null and recv is not */
1963 }
1964 if (var3){
1965 var = var_res;
1966 goto RET_LABEL;
1967 } else {
1968 }
1969 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1970 var5 = 5;
1971 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
1972 CHECK_NEW_array__Array(var4);
1973 var_ = var4;
1974 if (varonce) {
1975 var6 = varonce;
1976 } else {
1977 var7 = "";
1978 var8 = 0;
1979 var9 = string__NativeString__to_s_with_length(var7, var8);
1980 var6 = var9;
1981 varonce = var6;
1982 }
1983 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
1984 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on <self:MVirtualType>*/;
1985 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MProperty__intro]))(var10) /* intro on <var10:MProperty>*/;
1986 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mclassdef]))(var11) /* mclassdef on <var11:MPropDef>*/;
1987 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClassDef__mclass]))(var12) /* mclass on <var12:MClassDef>*/;
1988 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_compiler__MClass__c_name]))(var13) /* c_name on <var13:MClass>*/;
1989 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var14) /* add on <var_:Array[Object]>*/;
1990 if (varonce15) {
1991 var16 = varonce15;
1992 } else {
1993 var17 = "_VT";
1994 var18 = 3;
1995 var19 = string__NativeString__to_s_with_length(var17, var18);
1996 var16 = var19;
1997 varonce15 = var16;
1998 }
1999 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var16) /* add on <var_:Array[Object]>*/;
2000 var20 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on <self:MVirtualType>*/;
2001 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MProperty__name]))(var20) /* name on <var20:MProperty>*/;
2002 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var21) /* add on <var_:Array[Object]>*/;
2003 if (varonce22) {
2004 var23 = varonce22;
2005 } else {
2006 var24 = "";
2007 var25 = 0;
2008 var26 = string__NativeString__to_s_with_length(var24, var25);
2009 var23 = var26;
2010 varonce22 = var23;
2011 }
2012 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var23) /* add on <var_:Array[Object]>*/;
2013 var27 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2014 var_res = var27;
2015 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MVirtualType>*/;
2016 var = var_res;
2017 goto RET_LABEL;
2018 RET_LABEL:;
2019 return var;
2020 }
2021 /* method abstract_compiler#MVirtualType#c_name for (self: Object): String */
2022 val* VIRTUAL_abstract_compiler__MVirtualType__c_name(val* self) {
2023 val* var /* : String */;
2024 val* var1 /* : String */;
2025 var1 = abstract_compiler__MVirtualType__c_name(self);
2026 var = var1;
2027 RET_LABEL:;
2028 return var;
2029 }
2030 /* method abstract_compiler#MNullableType#c_name for (self: MNullableType): String */
2031 val* abstract_compiler__MNullableType__c_name(val* self) {
2032 val* var /* : String */;
2033 val* var1 /* : nullable String */;
2034 val* var_res /* var res: nullable String */;
2035 val* var2 /* : null */;
2036 short int var3 /* : Bool */;
2037 val* var4 /* : Array[Object] */;
2038 long var5 /* : Int */;
2039 val* var_ /* var : Array[Object] */;
2040 static val* varonce;
2041 val* var6 /* : String */;
2042 char* var7 /* : NativeString */;
2043 long var8 /* : Int */;
2044 val* var9 /* : String */;
2045 val* var10 /* : MType */;
2046 val* var11 /* : String */;
2047 static val* varonce12;
2048 val* var13 /* : String */;
2049 char* var14 /* : NativeString */;
2050 long var15 /* : Int */;
2051 val* var16 /* : String */;
2052 val* var17 /* : String */;
2053 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MNullableType>*/;
2054 var_res = var1;
2055 var2 = NULL;
2056 if (var_res == NULL) {
2057 var3 = 0; /* is null */
2058 } else {
2059 var3 = 1; /* arg is null and recv is not */
2060 }
2061 if (var3){
2062 var = var_res;
2063 goto RET_LABEL;
2064 } else {
2065 }
2066 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2067 var5 = 3;
2068 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
2069 CHECK_NEW_array__Array(var4);
2070 var_ = var4;
2071 if (varonce) {
2072 var6 = varonce;
2073 } else {
2074 var7 = "nullable_";
2075 var8 = 9;
2076 var9 = string__NativeString__to_s_with_length(var7, var8);
2077 var6 = var9;
2078 varonce = var6;
2079 }
2080 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
2081 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
2082 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_compiler__MType__c_name]))(var10) /* c_name on <var10:MType>*/;
2083 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
2084 if (varonce12) {
2085 var13 = varonce12;
2086 } else {
2087 var14 = "";
2088 var15 = 0;
2089 var16 = string__NativeString__to_s_with_length(var14, var15);
2090 var13 = var16;
2091 varonce12 = var13;
2092 }
2093 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
2094 var17 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2095 var_res = var17;
2096 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MNullableType>*/;
2097 var = var_res;
2098 goto RET_LABEL;
2099 RET_LABEL:;
2100 return var;
2101 }
2102 /* method abstract_compiler#MNullableType#c_name for (self: Object): String */
2103 val* VIRTUAL_abstract_compiler__MNullableType__c_name(val* self) {
2104 val* var /* : String */;
2105 val* var1 /* : String */;
2106 var1 = abstract_compiler__MNullableType__c_name(self);
2107 var = var1;
2108 RET_LABEL:;
2109 return var;
2110 }
2111 /* method abstract_compiler#MClass#c_name for (self: MClass): String */
2112 val* abstract_compiler__MClass__c_name(val* self) {
2113 val* var /* : String */;
2114 val* var1 /* : nullable String */;
2115 val* var_res /* var res: nullable String */;
2116 val* var2 /* : null */;
2117 short int var3 /* : Bool */;
2118 val* var4 /* : Array[Object] */;
2119 long var5 /* : Int */;
2120 val* var_ /* var : Array[Object] */;
2121 static val* varonce;
2122 val* var6 /* : String */;
2123 char* var7 /* : NativeString */;
2124 long var8 /* : Int */;
2125 val* var9 /* : String */;
2126 val* var10 /* : MModule */;
2127 val* var11 /* : String */;
2128 val* var12 /* : String */;
2129 static val* varonce13;
2130 val* var14 /* : String */;
2131 char* var15 /* : NativeString */;
2132 long var16 /* : Int */;
2133 val* var17 /* : String */;
2134 val* var18 /* : String */;
2135 val* var19 /* : String */;
2136 static val* varonce20;
2137 val* var21 /* : String */;
2138 char* var22 /* : NativeString */;
2139 long var23 /* : Int */;
2140 val* var24 /* : String */;
2141 val* var25 /* : String */;
2142 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MClass__c_name_cache]))(self) /* c_name_cache on <self:MClass>*/;
2143 var_res = var1;
2144 var2 = NULL;
2145 if (var_res == NULL) {
2146 var3 = 0; /* is null */
2147 } else {
2148 var3 = 1; /* arg is null and recv is not */
2149 }
2150 if (var3){
2151 var = var_res;
2152 goto RET_LABEL;
2153 } else {
2154 }
2155 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2156 var5 = 5;
2157 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
2158 CHECK_NEW_array__Array(var4);
2159 var_ = var4;
2160 if (varonce) {
2161 var6 = varonce;
2162 } else {
2163 var7 = "";
2164 var8 = 0;
2165 var9 = string__NativeString__to_s_with_length(var7, var8);
2166 var6 = var9;
2167 varonce = var6;
2168 }
2169 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
2170 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__intro_mmodule]))(self) /* intro_mmodule on <self:MClass>*/;
2171 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model_base__MModule__name]))(var10) /* name on <var10:MModule>*/;
2172 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_string__AbstractString__to_cmangle]))(var11) /* to_cmangle on <var11:String>*/;
2173 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var12) /* add on <var_:Array[Object]>*/;
2174 if (varonce13) {
2175 var14 = varonce13;
2176 } else {
2177 var15 = "__";
2178 var16 = 2;
2179 var17 = string__NativeString__to_s_with_length(var15, var16);
2180 var14 = var17;
2181 varonce13 = var14;
2182 }
2183 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var14) /* add on <var_:Array[Object]>*/;
2184 var18 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__name]))(self) /* name on <self:MClass>*/;
2185 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_string__AbstractString__to_cmangle]))(var18) /* to_cmangle on <var18:String>*/;
2186 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var19) /* add on <var_:Array[Object]>*/;
2187 if (varonce20) {
2188 var21 = varonce20;
2189 } else {
2190 var22 = "";
2191 var23 = 0;
2192 var24 = string__NativeString__to_s_with_length(var22, var23);
2193 var21 = var24;
2194 varonce20 = var21;
2195 }
2196 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var21) /* add on <var_:Array[Object]>*/;
2197 var25 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2198 var_res = var25;
2199 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MClass__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MClass>*/;
2200 var = var_res;
2201 goto RET_LABEL;
2202 RET_LABEL:;
2203 return var;
2204 }
2205 /* method abstract_compiler#MClass#c_name for (self: Object): String */
2206 val* VIRTUAL_abstract_compiler__MClass__c_name(val* self) {
2207 val* var /* : String */;
2208 val* var1 /* : String */;
2209 var1 = abstract_compiler__MClass__c_name(self);
2210 var = var1;
2211 RET_LABEL:;
2212 return var;
2213 }
2214 /* method abstract_compiler#MClass#c_name_cache for (self: MClass): nullable String */
2215 val* abstract_compiler__MClass__c_name_cache(val* self) {
2216 val* var /* : nullable String */;
2217 val* var1 /* : nullable String */;
2218 var1 = self->attrs[COLOR_abstract_compiler__MClass___64dc_name_cache].val; /* @c_name_cache on <self:MClass> */
2219 var = var1;
2220 RET_LABEL:;
2221 return var;
2222 }
2223 /* method abstract_compiler#MClass#c_name_cache for (self: Object): nullable String */
2224 val* VIRTUAL_abstract_compiler__MClass__c_name_cache(val* self) {
2225 val* var /* : nullable String */;
2226 val* var1 /* : nullable String */;
2227 var1 = abstract_compiler__MClass__c_name_cache(self);
2228 var = var1;
2229 RET_LABEL:;
2230 return var;
2231 }
2232 /* method abstract_compiler#MClass#c_name_cache= for (self: MClass, nullable String) */
2233 void abstract_compiler__MClass__c_name_cache_61d(val* self, val* p0) {
2234 self->attrs[COLOR_abstract_compiler__MClass___64dc_name_cache].val = p0; /* @c_name_cache on <self:MClass> */
2235 RET_LABEL:;
2236 }
2237 /* method abstract_compiler#MClass#c_name_cache= for (self: Object, nullable String) */
2238 void VIRTUAL_abstract_compiler__MClass__c_name_cache_61d(val* self, val* p0) {
2239 abstract_compiler__MClass__c_name_cache_61d(self, p0);
2240 RET_LABEL:;
2241 }
2242 /* method abstract_compiler#MProperty#c_name for (self: MProperty): String */
2243 val* abstract_compiler__MProperty__c_name(val* self) {
2244 val* var /* : String */;
2245 val* var1 /* : nullable String */;
2246 val* var_res /* var res: nullable String */;
2247 val* var2 /* : null */;
2248 short int var3 /* : Bool */;
2249 val* var4 /* : Array[Object] */;
2250 long var5 /* : Int */;
2251 val* var_ /* var : Array[Object] */;
2252 static val* varonce;
2253 val* var6 /* : String */;
2254 char* var7 /* : NativeString */;
2255 long var8 /* : Int */;
2256 val* var9 /* : String */;
2257 val* var10 /* : MPropDef */;
2258 val* var11 /* : String */;
2259 static val* varonce12;
2260 val* var13 /* : String */;
2261 char* var14 /* : NativeString */;
2262 long var15 /* : Int */;
2263 val* var16 /* : String */;
2264 val* var17 /* : String */;
2265 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MProperty__c_name_cache]))(self) /* c_name_cache on <self:MProperty>*/;
2266 var_res = var1;
2267 var2 = NULL;
2268 if (var_res == NULL) {
2269 var3 = 0; /* is null */
2270 } else {
2271 var3 = 1; /* arg is null and recv is not */
2272 }
2273 if (var3){
2274 var = var_res;
2275 goto RET_LABEL;
2276 } else {
2277 }
2278 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2279 var5 = 3;
2280 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
2281 CHECK_NEW_array__Array(var4);
2282 var_ = var4;
2283 if (varonce) {
2284 var6 = varonce;
2285 } else {
2286 var7 = "";
2287 var8 = 0;
2288 var9 = string__NativeString__to_s_with_length(var7, var8);
2289 var6 = var9;
2290 varonce = var6;
2291 }
2292 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
2293 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__intro]))(self) /* intro on <self:MProperty>*/;
2294 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_compiler__MPropDef__c_name]))(var10) /* c_name on <var10:MPropDef>*/;
2295 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
2296 if (varonce12) {
2297 var13 = varonce12;
2298 } else {
2299 var14 = "";
2300 var15 = 0;
2301 var16 = string__NativeString__to_s_with_length(var14, var15);
2302 var13 = var16;
2303 varonce12 = var13;
2304 }
2305 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
2306 var17 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2307 var_res = var17;
2308 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MProperty__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MProperty>*/;
2309 var = var_res;
2310 goto RET_LABEL;
2311 RET_LABEL:;
2312 return var;
2313 }
2314 /* method abstract_compiler#MProperty#c_name for (self: Object): String */
2315 val* VIRTUAL_abstract_compiler__MProperty__c_name(val* self) {
2316 val* var /* : String */;
2317 val* var1 /* : String */;
2318 var1 = abstract_compiler__MProperty__c_name(self);
2319 var = var1;
2320 RET_LABEL:;
2321 return var;
2322 }
2323 /* method abstract_compiler#MProperty#c_name_cache for (self: MProperty): nullable String */
2324 val* abstract_compiler__MProperty__c_name_cache(val* self) {
2325 val* var /* : nullable String */;
2326 val* var1 /* : nullable String */;
2327 var1 = self->attrs[COLOR_abstract_compiler__MProperty___64dc_name_cache].val; /* @c_name_cache on <self:MProperty> */
2328 var = var1;
2329 RET_LABEL:;
2330 return var;
2331 }
2332 /* method abstract_compiler#MProperty#c_name_cache for (self: Object): nullable String */
2333 val* VIRTUAL_abstract_compiler__MProperty__c_name_cache(val* self) {
2334 val* var /* : nullable String */;
2335 val* var1 /* : nullable String */;
2336 var1 = abstract_compiler__MProperty__c_name_cache(self);
2337 var = var1;
2338 RET_LABEL:;
2339 return var;
2340 }
2341 /* method abstract_compiler#MProperty#c_name_cache= for (self: MProperty, nullable String) */
2342 void abstract_compiler__MProperty__c_name_cache_61d(val* self, val* p0) {
2343 self->attrs[COLOR_abstract_compiler__MProperty___64dc_name_cache].val = p0; /* @c_name_cache on <self:MProperty> */
2344 RET_LABEL:;
2345 }
2346 /* method abstract_compiler#MProperty#c_name_cache= for (self: Object, nullable String) */
2347 void VIRTUAL_abstract_compiler__MProperty__c_name_cache_61d(val* self, val* p0) {
2348 abstract_compiler__MProperty__c_name_cache_61d(self, p0);
2349 RET_LABEL:;
2350 }
2351 /* method abstract_compiler#MPropDef#c_name_cache for (self: MPropDef): nullable String */
2352 val* abstract_compiler__MPropDef__c_name_cache(val* self) {
2353 val* var /* : nullable String */;
2354 val* var1 /* : nullable String */;
2355 var1 = self->attrs[COLOR_abstract_compiler__MPropDef___64dc_name_cache].val; /* @c_name_cache on <self:MPropDef> */
2356 var = var1;
2357 RET_LABEL:;
2358 return var;
2359 }
2360 /* method abstract_compiler#MPropDef#c_name_cache for (self: Object): nullable String */
2361 val* VIRTUAL_abstract_compiler__MPropDef__c_name_cache(val* self) {
2362 val* var /* : nullable String */;
2363 val* var1 /* : nullable String */;
2364 var1 = abstract_compiler__MPropDef__c_name_cache(self);
2365 var = var1;
2366 RET_LABEL:;
2367 return var;
2368 }
2369 /* method abstract_compiler#MPropDef#c_name_cache= for (self: MPropDef, nullable String) */
2370 void abstract_compiler__MPropDef__c_name_cache_61d(val* self, val* p0) {
2371 self->attrs[COLOR_abstract_compiler__MPropDef___64dc_name_cache].val = p0; /* @c_name_cache on <self:MPropDef> */
2372 RET_LABEL:;
2373 }
2374 /* method abstract_compiler#MPropDef#c_name_cache= for (self: Object, nullable String) */
2375 void VIRTUAL_abstract_compiler__MPropDef__c_name_cache_61d(val* self, val* p0) {
2376 abstract_compiler__MPropDef__c_name_cache_61d(self, p0);
2377 RET_LABEL:;
2378 }
2379 /* method abstract_compiler#MPropDef#c_name for (self: MPropDef): String */
2380 val* abstract_compiler__MPropDef__c_name(val* self) {
2381 val* var /* : String */;
2382 val* var1 /* : nullable String */;
2383 val* var_res /* var res: nullable String */;
2384 val* var2 /* : null */;
2385 short int var3 /* : Bool */;
2386 val* var4 /* : Array[Object] */;
2387 long var5 /* : Int */;
2388 val* var_ /* var : Array[Object] */;
2389 static val* varonce;
2390 val* var6 /* : String */;
2391 char* var7 /* : NativeString */;
2392 long var8 /* : Int */;
2393 val* var9 /* : String */;
2394 val* var10 /* : MClassDef */;
2395 val* var11 /* : MModule */;
2396 val* var12 /* : String */;
2397 val* var13 /* : String */;
2398 static val* varonce14;
2399 val* var15 /* : String */;
2400 char* var16 /* : NativeString */;
2401 long var17 /* : Int */;
2402 val* var18 /* : String */;
2403 val* var19 /* : MClassDef */;
2404 val* var20 /* : MClass */;
2405 val* var21 /* : String */;
2406 val* var22 /* : String */;
2407 static val* varonce23;
2408 val* var24 /* : String */;
2409 char* var25 /* : NativeString */;
2410 long var26 /* : Int */;
2411 val* var27 /* : String */;
2412 val* var28 /* : MProperty */;
2413 val* var29 /* : String */;
2414 val* var30 /* : String */;
2415 static val* varonce31;
2416 val* var32 /* : String */;
2417 char* var33 /* : NativeString */;
2418 long var34 /* : Int */;
2419 val* var35 /* : String */;
2420 val* var36 /* : String */;
2421 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MPropDef__c_name_cache]))(self) /* c_name_cache on <self:MPropDef>*/;
2422 var_res = var1;
2423 var2 = NULL;
2424 if (var_res == NULL) {
2425 var3 = 0; /* is null */
2426 } else {
2427 var3 = 1; /* arg is null and recv is not */
2428 }
2429 if (var3){
2430 var = var_res;
2431 goto RET_LABEL;
2432 } else {
2433 }
2434 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2435 var5 = 7;
2436 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
2437 CHECK_NEW_array__Array(var4);
2438 var_ = var4;
2439 if (varonce) {
2440 var6 = varonce;
2441 } else {
2442 var7 = "";
2443 var8 = 0;
2444 var9 = string__NativeString__to_s_with_length(var7, var8);
2445 var6 = var9;
2446 varonce = var6;
2447 }
2448 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
2449 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mclassdef]))(self) /* mclassdef on <self:MPropDef>*/;
2450 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MClassDef__mmodule]))(var10) /* mmodule on <var10:MClassDef>*/;
2451 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model_base__MModule__name]))(var11) /* name on <var11:MModule>*/;
2452 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__AbstractString__to_cmangle]))(var12) /* to_cmangle on <var12:String>*/;
2453 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
2454 if (varonce14) {
2455 var15 = varonce14;
2456 } else {
2457 var16 = "__";
2458 var17 = 2;
2459 var18 = string__NativeString__to_s_with_length(var16, var17);
2460 var15 = var18;
2461 varonce14 = var15;
2462 }
2463 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var15) /* add on <var_:Array[Object]>*/;
2464 var19 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mclassdef]))(self) /* mclassdef on <self:MPropDef>*/;
2465 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MClassDef__mclass]))(var19) /* mclass on <var19:MClassDef>*/;
2466 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MClass__name]))(var20) /* name on <var20:MClass>*/;
2467 var22 = ((val* (*)(val*))(var21->class->vft[COLOR_string__AbstractString__to_cmangle]))(var21) /* to_cmangle on <var21:String>*/;
2468 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var22) /* add on <var_:Array[Object]>*/;
2469 if (varonce23) {
2470 var24 = varonce23;
2471 } else {
2472 var25 = "__";
2473 var26 = 2;
2474 var27 = string__NativeString__to_s_with_length(var25, var26);
2475 var24 = var27;
2476 varonce23 = var24;
2477 }
2478 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var24) /* add on <var_:Array[Object]>*/;
2479 var28 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MPropDef>*/;
2480 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_model__MProperty__name]))(var28) /* name on <var28:MProperty>*/;
2481 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_string__AbstractString__to_cmangle]))(var29) /* to_cmangle on <var29:String>*/;
2482 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var30) /* add on <var_:Array[Object]>*/;
2483 if (varonce31) {
2484 var32 = varonce31;
2485 } else {
2486 var33 = "";
2487 var34 = 0;
2488 var35 = string__NativeString__to_s_with_length(var33, var34);
2489 var32 = var35;
2490 varonce31 = var32;
2491 }
2492 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var32) /* add on <var_:Array[Object]>*/;
2493 var36 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2494 var_res = var36;
2495 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MPropDef__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MPropDef>*/;
2496 var = var_res;
2497 goto RET_LABEL;
2498 RET_LABEL:;
2499 return var;
2500 }
2501 /* method abstract_compiler#MPropDef#c_name for (self: Object): String */
2502 val* VIRTUAL_abstract_compiler__MPropDef__c_name(val* self) {
2503 val* var /* : String */;
2504 val* var1 /* : String */;
2505 var1 = abstract_compiler__MPropDef__c_name(self);
2506 var = var1;
2507 RET_LABEL:;
2508 return var;
2509 }
2510 /* method abstract_compiler#MMethodDef#can_inline for (self: MMethodDef, AbstractCompilerVisitor): Bool */
2511 short int abstract_compiler__MMethodDef__can_inline(val* self, val* p0) {
2512 short int var /* : Bool */;
2513 short int var1 /* : Bool */;
2514 int cltype;
2515 int idtype;
2516 const struct type* type_struct;
2517 val* var_v /* var v: AbstractCompilerVisitor */;
2518 val* var2 /* : AbstractCompiler */;
2519 val* var3 /* : ModelBuilder */;
2520 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2521 val* var4 /* : HashMap[MPropDef, APropdef] */;
2522 short int var5 /* : Bool */;
2523 val* var6 /* : HashMap[MPropDef, APropdef] */;
2524 val* var7 /* : nullable Object */;
2525 val* var_npropdef /* var npropdef: APropdef */;
2526 short int var8 /* : Bool */;
2527 val* var9 /* : MProperty */;
2528 val* var10 /* : String */;
2529 static val* varonce;
2530 val* var11 /* : String */;
2531 char* var12 /* : NativeString */;
2532 long var13 /* : Int */;
2533 val* var14 /* : String */;
2534 short int var15 /* : Bool */;
2535 short int var16 /* : Bool */;
2536 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
2537 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2538 type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTVISITOR];
2539 cltype = type_struct->color;
2540 idtype = type_struct->id;
2541 if(cltype >= p0->type->table_size) {
2542 var1 = 0;
2543 } else {
2544 var1 = p0->type->type_table[cltype] == idtype;
2545 }
2546 if (!var1) {
2547 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1229);
2548 exit(1);
2549 }
2550 var_v = p0;
2551 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
2552 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var2) /* modelbuilder on <var2:AbstractCompiler>*/;
2553 var_modelbuilder = var3;
2554 var4 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
2555 var5 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var4, self) /* has_key on <var4:HashMap[MPropDef, APropdef]>*/;
2556 if (var5){
2557 var6 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
2558 var7 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var6, self) /* [] on <var6:HashMap[MPropDef, APropdef]>*/;
2559 var_npropdef = var7;
2560 var8 = ((short int (*)(val*))(var_npropdef->class->vft[COLOR_abstract_compiler__APropdef__can_inline]))(var_npropdef) /* can_inline on <var_npropdef:APropdef>*/;
2561 var = var8;
2562 goto RET_LABEL;
2563 } else {
2564 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MMethodDef>*/;
2565 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MProperty__name]))(var9) /* name on <var9:MProperty(MMethod)>*/;
2566 if (varonce) {
2567 var11 = varonce;
2568 } else {
2569 var12 = "init";
2570 var13 = 4;
2571 var14 = string__NativeString__to_s_with_length(var12, var13);
2572 var11 = var14;
2573 varonce = var11;
2574 }
2575 var15 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_kernel__Object___61d_61d]))(var10, var11) /* == on <var10:String>*/;
2576 if (var15){
2577 var16 = 1;
2578 var = var16;
2579 goto RET_LABEL;
2580 } else {
2581 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/abstract_compiler.nit", 1240);
2582 exit(1);
2583 }
2584 }
2585 RET_LABEL:;
2586 return var;
2587 }
2588 /* method abstract_compiler#MMethodDef#can_inline for (self: Object, AbstractCompilerVisitor): Bool */
2589 short int VIRTUAL_abstract_compiler__MMethodDef__can_inline(val* self, val* p0) {
2590 short int var /* : Bool */;
2591 short int var1 /* : Bool */;
2592 var1 = abstract_compiler__MMethodDef__can_inline(self, p0);
2593 var = var1;
2594 RET_LABEL:;
2595 return var;
2596 }
2597 /* method abstract_compiler#MMethodDef#compile_inside_to_c for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
2598 val* abstract_compiler__MMethodDef__compile_inside_to_c(val* self, val* p0, val* p1) {
2599 val* var /* : nullable RuntimeVariable */;
2600 short int var1 /* : Bool */;
2601 int cltype;
2602 int idtype;
2603 const struct type* type_struct;
2604 val* var_v /* var v: AbstractCompilerVisitor */;
2605 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
2606 val* var2 /* : AbstractCompiler */;
2607 val* var3 /* : ModelBuilder */;
2608 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2609 val* var4 /* : HashMap[MPropDef, APropdef] */;
2610 short int var5 /* : Bool */;
2611 val* var6 /* : HashMap[MPropDef, APropdef] */;
2612 val* var7 /* : nullable Object */;
2613 val* var_npropdef /* var npropdef: APropdef */;
2614 val* var8 /* : nullable ANode */;
2615 val* var_oldnode /* var oldnode: nullable ANode */;
2616 val* var9 /* : MProperty */;
2617 val* var10 /* : String */;
2618 static val* varonce;
2619 val* var11 /* : String */;
2620 char* var12 /* : NativeString */;
2621 long var13 /* : Int */;
2622 val* var14 /* : String */;
2623 short int var15 /* : Bool */;
2624 val* var16 /* : HashMap[MClassDef, AClassdef] */;
2625 val* var17 /* : MClassDef */;
2626 val* var18 /* : nullable Object */;
2627 val* var_nclassdef /* var nclassdef: AClassdef */;
2628 val* var19 /* : nullable ANode */;
2629 val* var_oldnode20 /* var oldnode: nullable ANode */;
2630 val* var21 /* : null */;
2631 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
2632 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2633 type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTVISITOR];
2634 cltype = type_struct->color;
2635 idtype = type_struct->id;
2636 if(cltype >= p0->type->table_size) {
2637 var1 = 0;
2638 } else {
2639 var1 = p0->type->type_table[cltype] == idtype;
2640 }
2641 if (!var1) {
2642 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1244);
2643 exit(1);
2644 }
2645 var_v = p0;
2646 var_arguments = p1;
2647 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
2648 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var2) /* modelbuilder on <var2:AbstractCompiler>*/;
2649 var_modelbuilder = var3;
2650 var4 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
2651 var5 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var4, self) /* has_key on <var4:HashMap[MPropDef, APropdef]>*/;
2652 if (var5){
2653 var6 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
2654 var7 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var6, self) /* [] on <var6:HashMap[MPropDef, APropdef]>*/;
2655 var_npropdef = var7;
2656 var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
2657 var_oldnode = var8;
2658 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_npropdef) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
2659 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__MMethodDef__compile_parameter_check]))(self, var_v, var_arguments) /* compile_parameter_check on <self:MMethodDef>*/;
2660 ((void (*)(val*, val*, val*, val*))(var_npropdef->class->vft[COLOR_abstract_compiler__APropdef__compile_to_c]))(var_npropdef, var_v, self, var_arguments) /* compile_to_c on <var_npropdef:APropdef>*/;
2661 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
2662 } else {
2663 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MMethodDef>*/;
2664 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MProperty__name]))(var9) /* name on <var9:MProperty(MMethod)>*/;
2665 if (varonce) {
2666 var11 = varonce;
2667 } else {
2668 var12 = "init";
2669 var13 = 4;
2670 var14 = string__NativeString__to_s_with_length(var12, var13);
2671 var11 = var14;
2672 varonce = var11;
2673 }
2674 var15 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_kernel__Object___61d_61d]))(var10, var11) /* == on <var10:String>*/;
2675 if (var15){
2676 var16 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef]))(var_modelbuilder) /* mclassdef2nclassdef on <var_modelbuilder:ModelBuilder>*/;
2677 var17 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mclassdef]))(self) /* mclassdef on <self:MMethodDef>*/;
2678 var18 = ((val* (*)(val*, val*))(var16->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var16, var17) /* [] on <var16:HashMap[MClassDef, AClassdef]>*/;
2679 var_nclassdef = var18;
2680 var19 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
2681 var_oldnode20 = var19;
2682 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_nclassdef) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
2683 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__MMethodDef__compile_parameter_check]))(self, var_v, var_arguments) /* compile_parameter_check on <self:MMethodDef>*/;
2684 ((void (*)(val*, val*, val*, val*))(var_nclassdef->class->vft[COLOR_abstract_compiler__AClassdef__compile_to_c]))(var_nclassdef, var_v, self, var_arguments) /* compile_to_c on <var_nclassdef:AClassdef>*/;
2685 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode20) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
2686 } else {
2687 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/abstract_compiler.nit", 1263);
2688 exit(1);
2689 }
2690 }
2691 var21 = NULL;
2692 var = var21;
2693 goto RET_LABEL;
2694 RET_LABEL:;
2695 return var;
2696 }
2697 /* method abstract_compiler#MMethodDef#compile_inside_to_c for (self: Object, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
2698 val* VIRTUAL_abstract_compiler__MMethodDef__compile_inside_to_c(val* self, val* p0, val* p1) {
2699 val* var /* : nullable RuntimeVariable */;
2700 val* var1 /* : nullable RuntimeVariable */;
2701 var1 = abstract_compiler__MMethodDef__compile_inside_to_c(self, p0, p1);
2702 var = var1;
2703 RET_LABEL:;
2704 return var;
2705 }
2706 /* method abstract_compiler#MMethodDef#compile_parameter_check for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]) */
2707 void abstract_compiler__MMethodDef__compile_parameter_check(val* self, val* p0, val* p1) {
2708 short int var /* : Bool */;
2709 int cltype;
2710 int idtype;
2711 const struct type* type_struct;
2712 val* var_v /* var v: AbstractCompilerVisitor */;
2713 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
2714 val* var1 /* : AbstractCompiler */;
2715 val* var2 /* : ModelBuilder */;
2716 val* var3 /* : ToolContext */;
2717 val* var4 /* : OptionBool */;
2718 val* var5 /* : nullable Object */;
2719 short int var6 /* : Bool */;
2720 val* var7 /* : Range[Int] */;
2721 long var8 /* : Int */;
2722 val* var9 /* : nullable MSignature */;
2723 long var10 /* : Int */;
2724 val* var11 /* : Discrete */;
2725 val* var12 /* : Discrete */;
2726 val* var13 /* : Iterator[nullable Object] */;
2727 short int var14 /* : Bool */;
2728 val* var15 /* : nullable Object */;
2729 long var_i /* var i: Int */;
2730 long var16 /* : Int */;
2731 val* var17 /* : nullable MSignature */;
2732 long var18 /* : Int */;
2733 short int var19 /* : Bool */;
2734 short int var21 /* : Bool */;
2735 val* var22 /* : MProperty */;
2736 val* var23 /* : MPropDef */;
2737 val* var24 /* : nullable MSignature */;
2738 val* var25 /* : Array[MParameter] */;
2739 val* var26 /* : nullable Object */;
2740 val* var27 /* : MType */;
2741 val* var_origmtype /* var origmtype: MType */;
2742 short int var28 /* : Bool */;
2743 short int var29 /* : Bool */;
2744 val* var30 /* : nullable MSignature */;
2745 val* var31 /* : Array[MParameter] */;
2746 val* var32 /* : nullable Object */;
2747 val* var33 /* : MType */;
2748 val* var_mtype /* var mtype: MType */;
2749 static val* varonce;
2750 val* var34 /* : String */;
2751 char* var35 /* : NativeString */;
2752 long var36 /* : Int */;
2753 val* var37 /* : String */;
2754 static val* varonce38;
2755 val* var39 /* : String */;
2756 char* var40 /* : NativeString */;
2757 long var41 /* : Int */;
2758 val* var42 /* : String */;
2759 val* var43 /* : nullable MSignature */;
2760 val* var44 /* : Array[MParameter] */;
2761 val* var45 /* : nullable Object */;
2762 val* var46 /* : String */;
2763 static val* varonce47;
2764 val* var48 /* : String */;
2765 char* var49 /* : NativeString */;
2766 long var50 /* : Int */;
2767 val* var51 /* : String */;
2768 long var52 /* : Int */;
2769 long var53 /* : Int */;
2770 long var55 /* : Int */;
2771 val* var56 /* : nullable Object */;
2772 val* var57 /* : String */;
2773 static val* varonce58;
2774 val* var59 /* : String */;
2775 char* var60 /* : NativeString */;
2776 long var61 /* : Int */;
2777 val* var62 /* : String */;
2778 static val* varonce63;
2779 val* var64 /* : String */;
2780 char* var65 /* : NativeString */;
2781 long var66 /* : Int */;
2782 val* var67 /* : String */;
2783 val* var68 /* : Array[Object] */;
2784 long var69 /* : Int */;
2785 val* var70 /* : NativeArray[Object] */;
2786 val* var71 /* : Object */;
2787 val* var72 /* : String */;
2788 long var73 /* : Int */;
2789 long var74 /* : Int */;
2790 long var76 /* : Int */;
2791 val* var77 /* : nullable Object */;
2792 static val* varonce78;
2793 val* var79 /* : String */;
2794 char* var80 /* : NativeString */;
2795 long var81 /* : Int */;
2796 val* var82 /* : String */;
2797 val* var83 /* : RuntimeVariable */;
2798 val* var_cond /* var cond: RuntimeVariable */;
2799 static val* varonce84;
2800 val* var85 /* : String */;
2801 char* var86 /* : NativeString */;
2802 long var87 /* : Int */;
2803 val* var88 /* : String */;
2804 static val* varonce89;
2805 val* var90 /* : String */;
2806 char* var91 /* : NativeString */;
2807 long var92 /* : Int */;
2808 val* var93 /* : String */;
2809 val* var94 /* : Array[Object] */;
2810 long var95 /* : Int */;
2811 val* var96 /* : NativeArray[Object] */;
2812 val* var97 /* : String */;
2813 static val* varonce98;
2814 val* var99 /* : String */;
2815 char* var100 /* : NativeString */;
2816 long var101 /* : Int */;
2817 val* var102 /* : String */;
2818 static val* varonce103;
2819 val* var104 /* : String */;
2820 char* var105 /* : NativeString */;
2821 long var106 /* : Int */;
2822 val* var107 /* : String */;
2823 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
2824 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2825 type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTVISITOR];
2826 cltype = type_struct->color;
2827 idtype = type_struct->id;
2828 if(cltype >= p0->type->table_size) {
2829 var = 0;
2830 } else {
2831 var = p0->type->type_table[cltype] == idtype;
2832 }
2833 if (!var) {
2834 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1268);
2835 exit(1);
2836 }
2837 var_v = p0;
2838 var_arguments = p1;
2839 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
2840 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var1) /* modelbuilder on <var1:AbstractCompiler>*/;
2841 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var2) /* toolcontext on <var2:ModelBuilder>*/;
2842 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_check_covariance]))(var3) /* opt_no_check_covariance on <var3:ToolContext>*/;
2843 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_opts__Option__value]))(var4) /* value on <var4:OptionBool>*/;
2844 var6 = ((struct instance_kernel__Bool*)var5)->value; /* autounbox from nullable Object to Bool */;
2845 if (var6){
2846 goto RET_LABEL;
2847 } else {
2848 }
2849 var7 = NEW_range__Range(&type_range__Rangekernel__Int);
2850 var8 = 0;
2851 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
2852 if (var9 == NULL) {
2853 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1273);
2854 exit(1);
2855 } else {
2856 var10 = ((long (*)(val*))(var9->class->vft[COLOR_model__MSignature__arity]))(var9) /* arity on <var9:nullable MSignature>*/;
2857 }
2858 var11 = BOX_kernel__Int(var8); /* autobox from Int to Discrete */
2859 var12 = BOX_kernel__Int(var10); /* autobox from Int to Discrete */
2860 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_range__Range__without_last]))(var7, var11, var12) /* without_last on <var7:Range[Int]>*/;
2861 CHECK_NEW_range__Range(var7);
2862 var13 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var7) /* iterator on <var7:Range[Int]>*/;
2863 for(;;) {
2864 var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on <var13:Iterator[nullable Object]>*/;
2865 if(!var14) break;
2866 var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on <var13:Iterator[nullable Object]>*/;
2867 var16 = ((struct instance_kernel__Int*)var15)->value; /* autounbox from nullable Object to Int */;
2868 var_i = var16;
2869 var17 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
2870 if (var17 == NULL) {
2871 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1275);
2872 exit(1);
2873 } else {
2874 var18 = ((long (*)(val*))(var17->class->vft[COLOR_model__MSignature__vararg_rank]))(var17) /* vararg_rank on <var17:nullable MSignature>*/;
2875 }
2876 { /* Inline kernel#Int#== (var18,var_i) */
2877 var21 = var18 == var_i;
2878 var19 = var21;
2879 goto RET_LABEL20;
2880 RET_LABEL20:(void)0;
2881 }
2882 if (var19){
2883 goto CONTINUE_label;
2884 } else {
2885 }
2886 var22 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MMethodDef>*/;
2887 var23 = ((val* (*)(val*))(var22->class->vft[COLOR_model__MProperty__intro]))(var22) /* intro on <var22:MProperty(MMethod)>*/;
2888 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_model__MMethodDef__msignature]))(var23) /* msignature on <var23:MPropDef(MMethodDef)>*/;
2889 if (var24 == NULL) {
2890 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1278);
2891 exit(1);
2892 } else {
2893 var25 = ((val* (*)(val*))(var24->class->vft[COLOR_model__MSignature__mparameters]))(var24) /* mparameters on <var24:nullable MSignature>*/;
2894 }
2895 var26 = ((val* (*)(val*, long))(var25->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var25, var_i) /* [] on <var25:Array[MParameter]>*/;
2896 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MParameter__mtype]))(var26) /* mtype on <var26:nullable Object(MParameter)>*/;
2897 var_origmtype = var27;
2898 var28 = ((short int (*)(val*))(var_origmtype->class->vft[COLOR_model__MType__need_anchor]))(var_origmtype) /* need_anchor on <var_origmtype:MType>*/;
2899 var29 = !var28;
2900 if (var29){
2901 goto CONTINUE_label;
2902 } else {
2903 }
2904 var30 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
2905 if (var30 == NULL) {
2906 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1282);
2907 exit(1);
2908 } else {
2909 var31 = ((val* (*)(val*))(var30->class->vft[COLOR_model__MSignature__mparameters]))(var30) /* mparameters on <var30:nullable MSignature>*/;
2910 }
2911 var32 = ((val* (*)(val*, long))(var31->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var31, var_i) /* [] on <var31:Array[MParameter]>*/;
2912 var33 = ((val* (*)(val*))(var32->class->vft[COLOR_model__MParameter__mtype]))(var32) /* mtype on <var32:nullable Object(MParameter)>*/;
2913 var_mtype = var33;
2914 if (varonce) {
2915 var34 = varonce;
2916 } else {
2917 var35 = "/* Covariant cast for argument ";
2918 var36 = 31;
2919 var37 = string__NativeString__to_s_with_length(var35, var36);
2920 var34 = var37;
2921 varonce = var34;
2922 }
2923 if (varonce38) {
2924 var39 = varonce38;
2925 } else {
2926 var40 = " (";
2927 var41 = 2;
2928 var42 = string__NativeString__to_s_with_length(var40, var41);
2929 var39 = var42;
2930 varonce38 = var39;
2931 }
2932 var43 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
2933 if (var43 == NULL) {
2934 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1286);
2935 exit(1);
2936 } else {
2937 var44 = ((val* (*)(val*))(var43->class->vft[COLOR_model__MSignature__mparameters]))(var43) /* mparameters on <var43:nullable MSignature>*/;
2938 }
2939 var45 = ((val* (*)(val*, long))(var44->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var44, var_i) /* [] on <var44:Array[MParameter]>*/;
2940 var46 = ((val* (*)(val*))(var45->class->vft[COLOR_model__MParameter__name]))(var45) /* name on <var45:nullable Object(MParameter)>*/;
2941 if (varonce47) {
2942 var48 = varonce47;
2943 } else {
2944 var49 = ") ";
2945 var50 = 2;
2946 var51 = string__NativeString__to_s_with_length(var49, var50);
2947 var48 = var51;
2948 varonce47 = var48;
2949 }
2950 var52 = 1;
2951 { /* Inline kernel#Int#+ (var_i,var52) */
2952 var55 = var_i + var52;
2953 var53 = var55;
2954 goto RET_LABEL54;
2955 RET_LABEL54:(void)0;
2956 }
2957 var56 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var53) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2958 var57 = ((val* (*)(val*))(var56->class->vft[COLOR_string__Object__inspect]))(var56) /* inspect on <var56:nullable Object(RuntimeVariable)>*/;
2959 if (varonce58) {
2960 var59 = varonce58;
2961 } else {
2962 var60 = " isa ";
2963 var61 = 5;
2964 var62 = string__NativeString__to_s_with_length(var60, var61);
2965 var59 = var62;
2966 varonce58 = var59;
2967 }
2968 if (varonce63) {
2969 var64 = varonce63;
2970 } else {
2971 var65 = " */";
2972 var66 = 3;
2973 var67 = string__NativeString__to_s_with_length(var65, var66);
2974 var64 = var67;
2975 varonce63 = var64;
2976 }
2977 var68 = NEW_array__Array(&type_array__Arraykernel__Object);
2978 { /* var68 = array_instance Array[Object] */
2979 var69 = 9;
2980 var70 = NEW_array__NativeArray(var69, &type_array__NativeArraykernel__Object);
2981 ((struct instance_array__NativeArray*)var70)->values[0] = (val*) var34;
2982 var71 = BOX_kernel__Int(var_i); /* autobox from Int to Object */
2983 ((struct instance_array__NativeArray*)var70)->values[1] = (val*) var71;
2984 ((struct instance_array__NativeArray*)var70)->values[2] = (val*) var39;
2985 ((struct instance_array__NativeArray*)var70)->values[3] = (val*) var46;
2986 ((struct instance_array__NativeArray*)var70)->values[4] = (val*) var48;
2987 ((struct instance_array__NativeArray*)var70)->values[5] = (val*) var57;
2988 ((struct instance_array__NativeArray*)var70)->values[6] = (val*) var59;
2989 ((struct instance_array__NativeArray*)var70)->values[7] = (val*) var_mtype;
2990 ((struct instance_array__NativeArray*)var70)->values[8] = (val*) var64;
2991 ((void (*)(val*, val*, long))(var68->class->vft[COLOR_array__Array__with_native]))(var68, var70, var69) /* with_native on <var68:Array[Object]>*/;
2992 CHECK_NEW_array__Array(var68);
2993 }
2994 var72 = ((val* (*)(val*))(var68->class->vft[COLOR_string__Object__to_s]))(var68) /* to_s on <var68:Array[Object]>*/;
2995 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var72) /* add on <var_v:AbstractCompilerVisitor>*/;
2996 var73 = 1;
2997 { /* Inline kernel#Int#+ (var_i,var73) */
2998 var76 = var_i + var73;
2999 var74 = var76;
3000 goto RET_LABEL75;
3001 RET_LABEL75:(void)0;
3002 }
3003 var77 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var74) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3004 if (varonce78) {
3005 var79 = varonce78;
3006 } else {
3007 var80 = "covariance";
3008 var81 = 10;
3009 var82 = string__NativeString__to_s_with_length(var80, var81);
3010 var79 = var82;
3011 varonce78 = var79;
3012 }
3013 var83 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__type_test]))(var_v, var77, var_mtype, var79) /* type_test on <var_v:AbstractCompilerVisitor>*/;
3014 var_cond = var83;
3015 if (varonce84) {
3016 var85 = varonce84;
3017 } else {
3018 var86 = "if (!";
3019 var87 = 5;
3020 var88 = string__NativeString__to_s_with_length(var86, var87);
3021 var85 = var88;
3022 varonce84 = var85;
3023 }
3024 if (varonce89) {
3025 var90 = varonce89;
3026 } else {
3027 var91 = ") {";
3028 var92 = 3;
3029 var93 = string__NativeString__to_s_with_length(var91, var92);
3030 var90 = var93;
3031 varonce89 = var90;
3032 }
3033 var94 = NEW_array__Array(&type_array__Arraykernel__Object);
3034 { /* var94 = array_instance Array[Object] */
3035 var95 = 3;
3036 var96 = NEW_array__NativeArray(var95, &type_array__NativeArraykernel__Object);
3037 ((struct instance_array__NativeArray*)var96)->values[0] = (val*) var85;
3038 ((struct instance_array__NativeArray*)var96)->values[1] = (val*) var_cond;
3039 ((struct instance_array__NativeArray*)var96)->values[2] = (val*) var90;
3040 ((void (*)(val*, val*, long))(var94->class->vft[COLOR_array__Array__with_native]))(var94, var96, var95) /* with_native on <var94:Array[Object]>*/;
3041 CHECK_NEW_array__Array(var94);
3042 }
3043 var97 = ((val* (*)(val*))(var94->class->vft[COLOR_string__Object__to_s]))(var94) /* to_s on <var94:Array[Object]>*/;
3044 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var97) /* add on <var_v:AbstractCompilerVisitor>*/;
3045 if (varonce98) {
3046 var99 = varonce98;
3047 } else {
3048 var100 = "Cast failed";
3049 var101 = 11;
3050 var102 = string__NativeString__to_s_with_length(var100, var101);
3051 var99 = var102;
3052 varonce98 = var99;
3053 }
3054 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort]))(var_v, var99) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
3055 if (varonce103) {
3056 var104 = varonce103;
3057 } else {
3058 var105 = "}";
3059 var106 = 1;
3060 var107 = string__NativeString__to_s_with_length(var105, var106);
3061 var104 = var107;
3062 varonce103 = var104;
3063 }
3064 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var104) /* add on <var_v:AbstractCompilerVisitor>*/;
3065 CONTINUE_label: (void)0;
3066 ((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on <var13:Iterator[nullable Object]>*/;
3067 }
3068 BREAK_label: (void)0;
3069 RET_LABEL:;
3070 }
3071 /* method abstract_compiler#MMethodDef#compile_parameter_check for (self: Object, AbstractCompilerVisitor, Array[RuntimeVariable]) */
3072 void VIRTUAL_abstract_compiler__MMethodDef__compile_parameter_check(val* self, val* p0, val* p1) {
3073 abstract_compiler__MMethodDef__compile_parameter_check(self, p0, p1);
3074 RET_LABEL:;
3075 }
3076 /* method abstract_compiler#APropdef#compile_to_c for (self: APropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3077 void abstract_compiler__APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
3078 val* var_v /* var v: AbstractCompilerVisitor */;
3079 val* var_mpropdef /* var mpropdef: MMethodDef */;
3080 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
3081 static val* varonce;
3082 val* var /* : String */;
3083 char* var1 /* : NativeString */;
3084 long var2 /* : Int */;
3085 val* var3 /* : String */;
3086 val* var4 /* : String */;
3087 static val* varonce5;
3088 val* var6 /* : String */;
3089 char* var7 /* : NativeString */;
3090 long var8 /* : Int */;
3091 val* var9 /* : String */;
3092 static val* varonce10;
3093 val* var11 /* : String */;
3094 char* var12 /* : NativeString */;
3095 long var13 /* : Int */;
3096 val* var14 /* : String */;
3097 val* var15 /* : Location */;
3098 val* var16 /* : String */;
3099 static val* varonce17;
3100 val* var18 /* : String */;
3101 char* var19 /* : NativeString */;
3102 long var20 /* : Int */;
3103 val* var21 /* : String */;
3104 val* var22 /* : Array[Object] */;
3105 long var23 /* : Int */;
3106 val* var24 /* : NativeArray[Object] */;
3107 val* var25 /* : String */;
3108 static val* varonce26;
3109 val* var27 /* : String */;
3110 char* var28 /* : NativeString */;
3111 long var29 /* : Int */;
3112 val* var30 /* : String */;
3113 var_v = p0;
3114 var_mpropdef = p1;
3115 var_arguments = p2;
3116 if (varonce) {
3117 var = varonce;
3118 } else {
3119 var1 = "printf(\"NOT YET IMPLEMENTED ";
3120 var2 = 28;
3121 var3 = string__NativeString__to_s_with_length(var1, var2);
3122 var = var3;
3123 varonce = var;
3124 }
3125 var4 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:APropdef>*/;
3126 if (varonce5) {
3127 var6 = varonce5;
3128 } else {
3129 var7 = " ";
3130 var8 = 1;
3131 var9 = string__NativeString__to_s_with_length(var7, var8);
3132 var6 = var9;
3133 varonce5 = var6;
3134 }
3135 if (varonce10) {
3136 var11 = varonce10;
3137 } else {
3138 var12 = " at ";
3139 var13 = 4;
3140 var14 = string__NativeString__to_s_with_length(var12, var13);
3141 var11 = var14;
3142 varonce10 = var11;
3143 }
3144 var15 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:APropdef>*/;
3145 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on <var15:Location>*/;
3146 if (varonce17) {
3147 var18 = varonce17;
3148 } else {
3149 var19 = "\\n\");";
3150 var20 = 5;
3151 var21 = string__NativeString__to_s_with_length(var19, var20);
3152 var18 = var21;
3153 varonce17 = var18;
3154 }
3155 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
3156 { /* var22 = array_instance Array[Object] */
3157 var23 = 7;
3158 var24 = NEW_array__NativeArray(var23, &type_array__NativeArraykernel__Object);
3159 ((struct instance_array__NativeArray*)var24)->values[0] = (val*) var;
3160 ((struct instance_array__NativeArray*)var24)->values[1] = (val*) var4;
3161 ((struct instance_array__NativeArray*)var24)->values[2] = (val*) var6;
3162 ((struct instance_array__NativeArray*)var24)->values[3] = (val*) var_mpropdef;
3163 ((struct instance_array__NativeArray*)var24)->values[4] = (val*) var11;
3164 ((struct instance_array__NativeArray*)var24)->values[5] = (val*) var16;
3165 ((struct instance_array__NativeArray*)var24)->values[6] = (val*) var18;
3166 ((void (*)(val*, val*, long))(var22->class->vft[COLOR_array__Array__with_native]))(var22, var24, var23) /* with_native on <var22:Array[Object]>*/;
3167 CHECK_NEW_array__Array(var22);
3168 }
3169 var25 = ((val* (*)(val*))(var22->class->vft[COLOR_string__Object__to_s]))(var22) /* to_s on <var22:Array[Object]>*/;
3170 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var25) /* add on <var_v:AbstractCompilerVisitor>*/;
3171 if (varonce26) {
3172 var27 = varonce26;
3173 } else {
3174 var28 = "Not yet implemented";
3175 var29 = 19;
3176 var30 = string__NativeString__to_s_with_length(var28, var29);
3177 var27 = var30;
3178 varonce26 = var27;
3179 }
3180 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__debug]))(self, var27) /* debug on <self:APropdef>*/;
3181 RET_LABEL:;
3182 }
3183 /* method abstract_compiler#APropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3184 void VIRTUAL_abstract_compiler__APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
3185 abstract_compiler__APropdef__compile_to_c(self, p0, p1, p2);
3186 RET_LABEL:;
3187 }
3188 /* method abstract_compiler#APropdef#can_inline for (self: APropdef): Bool */
3189 short int abstract_compiler__APropdef__can_inline(val* self) {
3190 short int var /* : Bool */;
3191 short int var1 /* : Bool */;
3192 var1 = 1;
3193 var = var1;
3194 goto RET_LABEL;
3195 RET_LABEL:;
3196 return var;
3197 }
3198 /* method abstract_compiler#APropdef#can_inline for (self: Object): Bool */
3199 short int VIRTUAL_abstract_compiler__APropdef__can_inline(val* self) {
3200 short int var /* : Bool */;
3201 short int var1 /* : Bool */;
3202 var1 = abstract_compiler__APropdef__can_inline(self);
3203 var = var1;
3204 RET_LABEL:;
3205 return var;
3206 }
3207 /* method abstract_compiler#AConcreteMethPropdef#compile_to_c for (self: AConcreteMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3208 void abstract_compiler__AConcreteMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
3209 val* var_v /* var v: AbstractCompilerVisitor */;
3210 val* var_mpropdef /* var mpropdef: MMethodDef */;
3211 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
3212 val* var /* : Range[Int] */;
3213 long var1 /* : Int */;
3214 val* var2 /* : nullable MSignature */;
3215 long var3 /* : Int */;
3216 val* var4 /* : Discrete */;
3217 val* var5 /* : Discrete */;
3218 val* var6 /* : Iterator[nullable Object] */;
3219 short int var7 /* : Bool */;
3220 val* var8 /* : nullable Object */;
3221 long var_i /* var i: Int */;
3222 long var9 /* : Int */;
3223 val* var10 /* : nullable ASignature */;
3224 val* var11 /* : ANodes[AParam] */;
3225 val* var12 /* : nullable Object */;
3226 val* var13 /* : nullable Variable */;
3227 val* var_variable /* var variable: Variable */;
3228 val* var14 /* : RuntimeVariable */;
3229 long var15 /* : Int */;
3230 long var16 /* : Int */;
3231 long var18 /* : Int */;
3232 val* var19 /* : nullable Object */;
3233 val* var20 /* : nullable Array[MMethod] */;
3234 val* var_auto_super_inits /* var auto_super_inits: nullable Array[MMethod] */;
3235 val* var21 /* : null */;
3236 short int var22 /* : Bool */;
3237 val* var23 /* : Array[RuntimeVariable] */;
3238 long var24 /* : Int */;
3239 val* var_ /* var : Array[RuntimeVariable] */;
3240 val* var25 /* : nullable Object */;
3241 val* var_selfarg /* var selfarg: Array[RuntimeVariable] */;
3242 val* var26 /* : Iterator[nullable Object] */;
3243 short int var27 /* : Bool */;
3244 val* var28 /* : nullable Object */;
3245 val* var_auto_super_init /* var auto_super_init: MMethod */;
3246 val* var29 /* : MPropDef */;
3247 val* var30 /* : nullable MSignature */;
3248 long var31 /* : Int */;
3249 long var32 /* : Int */;
3250 short int var33 /* : Bool */;
3251 short int var35 /* : Bool */;
3252 val* var36 /* : nullable RuntimeVariable */;
3253 val* var37 /* : nullable RuntimeVariable */;
3254 val* var39 /* : nullable AExpr */;
3255 var_v = p0;
3256 var_mpropdef = p1;
3257 var_arguments = p2;
3258 var = NEW_range__Range(&type_range__Rangekernel__Int);
3259 var1 = 0;
3260 var2 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
3261 if (var2 == NULL) {
3262 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1310);
3263 exit(1);
3264 } else {
3265 var3 = ((long (*)(val*))(var2->class->vft[COLOR_model__MSignature__arity]))(var2) /* arity on <var2:nullable MSignature>*/;
3266 }
3267 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
3268 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
3269 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
3270 CHECK_NEW_range__Range(var);
3271 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
3272 for(;;) {
3273 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
3274 if(!var7) break;
3275 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
3276 var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
3277 var_i = var9;
3278 var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_signature]))(self) /* n_signature on <self:AConcreteMethPropdef>*/;
3279 if (var10 == NULL) {
3280 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1311);
3281 exit(1);
3282 } else {
3283 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var10) /* n_params on <var10:nullable ASignature>*/;
3284 }
3285 var12 = ((val* (*)(val*, long))(var11->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var11, var_i) /* [] on <var11:ANodes[AParam]>*/;
3286 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_scope__AParam__variable]))(var12) /* variable on <var12:nullable Object(AParam)>*/;
3287 if (var13 == NULL) {
3288 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1311);
3289 exit(1);
3290 }
3291 var_variable = var13;
3292 var14 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
3293 var15 = 1;
3294 { /* Inline kernel#Int#+ (var_i,var15) */
3295 var18 = var_i + var15;
3296 var16 = var18;
3297 goto RET_LABEL17;
3298 RET_LABEL17:(void)0;
3299 }
3300 var19 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var16) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3301 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var14, var19) /* assign on <var_v:AbstractCompilerVisitor>*/;
3302 CONTINUE_label: (void)0;
3303 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
3304 }
3305 BREAK_label: (void)0;
3306 var20 = ((val* (*)(val*))(self->class->vft[COLOR_auto_super_init__AConcreteMethPropdef__auto_super_inits]))(self) /* auto_super_inits on <self:AConcreteMethPropdef>*/;
3307 var_auto_super_inits = var20;
3308 var21 = NULL;
3309 if (var_auto_super_inits == NULL) {
3310 var22 = 0; /* is null */
3311 } else {
3312 var22 = 1; /* arg is null and recv is not */
3313 }
3314 if (var22){
3315 var23 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
3316 var24 = 1;
3317 ((void (*)(val*, long))(var23->class->vft[COLOR_array__Array__with_capacity]))(var23, var24) /* with_capacity on <var23:Array[RuntimeVariable]>*/;
3318 CHECK_NEW_array__Array(var23);
3319 var_ = var23;
3320 var25 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3321 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var25) /* push on <var_:Array[RuntimeVariable]>*/;
3322 var_selfarg = var_;
3323 var26 = ((val* (*)(val*))(var_auto_super_inits->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_auto_super_inits) /* iterator on <var_auto_super_inits:nullable Array[MMethod](Array[MMethod])>*/;
3324 for(;;) {
3325 var27 = ((short int (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var26) /* is_ok on <var26:Iterator[nullable Object]>*/;
3326 if(!var27) break;
3327 var28 = ((val* (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__item]))(var26) /* item on <var26:Iterator[nullable Object]>*/;
3328 var_auto_super_init = var28;
3329 var29 = ((val* (*)(val*))(var_auto_super_init->class->vft[COLOR_model__MProperty__intro]))(var_auto_super_init) /* intro on <var_auto_super_init:MMethod>*/;
3330 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_model__MMethodDef__msignature]))(var29) /* msignature on <var29:MPropDef(MMethodDef)>*/;
3331 if (var30 == NULL) {
3332 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1319);
3333 exit(1);
3334 } else {
3335 var31 = ((long (*)(val*))(var30->class->vft[COLOR_model__MSignature__arity]))(var30) /* arity on <var30:nullable MSignature>*/;
3336 }
3337 var32 = 0;
3338 { /* Inline kernel#Int#== (var31,var32) */
3339 var35 = var31 == var32;
3340 var33 = var35;
3341 goto RET_LABEL34;
3342 RET_LABEL34:(void)0;
3343 }
3344 if (var33){
3345 var36 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_auto_super_init, var_selfarg) /* send on <var_v:AbstractCompilerVisitor>*/;
3346 var36;
3347 } else {
3348 var37 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_auto_super_init, var_arguments) /* send on <var_v:AbstractCompilerVisitor>*/;
3349 var37;
3350 }
3351 CONTINUE_label38: (void)0;
3352 ((void (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__next]))(var26) /* next on <var26:Iterator[nullable Object]>*/;
3353 }
3354 BREAK_label38: (void)0;
3355 } else {
3356 }
3357 var39 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(self) /* n_block on <self:AConcreteMethPropdef>*/;
3358 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var39) /* stmt on <var_v:AbstractCompilerVisitor>*/;
3359 RET_LABEL:;
3360 }
3361 /* method abstract_compiler#AConcreteMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3362 void VIRTUAL_abstract_compiler__AConcreteMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
3363 abstract_compiler__AConcreteMethPropdef__compile_to_c(self, p0, p1, p2);
3364 RET_LABEL:;
3365 }
3366 /* method abstract_compiler#AConcreteMethPropdef#can_inline for (self: AConcreteMethPropdef): Bool */
3367 short int abstract_compiler__AConcreteMethPropdef__can_inline(val* self) {
3368 short int var /* : Bool */;
3369 val* var1 /* : nullable Array[MMethod] */;
3370 val* var2 /* : null */;
3371 short int var3 /* : Bool */;
3372 short int var4 /* : Bool */;
3373 val* var5 /* : nullable AExpr */;
3374 val* var_nblock /* var nblock: nullable AExpr */;
3375 val* var6 /* : null */;
3376 short int var7 /* : Bool */;
3377 short int var8 /* : Bool */;
3378 short int var9 /* : Bool */;
3379 short int var10 /* : Bool */;
3380 val* var11 /* : nullable MPropDef */;
3381 val* var12 /* : MProperty */;
3382 val* var13 /* : String */;
3383 static val* varonce;
3384 val* var14 /* : String */;
3385 char* var15 /* : NativeString */;
3386 long var16 /* : Int */;
3387 val* var17 /* : String */;
3388 short int var18 /* : Bool */;
3389 short int var_ /* var : Bool */;
3390 val* var19 /* : nullable MPropDef */;
3391 val* var20 /* : MProperty */;
3392 val* var21 /* : String */;
3393 static val* varonce22;
3394 val* var23 /* : String */;
3395 char* var24 /* : NativeString */;
3396 long var25 /* : Int */;
3397 val* var26 /* : String */;
3398 short int var27 /* : Bool */;
3399 short int var_28 /* var : Bool */;
3400 val* var29 /* : nullable MPropDef */;
3401 val* var30 /* : MClassDef */;
3402 val* var31 /* : MClass */;
3403 val* var32 /* : String */;
3404 static val* varonce33;
3405 val* var34 /* : String */;
3406 char* var35 /* : NativeString */;
3407 long var36 /* : Int */;
3408 val* var37 /* : String */;
3409 short int var38 /* : Bool */;
3410 short int var39 /* : Bool */;
3411 short int var40 /* : Bool */;
3412 short int var41 /* : Bool */;
3413 int cltype;
3414 int idtype;
3415 short int var_42 /* var : Bool */;
3416 val* var43 /* : ANodes[AExpr] */;
3417 long var44 /* : Int */;
3418 long var45 /* : Int */;
3419 short int var46 /* : Bool */;
3420 short int var48 /* : Bool */;
3421 short int var49 /* : Bool */;
3422 short int var50 /* : Bool */;
3423 var1 = ((val* (*)(val*))(self->class->vft[COLOR_auto_super_init__AConcreteMethPropdef__auto_super_inits]))(self) /* auto_super_inits on <self:AConcreteMethPropdef>*/;
3424 var2 = NULL;
3425 if (var1 == NULL) {
3426 var3 = 0; /* is null */
3427 } else {
3428 var3 = 1; /* arg is null and recv is not */
3429 }
3430 if (var3){
3431 var4 = 0;
3432 var = var4;
3433 goto RET_LABEL;
3434 } else {
3435 }
3436 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(self) /* n_block on <self:AConcreteMethPropdef>*/;
3437 var_nblock = var5;
3438 var6 = NULL;
3439 if (var_nblock == NULL) {
3440 var7 = 1; /* is null */
3441 } else {
3442 var7 = 0; /* arg is null but recv is not */
3443 }
3444 if (var7){
3445 var8 = 1;
3446 var = var8;
3447 goto RET_LABEL;
3448 } else {
3449 }
3450 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AConcreteMethPropdef>*/;
3451 if (var11 == NULL) {
3452 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1334);
3453 exit(1);
3454 } else {
3455 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mproperty]))(var11) /* mproperty on <var11:nullable MPropDef(nullable MMethodDef)>*/;
3456 }
3457 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MProperty__name]))(var12) /* name on <var12:MProperty(MMethod)>*/;
3458 if (varonce) {
3459 var14 = varonce;
3460 } else {
3461 var15 = "==";
3462 var16 = 2;
3463 var17 = string__NativeString__to_s_with_length(var15, var16);
3464 var14 = var17;
3465 varonce = var14;
3466 }
3467 var18 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var14) /* == on <var13:String>*/;
3468 var_ = var18;
3469 if (var18){
3470 var10 = var_;
3471 } else {
3472 var19 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AConcreteMethPropdef>*/;
3473 if (var19 == NULL) {
3474 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1334);
3475 exit(1);
3476 } else {
3477 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MPropDef__mproperty]))(var19) /* mproperty on <var19:nullable MPropDef(nullable MMethodDef)>*/;
3478 }
3479 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MProperty__name]))(var20) /* name on <var20:MProperty(MMethod)>*/;
3480 if (varonce22) {
3481 var23 = varonce22;
3482 } else {
3483 var24 = "!=";
3484 var25 = 2;
3485 var26 = string__NativeString__to_s_with_length(var24, var25);
3486 var23 = var26;
3487 varonce22 = var23;
3488 }
3489 var27 = ((short int (*)(val*, val*))(var21->class->vft[COLOR_kernel__Object___61d_61d]))(var21, var23) /* == on <var21:String>*/;
3490 var10 = var27;
3491 }
3492 var_28 = var10;
3493 if (var10){
3494 var29 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AConcreteMethPropdef>*/;
3495 if (var29 == NULL) {
3496 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1334);
3497 exit(1);
3498 } else {
3499 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_model__MPropDef__mclassdef]))(var29) /* mclassdef on <var29:nullable MPropDef(nullable MMethodDef)>*/;
3500 }
3501 var31 = ((val* (*)(val*))(var30->class->vft[COLOR_model__MClassDef__mclass]))(var30) /* mclass on <var30:MClassDef>*/;
3502 var32 = ((val* (*)(val*))(var31->class->vft[COLOR_model__MClass__name]))(var31) /* name on <var31:MClass>*/;
3503 if (varonce33) {
3504 var34 = varonce33;
3505 } else {
3506 var35 = "Object";
3507 var36 = 6;
3508 var37 = string__NativeString__to_s_with_length(var35, var36);
3509 var34 = var37;
3510 varonce33 = var34;
3511 }
3512 var38 = ((short int (*)(val*, val*))(var32->class->vft[COLOR_kernel__Object___61d_61d]))(var32, var34) /* == on <var32:String>*/;
3513 var9 = var38;
3514 } else {
3515 var9 = var_28;
3516 }
3517 if (var9){
3518 var39 = 1;
3519 var = var39;
3520 goto RET_LABEL;
3521 } else {
3522 }
3523 /* <var_nblock:nullable AExpr(AExpr)> isa ABlockExpr */
3524 cltype = type_parser_nodes__ABlockExpr.color;
3525 idtype = type_parser_nodes__ABlockExpr.id;
3526 if(cltype >= var_nblock->type->table_size) {
3527 var41 = 0;
3528 } else {
3529 var41 = var_nblock->type->type_table[cltype] == idtype;
3530 }
3531 var_42 = var41;
3532 if (var41){
3533 var43 = ((val* (*)(val*))(var_nblock->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(var_nblock) /* n_expr on <var_nblock:nullable AExpr(ABlockExpr)>*/;
3534 var44 = ((long (*)(val*))(var43->class->vft[COLOR_abstract_collection__Collection__length]))(var43) /* length on <var43:ANodes[AExpr]>*/;
3535 var45 = 0;
3536 { /* Inline kernel#Int#== (var44,var45) */
3537 var48 = var44 == var45;
3538 var46 = var48;
3539 goto RET_LABEL47;
3540 RET_LABEL47:(void)0;
3541 }
3542 var40 = var46;
3543 } else {
3544 var40 = var_42;
3545 }
3546 if (var40){
3547 var49 = 1;
3548 var = var49;
3549 goto RET_LABEL;
3550 } else {
3551 }
3552 var50 = 0;
3553 var = var50;
3554 goto RET_LABEL;
3555 RET_LABEL:;
3556 return var;
3557 }
3558 /* method abstract_compiler#AConcreteMethPropdef#can_inline for (self: Object): Bool */
3559 short int VIRTUAL_abstract_compiler__AConcreteMethPropdef__can_inline(val* self) {
3560 short int var /* : Bool */;
3561 short int var1 /* : Bool */;
3562 var1 = abstract_compiler__AConcreteMethPropdef__can_inline(self);
3563 var = var1;
3564 RET_LABEL:;
3565 return var;
3566 }
3567 /* method abstract_compiler#AInternMethPropdef#compile_to_c for (self: AInternMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3568 void abstract_compiler__AInternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
3569 val* var_v /* var v: AbstractCompilerVisitor */;
3570 val* var_mpropdef /* var mpropdef: MMethodDef */;
3571 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
3572 val* var /* : MProperty */;
3573 val* var1 /* : String */;
3574 val* var_pname /* var pname: String */;
3575 val* var2 /* : MClassDef */;
3576 val* var3 /* : MClass */;
3577 val* var4 /* : String */;
3578 val* var_cname /* var cname: String */;
3579 val* var5 /* : nullable MSignature */;
3580 val* var6 /* : nullable MType */;
3581 val* var_ret /* var ret: nullable MType */;
3582 val* var7 /* : null */;
3583 short int var8 /* : Bool */;
3584 val* var9 /* : nullable Object */;
3585 val* var10 /* : MType */;
3586 short int var11 /* : Bool */;
3587 static val* varonce;
3588 val* var12 /* : String */;
3589 char* var13 /* : NativeString */;
3590 long var14 /* : Int */;
3591 val* var15 /* : String */;
3592 short int var16 /* : Bool */;
3593 short int var_ /* var : Bool */;
3594 static val* varonce17;
3595 val* var18 /* : String */;
3596 char* var19 /* : NativeString */;
3597 long var20 /* : Int */;
3598 val* var21 /* : String */;
3599 short int var22 /* : Bool */;
3600 static val* varonce23;
3601 val* var24 /* : String */;
3602 char* var25 /* : NativeString */;
3603 long var26 /* : Int */;
3604 val* var27 /* : String */;
3605 short int var28 /* : Bool */;
3606 static val* varonce29;
3607 val* var30 /* : String */;
3608 char* var31 /* : NativeString */;
3609 long var32 /* : Int */;
3610 val* var33 /* : String */;
3611 short int var34 /* : Bool */;
3612 static val* varonce35;
3613 val* var36 /* : String */;
3614 char* var37 /* : NativeString */;
3615 long var38 /* : Int */;
3616 val* var39 /* : String */;
3617 val* var40 /* : nullable Object */;
3618 static val* varonce41;
3619 val* var42 /* : String */;
3620 char* var43 /* : NativeString */;
3621 long var44 /* : Int */;
3622 val* var45 /* : String */;
3623 val* var46 /* : Array[Object] */;
3624 long var47 /* : Int */;
3625 val* var48 /* : NativeArray[Object] */;
3626 val* var49 /* : String */;
3627 static val* varonce50;
3628 val* var51 /* : String */;
3629 char* var52 /* : NativeString */;
3630 long var53 /* : Int */;
3631 val* var54 /* : String */;
3632 short int var55 /* : Bool */;
3633 val* var56 /* : nullable Object */;
3634 static val* varonce57;
3635 val* var58 /* : String */;
3636 char* var59 /* : NativeString */;
3637 long var60 /* : Int */;
3638 val* var61 /* : String */;
3639 short int var62 /* : Bool */;
3640 long var63 /* : Int */;
3641 val* var64 /* : nullable Object */;
3642 static val* varonce65;
3643 val* var66 /* : String */;
3644 char* var67 /* : NativeString */;
3645 long var68 /* : Int */;
3646 val* var69 /* : String */;
3647 long var70 /* : Int */;
3648 val* var71 /* : nullable Object */;
3649 val* var72 /* : Array[Object] */;
3650 long var73 /* : Int */;
3651 val* var74 /* : NativeArray[Object] */;
3652 val* var75 /* : String */;
3653 val* var76 /* : RuntimeVariable */;
3654 static val* varonce77;
3655 val* var78 /* : String */;
3656 char* var79 /* : NativeString */;
3657 long var80 /* : Int */;
3658 val* var81 /* : String */;
3659 short int var82 /* : Bool */;
3660 long var83 /* : Int */;
3661 val* var84 /* : nullable Object */;
3662 static val* varonce85;
3663 val* var86 /* : String */;
3664 char* var87 /* : NativeString */;
3665 long var88 /* : Int */;
3666 val* var89 /* : String */;
3667 long var90 /* : Int */;
3668 val* var91 /* : nullable Object */;
3669 val* var92 /* : Array[Object] */;
3670 long var93 /* : Int */;
3671 val* var94 /* : NativeArray[Object] */;
3672 val* var95 /* : String */;
3673 val* var96 /* : RuntimeVariable */;
3674 static val* varonce97;
3675 val* var98 /* : String */;
3676 char* var99 /* : NativeString */;
3677 long var100 /* : Int */;
3678 val* var101 /* : String */;
3679 short int var102 /* : Bool */;
3680 static val* varonce103;
3681 val* var104 /* : String */;
3682 char* var105 /* : NativeString */;
3683 long var106 /* : Int */;
3684 val* var107 /* : String */;
3685 long var108 /* : Int */;
3686 val* var109 /* : nullable Object */;
3687 val* var110 /* : Array[Object] */;
3688 long var111 /* : Int */;
3689 val* var112 /* : NativeArray[Object] */;
3690 val* var113 /* : String */;
3691 val* var114 /* : RuntimeVariable */;
3692 static val* varonce115;
3693 val* var116 /* : String */;
3694 char* var117 /* : NativeString */;
3695 long var118 /* : Int */;
3696 val* var119 /* : String */;
3697 short int var120 /* : Bool */;
3698 long var121 /* : Int */;
3699 val* var122 /* : nullable Object */;
3700 static val* varonce123;
3701 val* var124 /* : String */;
3702 char* var125 /* : NativeString */;
3703 long var126 /* : Int */;
3704 val* var127 /* : String */;
3705 val* var128 /* : Array[Object] */;
3706 long var129 /* : Int */;
3707 val* var130 /* : NativeArray[Object] */;
3708 val* var131 /* : String */;
3709 val* var132 /* : RuntimeVariable */;
3710 static val* varonce133;
3711 val* var134 /* : String */;
3712 char* var135 /* : NativeString */;
3713 long var136 /* : Int */;
3714 val* var137 /* : String */;
3715 short int var138 /* : Bool */;
3716 long var139 /* : Int */;
3717 val* var140 /* : nullable Object */;
3718 static val* varonce141;
3719 val* var142 /* : String */;
3720 char* var143 /* : NativeString */;
3721 long var144 /* : Int */;
3722 val* var145 /* : String */;
3723 val* var146 /* : Array[Object] */;
3724 long var147 /* : Int */;
3725 val* var148 /* : NativeArray[Object] */;
3726 val* var149 /* : String */;
3727 val* var150 /* : RuntimeVariable */;
3728 static val* varonce151;
3729 val* var152 /* : String */;
3730 char* var153 /* : NativeString */;
3731 long var154 /* : Int */;
3732 val* var155 /* : String */;
3733 short int var156 /* : Bool */;
3734 long var157 /* : Int */;
3735 val* var158 /* : nullable Object */;
3736 static val* varonce159;
3737 val* var160 /* : String */;
3738 char* var161 /* : NativeString */;
3739 long var162 /* : Int */;
3740 val* var163 /* : String */;
3741 long var164 /* : Int */;
3742 val* var165 /* : nullable Object */;
3743 val* var166 /* : Array[Object] */;
3744 long var167 /* : Int */;
3745 val* var168 /* : NativeArray[Object] */;
3746 val* var169 /* : String */;
3747 val* var170 /* : RuntimeVariable */;
3748 static val* varonce171;
3749 val* var172 /* : String */;
3750 char* var173 /* : NativeString */;
3751 long var174 /* : Int */;
3752 val* var175 /* : String */;
3753 short int var176 /* : Bool */;
3754 long var177 /* : Int */;
3755 val* var178 /* : nullable Object */;
3756 static val* varonce179;
3757 val* var180 /* : String */;
3758 char* var181 /* : NativeString */;
3759 long var182 /* : Int */;
3760 val* var183 /* : String */;
3761 long var184 /* : Int */;
3762 val* var185 /* : nullable Object */;
3763 val* var186 /* : Array[Object] */;
3764 long var187 /* : Int */;
3765 val* var188 /* : NativeArray[Object] */;
3766 val* var189 /* : String */;
3767 val* var190 /* : RuntimeVariable */;
3768 static val* varonce191;
3769 val* var192 /* : String */;
3770 char* var193 /* : NativeString */;
3771 long var194 /* : Int */;
3772 val* var195 /* : String */;
3773 short int var196 /* : Bool */;
3774 long var197 /* : Int */;
3775 val* var198 /* : nullable Object */;
3776 static val* varonce199;
3777 val* var200 /* : String */;
3778 char* var201 /* : NativeString */;
3779 long var202 /* : Int */;
3780 val* var203 /* : String */;
3781 long var204 /* : Int */;
3782 val* var205 /* : nullable Object */;
3783 val* var206 /* : Array[Object] */;
3784 long var207 /* : Int */;
3785 val* var208 /* : NativeArray[Object] */;
3786 val* var209 /* : String */;
3787 val* var210 /* : RuntimeVariable */;
3788 static val* varonce211;
3789 val* var212 /* : String */;
3790 char* var213 /* : NativeString */;
3791 long var214 /* : Int */;
3792 val* var215 /* : String */;
3793 short int var216 /* : Bool */;
3794 long var217 /* : Int */;
3795 val* var218 /* : nullable Object */;
3796 static val* varonce219;
3797 val* var220 /* : String */;
3798 char* var221 /* : NativeString */;
3799 long var222 /* : Int */;
3800 val* var223 /* : String */;
3801 long var224 /* : Int */;
3802 val* var225 /* : nullable Object */;
3803 val* var226 /* : Array[Object] */;
3804 long var227 /* : Int */;
3805 val* var228 /* : NativeArray[Object] */;
3806 val* var229 /* : String */;
3807 val* var230 /* : RuntimeVariable */;
3808 static val* varonce231;
3809 val* var232 /* : String */;
3810 char* var233 /* : NativeString */;
3811 long var234 /* : Int */;
3812 val* var235 /* : String */;
3813 short int var236 /* : Bool */;
3814 long var237 /* : Int */;
3815 val* var238 /* : nullable Object */;
3816 static val* varonce239;
3817 val* var240 /* : String */;
3818 char* var241 /* : NativeString */;
3819 long var242 /* : Int */;
3820 val* var243 /* : String */;
3821 long var244 /* : Int */;
3822 val* var245 /* : nullable Object */;
3823 val* var246 /* : Array[Object] */;
3824 long var247 /* : Int */;
3825 val* var248 /* : NativeArray[Object] */;
3826 val* var249 /* : String */;
3827 val* var250 /* : RuntimeVariable */;
3828 static val* varonce251;
3829 val* var252 /* : String */;
3830 char* var253 /* : NativeString */;
3831 long var254 /* : Int */;
3832 val* var255 /* : String */;
3833 short int var256 /* : Bool */;
3834 long var257 /* : Int */;
3835 val* var258 /* : nullable Object */;
3836 long var259 /* : Int */;
3837 val* var260 /* : nullable Object */;
3838 val* var261 /* : RuntimeVariable */;
3839 static val* varonce262;
3840 val* var263 /* : String */;
3841 char* var264 /* : NativeString */;
3842 long var265 /* : Int */;
3843 val* var266 /* : String */;
3844 short int var267 /* : Bool */;
3845 long var268 /* : Int */;
3846 val* var269 /* : nullable Object */;
3847 long var270 /* : Int */;
3848 val* var271 /* : nullable Object */;
3849 val* var272 /* : RuntimeVariable */;
3850 val* var_res /* var res: RuntimeVariable */;
3851 static val* varonce273;
3852 val* var274 /* : String */;
3853 char* var275 /* : NativeString */;
3854 long var276 /* : Int */;
3855 val* var277 /* : String */;
3856 val* var278 /* : Array[Object] */;
3857 long var279 /* : Int */;
3858 val* var280 /* : NativeArray[Object] */;
3859 val* var281 /* : String */;
3860 val* var282 /* : RuntimeVariable */;
3861 static val* varonce283;
3862 val* var284 /* : String */;
3863 char* var285 /* : NativeString */;
3864 long var286 /* : Int */;
3865 val* var287 /* : String */;
3866 short int var288 /* : Bool */;
3867 long var289 /* : Int */;
3868 val* var290 /* : nullable Object */;
3869 static val* varonce291;
3870 val* var292 /* : String */;
3871 char* var293 /* : NativeString */;
3872 long var294 /* : Int */;
3873 val* var295 /* : String */;
3874 long var296 /* : Int */;
3875 val* var297 /* : nullable Object */;
3876 val* var298 /* : Array[Object] */;
3877 long var299 /* : Int */;
3878 val* var300 /* : NativeArray[Object] */;
3879 val* var301 /* : String */;
3880 val* var302 /* : RuntimeVariable */;
3881 static val* varonce303;
3882 val* var304 /* : String */;
3883 char* var305 /* : NativeString */;
3884 long var306 /* : Int */;
3885 val* var307 /* : String */;
3886 short int var308 /* : Bool */;
3887 long var309 /* : Int */;
3888 val* var310 /* : nullable Object */;
3889 static val* varonce311;
3890 val* var312 /* : String */;
3891 char* var313 /* : NativeString */;
3892 long var314 /* : Int */;
3893 val* var315 /* : String */;
3894 long var316 /* : Int */;
3895 val* var317 /* : nullable Object */;
3896 val* var318 /* : Array[Object] */;
3897 long var319 /* : Int */;
3898 val* var320 /* : NativeArray[Object] */;
3899 val* var321 /* : String */;
3900 val* var322 /* : RuntimeVariable */;
3901 static val* varonce323;
3902 val* var324 /* : String */;
3903 char* var325 /* : NativeString */;
3904 long var326 /* : Int */;
3905 val* var327 /* : String */;
3906 short int var328 /* : Bool */;
3907 long var329 /* : Int */;
3908 val* var330 /* : nullable Object */;
3909 static val* varonce331;
3910 val* var332 /* : String */;
3911 char* var333 /* : NativeString */;
3912 long var334 /* : Int */;
3913 val* var335 /* : String */;
3914 long var336 /* : Int */;
3915 val* var337 /* : nullable Object */;
3916 val* var338 /* : Array[Object] */;
3917 long var339 /* : Int */;
3918 val* var340 /* : NativeArray[Object] */;
3919 val* var341 /* : String */;
3920 val* var342 /* : RuntimeVariable */;
3921 static val* varonce343;
3922 val* var344 /* : String */;
3923 char* var345 /* : NativeString */;
3924 long var346 /* : Int */;
3925 val* var347 /* : String */;
3926 short int var348 /* : Bool */;
3927 long var349 /* : Int */;
3928 val* var350 /* : nullable Object */;
3929 static val* varonce351;
3930 val* var352 /* : String */;
3931 char* var353 /* : NativeString */;
3932 long var354 /* : Int */;
3933 val* var355 /* : String */;
3934 long var356 /* : Int */;
3935 val* var357 /* : nullable Object */;
3936 val* var358 /* : Array[Object] */;
3937 long var359 /* : Int */;
3938 val* var360 /* : NativeArray[Object] */;
3939 val* var361 /* : String */;
3940 val* var362 /* : RuntimeVariable */;
3941 static val* varonce363;
3942 val* var364 /* : String */;
3943 char* var365 /* : NativeString */;
3944 long var366 /* : Int */;
3945 val* var367 /* : String */;
3946 short int var368 /* : Bool */;
3947 static val* varonce369;
3948 val* var370 /* : String */;
3949 char* var371 /* : NativeString */;
3950 long var372 /* : Int */;
3951 val* var373 /* : String */;
3952 long var374 /* : Int */;
3953 val* var375 /* : nullable Object */;
3954 val* var376 /* : Array[Object] */;
3955 long var377 /* : Int */;
3956 val* var378 /* : NativeArray[Object] */;
3957 val* var379 /* : String */;
3958 val* var380 /* : RuntimeVariable */;
3959 static val* varonce381;
3960 val* var382 /* : String */;
3961 char* var383 /* : NativeString */;
3962 long var384 /* : Int */;
3963 val* var385 /* : String */;
3964 short int var386 /* : Bool */;
3965 long var387 /* : Int */;
3966 val* var388 /* : nullable Object */;
3967 val* var389 /* : Array[Object] */;
3968 long var390 /* : Int */;
3969 val* var391 /* : NativeArray[Object] */;
3970 val* var392 /* : String */;
3971 val* var393 /* : RuntimeVariable */;
3972 static val* varonce394;
3973 val* var395 /* : String */;
3974 char* var396 /* : NativeString */;
3975 long var397 /* : Int */;
3976 val* var398 /* : String */;
3977 short int var399 /* : Bool */;
3978 static val* varonce400;
3979 val* var401 /* : String */;
3980 char* var402 /* : NativeString */;
3981 long var403 /* : Int */;
3982 val* var404 /* : String */;
3983 short int var405 /* : Bool */;
3984 static val* varonce406;
3985 val* var407 /* : String */;
3986 char* var408 /* : NativeString */;
3987 long var409 /* : Int */;
3988 val* var410 /* : String */;
3989 val* var411 /* : nullable Object */;
3990 static val* varonce412;
3991 val* var413 /* : String */;
3992 char* var414 /* : NativeString */;
3993 long var415 /* : Int */;
3994 val* var416 /* : String */;
3995 val* var417 /* : Array[Object] */;
3996 long var418 /* : Int */;
3997 val* var419 /* : NativeArray[Object] */;
3998 val* var420 /* : String */;
3999 static val* varonce421;
4000 val* var422 /* : String */;
4001 char* var423 /* : NativeString */;
4002 long var424 /* : Int */;
4003 val* var425 /* : String */;
4004 short int var426 /* : Bool */;
4005 static val* varonce427;
4006 val* var428 /* : String */;
4007 char* var429 /* : NativeString */;
4008 long var430 /* : Int */;
4009 val* var431 /* : String */;
4010 val* var432 /* : nullable Object */;
4011 val* var433 /* : Array[Object] */;
4012 long var434 /* : Int */;
4013 val* var435 /* : NativeArray[Object] */;
4014 val* var436 /* : String */;
4015 val* var437 /* : RuntimeVariable */;
4016 static val* varonce438;
4017 val* var439 /* : String */;
4018 char* var440 /* : NativeString */;
4019 long var441 /* : Int */;
4020 val* var442 /* : String */;
4021 short int var443 /* : Bool */;
4022 long var444 /* : Int */;
4023 val* var445 /* : nullable Object */;
4024 static val* varonce446;
4025 val* var447 /* : String */;
4026 char* var448 /* : NativeString */;
4027 long var449 /* : Int */;
4028 val* var450 /* : String */;
4029 long var451 /* : Int */;
4030 val* var452 /* : nullable Object */;
4031 val* var453 /* : Array[Object] */;
4032 long var454 /* : Int */;
4033 val* var455 /* : NativeArray[Object] */;
4034 val* var456 /* : String */;
4035 val* var457 /* : RuntimeVariable */;
4036 static val* varonce458;
4037 val* var459 /* : String */;
4038 char* var460 /* : NativeString */;
4039 long var461 /* : Int */;
4040 val* var462 /* : String */;
4041 short int var463 /* : Bool */;
4042 long var464 /* : Int */;
4043 val* var465 /* : nullable Object */;
4044 static val* varonce466;
4045 val* var467 /* : String */;
4046 char* var468 /* : NativeString */;
4047 long var469 /* : Int */;
4048 val* var470 /* : String */;
4049 long var471 /* : Int */;
4050 val* var472 /* : nullable Object */;
4051 val* var473 /* : Array[Object] */;
4052 long var474 /* : Int */;
4053 val* var475 /* : NativeArray[Object] */;
4054 val* var476 /* : String */;
4055 val* var477 /* : RuntimeVariable */;
4056 static val* varonce478;
4057 val* var479 /* : String */;
4058 char* var480 /* : NativeString */;
4059 long var481 /* : Int */;
4060 val* var482 /* : String */;
4061 short int var483 /* : Bool */;
4062 long var484 /* : Int */;
4063 val* var485 /* : nullable Object */;
4064 long var486 /* : Int */;
4065 val* var487 /* : nullable Object */;
4066 val* var488 /* : RuntimeVariable */;
4067 static val* varonce489;
4068 val* var490 /* : String */;
4069 char* var491 /* : NativeString */;
4070 long var492 /* : Int */;
4071 val* var493 /* : String */;
4072 short int var494 /* : Bool */;
4073 long var495 /* : Int */;
4074 val* var496 /* : nullable Object */;
4075 long var497 /* : Int */;
4076 val* var498 /* : nullable Object */;
4077 val* var499 /* : RuntimeVariable */;
4078 val* var_res500 /* var res: RuntimeVariable */;
4079 static val* varonce501;
4080 val* var502 /* : String */;
4081 char* var503 /* : NativeString */;
4082 long var504 /* : Int */;
4083 val* var505 /* : String */;
4084 val* var506 /* : Array[Object] */;
4085 long var507 /* : Int */;
4086 val* var508 /* : NativeArray[Object] */;
4087 val* var509 /* : String */;
4088 val* var510 /* : RuntimeVariable */;
4089 static val* varonce511;
4090 val* var512 /* : String */;
4091 char* var513 /* : NativeString */;
4092 long var514 /* : Int */;
4093 val* var515 /* : String */;
4094 short int var516 /* : Bool */;
4095 long var517 /* : Int */;
4096 val* var518 /* : nullable Object */;
4097 static val* varonce519;
4098 val* var520 /* : String */;
4099 char* var521 /* : NativeString */;
4100 long var522 /* : Int */;
4101 val* var523 /* : String */;
4102 val* var524 /* : Array[Object] */;
4103 long var525 /* : Int */;
4104 val* var526 /* : NativeArray[Object] */;
4105 val* var527 /* : String */;
4106 val* var528 /* : RuntimeVariable */;
4107 static val* varonce529;
4108 val* var530 /* : String */;
4109 char* var531 /* : NativeString */;
4110 long var532 /* : Int */;
4111 val* var533 /* : String */;
4112 short int var534 /* : Bool */;
4113 long var535 /* : Int */;
4114 val* var536 /* : nullable Object */;
4115 static val* varonce537;
4116 val* var538 /* : String */;
4117 char* var539 /* : NativeString */;
4118 long var540 /* : Int */;
4119 val* var541 /* : String */;
4120 val* var542 /* : Array[Object] */;
4121 long var543 /* : Int */;
4122 val* var544 /* : NativeArray[Object] */;
4123 val* var545 /* : String */;
4124 val* var546 /* : RuntimeVariable */;
4125 static val* varonce547;
4126 val* var548 /* : String */;
4127 char* var549 /* : NativeString */;
4128 long var550 /* : Int */;
4129 val* var551 /* : String */;
4130 short int var552 /* : Bool */;
4131 long var553 /* : Int */;
4132 val* var554 /* : nullable Object */;
4133 static val* varonce555;
4134 val* var556 /* : String */;
4135 char* var557 /* : NativeString */;
4136 long var558 /* : Int */;
4137 val* var559 /* : String */;
4138 long var560 /* : Int */;
4139 val* var561 /* : nullable Object */;
4140 val* var562 /* : Array[Object] */;
4141 long var563 /* : Int */;
4142 val* var564 /* : NativeArray[Object] */;
4143 val* var565 /* : String */;
4144 val* var566 /* : RuntimeVariable */;
4145 static val* varonce567;
4146 val* var568 /* : String */;
4147 char* var569 /* : NativeString */;
4148 long var570 /* : Int */;
4149 val* var571 /* : String */;
4150 short int var572 /* : Bool */;
4151 long var573 /* : Int */;
4152 val* var574 /* : nullable Object */;
4153 static val* varonce575;
4154 val* var576 /* : String */;
4155 char* var577 /* : NativeString */;
4156 long var578 /* : Int */;
4157 val* var579 /* : String */;
4158 long var580 /* : Int */;
4159 val* var581 /* : nullable Object */;
4160 val* var582 /* : Array[Object] */;
4161 long var583 /* : Int */;
4162 val* var584 /* : NativeArray[Object] */;
4163 val* var585 /* : String */;
4164 val* var586 /* : RuntimeVariable */;
4165 static val* varonce587;
4166 val* var588 /* : String */;
4167 char* var589 /* : NativeString */;
4168 long var590 /* : Int */;
4169 val* var591 /* : String */;
4170 short int var592 /* : Bool */;
4171 long var593 /* : Int */;
4172 val* var594 /* : nullable Object */;
4173 static val* varonce595;
4174 val* var596 /* : String */;
4175 char* var597 /* : NativeString */;
4176 long var598 /* : Int */;
4177 val* var599 /* : String */;
4178 long var600 /* : Int */;
4179 val* var601 /* : nullable Object */;
4180 val* var602 /* : Array[Object] */;
4181 long var603 /* : Int */;
4182 val* var604 /* : NativeArray[Object] */;
4183 val* var605 /* : String */;
4184 val* var606 /* : RuntimeVariable */;
4185 static val* varonce607;
4186 val* var608 /* : String */;
4187 char* var609 /* : NativeString */;
4188 long var610 /* : Int */;
4189 val* var611 /* : String */;
4190 short int var612 /* : Bool */;
4191 long var613 /* : Int */;
4192 val* var614 /* : nullable Object */;
4193 static val* varonce615;
4194 val* var616 /* : String */;
4195 char* var617 /* : NativeString */;
4196 long var618 /* : Int */;
4197 val* var619 /* : String */;
4198 long var620 /* : Int */;
4199 val* var621 /* : nullable Object */;
4200 val* var622 /* : Array[Object] */;
4201 long var623 /* : Int */;
4202 val* var624 /* : NativeArray[Object] */;
4203 val* var625 /* : String */;
4204 val* var626 /* : RuntimeVariable */;
4205 static val* varonce627;
4206 val* var628 /* : String */;
4207 char* var629 /* : NativeString */;
4208 long var630 /* : Int */;
4209 val* var631 /* : String */;
4210 short int var632 /* : Bool */;
4211 long var633 /* : Int */;
4212 val* var634 /* : nullable Object */;
4213 static val* varonce635;
4214 val* var636 /* : String */;
4215 char* var637 /* : NativeString */;
4216 long var638 /* : Int */;
4217 val* var639 /* : String */;
4218 val* var640 /* : Array[Object] */;
4219 long var641 /* : Int */;
4220 val* var642 /* : NativeArray[Object] */;
4221 val* var643 /* : String */;
4222 val* var644 /* : RuntimeVariable */;
4223 static val* varonce645;
4224 val* var646 /* : String */;
4225 char* var647 /* : NativeString */;
4226 long var648 /* : Int */;
4227 val* var649 /* : String */;
4228 short int var650 /* : Bool */;
4229 static val* varonce651;
4230 val* var652 /* : String */;
4231 char* var653 /* : NativeString */;
4232 long var654 /* : Int */;
4233 val* var655 /* : String */;
4234 long var656 /* : Int */;
4235 val* var657 /* : nullable Object */;
4236 val* var658 /* : Array[Object] */;
4237 long var659 /* : Int */;
4238 val* var660 /* : NativeArray[Object] */;
4239 val* var661 /* : String */;
4240 val* var662 /* : RuntimeVariable */;
4241 static val* varonce663;
4242 val* var664 /* : String */;
4243 char* var665 /* : NativeString */;
4244 long var666 /* : Int */;
4245 val* var667 /* : String */;
4246 short int var668 /* : Bool */;
4247 static val* varonce669;
4248 val* var670 /* : String */;
4249 char* var671 /* : NativeString */;
4250 long var672 /* : Int */;
4251 val* var673 /* : String */;
4252 short int var674 /* : Bool */;
4253 static val* varonce675;
4254 val* var676 /* : String */;
4255 char* var677 /* : NativeString */;
4256 long var678 /* : Int */;
4257 val* var679 /* : String */;
4258 val* var680 /* : nullable Object */;
4259 static val* varonce681;
4260 val* var682 /* : String */;
4261 char* var683 /* : NativeString */;
4262 long var684 /* : Int */;
4263 val* var685 /* : String */;
4264 val* var686 /* : Array[Object] */;
4265 long var687 /* : Int */;
4266 val* var688 /* : NativeArray[Object] */;
4267 val* var689 /* : String */;
4268 static val* varonce690;
4269 val* var691 /* : String */;
4270 char* var692 /* : NativeString */;
4271 long var693 /* : Int */;
4272 val* var694 /* : String */;
4273 short int var695 /* : Bool */;
4274 static val* varonce696;
4275 val* var697 /* : String */;
4276 char* var698 /* : NativeString */;
4277 long var699 /* : Int */;
4278 val* var700 /* : String */;
4279 val* var701 /* : nullable Object */;
4280 val* var702 /* : Array[Object] */;
4281 long var703 /* : Int */;
4282 val* var704 /* : NativeArray[Object] */;
4283 val* var705 /* : String */;
4284 val* var706 /* : RuntimeVariable */;
4285 static val* varonce707;
4286 val* var708 /* : String */;
4287 char* var709 /* : NativeString */;
4288 long var710 /* : Int */;
4289 val* var711 /* : String */;
4290 short int var712 /* : Bool */;
4291 long var713 /* : Int */;
4292 val* var714 /* : nullable Object */;
4293 long var715 /* : Int */;
4294 val* var716 /* : nullable Object */;
4295 val* var717 /* : RuntimeVariable */;
4296 static val* varonce718;
4297 val* var719 /* : String */;
4298 char* var720 /* : NativeString */;
4299 long var721 /* : Int */;
4300 val* var722 /* : String */;
4301 short int var723 /* : Bool */;
4302 long var724 /* : Int */;
4303 val* var725 /* : nullable Object */;
4304 long var726 /* : Int */;
4305 val* var727 /* : nullable Object */;
4306 val* var728 /* : RuntimeVariable */;
4307 val* var_res729 /* var res: RuntimeVariable */;
4308 static val* varonce730;
4309 val* var731 /* : String */;
4310 char* var732 /* : NativeString */;
4311 long var733 /* : Int */;
4312 val* var734 /* : String */;
4313 val* var735 /* : Array[Object] */;
4314 long var736 /* : Int */;
4315 val* var737 /* : NativeArray[Object] */;
4316 val* var738 /* : String */;
4317 val* var739 /* : RuntimeVariable */;
4318 static val* varonce740;
4319 val* var741 /* : String */;
4320 char* var742 /* : NativeString */;
4321 long var743 /* : Int */;
4322 val* var744 /* : String */;
4323 short int var745 /* : Bool */;
4324 static val* varonce746;
4325 val* var747 /* : String */;
4326 char* var748 /* : NativeString */;
4327 long var749 /* : Int */;
4328 val* var750 /* : String */;
4329 short int var751 /* : Bool */;
4330 static val* varonce752;
4331 val* var753 /* : String */;
4332 char* var754 /* : NativeString */;
4333 long var755 /* : Int */;
4334 val* var756 /* : String */;
4335 val* var757 /* : nullable Object */;
4336 static val* varonce758;
4337 val* var759 /* : String */;
4338 char* var760 /* : NativeString */;
4339 long var761 /* : Int */;
4340 val* var762 /* : String */;
4341 val* var763 /* : Array[Object] */;
4342 long var764 /* : Int */;
4343 val* var765 /* : NativeArray[Object] */;
4344 val* var766 /* : String */;
4345 static val* varonce767;
4346 val* var768 /* : String */;
4347 char* var769 /* : NativeString */;
4348 long var770 /* : Int */;
4349 val* var771 /* : String */;
4350 short int var772 /* : Bool */;
4351 static val* varonce773;
4352 val* var774 /* : String */;
4353 char* var775 /* : NativeString */;
4354 long var776 /* : Int */;
4355 val* var777 /* : String */;
4356 val* var778 /* : nullable Object */;
4357 val* var779 /* : Array[Object] */;
4358 long var780 /* : Int */;
4359 val* var781 /* : NativeArray[Object] */;
4360 val* var782 /* : String */;
4361 val* var783 /* : RuntimeVariable */;
4362 static val* varonce784;
4363 val* var785 /* : String */;
4364 char* var786 /* : NativeString */;
4365 long var787 /* : Int */;
4366 val* var788 /* : String */;
4367 short int var789 /* : Bool */;
4368 long var790 /* : Int */;
4369 val* var791 /* : nullable Object */;
4370 static val* varonce792;
4371 val* var793 /* : String */;
4372 char* var794 /* : NativeString */;
4373 long var795 /* : Int */;
4374 val* var796 /* : String */;
4375 long var797 /* : Int */;
4376 val* var798 /* : nullable Object */;
4377 val* var799 /* : Array[Object] */;
4378 long var800 /* : Int */;
4379 val* var801 /* : NativeArray[Object] */;
4380 val* var802 /* : String */;
4381 val* var803 /* : RuntimeVariable */;
4382 static val* varonce804;
4383 val* var805 /* : String */;
4384 char* var806 /* : NativeString */;
4385 long var807 /* : Int */;
4386 val* var808 /* : String */;
4387 short int var809 /* : Bool */;
4388 long var810 /* : Int */;
4389 val* var811 /* : nullable Object */;
4390 static val* varonce812;
4391 val* var813 /* : String */;
4392 char* var814 /* : NativeString */;
4393 long var815 /* : Int */;
4394 val* var816 /* : String */;
4395 long var817 /* : Int */;
4396 val* var818 /* : nullable Object */;
4397 val* var819 /* : Array[Object] */;
4398 long var820 /* : Int */;
4399 val* var821 /* : NativeArray[Object] */;
4400 val* var822 /* : String */;
4401 val* var823 /* : RuntimeVariable */;
4402 static val* varonce824;
4403 val* var825 /* : String */;
4404 char* var826 /* : NativeString */;
4405 long var827 /* : Int */;
4406 val* var828 /* : String */;
4407 short int var829 /* : Bool */;
4408 static val* varonce830;
4409 val* var831 /* : String */;
4410 char* var832 /* : NativeString */;
4411 long var833 /* : Int */;
4412 val* var834 /* : String */;
4413 long var835 /* : Int */;
4414 val* var836 /* : nullable Object */;
4415 val* var837 /* : Array[Object] */;
4416 long var838 /* : Int */;
4417 val* var839 /* : NativeArray[Object] */;
4418 val* var840 /* : String */;
4419 val* var841 /* : RuntimeVariable */;
4420 static val* varonce842;
4421 val* var843 /* : String */;
4422 char* var844 /* : NativeString */;
4423 long var845 /* : Int */;
4424 val* var846 /* : String */;
4425 short int var847 /* : Bool */;
4426 long var848 /* : Int */;
4427 val* var849 /* : nullable Object */;
4428 static val* varonce850;
4429 val* var851 /* : String */;
4430 char* var852 /* : NativeString */;
4431 long var853 /* : Int */;
4432 val* var854 /* : String */;
4433 val* var855 /* : Array[Object] */;
4434 long var856 /* : Int */;
4435 val* var857 /* : NativeArray[Object] */;
4436 val* var858 /* : String */;
4437 val* var859 /* : RuntimeVariable */;
4438 static val* varonce860;
4439 val* var861 /* : String */;
4440 char* var862 /* : NativeString */;
4441 long var863 /* : Int */;
4442 val* var864 /* : String */;
4443 short int var865 /* : Bool */;
4444 long var866 /* : Int */;
4445 val* var867 /* : nullable Object */;
4446 static val* varonce868;
4447 val* var869 /* : String */;
4448 char* var870 /* : NativeString */;
4449 long var871 /* : Int */;
4450 val* var872 /* : String */;
4451 val* var873 /* : Array[Object] */;
4452 long var874 /* : Int */;
4453 val* var875 /* : NativeArray[Object] */;
4454 val* var876 /* : String */;
4455 val* var877 /* : RuntimeVariable */;
4456 static val* varonce878;
4457 val* var879 /* : String */;
4458 char* var880 /* : NativeString */;
4459 long var881 /* : Int */;
4460 val* var882 /* : String */;
4461 short int var883 /* : Bool */;
4462 long var884 /* : Int */;
4463 val* var885 /* : nullable Object */;
4464 static val* varonce886;
4465 val* var887 /* : String */;
4466 char* var888 /* : NativeString */;
4467 long var889 /* : Int */;
4468 val* var890 /* : String */;
4469 long var891 /* : Int */;
4470 val* var892 /* : nullable Object */;
4471 val* var893 /* : Array[Object] */;
4472 long var894 /* : Int */;
4473 val* var895 /* : NativeArray[Object] */;
4474 val* var896 /* : String */;
4475 val* var897 /* : RuntimeVariable */;
4476 static val* varonce898;
4477 val* var899 /* : String */;
4478 char* var900 /* : NativeString */;
4479 long var901 /* : Int */;
4480 val* var902 /* : String */;
4481 short int var903 /* : Bool */;
4482 long var904 /* : Int */;
4483 val* var905 /* : nullable Object */;
4484 static val* varonce906;
4485 val* var907 /* : String */;
4486 char* var908 /* : NativeString */;
4487 long var909 /* : Int */;
4488 val* var910 /* : String */;
4489 long var911 /* : Int */;
4490 val* var912 /* : nullable Object */;
4491 val* var913 /* : Array[Object] */;
4492 long var914 /* : Int */;
4493 val* var915 /* : NativeArray[Object] */;
4494 val* var916 /* : String */;
4495 val* var917 /* : RuntimeVariable */;
4496 static val* varonce918;
4497 val* var919 /* : String */;
4498 char* var920 /* : NativeString */;
4499 long var921 /* : Int */;
4500 val* var922 /* : String */;
4501 short int var923 /* : Bool */;
4502 long var924 /* : Int */;
4503 val* var925 /* : nullable Object */;
4504 long var926 /* : Int */;
4505 val* var927 /* : nullable Object */;
4506 val* var928 /* : RuntimeVariable */;
4507 static val* varonce929;
4508 val* var930 /* : String */;
4509 char* var931 /* : NativeString */;
4510 long var932 /* : Int */;
4511 val* var933 /* : String */;
4512 short int var934 /* : Bool */;
4513 long var935 /* : Int */;
4514 val* var936 /* : nullable Object */;
4515 long var937 /* : Int */;
4516 val* var938 /* : nullable Object */;
4517 val* var939 /* : RuntimeVariable */;
4518 val* var_res940 /* var res: RuntimeVariable */;
4519 static val* varonce941;
4520 val* var942 /* : String */;
4521 char* var943 /* : NativeString */;
4522 long var944 /* : Int */;
4523 val* var945 /* : String */;
4524 val* var946 /* : Array[Object] */;
4525 long var947 /* : Int */;
4526 val* var948 /* : NativeArray[Object] */;
4527 val* var949 /* : String */;
4528 val* var950 /* : RuntimeVariable */;
4529 static val* varonce951;
4530 val* var952 /* : String */;
4531 char* var953 /* : NativeString */;
4532 long var954 /* : Int */;
4533 val* var955 /* : String */;
4534 short int var956 /* : Bool */;
4535 long var957 /* : Int */;
4536 val* var958 /* : nullable Object */;
4537 static val* varonce959;
4538 val* var960 /* : String */;
4539 char* var961 /* : NativeString */;
4540 long var962 /* : Int */;
4541 val* var963 /* : String */;
4542 long var964 /* : Int */;
4543 val* var965 /* : nullable Object */;
4544 val* var966 /* : Array[Object] */;
4545 long var967 /* : Int */;
4546 val* var968 /* : NativeArray[Object] */;
4547 val* var969 /* : String */;
4548 val* var970 /* : RuntimeVariable */;
4549 static val* varonce971;
4550 val* var972 /* : String */;
4551 char* var973 /* : NativeString */;
4552 long var974 /* : Int */;
4553 val* var975 /* : String */;
4554 short int var976 /* : Bool */;
4555 long var977 /* : Int */;
4556 val* var978 /* : nullable Object */;
4557 static val* varonce979;
4558 val* var980 /* : String */;
4559 char* var981 /* : NativeString */;
4560 long var982 /* : Int */;
4561 val* var983 /* : String */;
4562 long var984 /* : Int */;
4563 val* var985 /* : nullable Object */;
4564 val* var986 /* : Array[Object] */;
4565 long var987 /* : Int */;
4566 val* var988 /* : NativeArray[Object] */;
4567 val* var989 /* : String */;
4568 val* var990 /* : RuntimeVariable */;
4569 static val* varonce991;
4570 val* var992 /* : String */;
4571 char* var993 /* : NativeString */;
4572 long var994 /* : Int */;
4573 val* var995 /* : String */;
4574 short int var996 /* : Bool */;
4575 long var997 /* : Int */;
4576 val* var998 /* : nullable Object */;
4577 static val* varonce999;
4578 val* var1000 /* : String */;
4579 char* var1001 /* : NativeString */;
4580 long var1002 /* : Int */;
4581 val* var1003 /* : String */;
4582 long var1004 /* : Int */;
4583 val* var1005 /* : nullable Object */;
4584 val* var1006 /* : Array[Object] */;
4585 long var1007 /* : Int */;
4586 val* var1008 /* : NativeArray[Object] */;
4587 val* var1009 /* : String */;
4588 val* var1010 /* : RuntimeVariable */;
4589 static val* varonce1011;
4590 val* var1012 /* : String */;
4591 char* var1013 /* : NativeString */;
4592 long var1014 /* : Int */;
4593 val* var1015 /* : String */;
4594 short int var1016 /* : Bool */;
4595 long var1017 /* : Int */;
4596 val* var1018 /* : nullable Object */;
4597 static val* varonce1019;
4598 val* var1020 /* : String */;
4599 char* var1021 /* : NativeString */;
4600 long var1022 /* : Int */;
4601 val* var1023 /* : String */;
4602 long var1024 /* : Int */;
4603 val* var1025 /* : nullable Object */;
4604 val* var1026 /* : Array[Object] */;
4605 long var1027 /* : Int */;
4606 val* var1028 /* : NativeArray[Object] */;
4607 val* var1029 /* : String */;
4608 val* var1030 /* : RuntimeVariable */;
4609 static val* varonce1031;
4610 val* var1032 /* : String */;
4611 char* var1033 /* : NativeString */;
4612 long var1034 /* : Int */;
4613 val* var1035 /* : String */;
4614 short int var1036 /* : Bool */;
4615 static val* varonce1037;
4616 val* var1038 /* : String */;
4617 char* var1039 /* : NativeString */;
4618 long var1040 /* : Int */;
4619 val* var1041 /* : String */;
4620 long var1042 /* : Int */;
4621 val* var1043 /* : nullable Object */;
4622 val* var1044 /* : Array[Object] */;
4623 long var1045 /* : Int */;
4624 val* var1046 /* : NativeArray[Object] */;
4625 val* var1047 /* : String */;
4626 val* var1048 /* : RuntimeVariable */;
4627 static val* varonce1049;
4628 val* var1050 /* : String */;
4629 char* var1051 /* : NativeString */;
4630 long var1052 /* : Int */;
4631 val* var1053 /* : String */;
4632 short int var1054 /* : Bool */;
4633 static val* varonce1055;
4634 val* var1056 /* : String */;
4635 char* var1057 /* : NativeString */;
4636 long var1058 /* : Int */;
4637 val* var1059 /* : String */;
4638 short int var1060 /* : Bool */;
4639 long var1061 /* : Int */;
4640 val* var1062 /* : nullable Object */;
4641 static val* varonce1063;
4642 val* var1064 /* : String */;
4643 char* var1065 /* : NativeString */;
4644 long var1066 /* : Int */;
4645 val* var1067 /* : String */;
4646 long var1068 /* : Int */;
4647 val* var1069 /* : nullable Object */;
4648 static val* varonce1070;
4649 val* var1071 /* : String */;
4650 char* var1072 /* : NativeString */;
4651 long var1073 /* : Int */;
4652 val* var1074 /* : String */;
4653 val* var1075 /* : Array[Object] */;
4654 long var1076 /* : Int */;
4655 val* var1077 /* : NativeArray[Object] */;
4656 val* var1078 /* : String */;
4657 val* var1079 /* : RuntimeVariable */;
4658 static val* varonce1080;
4659 val* var1081 /* : String */;
4660 char* var1082 /* : NativeString */;
4661 long var1083 /* : Int */;
4662 val* var1084 /* : String */;
4663 short int var1085 /* : Bool */;
4664 long var1086 /* : Int */;
4665 val* var1087 /* : nullable Object */;
4666 static val* varonce1088;
4667 val* var1089 /* : String */;
4668 char* var1090 /* : NativeString */;
4669 long var1091 /* : Int */;
4670 val* var1092 /* : String */;
4671 long var1093 /* : Int */;
4672 val* var1094 /* : nullable Object */;
4673 static val* varonce1095;
4674 val* var1096 /* : String */;
4675 char* var1097 /* : NativeString */;
4676 long var1098 /* : Int */;
4677 val* var1099 /* : String */;
4678 long var1100 /* : Int */;
4679 val* var1101 /* : nullable Object */;
4680 static val* varonce1102;
4681 val* var1103 /* : String */;
4682 char* var1104 /* : NativeString */;
4683 long var1105 /* : Int */;
4684 val* var1106 /* : String */;
4685 val* var1107 /* : Array[Object] */;
4686 long var1108 /* : Int */;
4687 val* var1109 /* : NativeArray[Object] */;
4688 val* var1110 /* : String */;
4689 static val* varonce1111;
4690 val* var1112 /* : String */;
4691 char* var1113 /* : NativeString */;
4692 long var1114 /* : Int */;
4693 val* var1115 /* : String */;
4694 short int var1116 /* : Bool */;
4695 static val* varonce1117;
4696 val* var1118 /* : String */;
4697 char* var1119 /* : NativeString */;
4698 long var1120 /* : Int */;
4699 val* var1121 /* : String */;
4700 long var1122 /* : Int */;
4701 val* var1123 /* : nullable Object */;
4702 static val* varonce1124;
4703 val* var1125 /* : String */;
4704 char* var1126 /* : NativeString */;
4705 long var1127 /* : Int */;
4706 val* var1128 /* : String */;
4707 long var1129 /* : Int */;
4708 val* var1130 /* : nullable Object */;
4709 static val* varonce1131;
4710 val* var1132 /* : String */;
4711 char* var1133 /* : NativeString */;
4712 long var1134 /* : Int */;
4713 val* var1135 /* : String */;
4714 long var1136 /* : Int */;
4715 val* var1137 /* : nullable Object */;
4716 static val* varonce1138;
4717 val* var1139 /* : String */;
4718 char* var1140 /* : NativeString */;
4719 long var1141 /* : Int */;
4720 val* var1142 /* : String */;
4721 long var1143 /* : Int */;
4722 val* var1144 /* : nullable Object */;
4723 static val* varonce1145;
4724 val* var1146 /* : String */;
4725 char* var1147 /* : NativeString */;
4726 long var1148 /* : Int */;
4727 val* var1149 /* : String */;
4728 long var1150 /* : Int */;
4729 val* var1151 /* : nullable Object */;
4730 static val* varonce1152;
4731 val* var1153 /* : String */;
4732 char* var1154 /* : NativeString */;
4733 long var1155 /* : Int */;
4734 val* var1156 /* : String */;
4735 val* var1157 /* : Array[Object] */;
4736 long var1158 /* : Int */;
4737 val* var1159 /* : NativeArray[Object] */;
4738 val* var1160 /* : String */;
4739 static val* varonce1161;
4740 val* var1162 /* : String */;
4741 char* var1163 /* : NativeString */;
4742 long var1164 /* : Int */;
4743 val* var1165 /* : String */;
4744 short int var1166 /* : Bool */;
4745 static val* varonce1167;
4746 val* var1168 /* : String */;
4747 char* var1169 /* : NativeString */;
4748 long var1170 /* : Int */;
4749 val* var1171 /* : String */;
4750 long var1172 /* : Int */;
4751 val* var1173 /* : nullable Object */;
4752 static val* varonce1174;
4753 val* var1175 /* : String */;
4754 char* var1176 /* : NativeString */;
4755 long var1177 /* : Int */;
4756 val* var1178 /* : String */;
4757 val* var1179 /* : Array[Object] */;
4758 long var1180 /* : Int */;
4759 val* var1181 /* : NativeArray[Object] */;
4760 val* var1182 /* : String */;
4761 val* var1183 /* : RuntimeVariable */;
4762 static val* varonce1184;
4763 val* var1185 /* : String */;
4764 char* var1186 /* : NativeString */;
4765 long var1187 /* : Int */;
4766 val* var1188 /* : String */;
4767 short int var1189 /* : Bool */;
4768 static val* varonce1190;
4769 val* var1191 /* : String */;
4770 char* var1192 /* : NativeString */;
4771 long var1193 /* : Int */;
4772 val* var1194 /* : String */;
4773 short int var1195 /* : Bool */;
4774 static val* varonce1196;
4775 val* var1197 /* : String */;
4776 char* var1198 /* : NativeString */;
4777 long var1199 /* : Int */;
4778 val* var1200 /* : String */;
4779 long var1201 /* : Int */;
4780 val* var1202 /* : nullable Object */;
4781 static val* varonce1203;
4782 val* var1204 /* : String */;
4783 char* var1205 /* : NativeString */;
4784 long var1206 /* : Int */;
4785 val* var1207 /* : String */;
4786 val* var1208 /* : Array[Object] */;
4787 long var1209 /* : Int */;
4788 val* var1210 /* : NativeArray[Object] */;
4789 val* var1211 /* : String */;
4790 static val* varonce1212;
4791 val* var1213 /* : String */;
4792 char* var1214 /* : NativeString */;
4793 long var1215 /* : Int */;
4794 val* var1216 /* : String */;
4795 short int var1217 /* : Bool */;
4796 static val* varonce1218;
4797 val* var1219 /* : String */;
4798 char* var1220 /* : NativeString */;
4799 long var1221 /* : Int */;
4800 val* var1222 /* : String */;
4801 val* var1223 /* : RuntimeVariable */;
4802 static val* varonce1224;
4803 val* var1225 /* : String */;
4804 char* var1226 /* : NativeString */;
4805 long var1227 /* : Int */;
4806 val* var1228 /* : String */;
4807 short int var1229 /* : Bool */;
4808 static val* varonce1230;
4809 val* var1231 /* : String */;
4810 char* var1232 /* : NativeString */;
4811 long var1233 /* : Int */;
4812 val* var1234 /* : String */;
4813 long var1235 /* : Int */;
4814 val* var1236 /* : nullable Object */;
4815 static val* varonce1237;
4816 val* var1238 /* : String */;
4817 char* var1239 /* : NativeString */;
4818 long var1240 /* : Int */;
4819 val* var1241 /* : String */;
4820 val* var1242 /* : Array[Object] */;
4821 long var1243 /* : Int */;
4822 val* var1244 /* : NativeArray[Object] */;
4823 val* var1245 /* : String */;
4824 val* var1246 /* : RuntimeVariable */;
4825 static val* varonce1247;
4826 val* var1248 /* : String */;
4827 char* var1249 /* : NativeString */;
4828 long var1250 /* : Int */;
4829 val* var1251 /* : String */;
4830 short int var1252 /* : Bool */;
4831 static val* varonce1253;
4832 val* var1254 /* : String */;
4833 char* var1255 /* : NativeString */;
4834 long var1256 /* : Int */;
4835 val* var1257 /* : String */;
4836 short int var1258 /* : Bool */;
4837 static val* varonce1259;
4838 val* var1260 /* : String */;
4839 char* var1261 /* : NativeString */;
4840 long var1262 /* : Int */;
4841 val* var1263 /* : String */;
4842 val* var1264 /* : nullable Object */;
4843 val* var1265 /* : Array[Object] */;
4844 long var1266 /* : Int */;
4845 val* var1267 /* : NativeArray[Object] */;
4846 val* var1268 /* : String */;
4847 val* var1269 /* : RuntimeVariable */;
4848 static val* varonce1270;
4849 val* var1271 /* : String */;
4850 char* var1272 /* : NativeString */;
4851 long var1273 /* : Int */;
4852 val* var1274 /* : String */;
4853 short int var1275 /* : Bool */;
4854 long var1276 /* : Int */;
4855 val* var1277 /* : nullable Object */;
4856 long var1278 /* : Int */;
4857 val* var1279 /* : nullable Object */;
4858 val* var1280 /* : RuntimeVariable */;
4859 static val* varonce1281;
4860 val* var1282 /* : String */;
4861 char* var1283 /* : NativeString */;
4862 long var1284 /* : Int */;
4863 val* var1285 /* : String */;
4864 short int var1286 /* : Bool */;
4865 val* var1287 /* : nullable Object */;
4866 val* var1288 /* : String */;
4867 val* var_nat /* var nat: String */;
4868 static val* varonce1289;
4869 val* var1290 /* : String */;
4870 char* var1291 /* : NativeString */;
4871 long var1292 /* : Int */;
4872 val* var1293 /* : String */;
4873 static val* varonce1294;
4874 val* var1295 /* : String */;
4875 char* var1296 /* : NativeString */;
4876 long var1297 /* : Int */;
4877 val* var1298 /* : String */;
4878 val* var1299 /* : Array[Object] */;
4879 long var1300 /* : Int */;
4880 val* var1301 /* : NativeArray[Object] */;
4881 val* var1302 /* : String */;
4882 static val* varonce1303;
4883 val* var1304 /* : String */;
4884 char* var1305 /* : NativeString */;
4885 long var1306 /* : Int */;
4886 val* var1307 /* : String */;
4887 short int var1308 /* : Bool */;
4888 val* var1309 /* : nullable Object */;
4889 val* var1310 /* : String */;
4890 val* var_nat1311 /* var nat: String */;
4891 static val* varonce1312;
4892 val* var1313 /* : String */;
4893 char* var1314 /* : NativeString */;
4894 long var1315 /* : Int */;
4895 val* var1316 /* : String */;
4896 val* var1317 /* : Array[Object] */;
4897 long var1318 /* : Int */;
4898 val* var1319 /* : NativeArray[Object] */;
4899 val* var1320 /* : String */;
4900 val* var1321 /* : RuntimeVariable */;
4901 static val* varonce1322;
4902 val* var1323 /* : String */;
4903 char* var1324 /* : NativeString */;
4904 long var1325 /* : Int */;
4905 val* var1326 /* : String */;
4906 short int var1327 /* : Bool */;
4907 static val* varonce1328;
4908 val* var1329 /* : String */;
4909 char* var1330 /* : NativeString */;
4910 long var1331 /* : Int */;
4911 val* var1332 /* : String */;
4912 static val* varonce1333;
4913 val* var1334 /* : String */;
4914 char* var1335 /* : NativeString */;
4915 long var1336 /* : Int */;
4916 val* var1337 /* : String */;
4917 short int var1338 /* : Bool */;
4918 static val* varonce1339;
4919 val* var1340 /* : String */;
4920 char* var1341 /* : NativeString */;
4921 long var1342 /* : Int */;
4922 val* var1343 /* : String */;
4923 val* var1344 /* : RuntimeVariable */;
4924 static val* varonce1345;
4925 val* var1346 /* : String */;
4926 char* var1347 /* : NativeString */;
4927 long var1348 /* : Int */;
4928 val* var1349 /* : String */;
4929 short int var1350 /* : Bool */;
4930 static val* varonce1351;
4931 val* var1352 /* : String */;
4932 char* var1353 /* : NativeString */;
4933 long var1354 /* : Int */;
4934 val* var1355 /* : String */;
4935 long var1356 /* : Int */;
4936 val* var1357 /* : nullable Object */;
4937 static val* varonce1358;
4938 val* var1359 /* : String */;
4939 char* var1360 /* : NativeString */;
4940 long var1361 /* : Int */;
4941 val* var1362 /* : String */;
4942 val* var1363 /* : Array[Object] */;
4943 long var1364 /* : Int */;
4944 val* var1365 /* : NativeArray[Object] */;
4945 val* var1366 /* : String */;
4946 val* var1367 /* : RuntimeVariable */;
4947 static val* varonce1368;
4948 val* var1369 /* : String */;
4949 char* var1370 /* : NativeString */;
4950 long var1371 /* : Int */;
4951 val* var1372 /* : String */;
4952 val* var1373 /* : String */;
4953 static val* varonce1374;
4954 val* var1375 /* : String */;
4955 char* var1376 /* : NativeString */;
4956 long var1377 /* : Int */;
4957 val* var1378 /* : String */;
4958 static val* varonce1379;
4959 val* var1380 /* : String */;
4960 char* var1381 /* : NativeString */;
4961 long var1382 /* : Int */;
4962 val* var1383 /* : String */;
4963 val* var1384 /* : Location */;
4964 val* var1385 /* : String */;
4965 static val* varonce1386;
4966 val* var1387 /* : String */;
4967 char* var1388 /* : NativeString */;
4968 long var1389 /* : Int */;
4969 val* var1390 /* : String */;
4970 val* var1391 /* : Array[Object] */;
4971 long var1392 /* : Int */;
4972 val* var1393 /* : NativeArray[Object] */;
4973 val* var1394 /* : String */;
4974 static val* varonce1395;
4975 val* var1396 /* : String */;
4976 char* var1397 /* : NativeString */;
4977 long var1398 /* : Int */;
4978 val* var1399 /* : String */;
4979 val* var1400 /* : Array[Object] */;
4980 long var1401 /* : Int */;
4981 val* var1402 /* : NativeArray[Object] */;
4982 val* var1403 /* : String */;
4983 var_v = p0;
4984 var_mpropdef = p1;
4985 var_arguments = p2;
4986 var = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MMethodDef>*/;
4987 var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MProperty__name]))(var) /* name on <var:MProperty(MMethod)>*/;
4988 var_pname = var1;
4989 var2 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:MMethodDef>*/;
4990 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MClassDef__mclass]))(var2) /* mclass on <var2:MClassDef>*/;
4991 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClass__name]))(var3) /* name on <var3:MClass>*/;
4992 var_cname = var4;
4993 var5 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
4994 if (var5 == NULL) {
4995 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1345);
4996 exit(1);
4997 } else {
4998 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MSignature__return_mtype]))(var5) /* return_mtype on <var5:nullable MSignature>*/;
4999 }
5000 var_ret = var6;
5001 var7 = NULL;
5002 if (var_ret == NULL) {
5003 var8 = 0; /* is null */
5004 } else {
5005 var8 = 1; /* arg is null and recv is not */
5006 }
5007 if (var8){
5008 var9 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5009 var10 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for]))(var_v, var_ret, var9) /* resolve_for on <var_v:AbstractCompilerVisitor>*/;
5010 var_ret = var10;
5011 } else {
5012 }
5013 if (varonce) {
5014 var12 = varonce;
5015 } else {
5016 var13 = "==";
5017 var14 = 2;
5018 var15 = string__NativeString__to_s_with_length(var13, var14);
5019 var12 = var15;
5020 varonce = var12;
5021 }
5022 var16 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___33d_61d]))(var_pname, var12) /* != on <var_pname:String>*/;
5023 var_ = var16;
5024 if (var16){
5025 if (varonce17) {
5026 var18 = varonce17;
5027 } else {
5028 var19 = "!=";
5029 var20 = 2;
5030 var21 = string__NativeString__to_s_with_length(var19, var20);
5031 var18 = var21;
5032 varonce17 = var18;
5033 }
5034 var22 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___33d_61d]))(var_pname, var18) /* != on <var_pname:String>*/;
5035 var11 = var22;
5036 } else {
5037 var11 = var_;
5038 }
5039 if (var11){
5040 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
5041 } else {
5042 }
5043 if (varonce23) {
5044 var24 = varonce23;
5045 } else {
5046 var25 = "Int";
5047 var26 = 3;
5048 var27 = string__NativeString__to_s_with_length(var25, var26);
5049 var24 = var27;
5050 varonce23 = var24;
5051 }
5052 var28 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var24) /* == on <var_cname:String>*/;
5053 if (var28){
5054 if (varonce29) {
5055 var30 = varonce29;
5056 } else {
5057 var31 = "output";
5058 var32 = 6;
5059 var33 = string__NativeString__to_s_with_length(var31, var32);
5060 var30 = var33;
5061 varonce29 = var30;
5062 }
5063 var34 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var30) /* == on <var_pname:String>*/;
5064 if (var34){
5065 if (varonce35) {
5066 var36 = varonce35;
5067 } else {
5068 var37 = "printf(\"%ld\\n\", ";
5069 var38 = 16;
5070 var39 = string__NativeString__to_s_with_length(var37, var38);
5071 var36 = var39;
5072 varonce35 = var36;
5073 }
5074 var40 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5075 if (varonce41) {
5076 var42 = varonce41;
5077 } else {
5078 var43 = ");";
5079 var44 = 2;
5080 var45 = string__NativeString__to_s_with_length(var43, var44);
5081 var42 = var45;
5082 varonce41 = var42;
5083 }
5084 var46 = NEW_array__Array(&type_array__Arraykernel__Object);
5085 { /* var46 = array_instance Array[Object] */
5086 var47 = 3;
5087 var48 = NEW_array__NativeArray(var47, &type_array__NativeArraykernel__Object);
5088 ((struct instance_array__NativeArray*)var48)->values[0] = (val*) var36;
5089 ((struct instance_array__NativeArray*)var48)->values[1] = (val*) var40;
5090 ((struct instance_array__NativeArray*)var48)->values[2] = (val*) var42;
5091 ((void (*)(val*, val*, long))(var46->class->vft[COLOR_array__Array__with_native]))(var46, var48, var47) /* with_native on <var46:Array[Object]>*/;
5092 CHECK_NEW_array__Array(var46);
5093 }
5094 var49 = ((val* (*)(val*))(var46->class->vft[COLOR_string__Object__to_s]))(var46) /* to_s on <var46:Array[Object]>*/;
5095 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var49) /* add on <var_v:AbstractCompilerVisitor>*/;
5096 goto RET_LABEL;
5097 } else {
5098 if (varonce50) {
5099 var51 = varonce50;
5100 } else {
5101 var52 = "object_id";
5102 var53 = 9;
5103 var54 = string__NativeString__to_s_with_length(var52, var53);
5104 var51 = var54;
5105 varonce50 = var51;
5106 }
5107 var55 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var51) /* == on <var_pname:String>*/;
5108 if (var55){
5109 var56 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5110 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var56) /* ret on <var_v:AbstractCompilerVisitor>*/;
5111 goto RET_LABEL;
5112 } else {
5113 if (varonce57) {
5114 var58 = varonce57;
5115 } else {
5116 var59 = "+";
5117 var60 = 1;
5118 var61 = string__NativeString__to_s_with_length(var59, var60);
5119 var58 = var61;
5120 varonce57 = var58;
5121 }
5122 var62 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var58) /* == on <var_pname:String>*/;
5123 if (var62){
5124 var63 = 0;
5125 var64 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var63) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5126 if (varonce65) {
5127 var66 = varonce65;
5128 } else {
5129 var67 = " + ";
5130 var68 = 3;
5131 var69 = string__NativeString__to_s_with_length(var67, var68);
5132 var66 = var69;
5133 varonce65 = var66;
5134 }
5135 var70 = 1;
5136 var71 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var70) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5137 var72 = NEW_array__Array(&type_array__Arraykernel__Object);
5138 { /* var72 = array_instance Array[Object] */
5139 var73 = 3;
5140 var74 = NEW_array__NativeArray(var73, &type_array__NativeArraykernel__Object);
5141 ((struct instance_array__NativeArray*)var74)->values[0] = (val*) var64;
5142 ((struct instance_array__NativeArray*)var74)->values[1] = (val*) var66;
5143 ((struct instance_array__NativeArray*)var74)->values[2] = (val*) var71;
5144 ((void (*)(val*, val*, long))(var72->class->vft[COLOR_array__Array__with_native]))(var72, var74, var73) /* with_native on <var72:Array[Object]>*/;
5145 CHECK_NEW_array__Array(var72);
5146 }
5147 var75 = ((val* (*)(val*))(var72->class->vft[COLOR_string__Object__to_s]))(var72) /* to_s on <var72:Array[Object]>*/;
5148 if (var_ret == NULL) {
5149 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1360);
5150 exit(1);
5151 }
5152 var76 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var75, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5153 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var76) /* ret on <var_v:AbstractCompilerVisitor>*/;
5154 goto RET_LABEL;
5155 } else {
5156 if (varonce77) {
5157 var78 = varonce77;
5158 } else {
5159 var79 = "-";
5160 var80 = 1;
5161 var81 = string__NativeString__to_s_with_length(var79, var80);
5162 var78 = var81;
5163 varonce77 = var78;
5164 }
5165 var82 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var78) /* == on <var_pname:String>*/;
5166 if (var82){
5167 var83 = 0;
5168 var84 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var83) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5169 if (varonce85) {
5170 var86 = varonce85;
5171 } else {
5172 var87 = " - ";
5173 var88 = 3;
5174 var89 = string__NativeString__to_s_with_length(var87, var88);
5175 var86 = var89;
5176 varonce85 = var86;
5177 }
5178 var90 = 1;
5179 var91 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var90) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5180 var92 = NEW_array__Array(&type_array__Arraykernel__Object);
5181 { /* var92 = array_instance Array[Object] */
5182 var93 = 3;
5183 var94 = NEW_array__NativeArray(var93, &type_array__NativeArraykernel__Object);
5184 ((struct instance_array__NativeArray*)var94)->values[0] = (val*) var84;
5185 ((struct instance_array__NativeArray*)var94)->values[1] = (val*) var86;
5186 ((struct instance_array__NativeArray*)var94)->values[2] = (val*) var91;
5187 ((void (*)(val*, val*, long))(var92->class->vft[COLOR_array__Array__with_native]))(var92, var94, var93) /* with_native on <var92:Array[Object]>*/;
5188 CHECK_NEW_array__Array(var92);
5189 }
5190 var95 = ((val* (*)(val*))(var92->class->vft[COLOR_string__Object__to_s]))(var92) /* to_s on <var92:Array[Object]>*/;
5191 if (var_ret == NULL) {
5192 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1363);
5193 exit(1);
5194 }
5195 var96 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var95, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5196 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var96) /* ret on <var_v:AbstractCompilerVisitor>*/;
5197 goto RET_LABEL;
5198 } else {
5199 if (varonce97) {
5200 var98 = varonce97;
5201 } else {
5202 var99 = "unary -";
5203 var100 = 7;
5204 var101 = string__NativeString__to_s_with_length(var99, var100);
5205 var98 = var101;
5206 varonce97 = var98;
5207 }
5208 var102 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var98) /* == on <var_pname:String>*/;
5209 if (var102){
5210 if (varonce103) {
5211 var104 = varonce103;
5212 } else {
5213 var105 = "-";
5214 var106 = 1;
5215 var107 = string__NativeString__to_s_with_length(var105, var106);
5216 var104 = var107;
5217 varonce103 = var104;
5218 }
5219 var108 = 0;
5220 var109 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var108) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5221 var110 = NEW_array__Array(&type_array__Arraykernel__Object);
5222 { /* var110 = array_instance Array[Object] */
5223 var111 = 2;
5224 var112 = NEW_array__NativeArray(var111, &type_array__NativeArraykernel__Object);
5225 ((struct instance_array__NativeArray*)var112)->values[0] = (val*) var104;
5226 ((struct instance_array__NativeArray*)var112)->values[1] = (val*) var109;
5227 ((void (*)(val*, val*, long))(var110->class->vft[COLOR_array__Array__with_native]))(var110, var112, var111) /* with_native on <var110:Array[Object]>*/;
5228 CHECK_NEW_array__Array(var110);
5229 }
5230 var113 = ((val* (*)(val*))(var110->class->vft[COLOR_string__Object__to_s]))(var110) /* to_s on <var110:Array[Object]>*/;
5231 if (var_ret == NULL) {
5232 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1366);
5233 exit(1);
5234 }
5235 var114 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var113, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5236 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var114) /* ret on <var_v:AbstractCompilerVisitor>*/;
5237 goto RET_LABEL;
5238 } else {
5239 if (varonce115) {
5240 var116 = varonce115;
5241 } else {
5242 var117 = "succ";
5243 var118 = 4;
5244 var119 = string__NativeString__to_s_with_length(var117, var118);
5245 var116 = var119;
5246 varonce115 = var116;
5247 }
5248 var120 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var116) /* == on <var_pname:String>*/;
5249 if (var120){
5250 var121 = 0;
5251 var122 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var121) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5252 if (varonce123) {
5253 var124 = varonce123;
5254 } else {
5255 var125 = "+1";
5256 var126 = 2;
5257 var127 = string__NativeString__to_s_with_length(var125, var126);
5258 var124 = var127;
5259 varonce123 = var124;
5260 }
5261 var128 = NEW_array__Array(&type_array__Arraykernel__Object);
5262 { /* var128 = array_instance Array[Object] */
5263 var129 = 2;
5264 var130 = NEW_array__NativeArray(var129, &type_array__NativeArraykernel__Object);
5265 ((struct instance_array__NativeArray*)var130)->values[0] = (val*) var122;
5266 ((struct instance_array__NativeArray*)var130)->values[1] = (val*) var124;
5267 ((void (*)(val*, val*, long))(var128->class->vft[COLOR_array__Array__with_native]))(var128, var130, var129) /* with_native on <var128:Array[Object]>*/;
5268 CHECK_NEW_array__Array(var128);
5269 }
5270 var131 = ((val* (*)(val*))(var128->class->vft[COLOR_string__Object__to_s]))(var128) /* to_s on <var128:Array[Object]>*/;
5271 if (var_ret == NULL) {
5272 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1369);
5273 exit(1);
5274 }
5275 var132 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var131, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5276 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var132) /* ret on <var_v:AbstractCompilerVisitor>*/;
5277 goto RET_LABEL;
5278 } else {
5279 if (varonce133) {
5280 var134 = varonce133;
5281 } else {
5282 var135 = "prec";
5283 var136 = 4;
5284 var137 = string__NativeString__to_s_with_length(var135, var136);
5285 var134 = var137;
5286 varonce133 = var134;
5287 }
5288 var138 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var134) /* == on <var_pname:String>*/;
5289 if (var138){
5290 var139 = 0;
5291 var140 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var139) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5292 if (varonce141) {
5293 var142 = varonce141;
5294 } else {
5295 var143 = "-1";
5296 var144 = 2;
5297 var145 = string__NativeString__to_s_with_length(var143, var144);
5298 var142 = var145;
5299 varonce141 = var142;
5300 }
5301 var146 = NEW_array__Array(&type_array__Arraykernel__Object);
5302 { /* var146 = array_instance Array[Object] */
5303 var147 = 2;
5304 var148 = NEW_array__NativeArray(var147, &type_array__NativeArraykernel__Object);
5305 ((struct instance_array__NativeArray*)var148)->values[0] = (val*) var140;
5306 ((struct instance_array__NativeArray*)var148)->values[1] = (val*) var142;
5307 ((void (*)(val*, val*, long))(var146->class->vft[COLOR_array__Array__with_native]))(var146, var148, var147) /* with_native on <var146:Array[Object]>*/;
5308 CHECK_NEW_array__Array(var146);
5309 }
5310 var149 = ((val* (*)(val*))(var146->class->vft[COLOR_string__Object__to_s]))(var146) /* to_s on <var146:Array[Object]>*/;
5311 if (var_ret == NULL) {
5312 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1372);
5313 exit(1);
5314 }
5315 var150 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var149, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5316 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var150) /* ret on <var_v:AbstractCompilerVisitor>*/;
5317 goto RET_LABEL;
5318 } else {
5319 if (varonce151) {
5320 var152 = varonce151;
5321 } else {
5322 var153 = "*";
5323 var154 = 1;
5324 var155 = string__NativeString__to_s_with_length(var153, var154);
5325 var152 = var155;
5326 varonce151 = var152;
5327 }
5328 var156 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var152) /* == on <var_pname:String>*/;
5329 if (var156){
5330 var157 = 0;
5331 var158 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var157) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5332 if (varonce159) {
5333 var160 = varonce159;
5334 } else {
5335 var161 = " * ";
5336 var162 = 3;
5337 var163 = string__NativeString__to_s_with_length(var161, var162);
5338 var160 = var163;
5339 varonce159 = var160;
5340 }
5341 var164 = 1;
5342 var165 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var164) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5343 var166 = NEW_array__Array(&type_array__Arraykernel__Object);
5344 { /* var166 = array_instance Array[Object] */
5345 var167 = 3;
5346 var168 = NEW_array__NativeArray(var167, &type_array__NativeArraykernel__Object);
5347 ((struct instance_array__NativeArray*)var168)->values[0] = (val*) var158;
5348 ((struct instance_array__NativeArray*)var168)->values[1] = (val*) var160;
5349 ((struct instance_array__NativeArray*)var168)->values[2] = (val*) var165;
5350 ((void (*)(val*, val*, long))(var166->class->vft[COLOR_array__Array__with_native]))(var166, var168, var167) /* with_native on <var166:Array[Object]>*/;
5351 CHECK_NEW_array__Array(var166);
5352 }
5353 var169 = ((val* (*)(val*))(var166->class->vft[COLOR_string__Object__to_s]))(var166) /* to_s on <var166:Array[Object]>*/;
5354 if (var_ret == NULL) {
5355 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1375);
5356 exit(1);
5357 }
5358 var170 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var169, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5359 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var170) /* ret on <var_v:AbstractCompilerVisitor>*/;
5360 goto RET_LABEL;
5361 } else {
5362 if (varonce171) {
5363 var172 = varonce171;
5364 } else {
5365 var173 = "/";
5366 var174 = 1;
5367 var175 = string__NativeString__to_s_with_length(var173, var174);
5368 var172 = var175;
5369 varonce171 = var172;
5370 }
5371 var176 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var172) /* == on <var_pname:String>*/;
5372 if (var176){
5373 var177 = 0;
5374 var178 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var177) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5375 if (varonce179) {
5376 var180 = varonce179;
5377 } else {
5378 var181 = " / ";
5379 var182 = 3;
5380 var183 = string__NativeString__to_s_with_length(var181, var182);
5381 var180 = var183;
5382 varonce179 = var180;
5383 }
5384 var184 = 1;
5385 var185 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var184) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5386 var186 = NEW_array__Array(&type_array__Arraykernel__Object);
5387 { /* var186 = array_instance Array[Object] */
5388 var187 = 3;
5389 var188 = NEW_array__NativeArray(var187, &type_array__NativeArraykernel__Object);
5390 ((struct instance_array__NativeArray*)var188)->values[0] = (val*) var178;
5391 ((struct instance_array__NativeArray*)var188)->values[1] = (val*) var180;
5392 ((struct instance_array__NativeArray*)var188)->values[2] = (val*) var185;
5393 ((void (*)(val*, val*, long))(var186->class->vft[COLOR_array__Array__with_native]))(var186, var188, var187) /* with_native on <var186:Array[Object]>*/;
5394 CHECK_NEW_array__Array(var186);
5395 }
5396 var189 = ((val* (*)(val*))(var186->class->vft[COLOR_string__Object__to_s]))(var186) /* to_s on <var186:Array[Object]>*/;
5397 if (var_ret == NULL) {
5398 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1378);
5399 exit(1);
5400 }
5401 var190 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var189, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5402 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var190) /* ret on <var_v:AbstractCompilerVisitor>*/;
5403 goto RET_LABEL;
5404 } else {
5405 if (varonce191) {
5406 var192 = varonce191;
5407 } else {
5408 var193 = "%";
5409 var194 = 1;
5410 var195 = string__NativeString__to_s_with_length(var193, var194);
5411 var192 = var195;
5412 varonce191 = var192;
5413 }
5414 var196 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var192) /* == on <var_pname:String>*/;
5415 if (var196){
5416 var197 = 0;
5417 var198 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var197) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5418 if (varonce199) {
5419 var200 = varonce199;
5420 } else {
5421 var201 = " % ";
5422 var202 = 3;
5423 var203 = string__NativeString__to_s_with_length(var201, var202);
5424 var200 = var203;
5425 varonce199 = var200;
5426 }
5427 var204 = 1;
5428 var205 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var204) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5429 var206 = NEW_array__Array(&type_array__Arraykernel__Object);
5430 { /* var206 = array_instance Array[Object] */
5431 var207 = 3;
5432 var208 = NEW_array__NativeArray(var207, &type_array__NativeArraykernel__Object);
5433 ((struct instance_array__NativeArray*)var208)->values[0] = (val*) var198;
5434 ((struct instance_array__NativeArray*)var208)->values[1] = (val*) var200;
5435 ((struct instance_array__NativeArray*)var208)->values[2] = (val*) var205;
5436 ((void (*)(val*, val*, long))(var206->class->vft[COLOR_array__Array__with_native]))(var206, var208, var207) /* with_native on <var206:Array[Object]>*/;
5437 CHECK_NEW_array__Array(var206);
5438 }
5439 var209 = ((val* (*)(val*))(var206->class->vft[COLOR_string__Object__to_s]))(var206) /* to_s on <var206:Array[Object]>*/;
5440 if (var_ret == NULL) {
5441 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1381);
5442 exit(1);
5443 }
5444 var210 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var209, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5445 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var210) /* ret on <var_v:AbstractCompilerVisitor>*/;
5446 goto RET_LABEL;
5447 } else {
5448 if (varonce211) {
5449 var212 = varonce211;
5450 } else {
5451 var213 = "lshift";
5452 var214 = 6;
5453 var215 = string__NativeString__to_s_with_length(var213, var214);
5454 var212 = var215;
5455 varonce211 = var212;
5456 }
5457 var216 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var212) /* == on <var_pname:String>*/;
5458 if (var216){
5459 var217 = 0;
5460 var218 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var217) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5461 if (varonce219) {
5462 var220 = varonce219;
5463 } else {
5464 var221 = " << ";
5465 var222 = 4;
5466 var223 = string__NativeString__to_s_with_length(var221, var222);
5467 var220 = var223;
5468 varonce219 = var220;
5469 }
5470 var224 = 1;
5471 var225 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var224) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5472 var226 = NEW_array__Array(&type_array__Arraykernel__Object);
5473 { /* var226 = array_instance Array[Object] */
5474 var227 = 3;
5475 var228 = NEW_array__NativeArray(var227, &type_array__NativeArraykernel__Object);
5476 ((struct instance_array__NativeArray*)var228)->values[0] = (val*) var218;
5477 ((struct instance_array__NativeArray*)var228)->values[1] = (val*) var220;
5478 ((struct instance_array__NativeArray*)var228)->values[2] = (val*) var225;
5479 ((void (*)(val*, val*, long))(var226->class->vft[COLOR_array__Array__with_native]))(var226, var228, var227) /* with_native on <var226:Array[Object]>*/;
5480 CHECK_NEW_array__Array(var226);
5481 }
5482 var229 = ((val* (*)(val*))(var226->class->vft[COLOR_string__Object__to_s]))(var226) /* to_s on <var226:Array[Object]>*/;
5483 if (var_ret == NULL) {
5484 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1384);
5485 exit(1);
5486 }
5487 var230 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var229, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5488 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var230) /* ret on <var_v:AbstractCompilerVisitor>*/;
5489 goto RET_LABEL;
5490 } else {
5491 if (varonce231) {
5492 var232 = varonce231;
5493 } else {
5494 var233 = "rshift";
5495 var234 = 6;
5496 var235 = string__NativeString__to_s_with_length(var233, var234);
5497 var232 = var235;
5498 varonce231 = var232;
5499 }
5500 var236 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var232) /* == on <var_pname:String>*/;
5501 if (var236){
5502 var237 = 0;
5503 var238 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var237) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5504 if (varonce239) {
5505 var240 = varonce239;
5506 } else {
5507 var241 = " >> ";
5508 var242 = 4;
5509 var243 = string__NativeString__to_s_with_length(var241, var242);
5510 var240 = var243;
5511 varonce239 = var240;
5512 }
5513 var244 = 1;
5514 var245 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var244) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5515 var246 = NEW_array__Array(&type_array__Arraykernel__Object);
5516 { /* var246 = array_instance Array[Object] */
5517 var247 = 3;
5518 var248 = NEW_array__NativeArray(var247, &type_array__NativeArraykernel__Object);
5519 ((struct instance_array__NativeArray*)var248)->values[0] = (val*) var238;
5520 ((struct instance_array__NativeArray*)var248)->values[1] = (val*) var240;
5521 ((struct instance_array__NativeArray*)var248)->values[2] = (val*) var245;
5522 ((void (*)(val*, val*, long))(var246->class->vft[COLOR_array__Array__with_native]))(var246, var248, var247) /* with_native on <var246:Array[Object]>*/;
5523 CHECK_NEW_array__Array(var246);
5524 }
5525 var249 = ((val* (*)(val*))(var246->class->vft[COLOR_string__Object__to_s]))(var246) /* to_s on <var246:Array[Object]>*/;
5526 if (var_ret == NULL) {
5527 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1387);
5528 exit(1);
5529 }
5530 var250 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var249, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5531 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var250) /* ret on <var_v:AbstractCompilerVisitor>*/;
5532 goto RET_LABEL;
5533 } else {
5534 if (varonce251) {
5535 var252 = varonce251;
5536 } else {
5537 var253 = "==";
5538 var254 = 2;
5539 var255 = string__NativeString__to_s_with_length(var253, var254);
5540 var252 = var255;
5541 varonce251 = var252;
5542 }
5543 var256 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var252) /* == on <var_pname:String>*/;
5544 if (var256){
5545 var257 = 0;
5546 var258 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var257) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5547 var259 = 1;
5548 var260 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var259) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5549 var261 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var258, var260) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
5550 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var261) /* ret on <var_v:AbstractCompilerVisitor>*/;
5551 goto RET_LABEL;
5552 } else {
5553 if (varonce262) {
5554 var263 = varonce262;
5555 } else {
5556 var264 = "!=";
5557 var265 = 2;
5558 var266 = string__NativeString__to_s_with_length(var264, var265);
5559 var263 = var266;
5560 varonce262 = var263;
5561 }
5562 var267 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var263) /* == on <var_pname:String>*/;
5563 if (var267){
5564 var268 = 0;
5565 var269 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var268) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5566 var270 = 1;
5567 var271 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var270) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5568 var272 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var269, var271) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
5569 var_res = var272;
5570 if (varonce273) {
5571 var274 = varonce273;
5572 } else {
5573 var275 = "!";
5574 var276 = 1;
5575 var277 = string__NativeString__to_s_with_length(var275, var276);
5576 var274 = var277;
5577 varonce273 = var274;
5578 }
5579 var278 = NEW_array__Array(&type_array__Arraykernel__Object);
5580 { /* var278 = array_instance Array[Object] */
5581 var279 = 2;
5582 var280 = NEW_array__NativeArray(var279, &type_array__NativeArraykernel__Object);
5583 ((struct instance_array__NativeArray*)var280)->values[0] = (val*) var274;
5584 ((struct instance_array__NativeArray*)var280)->values[1] = (val*) var_res;
5585 ((void (*)(val*, val*, long))(var278->class->vft[COLOR_array__Array__with_native]))(var278, var280, var279) /* with_native on <var278:Array[Object]>*/;
5586 CHECK_NEW_array__Array(var278);
5587 }
5588 var281 = ((val* (*)(val*))(var278->class->vft[COLOR_string__Object__to_s]))(var278) /* to_s on <var278:Array[Object]>*/;
5589 if (var_ret == NULL) {
5590 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1394);
5591 exit(1);
5592 }
5593 var282 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var281, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5594 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var282) /* ret on <var_v:AbstractCompilerVisitor>*/;
5595 goto RET_LABEL;
5596 } else {
5597 if (varonce283) {
5598 var284 = varonce283;
5599 } else {
5600 var285 = "<";
5601 var286 = 1;
5602 var287 = string__NativeString__to_s_with_length(var285, var286);
5603 var284 = var287;
5604 varonce283 = var284;
5605 }
5606 var288 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var284) /* == on <var_pname:String>*/;
5607 if (var288){
5608 var289 = 0;
5609 var290 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var289) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5610 if (varonce291) {
5611 var292 = varonce291;
5612 } else {
5613 var293 = " < ";
5614 var294 = 3;
5615 var295 = string__NativeString__to_s_with_length(var293, var294);
5616 var292 = var295;
5617 varonce291 = var292;
5618 }
5619 var296 = 1;
5620 var297 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var296) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5621 var298 = NEW_array__Array(&type_array__Arraykernel__Object);
5622 { /* var298 = array_instance Array[Object] */
5623 var299 = 3;
5624 var300 = NEW_array__NativeArray(var299, &type_array__NativeArraykernel__Object);
5625 ((struct instance_array__NativeArray*)var300)->values[0] = (val*) var290;
5626 ((struct instance_array__NativeArray*)var300)->values[1] = (val*) var292;
5627 ((struct instance_array__NativeArray*)var300)->values[2] = (val*) var297;
5628 ((void (*)(val*, val*, long))(var298->class->vft[COLOR_array__Array__with_native]))(var298, var300, var299) /* with_native on <var298:Array[Object]>*/;
5629 CHECK_NEW_array__Array(var298);
5630 }
5631 var301 = ((val* (*)(val*))(var298->class->vft[COLOR_string__Object__to_s]))(var298) /* to_s on <var298:Array[Object]>*/;
5632 if (var_ret == NULL) {
5633 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1397);
5634 exit(1);
5635 }
5636 var302 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var301, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5637 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var302) /* ret on <var_v:AbstractCompilerVisitor>*/;
5638 goto RET_LABEL;
5639 } else {
5640 if (varonce303) {
5641 var304 = varonce303;
5642 } else {
5643 var305 = ">";
5644 var306 = 1;
5645 var307 = string__NativeString__to_s_with_length(var305, var306);
5646 var304 = var307;
5647 varonce303 = var304;
5648 }
5649 var308 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var304) /* == on <var_pname:String>*/;
5650 if (var308){
5651 var309 = 0;
5652 var310 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var309) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5653 if (varonce311) {
5654 var312 = varonce311;
5655 } else {
5656 var313 = " > ";
5657 var314 = 3;
5658 var315 = string__NativeString__to_s_with_length(var313, var314);
5659 var312 = var315;
5660 varonce311 = var312;
5661 }
5662 var316 = 1;
5663 var317 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var316) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5664 var318 = NEW_array__Array(&type_array__Arraykernel__Object);
5665 { /* var318 = array_instance Array[Object] */
5666 var319 = 3;
5667 var320 = NEW_array__NativeArray(var319, &type_array__NativeArraykernel__Object);
5668 ((struct instance_array__NativeArray*)var320)->values[0] = (val*) var310;
5669 ((struct instance_array__NativeArray*)var320)->values[1] = (val*) var312;
5670 ((struct instance_array__NativeArray*)var320)->values[2] = (val*) var317;
5671 ((void (*)(val*, val*, long))(var318->class->vft[COLOR_array__Array__with_native]))(var318, var320, var319) /* with_native on <var318:Array[Object]>*/;
5672 CHECK_NEW_array__Array(var318);
5673 }
5674 var321 = ((val* (*)(val*))(var318->class->vft[COLOR_string__Object__to_s]))(var318) /* to_s on <var318:Array[Object]>*/;
5675 if (var_ret == NULL) {
5676 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1400);
5677 exit(1);
5678 }
5679 var322 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var321, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5680 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var322) /* ret on <var_v:AbstractCompilerVisitor>*/;
5681 goto RET_LABEL;
5682 } else {
5683 if (varonce323) {
5684 var324 = varonce323;
5685 } else {
5686 var325 = "<=";
5687 var326 = 2;
5688 var327 = string__NativeString__to_s_with_length(var325, var326);
5689 var324 = var327;
5690 varonce323 = var324;
5691 }
5692 var328 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var324) /* == on <var_pname:String>*/;
5693 if (var328){
5694 var329 = 0;
5695 var330 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var329) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5696 if (varonce331) {
5697 var332 = varonce331;
5698 } else {
5699 var333 = " <= ";
5700 var334 = 4;
5701 var335 = string__NativeString__to_s_with_length(var333, var334);
5702 var332 = var335;
5703 varonce331 = var332;
5704 }
5705 var336 = 1;
5706 var337 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var336) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5707 var338 = NEW_array__Array(&type_array__Arraykernel__Object);
5708 { /* var338 = array_instance Array[Object] */
5709 var339 = 3;
5710 var340 = NEW_array__NativeArray(var339, &type_array__NativeArraykernel__Object);
5711 ((struct instance_array__NativeArray*)var340)->values[0] = (val*) var330;
5712 ((struct instance_array__NativeArray*)var340)->values[1] = (val*) var332;
5713 ((struct instance_array__NativeArray*)var340)->values[2] = (val*) var337;
5714 ((void (*)(val*, val*, long))(var338->class->vft[COLOR_array__Array__with_native]))(var338, var340, var339) /* with_native on <var338:Array[Object]>*/;
5715 CHECK_NEW_array__Array(var338);
5716 }
5717 var341 = ((val* (*)(val*))(var338->class->vft[COLOR_string__Object__to_s]))(var338) /* to_s on <var338:Array[Object]>*/;
5718 if (var_ret == NULL) {
5719 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1403);
5720 exit(1);
5721 }
5722 var342 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var341, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5723 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var342) /* ret on <var_v:AbstractCompilerVisitor>*/;
5724 goto RET_LABEL;
5725 } else {
5726 if (varonce343) {
5727 var344 = varonce343;
5728 } else {
5729 var345 = ">=";
5730 var346 = 2;
5731 var347 = string__NativeString__to_s_with_length(var345, var346);
5732 var344 = var347;
5733 varonce343 = var344;
5734 }
5735 var348 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var344) /* == on <var_pname:String>*/;
5736 if (var348){
5737 var349 = 0;
5738 var350 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var349) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5739 if (varonce351) {
5740 var352 = varonce351;
5741 } else {
5742 var353 = " >= ";
5743 var354 = 4;
5744 var355 = string__NativeString__to_s_with_length(var353, var354);
5745 var352 = var355;
5746 varonce351 = var352;
5747 }
5748 var356 = 1;
5749 var357 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var356) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5750 var358 = NEW_array__Array(&type_array__Arraykernel__Object);
5751 { /* var358 = array_instance Array[Object] */
5752 var359 = 3;
5753 var360 = NEW_array__NativeArray(var359, &type_array__NativeArraykernel__Object);
5754 ((struct instance_array__NativeArray*)var360)->values[0] = (val*) var350;
5755 ((struct instance_array__NativeArray*)var360)->values[1] = (val*) var352;
5756 ((struct instance_array__NativeArray*)var360)->values[2] = (val*) var357;
5757 ((void (*)(val*, val*, long))(var358->class->vft[COLOR_array__Array__with_native]))(var358, var360, var359) /* with_native on <var358:Array[Object]>*/;
5758 CHECK_NEW_array__Array(var358);
5759 }
5760 var361 = ((val* (*)(val*))(var358->class->vft[COLOR_string__Object__to_s]))(var358) /* to_s on <var358:Array[Object]>*/;
5761 if (var_ret == NULL) {
5762 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1406);
5763 exit(1);
5764 }
5765 var362 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var361, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5766 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var362) /* ret on <var_v:AbstractCompilerVisitor>*/;
5767 goto RET_LABEL;
5768 } else {
5769 if (varonce363) {
5770 var364 = varonce363;
5771 } else {
5772 var365 = "to_f";
5773 var366 = 4;
5774 var367 = string__NativeString__to_s_with_length(var365, var366);
5775 var364 = var367;
5776 varonce363 = var364;
5777 }
5778 var368 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var364) /* == on <var_pname:String>*/;
5779 if (var368){
5780 if (varonce369) {
5781 var370 = varonce369;
5782 } else {
5783 var371 = "(double)";
5784 var372 = 8;
5785 var373 = string__NativeString__to_s_with_length(var371, var372);
5786 var370 = var373;
5787 varonce369 = var370;
5788 }
5789 var374 = 0;
5790 var375 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var374) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5791 var376 = NEW_array__Array(&type_array__Arraykernel__Object);
5792 { /* var376 = array_instance Array[Object] */
5793 var377 = 2;
5794 var378 = NEW_array__NativeArray(var377, &type_array__NativeArraykernel__Object);
5795 ((struct instance_array__NativeArray*)var378)->values[0] = (val*) var370;
5796 ((struct instance_array__NativeArray*)var378)->values[1] = (val*) var375;
5797 ((void (*)(val*, val*, long))(var376->class->vft[COLOR_array__Array__with_native]))(var376, var378, var377) /* with_native on <var376:Array[Object]>*/;
5798 CHECK_NEW_array__Array(var376);
5799 }
5800 var379 = ((val* (*)(val*))(var376->class->vft[COLOR_string__Object__to_s]))(var376) /* to_s on <var376:Array[Object]>*/;
5801 if (var_ret == NULL) {
5802 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1409);
5803 exit(1);
5804 }
5805 var380 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var379, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5806 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var380) /* ret on <var_v:AbstractCompilerVisitor>*/;
5807 goto RET_LABEL;
5808 } else {
5809 if (varonce381) {
5810 var382 = varonce381;
5811 } else {
5812 var383 = "ascii";
5813 var384 = 5;
5814 var385 = string__NativeString__to_s_with_length(var383, var384);
5815 var382 = var385;
5816 varonce381 = var382;
5817 }
5818 var386 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var382) /* == on <var_pname:String>*/;
5819 if (var386){
5820 var387 = 0;
5821 var388 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var387) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5822 var389 = NEW_array__Array(&type_array__Arraykernel__Object);
5823 { /* var389 = array_instance Array[Object] */
5824 var390 = 1;
5825 var391 = NEW_array__NativeArray(var390, &type_array__NativeArraykernel__Object);
5826 ((struct instance_array__NativeArray*)var391)->values[0] = (val*) var388;
5827 ((void (*)(val*, val*, long))(var389->class->vft[COLOR_array__Array__with_native]))(var389, var391, var390) /* with_native on <var389:Array[Object]>*/;
5828 CHECK_NEW_array__Array(var389);
5829 }
5830 var392 = ((val* (*)(val*))(var389->class->vft[COLOR_string__Object__to_s]))(var389) /* to_s on <var389:Array[Object]>*/;
5831 if (var_ret == NULL) {
5832 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1412);
5833 exit(1);
5834 }
5835 var393 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var392, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5836 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var393) /* ret on <var_v:AbstractCompilerVisitor>*/;
5837 goto RET_LABEL;
5838 } else {
5839 }
5840 }
5841 }
5842 }
5843 }
5844 }
5845 }
5846 }
5847 }
5848 }
5849 }
5850 }
5851 }
5852 }
5853 }
5854 }
5855 }
5856 }
5857 }
5858 }
5859 } else {
5860 if (varonce394) {
5861 var395 = varonce394;
5862 } else {
5863 var396 = "Char";
5864 var397 = 4;
5865 var398 = string__NativeString__to_s_with_length(var396, var397);
5866 var395 = var398;
5867 varonce394 = var395;
5868 }
5869 var399 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var395) /* == on <var_cname:String>*/;
5870 if (var399){
5871 if (varonce400) {
5872 var401 = varonce400;
5873 } else {
5874 var402 = "output";
5875 var403 = 6;
5876 var404 = string__NativeString__to_s_with_length(var402, var403);
5877 var401 = var404;
5878 varonce400 = var401;
5879 }
5880 var405 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var401) /* == on <var_pname:String>*/;
5881 if (var405){
5882 if (varonce406) {
5883 var407 = varonce406;
5884 } else {
5885 var408 = "printf(\"%c\", ";
5886 var409 = 13;
5887 var410 = string__NativeString__to_s_with_length(var408, var409);
5888 var407 = var410;
5889 varonce406 = var407;
5890 }
5891 var411 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5892 if (varonce412) {
5893 var413 = varonce412;
5894 } else {
5895 var414 = ");";
5896 var415 = 2;
5897 var416 = string__NativeString__to_s_with_length(var414, var415);
5898 var413 = var416;
5899 varonce412 = var413;
5900 }
5901 var417 = NEW_array__Array(&type_array__Arraykernel__Object);
5902 { /* var417 = array_instance Array[Object] */
5903 var418 = 3;
5904 var419 = NEW_array__NativeArray(var418, &type_array__NativeArraykernel__Object);
5905 ((struct instance_array__NativeArray*)var419)->values[0] = (val*) var407;
5906 ((struct instance_array__NativeArray*)var419)->values[1] = (val*) var411;
5907 ((struct instance_array__NativeArray*)var419)->values[2] = (val*) var413;
5908 ((void (*)(val*, val*, long))(var417->class->vft[COLOR_array__Array__with_native]))(var417, var419, var418) /* with_native on <var417:Array[Object]>*/;
5909 CHECK_NEW_array__Array(var417);
5910 }
5911 var420 = ((val* (*)(val*))(var417->class->vft[COLOR_string__Object__to_s]))(var417) /* to_s on <var417:Array[Object]>*/;
5912 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var420) /* add on <var_v:AbstractCompilerVisitor>*/;
5913 goto RET_LABEL;
5914 } else {
5915 if (varonce421) {
5916 var422 = varonce421;
5917 } else {
5918 var423 = "object_id";
5919 var424 = 9;
5920 var425 = string__NativeString__to_s_with_length(var423, var424);
5921 var422 = var425;
5922 varonce421 = var422;
5923 }
5924 var426 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var422) /* == on <var_pname:String>*/;
5925 if (var426){
5926 if (varonce427) {
5927 var428 = varonce427;
5928 } else {
5929 var429 = "(long)";
5930 var430 = 6;
5931 var431 = string__NativeString__to_s_with_length(var429, var430);
5932 var428 = var431;
5933 varonce427 = var428;
5934 }
5935 var432 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5936 var433 = NEW_array__Array(&type_array__Arraykernel__Object);
5937 { /* var433 = array_instance Array[Object] */
5938 var434 = 2;
5939 var435 = NEW_array__NativeArray(var434, &type_array__NativeArraykernel__Object);
5940 ((struct instance_array__NativeArray*)var435)->values[0] = (val*) var428;
5941 ((struct instance_array__NativeArray*)var435)->values[1] = (val*) var432;
5942 ((void (*)(val*, val*, long))(var433->class->vft[COLOR_array__Array__with_native]))(var433, var435, var434) /* with_native on <var433:Array[Object]>*/;
5943 CHECK_NEW_array__Array(var433);
5944 }
5945 var436 = ((val* (*)(val*))(var433->class->vft[COLOR_string__Object__to_s]))(var433) /* to_s on <var433:Array[Object]>*/;
5946 if (var_ret == NULL) {
5947 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1420);
5948 exit(1);
5949 }
5950 var437 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var436, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5951 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var437) /* ret on <var_v:AbstractCompilerVisitor>*/;
5952 goto RET_LABEL;
5953 } else {
5954 if (varonce438) {
5955 var439 = varonce438;
5956 } else {
5957 var440 = "+";
5958 var441 = 1;
5959 var442 = string__NativeString__to_s_with_length(var440, var441);
5960 var439 = var442;
5961 varonce438 = var439;
5962 }
5963 var443 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var439) /* == on <var_pname:String>*/;
5964 if (var443){
5965 var444 = 0;
5966 var445 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var444) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5967 if (varonce446) {
5968 var447 = varonce446;
5969 } else {
5970 var448 = " + ";
5971 var449 = 3;
5972 var450 = string__NativeString__to_s_with_length(var448, var449);
5973 var447 = var450;
5974 varonce446 = var447;
5975 }
5976 var451 = 1;
5977 var452 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var451) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5978 var453 = NEW_array__Array(&type_array__Arraykernel__Object);
5979 { /* var453 = array_instance Array[Object] */
5980 var454 = 3;
5981 var455 = NEW_array__NativeArray(var454, &type_array__NativeArraykernel__Object);
5982 ((struct instance_array__NativeArray*)var455)->values[0] = (val*) var445;
5983 ((struct instance_array__NativeArray*)var455)->values[1] = (val*) var447;
5984 ((struct instance_array__NativeArray*)var455)->values[2] = (val*) var452;
5985 ((void (*)(val*, val*, long))(var453->class->vft[COLOR_array__Array__with_native]))(var453, var455, var454) /* with_native on <var453:Array[Object]>*/;
5986 CHECK_NEW_array__Array(var453);
5987 }
5988 var456 = ((val* (*)(val*))(var453->class->vft[COLOR_string__Object__to_s]))(var453) /* to_s on <var453:Array[Object]>*/;
5989 if (var_ret == NULL) {
5990 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1423);
5991 exit(1);
5992 }
5993 var457 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var456, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
5994 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var457) /* ret on <var_v:AbstractCompilerVisitor>*/;
5995 goto RET_LABEL;
5996 } else {
5997 if (varonce458) {
5998 var459 = varonce458;
5999 } else {
6000 var460 = "-";
6001 var461 = 1;
6002 var462 = string__NativeString__to_s_with_length(var460, var461);
6003 var459 = var462;
6004 varonce458 = var459;
6005 }
6006 var463 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var459) /* == on <var_pname:String>*/;
6007 if (var463){
6008 var464 = 0;
6009 var465 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var464) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6010 if (varonce466) {
6011 var467 = varonce466;
6012 } else {
6013 var468 = " - ";
6014 var469 = 3;
6015 var470 = string__NativeString__to_s_with_length(var468, var469);
6016 var467 = var470;
6017 varonce466 = var467;
6018 }
6019 var471 = 1;
6020 var472 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var471) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6021 var473 = NEW_array__Array(&type_array__Arraykernel__Object);
6022 { /* var473 = array_instance Array[Object] */
6023 var474 = 3;
6024 var475 = NEW_array__NativeArray(var474, &type_array__NativeArraykernel__Object);
6025 ((struct instance_array__NativeArray*)var475)->values[0] = (val*) var465;
6026 ((struct instance_array__NativeArray*)var475)->values[1] = (val*) var467;
6027 ((struct instance_array__NativeArray*)var475)->values[2] = (val*) var472;
6028 ((void (*)(val*, val*, long))(var473->class->vft[COLOR_array__Array__with_native]))(var473, var475, var474) /* with_native on <var473:Array[Object]>*/;
6029 CHECK_NEW_array__Array(var473);
6030 }
6031 var476 = ((val* (*)(val*))(var473->class->vft[COLOR_string__Object__to_s]))(var473) /* to_s on <var473:Array[Object]>*/;
6032 if (var_ret == NULL) {
6033 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1426);
6034 exit(1);
6035 }
6036 var477 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var476, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6037 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var477) /* ret on <var_v:AbstractCompilerVisitor>*/;
6038 goto RET_LABEL;
6039 } else {
6040 if (varonce478) {
6041 var479 = varonce478;
6042 } else {
6043 var480 = "==";
6044 var481 = 2;
6045 var482 = string__NativeString__to_s_with_length(var480, var481);
6046 var479 = var482;
6047 varonce478 = var479;
6048 }
6049 var483 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var479) /* == on <var_pname:String>*/;
6050 if (var483){
6051 var484 = 0;
6052 var485 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var484) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6053 var486 = 1;
6054 var487 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var486) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6055 var488 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var485, var487) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
6056 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var488) /* ret on <var_v:AbstractCompilerVisitor>*/;
6057 goto RET_LABEL;
6058 } else {
6059 if (varonce489) {
6060 var490 = varonce489;
6061 } else {
6062 var491 = "!=";
6063 var492 = 2;
6064 var493 = string__NativeString__to_s_with_length(var491, var492);
6065 var490 = var493;
6066 varonce489 = var490;
6067 }
6068 var494 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var490) /* == on <var_pname:String>*/;
6069 if (var494){
6070 var495 = 0;
6071 var496 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var495) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6072 var497 = 1;
6073 var498 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var497) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6074 var499 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var496, var498) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
6075 var_res500 = var499;
6076 if (varonce501) {
6077 var502 = varonce501;
6078 } else {
6079 var503 = "!";
6080 var504 = 1;
6081 var505 = string__NativeString__to_s_with_length(var503, var504);
6082 var502 = var505;
6083 varonce501 = var502;
6084 }
6085 var506 = NEW_array__Array(&type_array__Arraykernel__Object);
6086 { /* var506 = array_instance Array[Object] */
6087 var507 = 2;
6088 var508 = NEW_array__NativeArray(var507, &type_array__NativeArraykernel__Object);
6089 ((struct instance_array__NativeArray*)var508)->values[0] = (val*) var502;
6090 ((struct instance_array__NativeArray*)var508)->values[1] = (val*) var_res500;
6091 ((void (*)(val*, val*, long))(var506->class->vft[COLOR_array__Array__with_native]))(var506, var508, var507) /* with_native on <var506:Array[Object]>*/;
6092 CHECK_NEW_array__Array(var506);
6093 }
6094 var509 = ((val* (*)(val*))(var506->class->vft[COLOR_string__Object__to_s]))(var506) /* to_s on <var506:Array[Object]>*/;
6095 if (var_ret == NULL) {
6096 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1433);
6097 exit(1);
6098 }
6099 var510 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var509, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6100 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var510) /* ret on <var_v:AbstractCompilerVisitor>*/;
6101 goto RET_LABEL;
6102 } else {
6103 if (varonce511) {
6104 var512 = varonce511;
6105 } else {
6106 var513 = "succ";
6107 var514 = 4;
6108 var515 = string__NativeString__to_s_with_length(var513, var514);
6109 var512 = var515;
6110 varonce511 = var512;
6111 }
6112 var516 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var512) /* == on <var_pname:String>*/;
6113 if (var516){
6114 var517 = 0;
6115 var518 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var517) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6116 if (varonce519) {
6117 var520 = varonce519;
6118 } else {
6119 var521 = "+1";
6120 var522 = 2;
6121 var523 = string__NativeString__to_s_with_length(var521, var522);
6122 var520 = var523;
6123 varonce519 = var520;
6124 }
6125 var524 = NEW_array__Array(&type_array__Arraykernel__Object);
6126 { /* var524 = array_instance Array[Object] */
6127 var525 = 2;
6128 var526 = NEW_array__NativeArray(var525, &type_array__NativeArraykernel__Object);
6129 ((struct instance_array__NativeArray*)var526)->values[0] = (val*) var518;
6130 ((struct instance_array__NativeArray*)var526)->values[1] = (val*) var520;
6131 ((void (*)(val*, val*, long))(var524->class->vft[COLOR_array__Array__with_native]))(var524, var526, var525) /* with_native on <var524:Array[Object]>*/;
6132 CHECK_NEW_array__Array(var524);
6133 }
6134 var527 = ((val* (*)(val*))(var524->class->vft[COLOR_string__Object__to_s]))(var524) /* to_s on <var524:Array[Object]>*/;
6135 if (var_ret == NULL) {
6136 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1436);
6137 exit(1);
6138 }
6139 var528 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var527, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6140 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var528) /* ret on <var_v:AbstractCompilerVisitor>*/;
6141 goto RET_LABEL;
6142 } else {
6143 if (varonce529) {
6144 var530 = varonce529;
6145 } else {
6146 var531 = "prec";
6147 var532 = 4;
6148 var533 = string__NativeString__to_s_with_length(var531, var532);
6149 var530 = var533;
6150 varonce529 = var530;
6151 }
6152 var534 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var530) /* == on <var_pname:String>*/;
6153 if (var534){
6154 var535 = 0;
6155 var536 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var535) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6156 if (varonce537) {
6157 var538 = varonce537;
6158 } else {
6159 var539 = "-1";
6160 var540 = 2;
6161 var541 = string__NativeString__to_s_with_length(var539, var540);
6162 var538 = var541;
6163 varonce537 = var538;
6164 }
6165 var542 = NEW_array__Array(&type_array__Arraykernel__Object);
6166 { /* var542 = array_instance Array[Object] */
6167 var543 = 2;
6168 var544 = NEW_array__NativeArray(var543, &type_array__NativeArraykernel__Object);
6169 ((struct instance_array__NativeArray*)var544)->values[0] = (val*) var536;
6170 ((struct instance_array__NativeArray*)var544)->values[1] = (val*) var538;
6171 ((void (*)(val*, val*, long))(var542->class->vft[COLOR_array__Array__with_native]))(var542, var544, var543) /* with_native on <var542:Array[Object]>*/;
6172 CHECK_NEW_array__Array(var542);
6173 }
6174 var545 = ((val* (*)(val*))(var542->class->vft[COLOR_string__Object__to_s]))(var542) /* to_s on <var542:Array[Object]>*/;
6175 if (var_ret == NULL) {
6176 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1439);
6177 exit(1);
6178 }
6179 var546 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var545, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6180 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var546) /* ret on <var_v:AbstractCompilerVisitor>*/;
6181 goto RET_LABEL;
6182 } else {
6183 if (varonce547) {
6184 var548 = varonce547;
6185 } else {
6186 var549 = "<";
6187 var550 = 1;
6188 var551 = string__NativeString__to_s_with_length(var549, var550);
6189 var548 = var551;
6190 varonce547 = var548;
6191 }
6192 var552 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var548) /* == on <var_pname:String>*/;
6193 if (var552){
6194 var553 = 0;
6195 var554 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var553) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6196 if (varonce555) {
6197 var556 = varonce555;
6198 } else {
6199 var557 = " < ";
6200 var558 = 3;
6201 var559 = string__NativeString__to_s_with_length(var557, var558);
6202 var556 = var559;
6203 varonce555 = var556;
6204 }
6205 var560 = 1;
6206 var561 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var560) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6207 var562 = NEW_array__Array(&type_array__Arraykernel__Object);
6208 { /* var562 = array_instance Array[Object] */
6209 var563 = 3;
6210 var564 = NEW_array__NativeArray(var563, &type_array__NativeArraykernel__Object);
6211 ((struct instance_array__NativeArray*)var564)->values[0] = (val*) var554;
6212 ((struct instance_array__NativeArray*)var564)->values[1] = (val*) var556;
6213 ((struct instance_array__NativeArray*)var564)->values[2] = (val*) var561;
6214 ((void (*)(val*, val*, long))(var562->class->vft[COLOR_array__Array__with_native]))(var562, var564, var563) /* with_native on <var562:Array[Object]>*/;
6215 CHECK_NEW_array__Array(var562);
6216 }
6217 var565 = ((val* (*)(val*))(var562->class->vft[COLOR_string__Object__to_s]))(var562) /* to_s on <var562:Array[Object]>*/;
6218 if (var_ret == NULL) {
6219 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1442);
6220 exit(1);
6221 }
6222 var566 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var565, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6223 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var566) /* ret on <var_v:AbstractCompilerVisitor>*/;
6224 goto RET_LABEL;
6225 } else {
6226 if (varonce567) {
6227 var568 = varonce567;
6228 } else {
6229 var569 = ">";
6230 var570 = 1;
6231 var571 = string__NativeString__to_s_with_length(var569, var570);
6232 var568 = var571;
6233 varonce567 = var568;
6234 }
6235 var572 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var568) /* == on <var_pname:String>*/;
6236 if (var572){
6237 var573 = 0;
6238 var574 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var573) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6239 if (varonce575) {
6240 var576 = varonce575;
6241 } else {
6242 var577 = " > ";
6243 var578 = 3;
6244 var579 = string__NativeString__to_s_with_length(var577, var578);
6245 var576 = var579;
6246 varonce575 = var576;
6247 }
6248 var580 = 1;
6249 var581 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var580) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6250 var582 = NEW_array__Array(&type_array__Arraykernel__Object);
6251 { /* var582 = array_instance Array[Object] */
6252 var583 = 3;
6253 var584 = NEW_array__NativeArray(var583, &type_array__NativeArraykernel__Object);
6254 ((struct instance_array__NativeArray*)var584)->values[0] = (val*) var574;
6255 ((struct instance_array__NativeArray*)var584)->values[1] = (val*) var576;
6256 ((struct instance_array__NativeArray*)var584)->values[2] = (val*) var581;
6257 ((void (*)(val*, val*, long))(var582->class->vft[COLOR_array__Array__with_native]))(var582, var584, var583) /* with_native on <var582:Array[Object]>*/;
6258 CHECK_NEW_array__Array(var582);
6259 }
6260 var585 = ((val* (*)(val*))(var582->class->vft[COLOR_string__Object__to_s]))(var582) /* to_s on <var582:Array[Object]>*/;
6261 if (var_ret == NULL) {
6262 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1445);
6263 exit(1);
6264 }
6265 var586 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var585, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6266 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var586) /* ret on <var_v:AbstractCompilerVisitor>*/;
6267 goto RET_LABEL;
6268 } else {
6269 if (varonce587) {
6270 var588 = varonce587;
6271 } else {
6272 var589 = "<=";
6273 var590 = 2;
6274 var591 = string__NativeString__to_s_with_length(var589, var590);
6275 var588 = var591;
6276 varonce587 = var588;
6277 }
6278 var592 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var588) /* == on <var_pname:String>*/;
6279 if (var592){
6280 var593 = 0;
6281 var594 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var593) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6282 if (varonce595) {
6283 var596 = varonce595;
6284 } else {
6285 var597 = " <= ";
6286 var598 = 4;
6287 var599 = string__NativeString__to_s_with_length(var597, var598);
6288 var596 = var599;
6289 varonce595 = var596;
6290 }
6291 var600 = 1;
6292 var601 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var600) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6293 var602 = NEW_array__Array(&type_array__Arraykernel__Object);
6294 { /* var602 = array_instance Array[Object] */
6295 var603 = 3;
6296 var604 = NEW_array__NativeArray(var603, &type_array__NativeArraykernel__Object);
6297 ((struct instance_array__NativeArray*)var604)->values[0] = (val*) var594;
6298 ((struct instance_array__NativeArray*)var604)->values[1] = (val*) var596;
6299 ((struct instance_array__NativeArray*)var604)->values[2] = (val*) var601;
6300 ((void (*)(val*, val*, long))(var602->class->vft[COLOR_array__Array__with_native]))(var602, var604, var603) /* with_native on <var602:Array[Object]>*/;
6301 CHECK_NEW_array__Array(var602);
6302 }
6303 var605 = ((val* (*)(val*))(var602->class->vft[COLOR_string__Object__to_s]))(var602) /* to_s on <var602:Array[Object]>*/;
6304 if (var_ret == NULL) {
6305 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1448);
6306 exit(1);
6307 }
6308 var606 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var605, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6309 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var606) /* ret on <var_v:AbstractCompilerVisitor>*/;
6310 goto RET_LABEL;
6311 } else {
6312 if (varonce607) {
6313 var608 = varonce607;
6314 } else {
6315 var609 = ">=";
6316 var610 = 2;
6317 var611 = string__NativeString__to_s_with_length(var609, var610);
6318 var608 = var611;
6319 varonce607 = var608;
6320 }
6321 var612 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var608) /* == on <var_pname:String>*/;
6322 if (var612){
6323 var613 = 0;
6324 var614 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var613) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6325 if (varonce615) {
6326 var616 = varonce615;
6327 } else {
6328 var617 = " >= ";
6329 var618 = 4;
6330 var619 = string__NativeString__to_s_with_length(var617, var618);
6331 var616 = var619;
6332 varonce615 = var616;
6333 }
6334 var620 = 1;
6335 var621 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var620) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6336 var622 = NEW_array__Array(&type_array__Arraykernel__Object);
6337 { /* var622 = array_instance Array[Object] */
6338 var623 = 3;
6339 var624 = NEW_array__NativeArray(var623, &type_array__NativeArraykernel__Object);
6340 ((struct instance_array__NativeArray*)var624)->values[0] = (val*) var614;
6341 ((struct instance_array__NativeArray*)var624)->values[1] = (val*) var616;
6342 ((struct instance_array__NativeArray*)var624)->values[2] = (val*) var621;
6343 ((void (*)(val*, val*, long))(var622->class->vft[COLOR_array__Array__with_native]))(var622, var624, var623) /* with_native on <var622:Array[Object]>*/;
6344 CHECK_NEW_array__Array(var622);
6345 }
6346 var625 = ((val* (*)(val*))(var622->class->vft[COLOR_string__Object__to_s]))(var622) /* to_s on <var622:Array[Object]>*/;
6347 if (var_ret == NULL) {
6348 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1451);
6349 exit(1);
6350 }
6351 var626 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var625, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6352 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var626) /* ret on <var_v:AbstractCompilerVisitor>*/;
6353 goto RET_LABEL;
6354 } else {
6355 if (varonce627) {
6356 var628 = varonce627;
6357 } else {
6358 var629 = "to_i";
6359 var630 = 4;
6360 var631 = string__NativeString__to_s_with_length(var629, var630);
6361 var628 = var631;
6362 varonce627 = var628;
6363 }
6364 var632 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var628) /* == on <var_pname:String>*/;
6365 if (var632){
6366 var633 = 0;
6367 var634 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var633) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6368 if (varonce635) {
6369 var636 = varonce635;
6370 } else {
6371 var637 = "-\'0\'";
6372 var638 = 4;
6373 var639 = string__NativeString__to_s_with_length(var637, var638);
6374 var636 = var639;
6375 varonce635 = var636;
6376 }
6377 var640 = NEW_array__Array(&type_array__Arraykernel__Object);
6378 { /* var640 = array_instance Array[Object] */
6379 var641 = 2;
6380 var642 = NEW_array__NativeArray(var641, &type_array__NativeArraykernel__Object);
6381 ((struct instance_array__NativeArray*)var642)->values[0] = (val*) var634;
6382 ((struct instance_array__NativeArray*)var642)->values[1] = (val*) var636;
6383 ((void (*)(val*, val*, long))(var640->class->vft[COLOR_array__Array__with_native]))(var640, var642, var641) /* with_native on <var640:Array[Object]>*/;
6384 CHECK_NEW_array__Array(var640);
6385 }
6386 var643 = ((val* (*)(val*))(var640->class->vft[COLOR_string__Object__to_s]))(var640) /* to_s on <var640:Array[Object]>*/;
6387 if (var_ret == NULL) {
6388 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1454);
6389 exit(1);
6390 }
6391 var644 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var643, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6392 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var644) /* ret on <var_v:AbstractCompilerVisitor>*/;
6393 goto RET_LABEL;
6394 } else {
6395 if (varonce645) {
6396 var646 = varonce645;
6397 } else {
6398 var647 = "ascii";
6399 var648 = 5;
6400 var649 = string__NativeString__to_s_with_length(var647, var648);
6401 var646 = var649;
6402 varonce645 = var646;
6403 }
6404 var650 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var646) /* == on <var_pname:String>*/;
6405 if (var650){
6406 if (varonce651) {
6407 var652 = varonce651;
6408 } else {
6409 var653 = "(unsigned char)";
6410 var654 = 15;
6411 var655 = string__NativeString__to_s_with_length(var653, var654);
6412 var652 = var655;
6413 varonce651 = var652;
6414 }
6415 var656 = 0;
6416 var657 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var656) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6417 var658 = NEW_array__Array(&type_array__Arraykernel__Object);
6418 { /* var658 = array_instance Array[Object] */
6419 var659 = 2;
6420 var660 = NEW_array__NativeArray(var659, &type_array__NativeArraykernel__Object);
6421 ((struct instance_array__NativeArray*)var660)->values[0] = (val*) var652;
6422 ((struct instance_array__NativeArray*)var660)->values[1] = (val*) var657;
6423 ((void (*)(val*, val*, long))(var658->class->vft[COLOR_array__Array__with_native]))(var658, var660, var659) /* with_native on <var658:Array[Object]>*/;
6424 CHECK_NEW_array__Array(var658);
6425 }
6426 var661 = ((val* (*)(val*))(var658->class->vft[COLOR_string__Object__to_s]))(var658) /* to_s on <var658:Array[Object]>*/;
6427 if (var_ret == NULL) {
6428 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1457);
6429 exit(1);
6430 }
6431 var662 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var661, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6432 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var662) /* ret on <var_v:AbstractCompilerVisitor>*/;
6433 goto RET_LABEL;
6434 } else {
6435 }
6436 }
6437 }
6438 }
6439 }
6440 }
6441 }
6442 }
6443 }
6444 }
6445 }
6446 }
6447 }
6448 }
6449 } else {
6450 if (varonce663) {
6451 var664 = varonce663;
6452 } else {
6453 var665 = "Bool";
6454 var666 = 4;
6455 var667 = string__NativeString__to_s_with_length(var665, var666);
6456 var664 = var667;
6457 varonce663 = var664;
6458 }
6459 var668 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var664) /* == on <var_cname:String>*/;
6460 if (var668){
6461 if (varonce669) {
6462 var670 = varonce669;
6463 } else {
6464 var671 = "output";
6465 var672 = 6;
6466 var673 = string__NativeString__to_s_with_length(var671, var672);
6467 var670 = var673;
6468 varonce669 = var670;
6469 }
6470 var674 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var670) /* == on <var_pname:String>*/;
6471 if (var674){
6472 if (varonce675) {
6473 var676 = varonce675;
6474 } else {
6475 var677 = "printf(";
6476 var678 = 7;
6477 var679 = string__NativeString__to_s_with_length(var677, var678);
6478 var676 = var679;
6479 varonce675 = var676;
6480 }
6481 var680 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
6482 if (varonce681) {
6483 var682 = varonce681;
6484 } else {
6485 var683 = "?\"true\\n\":\"false\\n\");";
6486 var684 = 21;
6487 var685 = string__NativeString__to_s_with_length(var683, var684);
6488 var682 = var685;
6489 varonce681 = var682;
6490 }
6491 var686 = NEW_array__Array(&type_array__Arraykernel__Object);
6492 { /* var686 = array_instance Array[Object] */
6493 var687 = 3;
6494 var688 = NEW_array__NativeArray(var687, &type_array__NativeArraykernel__Object);
6495 ((struct instance_array__NativeArray*)var688)->values[0] = (val*) var676;
6496 ((struct instance_array__NativeArray*)var688)->values[1] = (val*) var680;
6497 ((struct instance_array__NativeArray*)var688)->values[2] = (val*) var682;
6498 ((void (*)(val*, val*, long))(var686->class->vft[COLOR_array__Array__with_native]))(var686, var688, var687) /* with_native on <var686:Array[Object]>*/;
6499 CHECK_NEW_array__Array(var686);
6500 }
6501 var689 = ((val* (*)(val*))(var686->class->vft[COLOR_string__Object__to_s]))(var686) /* to_s on <var686:Array[Object]>*/;
6502 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var689) /* add on <var_v:AbstractCompilerVisitor>*/;
6503 goto RET_LABEL;
6504 } else {
6505 if (varonce690) {
6506 var691 = varonce690;
6507 } else {
6508 var692 = "object_id";
6509 var693 = 9;
6510 var694 = string__NativeString__to_s_with_length(var692, var693);
6511 var691 = var694;
6512 varonce690 = var691;
6513 }
6514 var695 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var691) /* == on <var_pname:String>*/;
6515 if (var695){
6516 if (varonce696) {
6517 var697 = varonce696;
6518 } else {
6519 var698 = "(long)";
6520 var699 = 6;
6521 var700 = string__NativeString__to_s_with_length(var698, var699);
6522 var697 = var700;
6523 varonce696 = var697;
6524 }
6525 var701 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
6526 var702 = NEW_array__Array(&type_array__Arraykernel__Object);
6527 { /* var702 = array_instance Array[Object] */
6528 var703 = 2;
6529 var704 = NEW_array__NativeArray(var703, &type_array__NativeArraykernel__Object);
6530 ((struct instance_array__NativeArray*)var704)->values[0] = (val*) var697;
6531 ((struct instance_array__NativeArray*)var704)->values[1] = (val*) var701;
6532 ((void (*)(val*, val*, long))(var702->class->vft[COLOR_array__Array__with_native]))(var702, var704, var703) /* with_native on <var702:Array[Object]>*/;
6533 CHECK_NEW_array__Array(var702);
6534 }
6535 var705 = ((val* (*)(val*))(var702->class->vft[COLOR_string__Object__to_s]))(var702) /* to_s on <var702:Array[Object]>*/;
6536 if (var_ret == NULL) {
6537 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1465);
6538 exit(1);
6539 }
6540 var706 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var705, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6541 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var706) /* ret on <var_v:AbstractCompilerVisitor>*/;
6542 goto RET_LABEL;
6543 } else {
6544 if (varonce707) {
6545 var708 = varonce707;
6546 } else {
6547 var709 = "==";
6548 var710 = 2;
6549 var711 = string__NativeString__to_s_with_length(var709, var710);
6550 var708 = var711;
6551 varonce707 = var708;
6552 }
6553 var712 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var708) /* == on <var_pname:String>*/;
6554 if (var712){
6555 var713 = 0;
6556 var714 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var713) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6557 var715 = 1;
6558 var716 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var715) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6559 var717 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var714, var716) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
6560 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var717) /* ret on <var_v:AbstractCompilerVisitor>*/;
6561 goto RET_LABEL;
6562 } else {
6563 if (varonce718) {
6564 var719 = varonce718;
6565 } else {
6566 var720 = "!=";
6567 var721 = 2;
6568 var722 = string__NativeString__to_s_with_length(var720, var721);
6569 var719 = var722;
6570 varonce718 = var719;
6571 }
6572 var723 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var719) /* == on <var_pname:String>*/;
6573 if (var723){
6574 var724 = 0;
6575 var725 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var724) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6576 var726 = 1;
6577 var727 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var726) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6578 var728 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var725, var727) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
6579 var_res729 = var728;
6580 if (varonce730) {
6581 var731 = varonce730;
6582 } else {
6583 var732 = "!";
6584 var733 = 1;
6585 var734 = string__NativeString__to_s_with_length(var732, var733);
6586 var731 = var734;
6587 varonce730 = var731;
6588 }
6589 var735 = NEW_array__Array(&type_array__Arraykernel__Object);
6590 { /* var735 = array_instance Array[Object] */
6591 var736 = 2;
6592 var737 = NEW_array__NativeArray(var736, &type_array__NativeArraykernel__Object);
6593 ((struct instance_array__NativeArray*)var737)->values[0] = (val*) var731;
6594 ((struct instance_array__NativeArray*)var737)->values[1] = (val*) var_res729;
6595 ((void (*)(val*, val*, long))(var735->class->vft[COLOR_array__Array__with_native]))(var735, var737, var736) /* with_native on <var735:Array[Object]>*/;
6596 CHECK_NEW_array__Array(var735);
6597 }
6598 var738 = ((val* (*)(val*))(var735->class->vft[COLOR_string__Object__to_s]))(var735) /* to_s on <var735:Array[Object]>*/;
6599 if (var_ret == NULL) {
6600 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1472);
6601 exit(1);
6602 }
6603 var739 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var738, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6604 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var739) /* ret on <var_v:AbstractCompilerVisitor>*/;
6605 goto RET_LABEL;
6606 } else {
6607 }
6608 }
6609 }
6610 }
6611 } else {
6612 if (varonce740) {
6613 var741 = varonce740;
6614 } else {
6615 var742 = "Float";
6616 var743 = 5;
6617 var744 = string__NativeString__to_s_with_length(var742, var743);
6618 var741 = var744;
6619 varonce740 = var741;
6620 }
6621 var745 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var741) /* == on <var_cname:String>*/;
6622 if (var745){
6623 if (varonce746) {
6624 var747 = varonce746;
6625 } else {
6626 var748 = "output";
6627 var749 = 6;
6628 var750 = string__NativeString__to_s_with_length(var748, var749);
6629 var747 = var750;
6630 varonce746 = var747;
6631 }
6632 var751 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var747) /* == on <var_pname:String>*/;
6633 if (var751){
6634 if (varonce752) {
6635 var753 = varonce752;
6636 } else {
6637 var754 = "printf(\"%f\\n\", ";
6638 var755 = 15;
6639 var756 = string__NativeString__to_s_with_length(var754, var755);
6640 var753 = var756;
6641 varonce752 = var753;
6642 }
6643 var757 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
6644 if (varonce758) {
6645 var759 = varonce758;
6646 } else {
6647 var760 = ");";
6648 var761 = 2;
6649 var762 = string__NativeString__to_s_with_length(var760, var761);
6650 var759 = var762;
6651 varonce758 = var759;
6652 }
6653 var763 = NEW_array__Array(&type_array__Arraykernel__Object);
6654 { /* var763 = array_instance Array[Object] */
6655 var764 = 3;
6656 var765 = NEW_array__NativeArray(var764, &type_array__NativeArraykernel__Object);
6657 ((struct instance_array__NativeArray*)var765)->values[0] = (val*) var753;
6658 ((struct instance_array__NativeArray*)var765)->values[1] = (val*) var757;
6659 ((struct instance_array__NativeArray*)var765)->values[2] = (val*) var759;
6660 ((void (*)(val*, val*, long))(var763->class->vft[COLOR_array__Array__with_native]))(var763, var765, var764) /* with_native on <var763:Array[Object]>*/;
6661 CHECK_NEW_array__Array(var763);
6662 }
6663 var766 = ((val* (*)(val*))(var763->class->vft[COLOR_string__Object__to_s]))(var763) /* to_s on <var763:Array[Object]>*/;
6664 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var766) /* add on <var_v:AbstractCompilerVisitor>*/;
6665 goto RET_LABEL;
6666 } else {
6667 if (varonce767) {
6668 var768 = varonce767;
6669 } else {
6670 var769 = "object_id";
6671 var770 = 9;
6672 var771 = string__NativeString__to_s_with_length(var769, var770);
6673 var768 = var771;
6674 varonce767 = var768;
6675 }
6676 var772 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var768) /* == on <var_pname:String>*/;
6677 if (var772){
6678 if (varonce773) {
6679 var774 = varonce773;
6680 } else {
6681 var775 = "(double)";
6682 var776 = 8;
6683 var777 = string__NativeString__to_s_with_length(var775, var776);
6684 var774 = var777;
6685 varonce773 = var774;
6686 }
6687 var778 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
6688 var779 = NEW_array__Array(&type_array__Arraykernel__Object);
6689 { /* var779 = array_instance Array[Object] */
6690 var780 = 2;
6691 var781 = NEW_array__NativeArray(var780, &type_array__NativeArraykernel__Object);
6692 ((struct instance_array__NativeArray*)var781)->values[0] = (val*) var774;
6693 ((struct instance_array__NativeArray*)var781)->values[1] = (val*) var778;
6694 ((void (*)(val*, val*, long))(var779->class->vft[COLOR_array__Array__with_native]))(var779, var781, var780) /* with_native on <var779:Array[Object]>*/;
6695 CHECK_NEW_array__Array(var779);
6696 }
6697 var782 = ((val* (*)(val*))(var779->class->vft[COLOR_string__Object__to_s]))(var779) /* to_s on <var779:Array[Object]>*/;
6698 if (var_ret == NULL) {
6699 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1480);
6700 exit(1);
6701 }
6702 var783 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var782, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6703 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var783) /* ret on <var_v:AbstractCompilerVisitor>*/;
6704 goto RET_LABEL;
6705 } else {
6706 if (varonce784) {
6707 var785 = varonce784;
6708 } else {
6709 var786 = "+";
6710 var787 = 1;
6711 var788 = string__NativeString__to_s_with_length(var786, var787);
6712 var785 = var788;
6713 varonce784 = var785;
6714 }
6715 var789 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var785) /* == on <var_pname:String>*/;
6716 if (var789){
6717 var790 = 0;
6718 var791 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var790) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6719 if (varonce792) {
6720 var793 = varonce792;
6721 } else {
6722 var794 = " + ";
6723 var795 = 3;
6724 var796 = string__NativeString__to_s_with_length(var794, var795);
6725 var793 = var796;
6726 varonce792 = var793;
6727 }
6728 var797 = 1;
6729 var798 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var797) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6730 var799 = NEW_array__Array(&type_array__Arraykernel__Object);
6731 { /* var799 = array_instance Array[Object] */
6732 var800 = 3;
6733 var801 = NEW_array__NativeArray(var800, &type_array__NativeArraykernel__Object);
6734 ((struct instance_array__NativeArray*)var801)->values[0] = (val*) var791;
6735 ((struct instance_array__NativeArray*)var801)->values[1] = (val*) var793;
6736 ((struct instance_array__NativeArray*)var801)->values[2] = (val*) var798;
6737 ((void (*)(val*, val*, long))(var799->class->vft[COLOR_array__Array__with_native]))(var799, var801, var800) /* with_native on <var799:Array[Object]>*/;
6738 CHECK_NEW_array__Array(var799);
6739 }
6740 var802 = ((val* (*)(val*))(var799->class->vft[COLOR_string__Object__to_s]))(var799) /* to_s on <var799:Array[Object]>*/;
6741 if (var_ret == NULL) {
6742 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1483);
6743 exit(1);
6744 }
6745 var803 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var802, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6746 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var803) /* ret on <var_v:AbstractCompilerVisitor>*/;
6747 goto RET_LABEL;
6748 } else {
6749 if (varonce804) {
6750 var805 = varonce804;
6751 } else {
6752 var806 = "-";
6753 var807 = 1;
6754 var808 = string__NativeString__to_s_with_length(var806, var807);
6755 var805 = var808;
6756 varonce804 = var805;
6757 }
6758 var809 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var805) /* == on <var_pname:String>*/;
6759 if (var809){
6760 var810 = 0;
6761 var811 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var810) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6762 if (varonce812) {
6763 var813 = varonce812;
6764 } else {
6765 var814 = " - ";
6766 var815 = 3;
6767 var816 = string__NativeString__to_s_with_length(var814, var815);
6768 var813 = var816;
6769 varonce812 = var813;
6770 }
6771 var817 = 1;
6772 var818 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var817) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6773 var819 = NEW_array__Array(&type_array__Arraykernel__Object);
6774 { /* var819 = array_instance Array[Object] */
6775 var820 = 3;
6776 var821 = NEW_array__NativeArray(var820, &type_array__NativeArraykernel__Object);
6777 ((struct instance_array__NativeArray*)var821)->values[0] = (val*) var811;
6778 ((struct instance_array__NativeArray*)var821)->values[1] = (val*) var813;
6779 ((struct instance_array__NativeArray*)var821)->values[2] = (val*) var818;
6780 ((void (*)(val*, val*, long))(var819->class->vft[COLOR_array__Array__with_native]))(var819, var821, var820) /* with_native on <var819:Array[Object]>*/;
6781 CHECK_NEW_array__Array(var819);
6782 }
6783 var822 = ((val* (*)(val*))(var819->class->vft[COLOR_string__Object__to_s]))(var819) /* to_s on <var819:Array[Object]>*/;
6784 if (var_ret == NULL) {
6785 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1486);
6786 exit(1);
6787 }
6788 var823 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var822, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6789 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var823) /* ret on <var_v:AbstractCompilerVisitor>*/;
6790 goto RET_LABEL;
6791 } else {
6792 if (varonce824) {
6793 var825 = varonce824;
6794 } else {
6795 var826 = "unary -";
6796 var827 = 7;
6797 var828 = string__NativeString__to_s_with_length(var826, var827);
6798 var825 = var828;
6799 varonce824 = var825;
6800 }
6801 var829 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var825) /* == on <var_pname:String>*/;
6802 if (var829){
6803 if (varonce830) {
6804 var831 = varonce830;
6805 } else {
6806 var832 = "-";
6807 var833 = 1;
6808 var834 = string__NativeString__to_s_with_length(var832, var833);
6809 var831 = var834;
6810 varonce830 = var831;
6811 }
6812 var835 = 0;
6813 var836 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var835) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6814 var837 = NEW_array__Array(&type_array__Arraykernel__Object);
6815 { /* var837 = array_instance Array[Object] */
6816 var838 = 2;
6817 var839 = NEW_array__NativeArray(var838, &type_array__NativeArraykernel__Object);
6818 ((struct instance_array__NativeArray*)var839)->values[0] = (val*) var831;
6819 ((struct instance_array__NativeArray*)var839)->values[1] = (val*) var836;
6820 ((void (*)(val*, val*, long))(var837->class->vft[COLOR_array__Array__with_native]))(var837, var839, var838) /* with_native on <var837:Array[Object]>*/;
6821 CHECK_NEW_array__Array(var837);
6822 }
6823 var840 = ((val* (*)(val*))(var837->class->vft[COLOR_string__Object__to_s]))(var837) /* to_s on <var837:Array[Object]>*/;
6824 if (var_ret == NULL) {
6825 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1489);
6826 exit(1);
6827 }
6828 var841 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var840, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6829 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var841) /* ret on <var_v:AbstractCompilerVisitor>*/;
6830 goto RET_LABEL;
6831 } else {
6832 if (varonce842) {
6833 var843 = varonce842;
6834 } else {
6835 var844 = "succ";
6836 var845 = 4;
6837 var846 = string__NativeString__to_s_with_length(var844, var845);
6838 var843 = var846;
6839 varonce842 = var843;
6840 }
6841 var847 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var843) /* == on <var_pname:String>*/;
6842 if (var847){
6843 var848 = 0;
6844 var849 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var848) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6845 if (varonce850) {
6846 var851 = varonce850;
6847 } else {
6848 var852 = "+1";
6849 var853 = 2;
6850 var854 = string__NativeString__to_s_with_length(var852, var853);
6851 var851 = var854;
6852 varonce850 = var851;
6853 }
6854 var855 = NEW_array__Array(&type_array__Arraykernel__Object);
6855 { /* var855 = array_instance Array[Object] */
6856 var856 = 2;
6857 var857 = NEW_array__NativeArray(var856, &type_array__NativeArraykernel__Object);
6858 ((struct instance_array__NativeArray*)var857)->values[0] = (val*) var849;
6859 ((struct instance_array__NativeArray*)var857)->values[1] = (val*) var851;
6860 ((void (*)(val*, val*, long))(var855->class->vft[COLOR_array__Array__with_native]))(var855, var857, var856) /* with_native on <var855:Array[Object]>*/;
6861 CHECK_NEW_array__Array(var855);
6862 }
6863 var858 = ((val* (*)(val*))(var855->class->vft[COLOR_string__Object__to_s]))(var855) /* to_s on <var855:Array[Object]>*/;
6864 if (var_ret == NULL) {
6865 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1492);
6866 exit(1);
6867 }
6868 var859 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var858, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6869 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var859) /* ret on <var_v:AbstractCompilerVisitor>*/;
6870 goto RET_LABEL;
6871 } else {
6872 if (varonce860) {
6873 var861 = varonce860;
6874 } else {
6875 var862 = "prec";
6876 var863 = 4;
6877 var864 = string__NativeString__to_s_with_length(var862, var863);
6878 var861 = var864;
6879 varonce860 = var861;
6880 }
6881 var865 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var861) /* == on <var_pname:String>*/;
6882 if (var865){
6883 var866 = 0;
6884 var867 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var866) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6885 if (varonce868) {
6886 var869 = varonce868;
6887 } else {
6888 var870 = "-1";
6889 var871 = 2;
6890 var872 = string__NativeString__to_s_with_length(var870, var871);
6891 var869 = var872;
6892 varonce868 = var869;
6893 }
6894 var873 = NEW_array__Array(&type_array__Arraykernel__Object);
6895 { /* var873 = array_instance Array[Object] */
6896 var874 = 2;
6897 var875 = NEW_array__NativeArray(var874, &type_array__NativeArraykernel__Object);
6898 ((struct instance_array__NativeArray*)var875)->values[0] = (val*) var867;
6899 ((struct instance_array__NativeArray*)var875)->values[1] = (val*) var869;
6900 ((void (*)(val*, val*, long))(var873->class->vft[COLOR_array__Array__with_native]))(var873, var875, var874) /* with_native on <var873:Array[Object]>*/;
6901 CHECK_NEW_array__Array(var873);
6902 }
6903 var876 = ((val* (*)(val*))(var873->class->vft[COLOR_string__Object__to_s]))(var873) /* to_s on <var873:Array[Object]>*/;
6904 if (var_ret == NULL) {
6905 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1495);
6906 exit(1);
6907 }
6908 var877 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var876, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6909 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var877) /* ret on <var_v:AbstractCompilerVisitor>*/;
6910 goto RET_LABEL;
6911 } else {
6912 if (varonce878) {
6913 var879 = varonce878;
6914 } else {
6915 var880 = "*";
6916 var881 = 1;
6917 var882 = string__NativeString__to_s_with_length(var880, var881);
6918 var879 = var882;
6919 varonce878 = var879;
6920 }
6921 var883 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var879) /* == on <var_pname:String>*/;
6922 if (var883){
6923 var884 = 0;
6924 var885 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var884) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6925 if (varonce886) {
6926 var887 = varonce886;
6927 } else {
6928 var888 = " * ";
6929 var889 = 3;
6930 var890 = string__NativeString__to_s_with_length(var888, var889);
6931 var887 = var890;
6932 varonce886 = var887;
6933 }
6934 var891 = 1;
6935 var892 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var891) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6936 var893 = NEW_array__Array(&type_array__Arraykernel__Object);
6937 { /* var893 = array_instance Array[Object] */
6938 var894 = 3;
6939 var895 = NEW_array__NativeArray(var894, &type_array__NativeArraykernel__Object);
6940 ((struct instance_array__NativeArray*)var895)->values[0] = (val*) var885;
6941 ((struct instance_array__NativeArray*)var895)->values[1] = (val*) var887;
6942 ((struct instance_array__NativeArray*)var895)->values[2] = (val*) var892;
6943 ((void (*)(val*, val*, long))(var893->class->vft[COLOR_array__Array__with_native]))(var893, var895, var894) /* with_native on <var893:Array[Object]>*/;
6944 CHECK_NEW_array__Array(var893);
6945 }
6946 var896 = ((val* (*)(val*))(var893->class->vft[COLOR_string__Object__to_s]))(var893) /* to_s on <var893:Array[Object]>*/;
6947 if (var_ret == NULL) {
6948 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1498);
6949 exit(1);
6950 }
6951 var897 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var896, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6952 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var897) /* ret on <var_v:AbstractCompilerVisitor>*/;
6953 goto RET_LABEL;
6954 } else {
6955 if (varonce898) {
6956 var899 = varonce898;
6957 } else {
6958 var900 = "/";
6959 var901 = 1;
6960 var902 = string__NativeString__to_s_with_length(var900, var901);
6961 var899 = var902;
6962 varonce898 = var899;
6963 }
6964 var903 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var899) /* == on <var_pname:String>*/;
6965 if (var903){
6966 var904 = 0;
6967 var905 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var904) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6968 if (varonce906) {
6969 var907 = varonce906;
6970 } else {
6971 var908 = " / ";
6972 var909 = 3;
6973 var910 = string__NativeString__to_s_with_length(var908, var909);
6974 var907 = var910;
6975 varonce906 = var907;
6976 }
6977 var911 = 1;
6978 var912 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var911) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6979 var913 = NEW_array__Array(&type_array__Arraykernel__Object);
6980 { /* var913 = array_instance Array[Object] */
6981 var914 = 3;
6982 var915 = NEW_array__NativeArray(var914, &type_array__NativeArraykernel__Object);
6983 ((struct instance_array__NativeArray*)var915)->values[0] = (val*) var905;
6984 ((struct instance_array__NativeArray*)var915)->values[1] = (val*) var907;
6985 ((struct instance_array__NativeArray*)var915)->values[2] = (val*) var912;
6986 ((void (*)(val*, val*, long))(var913->class->vft[COLOR_array__Array__with_native]))(var913, var915, var914) /* with_native on <var913:Array[Object]>*/;
6987 CHECK_NEW_array__Array(var913);
6988 }
6989 var916 = ((val* (*)(val*))(var913->class->vft[COLOR_string__Object__to_s]))(var913) /* to_s on <var913:Array[Object]>*/;
6990 if (var_ret == NULL) {
6991 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1501);
6992 exit(1);
6993 }
6994 var917 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var916, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6995 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var917) /* ret on <var_v:AbstractCompilerVisitor>*/;
6996 goto RET_LABEL;
6997 } else {
6998 if (varonce918) {
6999 var919 = varonce918;
7000 } else {
7001 var920 = "==";
7002 var921 = 2;
7003 var922 = string__NativeString__to_s_with_length(var920, var921);
7004 var919 = var922;
7005 varonce918 = var919;
7006 }
7007 var923 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var919) /* == on <var_pname:String>*/;
7008 if (var923){
7009 var924 = 0;
7010 var925 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var924) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7011 var926 = 1;
7012 var927 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var926) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7013 var928 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var925, var927) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
7014 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var928) /* ret on <var_v:AbstractCompilerVisitor>*/;
7015 goto RET_LABEL;
7016 } else {
7017 if (varonce929) {
7018 var930 = varonce929;
7019 } else {
7020 var931 = "!=";
7021 var932 = 2;
7022 var933 = string__NativeString__to_s_with_length(var931, var932);
7023 var930 = var933;
7024 varonce929 = var930;
7025 }
7026 var934 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var930) /* == on <var_pname:String>*/;
7027 if (var934){
7028 var935 = 0;
7029 var936 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var935) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7030 var937 = 1;
7031 var938 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var937) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7032 var939 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var936, var938) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
7033 var_res940 = var939;
7034 if (varonce941) {
7035 var942 = varonce941;
7036 } else {
7037 var943 = "!";
7038 var944 = 1;
7039 var945 = string__NativeString__to_s_with_length(var943, var944);
7040 var942 = var945;
7041 varonce941 = var942;
7042 }
7043 var946 = NEW_array__Array(&type_array__Arraykernel__Object);
7044 { /* var946 = array_instance Array[Object] */
7045 var947 = 2;
7046 var948 = NEW_array__NativeArray(var947, &type_array__NativeArraykernel__Object);
7047 ((struct instance_array__NativeArray*)var948)->values[0] = (val*) var942;
7048 ((struct instance_array__NativeArray*)var948)->values[1] = (val*) var_res940;
7049 ((void (*)(val*, val*, long))(var946->class->vft[COLOR_array__Array__with_native]))(var946, var948, var947) /* with_native on <var946:Array[Object]>*/;
7050 CHECK_NEW_array__Array(var946);
7051 }
7052 var949 = ((val* (*)(val*))(var946->class->vft[COLOR_string__Object__to_s]))(var946) /* to_s on <var946:Array[Object]>*/;
7053 if (var_ret == NULL) {
7054 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1508);
7055 exit(1);
7056 }
7057 var950 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var949, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7058 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var950) /* ret on <var_v:AbstractCompilerVisitor>*/;
7059 goto RET_LABEL;
7060 } else {
7061 if (varonce951) {
7062 var952 = varonce951;
7063 } else {
7064 var953 = "<";
7065 var954 = 1;
7066 var955 = string__NativeString__to_s_with_length(var953, var954);
7067 var952 = var955;
7068 varonce951 = var952;
7069 }
7070 var956 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var952) /* == on <var_pname:String>*/;
7071 if (var956){
7072 var957 = 0;
7073 var958 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var957) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7074 if (varonce959) {
7075 var960 = varonce959;
7076 } else {
7077 var961 = " < ";
7078 var962 = 3;
7079 var963 = string__NativeString__to_s_with_length(var961, var962);
7080 var960 = var963;
7081 varonce959 = var960;
7082 }
7083 var964 = 1;
7084 var965 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var964) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7085 var966 = NEW_array__Array(&type_array__Arraykernel__Object);
7086 { /* var966 = array_instance Array[Object] */
7087 var967 = 3;
7088 var968 = NEW_array__NativeArray(var967, &type_array__NativeArraykernel__Object);
7089 ((struct instance_array__NativeArray*)var968)->values[0] = (val*) var958;
7090 ((struct instance_array__NativeArray*)var968)->values[1] = (val*) var960;
7091 ((struct instance_array__NativeArray*)var968)->values[2] = (val*) var965;
7092 ((void (*)(val*, val*, long))(var966->class->vft[COLOR_array__Array__with_native]))(var966, var968, var967) /* with_native on <var966:Array[Object]>*/;
7093 CHECK_NEW_array__Array(var966);
7094 }
7095 var969 = ((val* (*)(val*))(var966->class->vft[COLOR_string__Object__to_s]))(var966) /* to_s on <var966:Array[Object]>*/;
7096 if (var_ret == NULL) {
7097 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1511);
7098 exit(1);
7099 }
7100 var970 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var969, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7101 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var970) /* ret on <var_v:AbstractCompilerVisitor>*/;
7102 goto RET_LABEL;
7103 } else {
7104 if (varonce971) {
7105 var972 = varonce971;
7106 } else {
7107 var973 = ">";
7108 var974 = 1;
7109 var975 = string__NativeString__to_s_with_length(var973, var974);
7110 var972 = var975;
7111 varonce971 = var972;
7112 }
7113 var976 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var972) /* == on <var_pname:String>*/;
7114 if (var976){
7115 var977 = 0;
7116 var978 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var977) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7117 if (varonce979) {
7118 var980 = varonce979;
7119 } else {
7120 var981 = " > ";
7121 var982 = 3;
7122 var983 = string__NativeString__to_s_with_length(var981, var982);
7123 var980 = var983;
7124 varonce979 = var980;
7125 }
7126 var984 = 1;
7127 var985 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var984) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7128 var986 = NEW_array__Array(&type_array__Arraykernel__Object);
7129 { /* var986 = array_instance Array[Object] */
7130 var987 = 3;
7131 var988 = NEW_array__NativeArray(var987, &type_array__NativeArraykernel__Object);
7132 ((struct instance_array__NativeArray*)var988)->values[0] = (val*) var978;
7133 ((struct instance_array__NativeArray*)var988)->values[1] = (val*) var980;
7134 ((struct instance_array__NativeArray*)var988)->values[2] = (val*) var985;
7135 ((void (*)(val*, val*, long))(var986->class->vft[COLOR_array__Array__with_native]))(var986, var988, var987) /* with_native on <var986:Array[Object]>*/;
7136 CHECK_NEW_array__Array(var986);
7137 }
7138 var989 = ((val* (*)(val*))(var986->class->vft[COLOR_string__Object__to_s]))(var986) /* to_s on <var986:Array[Object]>*/;
7139 if (var_ret == NULL) {
7140 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1514);
7141 exit(1);
7142 }
7143 var990 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var989, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7144 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var990) /* ret on <var_v:AbstractCompilerVisitor>*/;
7145 goto RET_LABEL;
7146 } else {
7147 if (varonce991) {
7148 var992 = varonce991;
7149 } else {
7150 var993 = "<=";
7151 var994 = 2;
7152 var995 = string__NativeString__to_s_with_length(var993, var994);
7153 var992 = var995;
7154 varonce991 = var992;
7155 }
7156 var996 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var992) /* == on <var_pname:String>*/;
7157 if (var996){
7158 var997 = 0;
7159 var998 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var997) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7160 if (varonce999) {
7161 var1000 = varonce999;
7162 } else {
7163 var1001 = " <= ";
7164 var1002 = 4;
7165 var1003 = string__NativeString__to_s_with_length(var1001, var1002);
7166 var1000 = var1003;
7167 varonce999 = var1000;
7168 }
7169 var1004 = 1;
7170 var1005 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1004) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7171 var1006 = NEW_array__Array(&type_array__Arraykernel__Object);
7172 { /* var1006 = array_instance Array[Object] */
7173 var1007 = 3;
7174 var1008 = NEW_array__NativeArray(var1007, &type_array__NativeArraykernel__Object);
7175 ((struct instance_array__NativeArray*)var1008)->values[0] = (val*) var998;
7176 ((struct instance_array__NativeArray*)var1008)->values[1] = (val*) var1000;
7177 ((struct instance_array__NativeArray*)var1008)->values[2] = (val*) var1005;
7178 ((void (*)(val*, val*, long))(var1006->class->vft[COLOR_array__Array__with_native]))(var1006, var1008, var1007) /* with_native on <var1006:Array[Object]>*/;
7179 CHECK_NEW_array__Array(var1006);
7180 }
7181 var1009 = ((val* (*)(val*))(var1006->class->vft[COLOR_string__Object__to_s]))(var1006) /* to_s on <var1006:Array[Object]>*/;
7182 if (var_ret == NULL) {
7183 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1517);
7184 exit(1);
7185 }
7186 var1010 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1009, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7187 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1010) /* ret on <var_v:AbstractCompilerVisitor>*/;
7188 goto RET_LABEL;
7189 } else {
7190 if (varonce1011) {
7191 var1012 = varonce1011;
7192 } else {
7193 var1013 = ">=";
7194 var1014 = 2;
7195 var1015 = string__NativeString__to_s_with_length(var1013, var1014);
7196 var1012 = var1015;
7197 varonce1011 = var1012;
7198 }
7199 var1016 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1012) /* == on <var_pname:String>*/;
7200 if (var1016){
7201 var1017 = 0;
7202 var1018 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1017) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7203 if (varonce1019) {
7204 var1020 = varonce1019;
7205 } else {
7206 var1021 = " >= ";
7207 var1022 = 4;
7208 var1023 = string__NativeString__to_s_with_length(var1021, var1022);
7209 var1020 = var1023;
7210 varonce1019 = var1020;
7211 }
7212 var1024 = 1;
7213 var1025 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1024) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7214 var1026 = NEW_array__Array(&type_array__Arraykernel__Object);
7215 { /* var1026 = array_instance Array[Object] */
7216 var1027 = 3;
7217 var1028 = NEW_array__NativeArray(var1027, &type_array__NativeArraykernel__Object);
7218 ((struct instance_array__NativeArray*)var1028)->values[0] = (val*) var1018;
7219 ((struct instance_array__NativeArray*)var1028)->values[1] = (val*) var1020;
7220 ((struct instance_array__NativeArray*)var1028)->values[2] = (val*) var1025;
7221 ((void (*)(val*, val*, long))(var1026->class->vft[COLOR_array__Array__with_native]))(var1026, var1028, var1027) /* with_native on <var1026:Array[Object]>*/;
7222 CHECK_NEW_array__Array(var1026);
7223 }
7224 var1029 = ((val* (*)(val*))(var1026->class->vft[COLOR_string__Object__to_s]))(var1026) /* to_s on <var1026:Array[Object]>*/;
7225 if (var_ret == NULL) {
7226 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1520);
7227 exit(1);
7228 }
7229 var1030 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1029, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7230 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1030) /* ret on <var_v:AbstractCompilerVisitor>*/;
7231 goto RET_LABEL;
7232 } else {
7233 if (varonce1031) {
7234 var1032 = varonce1031;
7235 } else {
7236 var1033 = "to_i";
7237 var1034 = 4;
7238 var1035 = string__NativeString__to_s_with_length(var1033, var1034);
7239 var1032 = var1035;
7240 varonce1031 = var1032;
7241 }
7242 var1036 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1032) /* == on <var_pname:String>*/;
7243 if (var1036){
7244 if (varonce1037) {
7245 var1038 = varonce1037;
7246 } else {
7247 var1039 = "(long)";
7248 var1040 = 6;
7249 var1041 = string__NativeString__to_s_with_length(var1039, var1040);
7250 var1038 = var1041;
7251 varonce1037 = var1038;
7252 }
7253 var1042 = 0;
7254 var1043 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1042) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7255 var1044 = NEW_array__Array(&type_array__Arraykernel__Object);
7256 { /* var1044 = array_instance Array[Object] */
7257 var1045 = 2;
7258 var1046 = NEW_array__NativeArray(var1045, &type_array__NativeArraykernel__Object);
7259 ((struct instance_array__NativeArray*)var1046)->values[0] = (val*) var1038;
7260 ((struct instance_array__NativeArray*)var1046)->values[1] = (val*) var1043;
7261 ((void (*)(val*, val*, long))(var1044->class->vft[COLOR_array__Array__with_native]))(var1044, var1046, var1045) /* with_native on <var1044:Array[Object]>*/;
7262 CHECK_NEW_array__Array(var1044);
7263 }
7264 var1047 = ((val* (*)(val*))(var1044->class->vft[COLOR_string__Object__to_s]))(var1044) /* to_s on <var1044:Array[Object]>*/;
7265 if (var_ret == NULL) {
7266 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1523);
7267 exit(1);
7268 }
7269 var1048 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1047, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7270 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1048) /* ret on <var_v:AbstractCompilerVisitor>*/;
7271 goto RET_LABEL;
7272 } else {
7273 }
7274 }
7275 }
7276 }
7277 }
7278 }
7279 }
7280 }
7281 }
7282 }
7283 }
7284 }
7285 }
7286 }
7287 }
7288 }
7289 } else {
7290 if (varonce1049) {
7291 var1050 = varonce1049;
7292 } else {
7293 var1051 = "NativeString";
7294 var1052 = 12;
7295 var1053 = string__NativeString__to_s_with_length(var1051, var1052);
7296 var1050 = var1053;
7297 varonce1049 = var1050;
7298 }
7299 var1054 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var1050) /* == on <var_cname:String>*/;
7300 if (var1054){
7301 if (varonce1055) {
7302 var1056 = varonce1055;
7303 } else {
7304 var1057 = "[]";
7305 var1058 = 2;
7306 var1059 = string__NativeString__to_s_with_length(var1057, var1058);
7307 var1056 = var1059;
7308 varonce1055 = var1056;
7309 }
7310 var1060 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1056) /* == on <var_pname:String>*/;
7311 if (var1060){
7312 var1061 = 0;
7313 var1062 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1061) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7314 if (varonce1063) {
7315 var1064 = varonce1063;
7316 } else {
7317 var1065 = "[";
7318 var1066 = 1;
7319 var1067 = string__NativeString__to_s_with_length(var1065, var1066);
7320 var1064 = var1067;
7321 varonce1063 = var1064;
7322 }
7323 var1068 = 1;
7324 var1069 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1068) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7325 if (varonce1070) {
7326 var1071 = varonce1070;
7327 } else {
7328 var1072 = "]";
7329 var1073 = 1;
7330 var1074 = string__NativeString__to_s_with_length(var1072, var1073);
7331 var1071 = var1074;
7332 varonce1070 = var1071;
7333 }
7334 var1075 = NEW_array__Array(&type_array__Arraykernel__Object);
7335 { /* var1075 = array_instance Array[Object] */
7336 var1076 = 4;
7337 var1077 = NEW_array__NativeArray(var1076, &type_array__NativeArraykernel__Object);
7338 ((struct instance_array__NativeArray*)var1077)->values[0] = (val*) var1062;
7339 ((struct instance_array__NativeArray*)var1077)->values[1] = (val*) var1064;
7340 ((struct instance_array__NativeArray*)var1077)->values[2] = (val*) var1069;
7341 ((struct instance_array__NativeArray*)var1077)->values[3] = (val*) var1071;
7342 ((void (*)(val*, val*, long))(var1075->class->vft[COLOR_array__Array__with_native]))(var1075, var1077, var1076) /* with_native on <var1075:Array[Object]>*/;
7343 CHECK_NEW_array__Array(var1075);
7344 }
7345 var1078 = ((val* (*)(val*))(var1075->class->vft[COLOR_string__Object__to_s]))(var1075) /* to_s on <var1075:Array[Object]>*/;
7346 if (var_ret == NULL) {
7347 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1528);
7348 exit(1);
7349 }
7350 var1079 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1078, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7351 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1079) /* ret on <var_v:AbstractCompilerVisitor>*/;
7352 goto RET_LABEL;
7353 } else {
7354 if (varonce1080) {
7355 var1081 = varonce1080;
7356 } else {
7357 var1082 = "[]=";
7358 var1083 = 3;
7359 var1084 = string__NativeString__to_s_with_length(var1082, var1083);
7360 var1081 = var1084;
7361 varonce1080 = var1081;
7362 }
7363 var1085 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1081) /* == on <var_pname:String>*/;
7364 if (var1085){
7365 var1086 = 0;
7366 var1087 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1086) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7367 if (varonce1088) {
7368 var1089 = varonce1088;
7369 } else {
7370 var1090 = "[";
7371 var1091 = 1;
7372 var1092 = string__NativeString__to_s_with_length(var1090, var1091);
7373 var1089 = var1092;
7374 varonce1088 = var1089;
7375 }
7376 var1093 = 1;
7377 var1094 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1093) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7378 if (varonce1095) {
7379 var1096 = varonce1095;
7380 } else {
7381 var1097 = "]=";
7382 var1098 = 2;
7383 var1099 = string__NativeString__to_s_with_length(var1097, var1098);
7384 var1096 = var1099;
7385 varonce1095 = var1096;
7386 }
7387 var1100 = 2;
7388 var1101 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1100) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7389 if (varonce1102) {
7390 var1103 = varonce1102;
7391 } else {
7392 var1104 = ";";
7393 var1105 = 1;
7394 var1106 = string__NativeString__to_s_with_length(var1104, var1105);
7395 var1103 = var1106;
7396 varonce1102 = var1103;
7397 }
7398 var1107 = NEW_array__Array(&type_array__Arraykernel__Object);
7399 { /* var1107 = array_instance Array[Object] */
7400 var1108 = 6;
7401 var1109 = NEW_array__NativeArray(var1108, &type_array__NativeArraykernel__Object);
7402 ((struct instance_array__NativeArray*)var1109)->values[0] = (val*) var1087;
7403 ((struct instance_array__NativeArray*)var1109)->values[1] = (val*) var1089;
7404 ((struct instance_array__NativeArray*)var1109)->values[2] = (val*) var1094;
7405 ((struct instance_array__NativeArray*)var1109)->values[3] = (val*) var1096;
7406 ((struct instance_array__NativeArray*)var1109)->values[4] = (val*) var1101;
7407 ((struct instance_array__NativeArray*)var1109)->values[5] = (val*) var1103;
7408 ((void (*)(val*, val*, long))(var1107->class->vft[COLOR_array__Array__with_native]))(var1107, var1109, var1108) /* with_native on <var1107:Array[Object]>*/;
7409 CHECK_NEW_array__Array(var1107);
7410 }
7411 var1110 = ((val* (*)(val*))(var1107->class->vft[COLOR_string__Object__to_s]))(var1107) /* to_s on <var1107:Array[Object]>*/;
7412 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1110) /* add on <var_v:AbstractCompilerVisitor>*/;
7413 goto RET_LABEL;
7414 } else {
7415 if (varonce1111) {
7416 var1112 = varonce1111;
7417 } else {
7418 var1113 = "copy_to";
7419 var1114 = 7;
7420 var1115 = string__NativeString__to_s_with_length(var1113, var1114);
7421 var1112 = var1115;
7422 varonce1111 = var1112;
7423 }
7424 var1116 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1112) /* == on <var_pname:String>*/;
7425 if (var1116){
7426 if (varonce1117) {
7427 var1118 = varonce1117;
7428 } else {
7429 var1119 = "memcpy(";
7430 var1120 = 7;
7431 var1121 = string__NativeString__to_s_with_length(var1119, var1120);
7432 var1118 = var1121;
7433 varonce1117 = var1118;
7434 }
7435 var1122 = 1;
7436 var1123 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1122) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7437 if (varonce1124) {
7438 var1125 = varonce1124;
7439 } else {
7440 var1126 = "+";
7441 var1127 = 1;
7442 var1128 = string__NativeString__to_s_with_length(var1126, var1127);
7443 var1125 = var1128;
7444 varonce1124 = var1125;
7445 }
7446 var1129 = 4;
7447 var1130 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1129) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7448 if (varonce1131) {
7449 var1132 = varonce1131;
7450 } else {
7451 var1133 = ",";
7452 var1134 = 1;
7453 var1135 = string__NativeString__to_s_with_length(var1133, var1134);
7454 var1132 = var1135;
7455 varonce1131 = var1132;
7456 }
7457 var1136 = 0;
7458 var1137 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1136) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7459 if (varonce1138) {
7460 var1139 = varonce1138;
7461 } else {
7462 var1140 = "+";
7463 var1141 = 1;
7464 var1142 = string__NativeString__to_s_with_length(var1140, var1141);
7465 var1139 = var1142;
7466 varonce1138 = var1139;
7467 }
7468 var1143 = 3;
7469 var1144 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1143) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7470 if (varonce1145) {
7471 var1146 = varonce1145;
7472 } else {
7473 var1147 = ",";
7474 var1148 = 1;
7475 var1149 = string__NativeString__to_s_with_length(var1147, var1148);
7476 var1146 = var1149;
7477 varonce1145 = var1146;
7478 }
7479 var1150 = 2;
7480 var1151 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1150) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7481 if (varonce1152) {
7482 var1153 = varonce1152;
7483 } else {
7484 var1154 = ");";
7485 var1155 = 2;
7486 var1156 = string__NativeString__to_s_with_length(var1154, var1155);
7487 var1153 = var1156;
7488 varonce1152 = var1153;
7489 }
7490 var1157 = NEW_array__Array(&type_array__Arraykernel__Object);
7491 { /* var1157 = array_instance Array[Object] */
7492 var1158 = 11;
7493 var1159 = NEW_array__NativeArray(var1158, &type_array__NativeArraykernel__Object);
7494 ((struct instance_array__NativeArray*)var1159)->values[0] = (val*) var1118;
7495 ((struct instance_array__NativeArray*)var1159)->values[1] = (val*) var1123;
7496 ((struct instance_array__NativeArray*)var1159)->values[2] = (val*) var1125;
7497 ((struct instance_array__NativeArray*)var1159)->values[3] = (val*) var1130;
7498 ((struct instance_array__NativeArray*)var1159)->values[4] = (val*) var1132;
7499 ((struct instance_array__NativeArray*)var1159)->values[5] = (val*) var1137;
7500 ((struct instance_array__NativeArray*)var1159)->values[6] = (val*) var1139;
7501 ((struct instance_array__NativeArray*)var1159)->values[7] = (val*) var1144;
7502 ((struct instance_array__NativeArray*)var1159)->values[8] = (val*) var1146;
7503 ((struct instance_array__NativeArray*)var1159)->values[9] = (val*) var1151;
7504 ((struct instance_array__NativeArray*)var1159)->values[10] = (val*) var1153;
7505 ((void (*)(val*, val*, long))(var1157->class->vft[COLOR_array__Array__with_native]))(var1157, var1159, var1158) /* with_native on <var1157:Array[Object]>*/;
7506 CHECK_NEW_array__Array(var1157);
7507 }
7508 var1160 = ((val* (*)(val*))(var1157->class->vft[COLOR_string__Object__to_s]))(var1157) /* to_s on <var1157:Array[Object]>*/;
7509 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1160) /* add on <var_v:AbstractCompilerVisitor>*/;
7510 goto RET_LABEL;
7511 } else {
7512 if (varonce1161) {
7513 var1162 = varonce1161;
7514 } else {
7515 var1163 = "atoi";
7516 var1164 = 4;
7517 var1165 = string__NativeString__to_s_with_length(var1163, var1164);
7518 var1162 = var1165;
7519 varonce1161 = var1162;
7520 }
7521 var1166 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1162) /* == on <var_pname:String>*/;
7522 if (var1166){
7523 if (varonce1167) {
7524 var1168 = varonce1167;
7525 } else {
7526 var1169 = "atoi(";
7527 var1170 = 5;
7528 var1171 = string__NativeString__to_s_with_length(var1169, var1170);
7529 var1168 = var1171;
7530 varonce1167 = var1168;
7531 }
7532 var1172 = 0;
7533 var1173 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1172) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7534 if (varonce1174) {
7535 var1175 = varonce1174;
7536 } else {
7537 var1176 = ");";
7538 var1177 = 2;
7539 var1178 = string__NativeString__to_s_with_length(var1176, var1177);
7540 var1175 = var1178;
7541 varonce1174 = var1175;
7542 }
7543 var1179 = NEW_array__Array(&type_array__Arraykernel__Object);
7544 { /* var1179 = array_instance Array[Object] */
7545 var1180 = 3;
7546 var1181 = NEW_array__NativeArray(var1180, &type_array__NativeArraykernel__Object);
7547 ((struct instance_array__NativeArray*)var1181)->values[0] = (val*) var1168;
7548 ((struct instance_array__NativeArray*)var1181)->values[1] = (val*) var1173;
7549 ((struct instance_array__NativeArray*)var1181)->values[2] = (val*) var1175;
7550 ((void (*)(val*, val*, long))(var1179->class->vft[COLOR_array__Array__with_native]))(var1179, var1181, var1180) /* with_native on <var1179:Array[Object]>*/;
7551 CHECK_NEW_array__Array(var1179);
7552 }
7553 var1182 = ((val* (*)(val*))(var1179->class->vft[COLOR_string__Object__to_s]))(var1179) /* to_s on <var1179:Array[Object]>*/;
7554 if (var_ret == NULL) {
7555 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1537);
7556 exit(1);
7557 }
7558 var1183 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1182, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7559 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1183) /* ret on <var_v:AbstractCompilerVisitor>*/;
7560 goto RET_LABEL;
7561 } else {
7562 }
7563 }
7564 }
7565 }
7566 } else {
7567 if (varonce1184) {
7568 var1185 = varonce1184;
7569 } else {
7570 var1186 = "NativeArray";
7571 var1187 = 11;
7572 var1188 = string__NativeString__to_s_with_length(var1186, var1187);
7573 var1185 = var1188;
7574 varonce1184 = var1185;
7575 }
7576 var1189 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var1185) /* == on <var_cname:String>*/;
7577 if (var1189){
7578 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__native_array_def]))(var_v, var_pname, var_ret, var_arguments) /* native_array_def on <var_v:AbstractCompilerVisitor>*/;
7579 goto RET_LABEL;
7580 } else {
7581 }
7582 }
7583 }
7584 }
7585 }
7586 }
7587 if (varonce1190) {
7588 var1191 = varonce1190;
7589 } else {
7590 var1192 = "exit";
7591 var1193 = 4;
7592 var1194 = string__NativeString__to_s_with_length(var1192, var1193);
7593 var1191 = var1194;
7594 varonce1190 = var1191;
7595 }
7596 var1195 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1191) /* == on <var_pname:String>*/;
7597 if (var1195){
7598 if (varonce1196) {
7599 var1197 = varonce1196;
7600 } else {
7601 var1198 = "exit(";
7602 var1199 = 5;
7603 var1200 = string__NativeString__to_s_with_length(var1198, var1199);
7604 var1197 = var1200;
7605 varonce1196 = var1197;
7606 }
7607 var1201 = 1;
7608 var1202 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1201) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7609 if (varonce1203) {
7610 var1204 = varonce1203;
7611 } else {
7612 var1205 = ");";
7613 var1206 = 2;
7614 var1207 = string__NativeString__to_s_with_length(var1205, var1206);
7615 var1204 = var1207;
7616 varonce1203 = var1204;
7617 }
7618 var1208 = NEW_array__Array(&type_array__Arraykernel__Object);
7619 { /* var1208 = array_instance Array[Object] */
7620 var1209 = 3;
7621 var1210 = NEW_array__NativeArray(var1209, &type_array__NativeArraykernel__Object);
7622 ((struct instance_array__NativeArray*)var1210)->values[0] = (val*) var1197;
7623 ((struct instance_array__NativeArray*)var1210)->values[1] = (val*) var1202;
7624 ((struct instance_array__NativeArray*)var1210)->values[2] = (val*) var1204;
7625 ((void (*)(val*, val*, long))(var1208->class->vft[COLOR_array__Array__with_native]))(var1208, var1210, var1209) /* with_native on <var1208:Array[Object]>*/;
7626 CHECK_NEW_array__Array(var1208);
7627 }
7628 var1211 = ((val* (*)(val*))(var1208->class->vft[COLOR_string__Object__to_s]))(var1208) /* to_s on <var1208:Array[Object]>*/;
7629 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1211) /* add on <var_v:AbstractCompilerVisitor>*/;
7630 goto RET_LABEL;
7631 } else {
7632 if (varonce1212) {
7633 var1213 = varonce1212;
7634 } else {
7635 var1214 = "sys";
7636 var1215 = 3;
7637 var1216 = string__NativeString__to_s_with_length(var1214, var1215);
7638 var1213 = var1216;
7639 varonce1212 = var1213;
7640 }
7641 var1217 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1213) /* == on <var_pname:String>*/;
7642 if (var1217){
7643 if (varonce1218) {
7644 var1219 = varonce1218;
7645 } else {
7646 var1220 = "glob_sys";
7647 var1221 = 8;
7648 var1222 = string__NativeString__to_s_with_length(var1220, var1221);
7649 var1219 = var1222;
7650 varonce1218 = var1219;
7651 }
7652 if (var_ret == NULL) {
7653 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1548);
7654 exit(1);
7655 }
7656 var1223 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1219, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7657 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1223) /* ret on <var_v:AbstractCompilerVisitor>*/;
7658 goto RET_LABEL;
7659 } else {
7660 if (varonce1224) {
7661 var1225 = varonce1224;
7662 } else {
7663 var1226 = "calloc_string";
7664 var1227 = 13;
7665 var1228 = string__NativeString__to_s_with_length(var1226, var1227);
7666 var1225 = var1228;
7667 varonce1224 = var1225;
7668 }
7669 var1229 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1225) /* == on <var_pname:String>*/;
7670 if (var1229){
7671 if (varonce1230) {
7672 var1231 = varonce1230;
7673 } else {
7674 var1232 = "(char*)nit_alloc(";
7675 var1233 = 17;
7676 var1234 = string__NativeString__to_s_with_length(var1232, var1233);
7677 var1231 = var1234;
7678 varonce1230 = var1231;
7679 }
7680 var1235 = 1;
7681 var1236 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1235) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7682 if (varonce1237) {
7683 var1238 = varonce1237;
7684 } else {
7685 var1239 = ")";
7686 var1240 = 1;
7687 var1241 = string__NativeString__to_s_with_length(var1239, var1240);
7688 var1238 = var1241;
7689 varonce1237 = var1238;
7690 }
7691 var1242 = NEW_array__Array(&type_array__Arraykernel__Object);
7692 { /* var1242 = array_instance Array[Object] */
7693 var1243 = 3;
7694 var1244 = NEW_array__NativeArray(var1243, &type_array__NativeArraykernel__Object);
7695 ((struct instance_array__NativeArray*)var1244)->values[0] = (val*) var1231;
7696 ((struct instance_array__NativeArray*)var1244)->values[1] = (val*) var1236;
7697 ((struct instance_array__NativeArray*)var1244)->values[2] = (val*) var1238;
7698 ((void (*)(val*, val*, long))(var1242->class->vft[COLOR_array__Array__with_native]))(var1242, var1244, var1243) /* with_native on <var1242:Array[Object]>*/;
7699 CHECK_NEW_array__Array(var1242);
7700 }
7701 var1245 = ((val* (*)(val*))(var1242->class->vft[COLOR_string__Object__to_s]))(var1242) /* to_s on <var1242:Array[Object]>*/;
7702 if (var_ret == NULL) {
7703 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1551);
7704 exit(1);
7705 }
7706 var1246 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1245, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7707 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1246) /* ret on <var_v:AbstractCompilerVisitor>*/;
7708 goto RET_LABEL;
7709 } else {
7710 if (varonce1247) {
7711 var1248 = varonce1247;
7712 } else {
7713 var1249 = "calloc_array";
7714 var1250 = 12;
7715 var1251 = string__NativeString__to_s_with_length(var1249, var1250);
7716 var1248 = var1251;
7717 varonce1247 = var1248;
7718 }
7719 var1252 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1248) /* == on <var_pname:String>*/;
7720 if (var1252){
7721 if (var_ret == NULL) {
7722 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1554);
7723 exit(1);
7724 }
7725 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__calloc_array]))(var_v, var_ret, var_arguments) /* calloc_array on <var_v:AbstractCompilerVisitor>*/;
7726 goto RET_LABEL;
7727 } else {
7728 if (varonce1253) {
7729 var1254 = varonce1253;
7730 } else {
7731 var1255 = "object_id";
7732 var1256 = 9;
7733 var1257 = string__NativeString__to_s_with_length(var1255, var1256);
7734 var1254 = var1257;
7735 varonce1253 = var1254;
7736 }
7737 var1258 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1254) /* == on <var_pname:String>*/;
7738 if (var1258){
7739 if (varonce1259) {
7740 var1260 = varonce1259;
7741 } else {
7742 var1261 = "(long)";
7743 var1262 = 6;
7744 var1263 = string__NativeString__to_s_with_length(var1261, var1262);
7745 var1260 = var1263;
7746 varonce1259 = var1260;
7747 }
7748 var1264 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
7749 var1265 = NEW_array__Array(&type_array__Arraykernel__Object);
7750 { /* var1265 = array_instance Array[Object] */
7751 var1266 = 2;
7752 var1267 = NEW_array__NativeArray(var1266, &type_array__NativeArraykernel__Object);
7753 ((struct instance_array__NativeArray*)var1267)->values[0] = (val*) var1260;
7754 ((struct instance_array__NativeArray*)var1267)->values[1] = (val*) var1264;
7755 ((void (*)(val*, val*, long))(var1265->class->vft[COLOR_array__Array__with_native]))(var1265, var1267, var1266) /* with_native on <var1265:Array[Object]>*/;
7756 CHECK_NEW_array__Array(var1265);
7757 }
7758 var1268 = ((val* (*)(val*))(var1265->class->vft[COLOR_string__Object__to_s]))(var1265) /* to_s on <var1265:Array[Object]>*/;
7759 if (var_ret == NULL) {
7760 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1557);
7761 exit(1);
7762 }
7763 var1269 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1268, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7764 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1269) /* ret on <var_v:AbstractCompilerVisitor>*/;
7765 goto RET_LABEL;
7766 } else {
7767 if (varonce1270) {
7768 var1271 = varonce1270;
7769 } else {
7770 var1272 = "is_same_type";
7771 var1273 = 12;
7772 var1274 = string__NativeString__to_s_with_length(var1272, var1273);
7773 var1271 = var1274;
7774 varonce1270 = var1271;
7775 }
7776 var1275 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1271) /* == on <var_pname:String>*/;
7777 if (var1275){
7778 var1276 = 0;
7779 var1277 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1276) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7780 var1278 = 1;
7781 var1279 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1278) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7782 var1280 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__is_same_type_test]))(var_v, var1277, var1279) /* is_same_type_test on <var_v:AbstractCompilerVisitor>*/;
7783 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1280) /* ret on <var_v:AbstractCompilerVisitor>*/;
7784 goto RET_LABEL;
7785 } else {
7786 if (varonce1281) {
7787 var1282 = varonce1281;
7788 } else {
7789 var1283 = "output_class_name";
7790 var1284 = 17;
7791 var1285 = string__NativeString__to_s_with_length(var1283, var1284);
7792 var1282 = var1285;
7793 varonce1281 = var1282;
7794 }
7795 var1286 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1282) /* == on <var_pname:String>*/;
7796 if (var1286){
7797 var1287 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
7798 var1288 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1287) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
7799 var_nat = var1288;
7800 if (varonce1289) {
7801 var1290 = varonce1289;
7802 } else {
7803 var1291 = "printf(\"%s\\n\", ";
7804 var1292 = 15;
7805 var1293 = string__NativeString__to_s_with_length(var1291, var1292);
7806 var1290 = var1293;
7807 varonce1289 = var1290;
7808 }
7809 if (varonce1294) {
7810 var1295 = varonce1294;
7811 } else {
7812 var1296 = ");";
7813 var1297 = 2;
7814 var1298 = string__NativeString__to_s_with_length(var1296, var1297);
7815 var1295 = var1298;
7816 varonce1294 = var1295;
7817 }
7818 var1299 = NEW_array__Array(&type_array__Arraykernel__Object);
7819 { /* var1299 = array_instance Array[Object] */
7820 var1300 = 3;
7821 var1301 = NEW_array__NativeArray(var1300, &type_array__NativeArraykernel__Object);
7822 ((struct instance_array__NativeArray*)var1301)->values[0] = (val*) var1290;
7823 ((struct instance_array__NativeArray*)var1301)->values[1] = (val*) var_nat;
7824 ((struct instance_array__NativeArray*)var1301)->values[2] = (val*) var1295;
7825 ((void (*)(val*, val*, long))(var1299->class->vft[COLOR_array__Array__with_native]))(var1299, var1301, var1300) /* with_native on <var1299:Array[Object]>*/;
7826 CHECK_NEW_array__Array(var1299);
7827 }
7828 var1302 = ((val* (*)(val*))(var1299->class->vft[COLOR_string__Object__to_s]))(var1299) /* to_s on <var1299:Array[Object]>*/;
7829 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1302) /* add on <var_v:AbstractCompilerVisitor>*/;
7830 goto RET_LABEL;
7831 } else {
7832 if (varonce1303) {
7833 var1304 = varonce1303;
7834 } else {
7835 var1305 = "native_class_name";
7836 var1306 = 17;
7837 var1307 = string__NativeString__to_s_with_length(var1305, var1306);
7838 var1304 = var1307;
7839 varonce1303 = var1304;
7840 }
7841 var1308 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1304) /* == on <var_pname:String>*/;
7842 if (var1308){
7843 var1309 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
7844 var1310 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1309) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
7845 var_nat1311 = var1310;
7846 if (varonce1312) {
7847 var1313 = varonce1312;
7848 } else {
7849 var1314 = "(char*)";
7850 var1315 = 7;
7851 var1316 = string__NativeString__to_s_with_length(var1314, var1315);
7852 var1313 = var1316;
7853 varonce1312 = var1313;
7854 }
7855 var1317 = NEW_array__Array(&type_array__Arraykernel__Object);
7856 { /* var1317 = array_instance Array[Object] */
7857 var1318 = 2;
7858 var1319 = NEW_array__NativeArray(var1318, &type_array__NativeArraykernel__Object);
7859 ((struct instance_array__NativeArray*)var1319)->values[0] = (val*) var1313;
7860 ((struct instance_array__NativeArray*)var1319)->values[1] = (val*) var_nat1311;
7861 ((void (*)(val*, val*, long))(var1317->class->vft[COLOR_array__Array__with_native]))(var1317, var1319, var1318) /* with_native on <var1317:Array[Object]>*/;
7862 CHECK_NEW_array__Array(var1317);
7863 }
7864 var1320 = ((val* (*)(val*))(var1317->class->vft[COLOR_string__Object__to_s]))(var1317) /* to_s on <var1317:Array[Object]>*/;
7865 if (var_ret == NULL) {
7866 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1568);
7867 exit(1);
7868 }
7869 var1321 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1320, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7870 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1321) /* ret on <var_v:AbstractCompilerVisitor>*/;
7871 goto RET_LABEL;
7872 } else {
7873 if (varonce1322) {
7874 var1323 = varonce1322;
7875 } else {
7876 var1324 = "force_garbage_collection";
7877 var1325 = 24;
7878 var1326 = string__NativeString__to_s_with_length(var1324, var1325);
7879 var1323 = var1326;
7880 varonce1322 = var1323;
7881 }
7882 var1327 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1323) /* == on <var_pname:String>*/;
7883 if (var1327){
7884 if (varonce1328) {
7885 var1329 = varonce1328;
7886 } else {
7887 var1330 = "nit_gcollect();";
7888 var1331 = 15;
7889 var1332 = string__NativeString__to_s_with_length(var1330, var1331);
7890 var1329 = var1332;
7891 varonce1328 = var1329;
7892 }
7893 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1329) /* add on <var_v:AbstractCompilerVisitor>*/;
7894 goto RET_LABEL;
7895 } else {
7896 if (varonce1333) {
7897 var1334 = varonce1333;
7898 } else {
7899 var1335 = "native_argc";
7900 var1336 = 11;
7901 var1337 = string__NativeString__to_s_with_length(var1335, var1336);
7902 var1334 = var1337;
7903 varonce1333 = var1334;
7904 }
7905 var1338 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1334) /* == on <var_pname:String>*/;
7906 if (var1338){
7907 if (varonce1339) {
7908 var1340 = varonce1339;
7909 } else {
7910 var1341 = "glob_argc";
7911 var1342 = 9;
7912 var1343 = string__NativeString__to_s_with_length(var1341, var1342);
7913 var1340 = var1343;
7914 varonce1339 = var1340;
7915 }
7916 if (var_ret == NULL) {
7917 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1574);
7918 exit(1);
7919 }
7920 var1344 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1340, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7921 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1344) /* ret on <var_v:AbstractCompilerVisitor>*/;
7922 goto RET_LABEL;
7923 } else {
7924 if (varonce1345) {
7925 var1346 = varonce1345;
7926 } else {
7927 var1347 = "native_argv";
7928 var1348 = 11;
7929 var1349 = string__NativeString__to_s_with_length(var1347, var1348);
7930 var1346 = var1349;
7931 varonce1345 = var1346;
7932 }
7933 var1350 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1346) /* == on <var_pname:String>*/;
7934 if (var1350){
7935 if (varonce1351) {
7936 var1352 = varonce1351;
7937 } else {
7938 var1353 = "glob_argv[";
7939 var1354 = 10;
7940 var1355 = string__NativeString__to_s_with_length(var1353, var1354);
7941 var1352 = var1355;
7942 varonce1351 = var1352;
7943 }
7944 var1356 = 1;
7945 var1357 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1356) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7946 if (varonce1358) {
7947 var1359 = varonce1358;
7948 } else {
7949 var1360 = "]";
7950 var1361 = 1;
7951 var1362 = string__NativeString__to_s_with_length(var1360, var1361);
7952 var1359 = var1362;
7953 varonce1358 = var1359;
7954 }
7955 var1363 = NEW_array__Array(&type_array__Arraykernel__Object);
7956 { /* var1363 = array_instance Array[Object] */
7957 var1364 = 3;
7958 var1365 = NEW_array__NativeArray(var1364, &type_array__NativeArraykernel__Object);
7959 ((struct instance_array__NativeArray*)var1365)->values[0] = (val*) var1352;
7960 ((struct instance_array__NativeArray*)var1365)->values[1] = (val*) var1357;
7961 ((struct instance_array__NativeArray*)var1365)->values[2] = (val*) var1359;
7962 ((void (*)(val*, val*, long))(var1363->class->vft[COLOR_array__Array__with_native]))(var1363, var1365, var1364) /* with_native on <var1363:Array[Object]>*/;
7963 CHECK_NEW_array__Array(var1363);
7964 }
7965 var1366 = ((val* (*)(val*))(var1363->class->vft[COLOR_string__Object__to_s]))(var1363) /* to_s on <var1363:Array[Object]>*/;
7966 if (var_ret == NULL) {
7967 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1577);
7968 exit(1);
7969 }
7970 var1367 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1366, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7971 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1367) /* ret on <var_v:AbstractCompilerVisitor>*/;
7972 goto RET_LABEL;
7973 } else {
7974 }
7975 }
7976 }
7977 }
7978 }
7979 }
7980 }
7981 }
7982 }
7983 }
7984 }
7985 if (varonce1368) {
7986 var1369 = varonce1368;
7987 } else {
7988 var1370 = "printf(\"NOT YET IMPLEMENTED ";
7989 var1371 = 28;
7990 var1372 = string__NativeString__to_s_with_length(var1370, var1371);
7991 var1369 = var1372;
7992 varonce1368 = var1369;
7993 }
7994 var1373 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:AInternMethPropdef>*/;
7995 if (varonce1374) {
7996 var1375 = varonce1374;
7997 } else {
7998 var1376 = ":";
7999 var1377 = 1;
8000 var1378 = string__NativeString__to_s_with_length(var1376, var1377);
8001 var1375 = var1378;
8002 varonce1374 = var1375;
8003 }
8004 if (varonce1379) {
8005 var1380 = varonce1379;
8006 } else {
8007 var1381 = " at ";
8008 var1382 = 4;
8009 var1383 = string__NativeString__to_s_with_length(var1381, var1382);
8010 var1380 = var1383;
8011 varonce1379 = var1380;
8012 }
8013 var1384 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AInternMethPropdef>*/;
8014 var1385 = ((val* (*)(val*))(var1384->class->vft[COLOR_string__Object__to_s]))(var1384) /* to_s on <var1384:Location>*/;
8015 if (varonce1386) {
8016 var1387 = varonce1386;
8017 } else {
8018 var1388 = "\\n\");";
8019 var1389 = 5;
8020 var1390 = string__NativeString__to_s_with_length(var1388, var1389);
8021 var1387 = var1390;
8022 varonce1386 = var1387;
8023 }
8024 var1391 = NEW_array__Array(&type_array__Arraykernel__Object);
8025 { /* var1391 = array_instance Array[Object] */
8026 var1392 = 7;
8027 var1393 = NEW_array__NativeArray(var1392, &type_array__NativeArraykernel__Object);
8028 ((struct instance_array__NativeArray*)var1393)->values[0] = (val*) var1369;
8029 ((struct instance_array__NativeArray*)var1393)->values[1] = (val*) var1373;
8030 ((struct instance_array__NativeArray*)var1393)->values[2] = (val*) var1375;
8031 ((struct instance_array__NativeArray*)var1393)->values[3] = (val*) var_mpropdef;
8032 ((struct instance_array__NativeArray*)var1393)->values[4] = (val*) var1380;
8033 ((struct instance_array__NativeArray*)var1393)->values[5] = (val*) var1385;
8034 ((struct instance_array__NativeArray*)var1393)->values[6] = (val*) var1387;
8035 ((void (*)(val*, val*, long))(var1391->class->vft[COLOR_array__Array__with_native]))(var1391, var1393, var1392) /* with_native on <var1391:Array[Object]>*/;
8036 CHECK_NEW_array__Array(var1391);
8037 }
8038 var1394 = ((val* (*)(val*))(var1391->class->vft[COLOR_string__Object__to_s]))(var1391) /* to_s on <var1391:Array[Object]>*/;
8039 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1394) /* add on <var_v:AbstractCompilerVisitor>*/;
8040 if (varonce1395) {
8041 var1396 = varonce1395;
8042 } else {
8043 var1397 = "Not implemented ";
8044 var1398 = 16;
8045 var1399 = string__NativeString__to_s_with_length(var1397, var1398);
8046 var1396 = var1399;
8047 varonce1395 = var1396;
8048 }
8049 var1400 = NEW_array__Array(&type_array__Arraykernel__Object);
8050 { /* var1400 = array_instance Array[Object] */
8051 var1401 = 2;
8052 var1402 = NEW_array__NativeArray(var1401, &type_array__NativeArraykernel__Object);
8053 ((struct instance_array__NativeArray*)var1402)->values[0] = (val*) var1396;
8054 ((struct instance_array__NativeArray*)var1402)->values[1] = (val*) var_mpropdef;
8055 ((void (*)(val*, val*, long))(var1400->class->vft[COLOR_array__Array__with_native]))(var1400, var1402, var1401) /* with_native on <var1400:Array[Object]>*/;
8056 CHECK_NEW_array__Array(var1400);
8057 }
8058 var1403 = ((val* (*)(val*))(var1400->class->vft[COLOR_string__Object__to_s]))(var1400) /* to_s on <var1400:Array[Object]>*/;
8059 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__debug]))(self, var1403) /* debug on <self:AInternMethPropdef>*/;
8060 RET_LABEL:;
8061 }
8062 /* method abstract_compiler#AInternMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8063 void VIRTUAL_abstract_compiler__AInternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8064 abstract_compiler__AInternMethPropdef__compile_to_c(self, p0, p1, p2);
8065 RET_LABEL:;
8066 }
8067 /* method abstract_compiler#AExternMethPropdef#compile_to_c for (self: AExternMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8068 void abstract_compiler__AExternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8069 val* var_v /* var v: AbstractCompilerVisitor */;
8070 val* var_mpropdef /* var mpropdef: MMethodDef */;
8071 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
8072 val* var /* : nullable TString */;
8073 val* var_nextern /* var nextern: nullable TString */;
8074 val* var1 /* : null */;
8075 short int var2 /* : Bool */;
8076 static val* varonce;
8077 val* var3 /* : String */;
8078 char* var4 /* : NativeString */;
8079 long var5 /* : Int */;
8080 val* var6 /* : String */;
8081 static val* varonce7;
8082 val* var8 /* : String */;
8083 char* var9 /* : NativeString */;
8084 long var10 /* : Int */;
8085 val* var11 /* : String */;
8086 val* var12 /* : Location */;
8087 val* var13 /* : String */;
8088 static val* varonce14;
8089 val* var15 /* : String */;
8090 char* var16 /* : NativeString */;
8091 long var17 /* : Int */;
8092 val* var18 /* : String */;
8093 val* var19 /* : Array[Object] */;
8094 long var20 /* : Int */;
8095 val* var21 /* : NativeArray[Object] */;
8096 val* var22 /* : String */;
8097 static val* varonce23;
8098 val* var24 /* : String */;
8099 char* var25 /* : NativeString */;
8100 long var26 /* : Int */;
8101 val* var27 /* : String */;
8102 val* var28 /* : String */;
8103 long var29 /* : Int */;
8104 val* var30 /* : String */;
8105 long var31 /* : Int */;
8106 long var32 /* : Int */;
8107 long var33 /* : Int */;
8108 long var35 /* : Int */;
8109 val* var36 /* : String */;
8110 val* var_externname /* var externname: nullable Object */;
8111 val* var37 /* : Location */;
8112 val* var38 /* : nullable SourceFile */;
8113 val* var39 /* : null */;
8114 short int var40 /* : Bool */;
8115 val* var41 /* : Location */;
8116 val* var42 /* : nullable SourceFile */;
8117 val* var43 /* : String */;
8118 val* var_file /* var file: String */;
8119 val* var44 /* : null */;
8120 val* var_res /* var res: nullable RuntimeVariable */;
8121 val* var45 /* : nullable MSignature */;
8122 val* var46 /* : nullable MType */;
8123 val* var_ret /* var ret: nullable MType */;
8124 val* var47 /* : null */;
8125 short int var48 /* : Bool */;
8126 val* var49 /* : nullable Object */;
8127 val* var50 /* : MType */;
8128 val* var51 /* : RuntimeVariable */;
8129 val* var52 /* : null */;
8130 short int var53 /* : Bool */;
8131 static val* varonce54;
8132 val* var55 /* : String */;
8133 char* var56 /* : NativeString */;
8134 long var57 /* : Int */;
8135 val* var58 /* : String */;
8136 static val* varonce59;
8137 val* var60 /* : String */;
8138 char* var61 /* : NativeString */;
8139 long var62 /* : Int */;
8140 val* var63 /* : String */;
8141 val* var64 /* : String */;
8142 static val* varonce65;
8143 val* var66 /* : String */;
8144 char* var67 /* : NativeString */;
8145 long var68 /* : Int */;
8146 val* var69 /* : String */;
8147 val* var70 /* : Array[Object] */;
8148 long var71 /* : Int */;
8149 val* var72 /* : NativeArray[Object] */;
8150 val* var73 /* : String */;
8151 static val* varonce74;
8152 val* var75 /* : String */;
8153 char* var76 /* : NativeString */;
8154 long var77 /* : Int */;
8155 val* var78 /* : String */;
8156 static val* varonce79;
8157 val* var80 /* : String */;
8158 char* var81 /* : NativeString */;
8159 long var82 /* : Int */;
8160 val* var83 /* : String */;
8161 static val* varonce84;
8162 val* var85 /* : String */;
8163 char* var86 /* : NativeString */;
8164 long var87 /* : Int */;
8165 val* var88 /* : String */;
8166 val* var89 /* : String */;
8167 static val* varonce90;
8168 val* var91 /* : String */;
8169 char* var92 /* : NativeString */;
8170 long var93 /* : Int */;
8171 val* var94 /* : String */;
8172 val* var95 /* : Array[Object] */;
8173 long var96 /* : Int */;
8174 val* var97 /* : NativeArray[Object] */;
8175 val* var98 /* : String */;
8176 var_v = p0;
8177 var_mpropdef = p1;
8178 var_arguments = p2;
8179 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternPropdef__n_extern]))(self) /* n_extern on <self:AExternMethPropdef>*/;
8180 var_nextern = var;
8181 var1 = NULL;
8182 if (var_nextern == NULL) {
8183 var2 = 1; /* is null */
8184 } else {
8185 var2 = 0; /* arg is null but recv is not */
8186 }
8187 if (var2){
8188 if (varonce) {
8189 var3 = varonce;
8190 } else {
8191 var4 = "fprintf(stderr, \"NOT YET IMPLEMENTED nitni for ";
8192 var5 = 47;
8193 var6 = string__NativeString__to_s_with_length(var4, var5);
8194 var3 = var6;
8195 varonce = var3;
8196 }
8197 if (varonce7) {
8198 var8 = varonce7;
8199 } else {
8200 var9 = " at ";
8201 var10 = 4;
8202 var11 = string__NativeString__to_s_with_length(var9, var10);
8203 var8 = var11;
8204 varonce7 = var8;
8205 }
8206 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
8207 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__Object__to_s]))(var12) /* to_s on <var12:Location>*/;
8208 if (varonce14) {
8209 var15 = varonce14;
8210 } else {
8211 var16 = "\\n\");";
8212 var17 = 5;
8213 var18 = string__NativeString__to_s_with_length(var16, var17);
8214 var15 = var18;
8215 varonce14 = var15;
8216 }
8217 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
8218 { /* var19 = array_instance Array[Object] */
8219 var20 = 5;
8220 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
8221 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var3;
8222 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_mpropdef;
8223 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var8;
8224 ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var13;
8225 ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15;
8226 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
8227 CHECK_NEW_array__Array(var19);
8228 }
8229 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
8230 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
8231 if (varonce23) {
8232 var24 = varonce23;
8233 } else {
8234 var25 = "exit(1);";
8235 var26 = 8;
8236 var27 = string__NativeString__to_s_with_length(var25, var26);
8237 var24 = var27;
8238 varonce23 = var24;
8239 }
8240 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var24) /* add on <var_v:AbstractCompilerVisitor>*/;
8241 goto RET_LABEL;
8242 } else {
8243 }
8244 var28 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
8245 var29 = 1;
8246 var30 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
8247 var31 = ((long (*)(val*))(var30->class->vft[COLOR_abstract_collection__Collection__length]))(var30) /* length on <var30:String>*/;
8248 var32 = 2;
8249 { /* Inline kernel#Int#- (var31,var32) */
8250 var35 = var31 - var32;
8251 var33 = var35;
8252 goto RET_LABEL34;
8253 RET_LABEL34:(void)0;
8254 }
8255 var36 = ((val* (*)(val*, long, long))(var28->class->vft[COLOR_string__AbstractString__substring]))(var28, var29, var33) /* substring on <var28:String>*/;
8256 var_externname = var36;
8257 var37 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
8258 var38 = ((val* (*)(val*))(var37->class->vft[COLOR_location__Location__file]))(var37) /* file on <var37:Location>*/;
8259 var39 = NULL;
8260 if (var38 == NULL) {
8261 var40 = 0; /* is null */
8262 } else {
8263 var40 = 1; /* arg is null and recv is not */
8264 }
8265 if (var40){
8266 var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
8267 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_location__Location__file]))(var41) /* file on <var41:Location>*/;
8268 if (var42 == NULL) {
8269 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1597);
8270 exit(1);
8271 } else {
8272 var43 = ((val* (*)(val*))(var42->class->vft[COLOR_location__SourceFile__filename]))(var42) /* filename on <var42:nullable SourceFile>*/;
8273 }
8274 var_file = var43;
8275 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_extern]))(var_v, var_file) /* add_extern on <var_v:AbstractCompilerVisitor>*/;
8276 } else {
8277 }
8278 var44 = NULL;
8279 var_res = var44;
8280 var45 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
8281 if (var45 == NULL) {
8282 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1601);
8283 exit(1);
8284 } else {
8285 var46 = ((val* (*)(val*))(var45->class->vft[COLOR_model__MSignature__return_mtype]))(var45) /* return_mtype on <var45:nullable MSignature>*/;
8286 }
8287 var_ret = var46;
8288 var47 = NULL;
8289 if (var_ret == NULL) {
8290 var48 = 0; /* is null */
8291 } else {
8292 var48 = 1; /* arg is null and recv is not */
8293 }
8294 if (var48){
8295 var49 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
8296 var50 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for]))(var_v, var_ret, var49) /* resolve_for on <var_v:AbstractCompilerVisitor>*/;
8297 var_ret = var50;
8298 var51 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_ret) /* new_var on <var_v:AbstractCompilerVisitor>*/;
8299 var_res = var51;
8300 } else {
8301 }
8302 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
8303 var52 = NULL;
8304 if (var_res == NULL) {
8305 var53 = 1; /* is null */
8306 } else {
8307 var53 = 0; /* arg is null but recv is not */
8308 }
8309 if (var53){
8310 if (varonce54) {
8311 var55 = varonce54;
8312 } else {
8313 var56 = "(";
8314 var57 = 1;
8315 var58 = string__NativeString__to_s_with_length(var56, var57);
8316 var55 = var58;
8317 varonce54 = var55;
8318 }
8319 if (varonce59) {
8320 var60 = varonce59;
8321 } else {
8322 var61 = ", ";
8323 var62 = 2;
8324 var63 = string__NativeString__to_s_with_length(var61, var62);
8325 var60 = var63;
8326 varonce59 = var60;
8327 }
8328 var64 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var60) /* join on <var_arguments:Array[RuntimeVariable]>*/;
8329 if (varonce65) {
8330 var66 = varonce65;
8331 } else {
8332 var67 = ");";
8333 var68 = 2;
8334 var69 = string__NativeString__to_s_with_length(var67, var68);
8335 var66 = var69;
8336 varonce65 = var66;
8337 }
8338 var70 = NEW_array__Array(&type_array__Arraykernel__Object);
8339 { /* var70 = array_instance Array[Object] */
8340 var71 = 4;
8341 var72 = NEW_array__NativeArray(var71, &type_array__NativeArraykernel__Object);
8342 ((struct instance_array__NativeArray*)var72)->values[0] = (val*) var_externname;
8343 ((struct instance_array__NativeArray*)var72)->values[1] = (val*) var55;
8344 ((struct instance_array__NativeArray*)var72)->values[2] = (val*) var64;
8345 ((struct instance_array__NativeArray*)var72)->values[3] = (val*) var66;
8346 ((void (*)(val*, val*, long))(var70->class->vft[COLOR_array__Array__with_native]))(var70, var72, var71) /* with_native on <var70:Array[Object]>*/;
8347 CHECK_NEW_array__Array(var70);
8348 }
8349 var73 = ((val* (*)(val*))(var70->class->vft[COLOR_string__Object__to_s]))(var70) /* to_s on <var70:Array[Object]>*/;
8350 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var73) /* add on <var_v:AbstractCompilerVisitor>*/;
8351 } else {
8352 if (varonce74) {
8353 var75 = varonce74;
8354 } else {
8355 var76 = " = ";
8356 var77 = 3;
8357 var78 = string__NativeString__to_s_with_length(var76, var77);
8358 var75 = var78;
8359 varonce74 = var75;
8360 }
8361 if (varonce79) {
8362 var80 = varonce79;
8363 } else {
8364 var81 = "(";
8365 var82 = 1;
8366 var83 = string__NativeString__to_s_with_length(var81, var82);
8367 var80 = var83;
8368 varonce79 = var80;
8369 }
8370 if (varonce84) {
8371 var85 = varonce84;
8372 } else {
8373 var86 = ", ";
8374 var87 = 2;
8375 var88 = string__NativeString__to_s_with_length(var86, var87);
8376 var85 = var88;
8377 varonce84 = var85;
8378 }
8379 var89 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var85) /* join on <var_arguments:Array[RuntimeVariable]>*/;
8380 if (varonce90) {
8381 var91 = varonce90;
8382 } else {
8383 var92 = ");";
8384 var93 = 2;
8385 var94 = string__NativeString__to_s_with_length(var92, var93);
8386 var91 = var94;
8387 varonce90 = var91;
8388 }
8389 var95 = NEW_array__Array(&type_array__Arraykernel__Object);
8390 { /* var95 = array_instance Array[Object] */
8391 var96 = 6;
8392 var97 = NEW_array__NativeArray(var96, &type_array__NativeArraykernel__Object);
8393 ((struct instance_array__NativeArray*)var97)->values[0] = (val*) var_res;
8394 ((struct instance_array__NativeArray*)var97)->values[1] = (val*) var75;
8395 ((struct instance_array__NativeArray*)var97)->values[2] = (val*) var_externname;
8396 ((struct instance_array__NativeArray*)var97)->values[3] = (val*) var80;
8397 ((struct instance_array__NativeArray*)var97)->values[4] = (val*) var89;
8398 ((struct instance_array__NativeArray*)var97)->values[5] = (val*) var91;
8399 ((void (*)(val*, val*, long))(var95->class->vft[COLOR_array__Array__with_native]))(var95, var97, var96) /* with_native on <var95:Array[Object]>*/;
8400 CHECK_NEW_array__Array(var95);
8401 }
8402 var98 = ((val* (*)(val*))(var95->class->vft[COLOR_string__Object__to_s]))(var95) /* to_s on <var95:Array[Object]>*/;
8403 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var98) /* add on <var_v:AbstractCompilerVisitor>*/;
8404 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var_res) /* ret on <var_v:AbstractCompilerVisitor>*/;
8405 }
8406 RET_LABEL:;
8407 }
8408 /* method abstract_compiler#AExternMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8409 void VIRTUAL_abstract_compiler__AExternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8410 abstract_compiler__AExternMethPropdef__compile_to_c(self, p0, p1, p2);
8411 RET_LABEL:;
8412 }
8413 /* method abstract_compiler#AExternInitPropdef#compile_to_c for (self: AExternInitPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8414 void abstract_compiler__AExternInitPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8415 val* var_v /* var v: AbstractCompilerVisitor */;
8416 val* var_mpropdef /* var mpropdef: MMethodDef */;
8417 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
8418 val* var /* : nullable TString */;
8419 val* var_nextern /* var nextern: nullable TString */;
8420 val* var1 /* : null */;
8421 short int var2 /* : Bool */;
8422 static val* varonce;
8423 val* var3 /* : String */;
8424 char* var4 /* : NativeString */;
8425 long var5 /* : Int */;
8426 val* var6 /* : String */;
8427 static val* varonce7;
8428 val* var8 /* : String */;
8429 char* var9 /* : NativeString */;
8430 long var10 /* : Int */;
8431 val* var11 /* : String */;
8432 val* var12 /* : Location */;
8433 val* var13 /* : String */;
8434 static val* varonce14;
8435 val* var15 /* : String */;
8436 char* var16 /* : NativeString */;
8437 long var17 /* : Int */;
8438 val* var18 /* : String */;
8439 val* var19 /* : Array[Object] */;
8440 long var20 /* : Int */;
8441 val* var21 /* : NativeArray[Object] */;
8442 val* var22 /* : String */;
8443 static val* varonce23;
8444 val* var24 /* : String */;
8445 char* var25 /* : NativeString */;
8446 long var26 /* : Int */;
8447 val* var27 /* : String */;
8448 val* var28 /* : String */;
8449 long var29 /* : Int */;
8450 val* var30 /* : String */;
8451 long var31 /* : Int */;
8452 long var32 /* : Int */;
8453 long var33 /* : Int */;
8454 long var35 /* : Int */;
8455 val* var36 /* : String */;
8456 val* var_externname /* var externname: nullable Object */;
8457 val* var37 /* : Location */;
8458 val* var38 /* : nullable SourceFile */;
8459 val* var39 /* : null */;
8460 short int var40 /* : Bool */;
8461 val* var41 /* : Location */;
8462 val* var42 /* : nullable SourceFile */;
8463 val* var43 /* : String */;
8464 val* var_file /* var file: String */;
8465 val* var44 /* : nullable Object */;
8466 val* var45 /* : MType */;
8467 val* var_ret /* var ret: MType */;
8468 val* var46 /* : RuntimeVariable */;
8469 val* var_res /* var res: RuntimeVariable */;
8470 val* var47 /* : nullable Object */;
8471 static val* varonce48;
8472 val* var49 /* : String */;
8473 char* var50 /* : NativeString */;
8474 long var51 /* : Int */;
8475 val* var52 /* : String */;
8476 static val* varonce53;
8477 val* var54 /* : String */;
8478 char* var55 /* : NativeString */;
8479 long var56 /* : Int */;
8480 val* var57 /* : String */;
8481 static val* varonce58;
8482 val* var59 /* : String */;
8483 char* var60 /* : NativeString */;
8484 long var61 /* : Int */;
8485 val* var62 /* : String */;
8486 val* var63 /* : String */;
8487 static val* varonce64;
8488 val* var65 /* : String */;
8489 char* var66 /* : NativeString */;
8490 long var67 /* : Int */;
8491 val* var68 /* : String */;
8492 val* var69 /* : Array[Object] */;
8493 long var70 /* : Int */;
8494 val* var71 /* : NativeArray[Object] */;
8495 val* var72 /* : String */;
8496 var_v = p0;
8497 var_mpropdef = p1;
8498 var_arguments = p2;
8499 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternPropdef__n_extern]))(self) /* n_extern on <self:AExternInitPropdef>*/;
8500 var_nextern = var;
8501 var1 = NULL;
8502 if (var_nextern == NULL) {
8503 var2 = 1; /* is null */
8504 } else {
8505 var2 = 0; /* arg is null but recv is not */
8506 }
8507 if (var2){
8508 if (varonce) {
8509 var3 = varonce;
8510 } else {
8511 var4 = "printf(\"NOT YET IMPLEMENTED nitni for ";
8512 var5 = 38;
8513 var6 = string__NativeString__to_s_with_length(var4, var5);
8514 var3 = var6;
8515 varonce = var3;
8516 }
8517 if (varonce7) {
8518 var8 = varonce7;
8519 } else {
8520 var9 = " at ";
8521 var10 = 4;
8522 var11 = string__NativeString__to_s_with_length(var9, var10);
8523 var8 = var11;
8524 varonce7 = var8;
8525 }
8526 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternInitPropdef>*/;
8527 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__Object__to_s]))(var12) /* to_s on <var12:Location>*/;
8528 if (varonce14) {
8529 var15 = varonce14;
8530 } else {
8531 var16 = "\\n\");";
8532 var17 = 5;
8533 var18 = string__NativeString__to_s_with_length(var16, var17);
8534 var15 = var18;
8535 varonce14 = var15;
8536 }
8537 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
8538 { /* var19 = array_instance Array[Object] */
8539 var20 = 5;
8540 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
8541 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var3;
8542 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_mpropdef;
8543 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var8;
8544 ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var13;
8545 ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15;
8546 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
8547 CHECK_NEW_array__Array(var19);
8548 }
8549 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
8550 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
8551 if (varonce23) {
8552 var24 = varonce23;
8553 } else {
8554 var25 = "exit(1);";
8555 var26 = 8;
8556 var27 = string__NativeString__to_s_with_length(var25, var26);
8557 var24 = var27;
8558 varonce23 = var24;
8559 }
8560 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var24) /* add on <var_v:AbstractCompilerVisitor>*/;
8561 goto RET_LABEL;
8562 } else {
8563 }
8564 var28 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
8565 var29 = 1;
8566 var30 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
8567 var31 = ((long (*)(val*))(var30->class->vft[COLOR_abstract_collection__Collection__length]))(var30) /* length on <var30:String>*/;
8568 var32 = 2;
8569 { /* Inline kernel#Int#- (var31,var32) */
8570 var35 = var31 - var32;
8571 var33 = var35;
8572 goto RET_LABEL34;
8573 RET_LABEL34:(void)0;
8574 }
8575 var36 = ((val* (*)(val*, long, long))(var28->class->vft[COLOR_string__AbstractString__substring]))(var28, var29, var33) /* substring on <var28:String>*/;
8576 var_externname = var36;
8577 var37 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternInitPropdef>*/;
8578 var38 = ((val* (*)(val*))(var37->class->vft[COLOR_location__Location__file]))(var37) /* file on <var37:Location>*/;
8579 var39 = NULL;
8580 if (var38 == NULL) {
8581 var40 = 0; /* is null */
8582 } else {
8583 var40 = 1; /* arg is null and recv is not */
8584 }
8585 if (var40){
8586 var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternInitPropdef>*/;
8587 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_location__Location__file]))(var41) /* file on <var41:Location>*/;
8588 if (var42 == NULL) {
8589 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1629);
8590 exit(1);
8591 } else {
8592 var43 = ((val* (*)(val*))(var42->class->vft[COLOR_location__SourceFile__filename]))(var42) /* filename on <var42:nullable SourceFile>*/;
8593 }
8594 var_file = var43;
8595 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_extern]))(var_v, var_file) /* add_extern on <var_v:AbstractCompilerVisitor>*/;
8596 } else {
8597 }
8598 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
8599 var44 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
8600 var45 = ((val* (*)(val*))(var44->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var44) /* mtype on <var44:nullable Object(RuntimeVariable)>*/;
8601 var_ret = var45;
8602 var46 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_ret) /* new_var on <var_v:AbstractCompilerVisitor>*/;
8603 var_res = var46;
8604 var47 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Sequence__shift]))(var_arguments) /* shift on <var_arguments:Array[RuntimeVariable]>*/;
8605 var47;
8606 if (varonce48) {
8607 var49 = varonce48;
8608 } else {
8609 var50 = " = ";
8610 var51 = 3;
8611 var52 = string__NativeString__to_s_with_length(var50, var51);
8612 var49 = var52;
8613 varonce48 = var49;
8614 }
8615 if (varonce53) {
8616 var54 = varonce53;
8617 } else {
8618 var55 = "(";
8619 var56 = 1;
8620 var57 = string__NativeString__to_s_with_length(var55, var56);
8621 var54 = var57;
8622 varonce53 = var54;
8623 }
8624 if (varonce58) {
8625 var59 = varonce58;
8626 } else {
8627 var60 = ", ";
8628 var61 = 2;
8629 var62 = string__NativeString__to_s_with_length(var60, var61);
8630 var59 = var62;
8631 varonce58 = var59;
8632 }
8633 var63 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var59) /* join on <var_arguments:Array[RuntimeVariable]>*/;
8634 if (varonce64) {
8635 var65 = varonce64;
8636 } else {
8637 var66 = ");";
8638 var67 = 2;
8639 var68 = string__NativeString__to_s_with_length(var66, var67);
8640 var65 = var68;
8641 varonce64 = var65;
8642 }
8643 var69 = NEW_array__Array(&type_array__Arraykernel__Object);
8644 { /* var69 = array_instance Array[Object] */
8645 var70 = 6;
8646 var71 = NEW_array__NativeArray(var70, &type_array__NativeArraykernel__Object);
8647 ((struct instance_array__NativeArray*)var71)->values[0] = (val*) var_res;
8648 ((struct instance_array__NativeArray*)var71)->values[1] = (val*) var49;
8649 ((struct instance_array__NativeArray*)var71)->values[2] = (val*) var_externname;
8650 ((struct instance_array__NativeArray*)var71)->values[3] = (val*) var54;
8651 ((struct instance_array__NativeArray*)var71)->values[4] = (val*) var63;
8652 ((struct instance_array__NativeArray*)var71)->values[5] = (val*) var65;
8653 ((void (*)(val*, val*, long))(var69->class->vft[COLOR_array__Array__with_native]))(var69, var71, var70) /* with_native on <var69:Array[Object]>*/;
8654 CHECK_NEW_array__Array(var69);
8655 }
8656 var72 = ((val* (*)(val*))(var69->class->vft[COLOR_string__Object__to_s]))(var69) /* to_s on <var69:Array[Object]>*/;
8657 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var72) /* add on <var_v:AbstractCompilerVisitor>*/;
8658 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var_res) /* ret on <var_v:AbstractCompilerVisitor>*/;
8659 RET_LABEL:;
8660 }
8661 /* method abstract_compiler#AExternInitPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8662 void VIRTUAL_abstract_compiler__AExternInitPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8663 abstract_compiler__AExternInitPropdef__compile_to_c(self, p0, p1, p2);
8664 RET_LABEL:;
8665 }
8666 /* method abstract_compiler#AAttrPropdef#compile_to_c for (self: AAttrPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8667 void abstract_compiler__AAttrPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8668 val* var_v /* var v: AbstractCompilerVisitor */;
8669 val* var_mpropdef /* var mpropdef: MMethodDef */;
8670 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
8671 long var /* : Int */;
8672 long var1 /* : Int */;
8673 short int var2 /* : Bool */;
8674 short int var4 /* : Bool */;
8675 val* var5 /* : nullable MPropDef */;
8676 val* var6 /* : MProperty */;
8677 val* var7 /* : nullable Object */;
8678 val* var8 /* : RuntimeVariable */;
8679 val* var_res /* var res: RuntimeVariable */;
8680 val* var9 /* : nullable Frame */;
8681 val* var10 /* : nullable RuntimeVariable */;
8682 val* var11 /* : nullable MPropDef */;
8683 val* var12 /* : MProperty */;
8684 val* var13 /* : nullable Object */;
8685 long var14 /* : Int */;
8686 val* var15 /* : nullable Object */;
8687 var_v = p0;
8688 var_mpropdef = p1;
8689 var_arguments = p2;
8690 var = ((long (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__length]))(var_arguments) /* length on <var_arguments:Array[RuntimeVariable]>*/;
8691 var1 = 1;
8692 { /* Inline kernel#Int#== (var,var1) */
8693 var4 = var == var1;
8694 var2 = var4;
8695 goto RET_LABEL3;
8696 RET_LABEL3:(void)0;
8697 }
8698 if (var2){
8699 var5 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
8700 if (var5 == NULL) {
8701 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1647);
8702 exit(1);
8703 } else {
8704 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MPropDef__mproperty]))(var5) /* mproperty on <var5:nullable MPropDef(nullable MAttributeDef)>*/;
8705 }
8706 var7 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
8707 var8 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute]))(var_v, var6, var7) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
8708 var_res = var8;
8709 var9 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
8710 if (var9 == NULL) {
8711 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1648);
8712 exit(1);
8713 } else {
8714 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var9) /* returnvar on <var9:nullable Frame>*/;
8715 }
8716 if (var10 == NULL) {
8717 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1648);
8718 exit(1);
8719 }
8720 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var10, var_res) /* assign on <var_v:AbstractCompilerVisitor>*/;
8721 } else {
8722 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
8723 if (var11 == NULL) {
8724 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1650);
8725 exit(1);
8726 } else {
8727 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mproperty]))(var11) /* mproperty on <var11:nullable MPropDef(nullable MAttributeDef)>*/;
8728 }
8729 var13 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
8730 var14 = 1;
8731 var15 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var14) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8732 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var12, var13, var15) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
8733 }
8734 RET_LABEL:;
8735 }
8736 /* method abstract_compiler#AAttrPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8737 void VIRTUAL_abstract_compiler__AAttrPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8738 abstract_compiler__AAttrPropdef__compile_to_c(self, p0, p1, p2);
8739 RET_LABEL:;
8740 }
8741 /* method abstract_compiler#AAttrPropdef#init_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
8742 void abstract_compiler__AAttrPropdef__init_expr(val* self, val* p0, val* p1) {
8743 val* var_v /* var v: AbstractCompilerVisitor */;
8744 val* var_recv /* var recv: RuntimeVariable */;
8745 val* var /* : nullable AExpr */;
8746 val* var_nexpr /* var nexpr: nullable AExpr */;
8747 val* var1 /* : null */;
8748 short int var2 /* : Bool */;
8749 val* var3 /* : nullable ANode */;
8750 val* var_oldnode /* var oldnode: nullable ANode */;
8751 val* var4 /* : nullable Frame */;
8752 val* var_old_frame /* var old_frame: nullable Frame */;
8753 val* var5 /* : Frame */;
8754 val* var6 /* : nullable MPropDef */;
8755 val* var7 /* : MType */;
8756 short int var8 /* : Bool */;
8757 int cltype;
8758 int idtype;
8759 val* var9 /* : Array[RuntimeVariable] */;
8760 long var10 /* : Int */;
8761 val* var_ /* var : Array[RuntimeVariable] */;
8762 val* var_frame /* var frame: Frame */;
8763 val* var11 /* : nullable MPropDef */;
8764 val* var12 /* : nullable MType */;
8765 val* var13 /* : RuntimeVariable */;
8766 val* var_value /* var value: RuntimeVariable */;
8767 val* var14 /* : nullable MPropDef */;
8768 val* var15 /* : MProperty */;
8769 var_v = p0;
8770 var_recv = p1;
8771 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(self) /* n_expr on <self:AAttrPropdef>*/;
8772 var_nexpr = var;
8773 var1 = NULL;
8774 if (var_nexpr == NULL) {
8775 var2 = 0; /* is null */
8776 } else {
8777 var2 = 1; /* arg is null and recv is not */
8778 }
8779 if (var2){
8780 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
8781 var_oldnode = var3;
8782 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, self) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
8783 var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
8784 var_old_frame = var4;
8785 var5 = NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame);
8786 var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
8787 if (var6 == NULL) {
8788 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1661);
8789 exit(1);
8790 }
8791 var7 = ((val* (*)(val*))(var_recv->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_recv) /* mtype on <var_recv:RuntimeVariable>*/;
8792 /* <var7:MType> isa MClassType */
8793 cltype = type_model__MClassType.color;
8794 idtype = type_model__MClassType.id;
8795 if(cltype >= var7->type->table_size) {
8796 var8 = 0;
8797 } else {
8798 var8 = var7->type->type_table[cltype] == idtype;
8799 }
8800 if (!var8) {
8801 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1661);
8802 exit(1);
8803 }
8804 var9 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
8805 var10 = 1;
8806 ((void (*)(val*, long))(var9->class->vft[COLOR_array__Array__with_capacity]))(var9, var10) /* with_capacity on <var9:Array[RuntimeVariable]>*/;
8807 CHECK_NEW_array__Array(var9);
8808 var_ = var9;
8809 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
8810 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_abstract_compiler__Frame__init]))(var5, var_v, var6, var7, var_) /* init on <var5:Frame>*/;
8811 CHECK_NEW_abstract_compiler__Frame(var5);
8812 var_frame = var5;
8813 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
8814 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
8815 if (var11 == NULL) {
8816 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1663);
8817 exit(1);
8818 } else {
8819 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var11) /* static_mtype on <var11:nullable MPropDef(nullable MAttributeDef)>*/;
8820 }
8821 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_nexpr, var12) /* expr on <var_v:AbstractCompilerVisitor>*/;
8822 var_value = var13;
8823 var14 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
8824 if (var14 == NULL) {
8825 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1664);
8826 exit(1);
8827 } else {
8828 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_model__MPropDef__mproperty]))(var14) /* mproperty on <var14:nullable MPropDef(nullable MAttributeDef)>*/;
8829 }
8830 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var15, var_recv, var_value) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
8831 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_old_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
8832 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
8833 } else {
8834 }
8835 RET_LABEL:;
8836 }
8837 /* method abstract_compiler#AAttrPropdef#init_expr for (self: Object, AbstractCompilerVisitor, RuntimeVariable) */
8838 void VIRTUAL_abstract_compiler__AAttrPropdef__init_expr(val* self, val* p0, val* p1) {
8839 abstract_compiler__AAttrPropdef__init_expr(self, p0, p1);
8840 RET_LABEL:;
8841 }
8842 /* method abstract_compiler#AAttrPropdef#check_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
8843 void abstract_compiler__AAttrPropdef__check_expr(val* self, val* p0, val* p1) {
8844 val* var_v /* var v: AbstractCompilerVisitor */;
8845 val* var_recv /* var recv: RuntimeVariable */;
8846 val* var /* : nullable AExpr */;
8847 val* var_nexpr /* var nexpr: nullable AExpr */;
8848 val* var1 /* : null */;
8849 short int var2 /* : Bool */;
8850 val* var3 /* : nullable ANode */;
8851 val* var_oldnode /* var oldnode: nullable ANode */;
8852 val* var4 /* : nullable Frame */;
8853 val* var_old_frame /* var old_frame: nullable Frame */;
8854 val* var5 /* : Frame */;
8855 val* var6 /* : nullable MPropDef */;
8856 val* var7 /* : MType */;
8857 short int var8 /* : Bool */;
8858 int cltype;
8859 int idtype;
8860 val* var9 /* : Array[RuntimeVariable] */;
8861 long var10 /* : Int */;
8862 val* var_ /* var : Array[RuntimeVariable] */;
8863 val* var_frame /* var frame: Frame */;
8864 val* var11 /* : nullable MPropDef */;
8865 val* var12 /* : MProperty */;
8866 val* var13 /* : RuntimeVariable */;
8867 var_v = p0;
8868 var_recv = p1;
8869 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(self) /* n_expr on <self:AAttrPropdef>*/;
8870 var_nexpr = var;
8871 var1 = NULL;
8872 if (var_nexpr == NULL) {
8873 var2 = 0; /* is null */
8874 } else {
8875 var2 = 1; /* arg is null and recv is not */
8876 }
8877 if (var2){
8878 goto RET_LABEL;
8879 } else {
8880 }
8881 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
8882 var_oldnode = var3;
8883 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, self) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
8884 var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
8885 var_old_frame = var4;
8886 var5 = NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame);
8887 var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
8888 if (var6 == NULL) {
8889 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1678);
8890 exit(1);
8891 }
8892 var7 = ((val* (*)(val*))(var_recv->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_recv) /* mtype on <var_recv:RuntimeVariable>*/;
8893 /* <var7:MType> isa MClassType */
8894 cltype = type_model__MClassType.color;
8895 idtype = type_model__MClassType.id;
8896 if(cltype >= var7->type->table_size) {
8897 var8 = 0;
8898 } else {
8899 var8 = var7->type->type_table[cltype] == idtype;
8900 }
8901 if (!var8) {
8902 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1678);
8903 exit(1);
8904 }
8905 var9 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
8906 var10 = 1;
8907 ((void (*)(val*, long))(var9->class->vft[COLOR_array__Array__with_capacity]))(var9, var10) /* with_capacity on <var9:Array[RuntimeVariable]>*/;
8908 CHECK_NEW_array__Array(var9);
8909 var_ = var9;
8910 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
8911 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_abstract_compiler__Frame__init]))(var5, var_v, var6, var7, var_) /* init on <var5:Frame>*/;
8912 CHECK_NEW_abstract_compiler__Frame(var5);
8913 var_frame = var5;
8914 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
8915 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
8916 if (var11 == NULL) {
8917 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1681);
8918 exit(1);
8919 } else {
8920 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mproperty]))(var11) /* mproperty on <var11:nullable MPropDef(nullable MAttributeDef)>*/;
8921 }
8922 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute]))(var_v, var12, var_recv) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
8923 var13;
8924 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_old_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
8925 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
8926 RET_LABEL:;
8927 }
8928 /* method abstract_compiler#AAttrPropdef#check_expr for (self: Object, AbstractCompilerVisitor, RuntimeVariable) */
8929 void VIRTUAL_abstract_compiler__AAttrPropdef__check_expr(val* self, val* p0, val* p1) {
8930 abstract_compiler__AAttrPropdef__check_expr(self, p0, p1);
8931 RET_LABEL:;
8932 }
8933 /* method abstract_compiler#AClassdef#compile_to_c for (self: AClassdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
8934 void abstract_compiler__AClassdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
8935 val* var_v /* var v: AbstractCompilerVisitor */;
8936 val* var_mpropdef /* var mpropdef: MMethodDef */;
8937 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
8938 val* var /* : nullable MMethodDef */;
8939 short int var1 /* : Bool */;
8940 val* var2 /* : nullable Collection[MMethod] */;
8941 val* var_super_inits /* var super_inits: nullable Collection[MMethod] */;
8942 val* var3 /* : null */;
8943 short int var4 /* : Bool */;
8944 long var5 /* : Int */;
8945 long var6 /* : Int */;
8946 short int var7 /* : Bool */;
8947 short int var9 /* : Bool */;
8948 val* var10 /* : Iterator[nullable Object] */;
8949 short int var11 /* : Bool */;
8950 val* var12 /* : nullable Object */;
8951 val* var_su /* var su: MMethod */;
8952 val* var13 /* : nullable RuntimeVariable */;
8953 val* var14 /* : nullable Object */;
8954 val* var_recv /* var recv: RuntimeVariable */;
8955 long var15 /* : Int */;
8956 long var_i /* var i: Int */;
8957 val* var16 /* : ANodes[APropdef] */;
8958 val* var17 /* : Iterator[nullable Object] */;
8959 short int var18 /* : Bool */;
8960 val* var19 /* : nullable Object */;
8961 val* var_npropdef /* var npropdef: APropdef */;
8962 short int var20 /* : Bool */;
8963 short int var21 /* : Bool */;
8964 int cltype;
8965 int idtype;
8966 short int var_ /* var : Bool */;
8967 val* var22 /* : nullable AExpr */;
8968 val* var23 /* : null */;
8969 short int var24 /* : Bool */;
8970 val* var25 /* : nullable MPropDef */;
8971 val* var26 /* : MProperty */;
8972 val* var27 /* : nullable Object */;
8973 long var28 /* : Int */;
8974 long var29 /* : Int */;
8975 long var31 /* : Int */;
8976 var_v = p0;
8977 var_mpropdef = p1;
8978 var_arguments = p2;
8979 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AClassdef__mfree_init]))(self) /* mfree_init on <self:AClassdef>*/;
8980 var1 = ((short int (*)(val*, val*))(var_mpropdef->class->vft[COLOR_kernel__Object___61d_61d]))(var_mpropdef, var) /* == on <var_mpropdef:MMethodDef>*/;
8981 if (var1){
8982 var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AClassdef__super_inits]))(self) /* super_inits on <self:AClassdef>*/;
8983 var_super_inits = var2;
8984 var3 = NULL;
8985 if (var_super_inits == NULL) {
8986 var4 = 0; /* is null */
8987 } else {
8988 var4 = 1; /* arg is null and recv is not */
8989 }
8990 if (var4){
8991 var5 = ((long (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__length]))(var_arguments) /* length on <var_arguments:Array[RuntimeVariable]>*/;
8992 var6 = 1;
8993 { /* Inline kernel#Int#== (var5,var6) */
8994 var9 = var5 == var6;
8995 var7 = var9;
8996 goto RET_LABEL8;
8997 RET_LABEL8:(void)0;
8998 }
8999 if (!var7) {
9000 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/abstract_compiler.nit", 1693);
9001 exit(1);
9002 }
9003 var10 = ((val* (*)(val*))(var_super_inits->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_super_inits) /* iterator on <var_super_inits:nullable Collection[MMethod](Collection[MMethod])>*/;
9004 for(;;) {
9005 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
9006 if(!var11) break;
9007 var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
9008 var_su = var12;
9009 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_su, var_arguments) /* send on <var_v:AbstractCompilerVisitor>*/;
9010 var13;
9011 CONTINUE_label: (void)0;
9012 ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
9013 }
9014 BREAK_label: (void)0;
9015 goto RET_LABEL;
9016 } else {
9017 }
9018 var14 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
9019 var_recv = var14;
9020 var15 = 1;
9021 var_i = var15;
9022 var16 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(self) /* n_propdefs on <self:AClassdef>*/;
9023 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on <var16:ANodes[APropdef]>*/;
9024 for(;;) {
9025 var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on <var17:Iterator[nullable Object]>*/;
9026 if(!var18) break;
9027 var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on <var17:Iterator[nullable Object]>*/;
9028 var_npropdef = var19;
9029 /* <var_npropdef:APropdef> isa AAttrPropdef */
9030 cltype = type_parser_nodes__AAttrPropdef.color;
9031 idtype = type_parser_nodes__AAttrPropdef.id;
9032 if(cltype >= var_npropdef->type->table_size) {
9033 var21 = 0;
9034 } else {
9035 var21 = var_npropdef->type->type_table[cltype] == idtype;
9036 }
9037 var_ = var21;
9038 if (var21){
9039 var22 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(var_npropdef) /* n_expr on <var_npropdef:APropdef(AAttrPropdef)>*/;
9040 var23 = NULL;
9041 if (var22 == NULL) {
9042 var24 = 1; /* is null */
9043 } else {
9044 var24 = 0; /* arg is null but recv is not */
9045 }
9046 var20 = var24;
9047 } else {
9048 var20 = var_;
9049 }
9050 if (var20){
9051 var25 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:APropdef(AAttrPropdef)>*/;
9052 if (var25 == NULL) {
9053 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1704);
9054 exit(1);
9055 } else {
9056 var26 = ((val* (*)(val*))(var25->class->vft[COLOR_model__MPropDef__mproperty]))(var25) /* mproperty on <var25:nullable MPropDef(nullable MAttributeDef)>*/;
9057 }
9058 var27 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var_i) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9059 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var26, var_recv, var27) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
9060 var28 = 1;
9061 { /* Inline kernel#Int#+ (var_i,var28) */
9062 var31 = var_i + var28;
9063 var29 = var31;
9064 goto RET_LABEL30;
9065 RET_LABEL30:(void)0;
9066 }
9067 var_i = var29;
9068 } else {
9069 }
9070 CONTINUE_label32: (void)0;
9071 ((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on <var17:Iterator[nullable Object]>*/;
9072 }
9073 BREAK_label32: (void)0;
9074 } else {
9075 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/abstract_compiler.nit", 1709);
9076 exit(1);
9077 }
9078 RET_LABEL:;
9079 }
9080 /* method abstract_compiler#AClassdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9081 void VIRTUAL_abstract_compiler__AClassdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
9082 abstract_compiler__AClassdef__compile_to_c(self, p0, p1, p2);
9083 RET_LABEL:;
9084 }
9085 /* method abstract_compiler#ADeferredMethPropdef#compile_to_c for (self: ADeferredMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9086 void abstract_compiler__ADeferredMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
9087 val* var_v /* var v: AbstractCompilerVisitor */;
9088 val* var_mpropdef /* var mpropdef: MMethodDef */;
9089 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
9090 static val* varonce;
9091 val* var /* : String */;
9092 char* var1 /* : NativeString */;
9093 long var2 /* : Int */;
9094 val* var3 /* : String */;
9095 var_v = p0;
9096 var_mpropdef = p1;
9097 var_arguments = p2;
9098 if (varonce) {
9099 var = varonce;
9100 } else {
9101 var1 = "Deferred method called";
9102 var2 = 22;
9103 var3 = string__NativeString__to_s_with_length(var1, var2);
9104 var = var3;
9105 varonce = var;
9106 }
9107 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort]))(var_v, var) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
9108 RET_LABEL:;
9109 }
9110 /* method abstract_compiler#ADeferredMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9111 void VIRTUAL_abstract_compiler__ADeferredMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
9112 abstract_compiler__ADeferredMethPropdef__compile_to_c(self, p0, p1, p2);
9113 RET_LABEL:;
9114 }
9115 /* method abstract_compiler#ADeferredMethPropdef#can_inline for (self: ADeferredMethPropdef): Bool */
9116 short int abstract_compiler__ADeferredMethPropdef__can_inline(val* self) {
9117 short int var /* : Bool */;
9118 short int var1 /* : Bool */;
9119 var1 = 1;
9120 var = var1;
9121 goto RET_LABEL;
9122 RET_LABEL:;
9123 return var;
9124 }
9125 /* method abstract_compiler#ADeferredMethPropdef#can_inline for (self: Object): Bool */
9126 short int VIRTUAL_abstract_compiler__ADeferredMethPropdef__can_inline(val* self) {
9127 short int var /* : Bool */;
9128 short int var1 /* : Bool */;
9129 var1 = abstract_compiler__ADeferredMethPropdef__can_inline(self);
9130 var = var1;
9131 RET_LABEL:;
9132 return var;
9133 }
9134 /* method abstract_compiler#AExpr#expr for (self: AExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9135 val* abstract_compiler__AExpr__expr(val* self, val* p0) {
9136 val* var /* : nullable RuntimeVariable */;
9137 val* var_v /* var v: AbstractCompilerVisitor */;
9138 static val* varonce;
9139 val* var1 /* : String */;
9140 char* var2 /* : NativeString */;
9141 long var3 /* : Int */;
9142 val* var4 /* : String */;
9143 val* var5 /* : String */;
9144 static val* varonce6;
9145 val* var7 /* : String */;
9146 char* var8 /* : NativeString */;
9147 long var9 /* : Int */;
9148 val* var10 /* : String */;
9149 val* var11 /* : Location */;
9150 val* var12 /* : String */;
9151 static val* varonce13;
9152 val* var14 /* : String */;
9153 char* var15 /* : NativeString */;
9154 long var16 /* : Int */;
9155 val* var17 /* : String */;
9156 val* var18 /* : Array[Object] */;
9157 long var19 /* : Int */;
9158 val* var20 /* : NativeArray[Object] */;
9159 val* var21 /* : String */;
9160 val* var22 /* : nullable MType */;
9161 val* var_mtype /* var mtype: nullable MType */;
9162 val* var23 /* : null */;
9163 short int var24 /* : Bool */;
9164 val* var25 /* : null */;
9165 val* var26 /* : RuntimeVariable */;
9166 val* var_res /* var res: RuntimeVariable */;
9167 static val* varonce27;
9168 val* var28 /* : String */;
9169 char* var29 /* : NativeString */;
9170 long var30 /* : Int */;
9171 val* var31 /* : String */;
9172 static val* varonce32;
9173 val* var33 /* : String */;
9174 char* var34 /* : NativeString */;
9175 long var35 /* : Int */;
9176 val* var36 /* : String */;
9177 val* var37 /* : String */;
9178 static val* varonce38;
9179 val* var39 /* : String */;
9180 char* var40 /* : NativeString */;
9181 long var41 /* : Int */;
9182 val* var42 /* : String */;
9183 val* var43 /* : Array[Object] */;
9184 long var44 /* : Int */;
9185 val* var45 /* : NativeArray[Object] */;
9186 val* var46 /* : String */;
9187 var_v = p0;
9188 if (varonce) {
9189 var1 = varonce;
9190 } else {
9191 var2 = "printf(\"NOT YET IMPLEMENTED ";
9192 var3 = 28;
9193 var4 = string__NativeString__to_s_with_length(var2, var3);
9194 var1 = var4;
9195 varonce = var1;
9196 }
9197 var5 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:AExpr>*/;
9198 if (varonce6) {
9199 var7 = varonce6;
9200 } else {
9201 var8 = ":";
9202 var9 = 1;
9203 var10 = string__NativeString__to_s_with_length(var8, var9);
9204 var7 = var10;
9205 varonce6 = var7;
9206 }
9207 var11 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExpr>*/;
9208 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Location>*/;
9209 if (varonce13) {
9210 var14 = varonce13;
9211 } else {
9212 var15 = "\\n\");";
9213 var16 = 5;
9214 var17 = string__NativeString__to_s_with_length(var15, var16);
9215 var14 = var17;
9216 varonce13 = var14;
9217 }
9218 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
9219 { /* var18 = array_instance Array[Object] */
9220 var19 = 5;
9221 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
9222 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var1;
9223 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var5;
9224 ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var7;
9225 ((struct instance_array__NativeArray*)var20)->values[3] = (val*) var12;
9226 ((struct instance_array__NativeArray*)var20)->values[4] = (val*) var14;
9227 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
9228 CHECK_NEW_array__Array(var18);
9229 }
9230 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
9231 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var21) /* add on <var_v:AbstractCompilerVisitor>*/;
9232 var22 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
9233 var_mtype = var22;
9234 var23 = NULL;
9235 if (var_mtype == NULL) {
9236 var24 = 1; /* is null */
9237 } else {
9238 var24 = 0; /* arg is null but recv is not */
9239 }
9240 if (var24){
9241 var25 = NULL;
9242 var = var25;
9243 goto RET_LABEL;
9244 } else {
9245 var26 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_mtype) /* new_var on <var_v:AbstractCompilerVisitor>*/;
9246 var_res = var26;
9247 if (varonce27) {
9248 var28 = varonce27;
9249 } else {
9250 var29 = "/* ";
9251 var30 = 3;
9252 var31 = string__NativeString__to_s_with_length(var29, var30);
9253 var28 = var31;
9254 varonce27 = var28;
9255 }
9256 if (varonce32) {
9257 var33 = varonce32;
9258 } else {
9259 var34 = " = NOT YET ";
9260 var35 = 11;
9261 var36 = string__NativeString__to_s_with_length(var34, var35);
9262 var33 = var36;
9263 varonce32 = var33;
9264 }
9265 var37 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:AExpr>*/;
9266 if (varonce38) {
9267 var39 = varonce38;
9268 } else {
9269 var40 = " */";
9270 var41 = 3;
9271 var42 = string__NativeString__to_s_with_length(var40, var41);
9272 var39 = var42;
9273 varonce38 = var39;
9274 }
9275 var43 = NEW_array__Array(&type_array__Arraykernel__Object);
9276 { /* var43 = array_instance Array[Object] */
9277 var44 = 5;
9278 var45 = NEW_array__NativeArray(var44, &type_array__NativeArraykernel__Object);
9279 ((struct instance_array__NativeArray*)var45)->values[0] = (val*) var28;
9280 ((struct instance_array__NativeArray*)var45)->values[1] = (val*) var_res;
9281 ((struct instance_array__NativeArray*)var45)->values[2] = (val*) var33;
9282 ((struct instance_array__NativeArray*)var45)->values[3] = (val*) var37;
9283 ((struct instance_array__NativeArray*)var45)->values[4] = (val*) var39;
9284 ((void (*)(val*, val*, long))(var43->class->vft[COLOR_array__Array__with_native]))(var43, var45, var44) /* with_native on <var43:Array[Object]>*/;
9285 CHECK_NEW_array__Array(var43);
9286 }
9287 var46 = ((val* (*)(val*))(var43->class->vft[COLOR_string__Object__to_s]))(var43) /* to_s on <var43:Array[Object]>*/;
9288 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var46) /* add on <var_v:AbstractCompilerVisitor>*/;
9289 var = var_res;
9290 goto RET_LABEL;
9291 }
9292 RET_LABEL:;
9293 return var;
9294 }
9295 /* method abstract_compiler#AExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9296 val* VIRTUAL_abstract_compiler__AExpr__expr(val* self, val* p0) {
9297 val* var /* : nullable RuntimeVariable */;
9298 val* var1 /* : nullable RuntimeVariable */;
9299 var1 = abstract_compiler__AExpr__expr(self, p0);
9300 var = var1;
9301 RET_LABEL:;
9302 return var;
9303 }
9304 /* method abstract_compiler#AExpr#stmt for (self: AExpr, AbstractCompilerVisitor) */
9305 void abstract_compiler__AExpr__stmt(val* self, val* p0) {
9306 val* var_v /* var v: AbstractCompilerVisitor */;
9307 val* var /* : nullable RuntimeVariable */;
9308 val* var_res /* var res: nullable RuntimeVariable */;
9309 val* var1 /* : null */;
9310 short int var2 /* : Bool */;
9311 static val* varonce;
9312 val* var3 /* : String */;
9313 char* var4 /* : NativeString */;
9314 long var5 /* : Int */;
9315 val* var6 /* : String */;
9316 val* var7 /* : Array[Object] */;
9317 long var8 /* : Int */;
9318 val* var9 /* : NativeArray[Object] */;
9319 val* var10 /* : String */;
9320 var_v = p0;
9321 var = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AExpr__expr]))(self, var_v) /* expr on <self:AExpr>*/;
9322 var_res = var;
9323 var1 = NULL;
9324 if (var_res == NULL) {
9325 var2 = 0; /* is null */
9326 } else {
9327 var2 = 1; /* arg is null and recv is not */
9328 }
9329 if (var2){
9330 if (varonce) {
9331 var3 = varonce;
9332 } else {
9333 var4 = ";";
9334 var5 = 1;
9335 var6 = string__NativeString__to_s_with_length(var4, var5);
9336 var3 = var6;
9337 varonce = var3;
9338 }
9339 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9340 { /* var7 = array_instance Array[Object] */
9341 var8 = 2;
9342 var9 = NEW_array__NativeArray(var8, &type_array__NativeArraykernel__Object);
9343 ((struct instance_array__NativeArray*)var9)->values[0] = (val*) var_res;
9344 ((struct instance_array__NativeArray*)var9)->values[1] = (val*) var3;
9345 ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
9346 CHECK_NEW_array__Array(var7);
9347 }
9348 var10 = ((val* (*)(val*))(var7->class->vft[COLOR_string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
9349 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var10) /* add on <var_v:AbstractCompilerVisitor>*/;
9350 } else {
9351 }
9352 RET_LABEL:;
9353 }
9354 /* method abstract_compiler#AExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9355 void VIRTUAL_abstract_compiler__AExpr__stmt(val* self, val* p0) {
9356 abstract_compiler__AExpr__stmt(self, p0);
9357 RET_LABEL:;
9358 }
9359 /* method abstract_compiler#ABlockExpr#stmt for (self: ABlockExpr, AbstractCompilerVisitor) */
9360 void abstract_compiler__ABlockExpr__stmt(val* self, val* p0) {
9361 val* var_v /* var v: AbstractCompilerVisitor */;
9362 val* var /* : ANodes[AExpr] */;
9363 val* var1 /* : Iterator[nullable Object] */;
9364 short int var2 /* : Bool */;
9365 val* var3 /* : nullable Object */;
9366 val* var_e /* var e: AExpr */;
9367 var_v = p0;
9368 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
9369 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[AExpr]>*/;
9370 for(;;) {
9371 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
9372 if(!var2) break;
9373 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
9374 var_e = var3;
9375 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var_e) /* stmt on <var_v:AbstractCompilerVisitor>*/;
9376 CONTINUE_label: (void)0;
9377 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
9378 }
9379 BREAK_label: (void)0;
9380 RET_LABEL:;
9381 }
9382 /* method abstract_compiler#ABlockExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9383 void VIRTUAL_abstract_compiler__ABlockExpr__stmt(val* self, val* p0) {
9384 abstract_compiler__ABlockExpr__stmt(self, p0);
9385 RET_LABEL:;
9386 }
9387 /* method abstract_compiler#ABlockExpr#expr for (self: ABlockExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9388 val* abstract_compiler__ABlockExpr__expr(val* self, val* p0) {
9389 val* var /* : nullable RuntimeVariable */;
9390 val* var_v /* var v: AbstractCompilerVisitor */;
9391 val* var1 /* : ANodes[AExpr] */;
9392 val* var2 /* : nullable Object */;
9393 val* var_last /* var last: AExpr */;
9394 val* var3 /* : ANodes[AExpr] */;
9395 val* var4 /* : Iterator[nullable Object] */;
9396 short int var5 /* : Bool */;
9397 val* var6 /* : nullable Object */;
9398 val* var_e /* var e: AExpr */;
9399 short int var7 /* : Bool */;
9400 val* var8 /* : null */;
9401 val* var9 /* : RuntimeVariable */;
9402 var_v = p0;
9403 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
9404 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__SequenceRead__last]))(var1) /* last on <var1:ANodes[AExpr]>*/;
9405 var_last = var2;
9406 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
9407 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:ANodes[AExpr]>*/;
9408 for(;;) {
9409 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
9410 if(!var5) break;
9411 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
9412 var_e = var6;
9413 var7 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___61d_61d]))(var_e, var_last) /* == on <var_e:AExpr>*/;
9414 if (var7){
9415 goto BREAK_label;
9416 } else {
9417 }
9418 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var_e) /* stmt on <var_v:AbstractCompilerVisitor>*/;
9419 CONTINUE_label: (void)0;
9420 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
9421 }
9422 BREAK_label: (void)0;
9423 var8 = NULL;
9424 var9 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_last, var8) /* expr on <var_v:AbstractCompilerVisitor>*/;
9425 var = var9;
9426 goto RET_LABEL;
9427 RET_LABEL:;
9428 return var;
9429 }
9430 /* method abstract_compiler#ABlockExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9431 val* VIRTUAL_abstract_compiler__ABlockExpr__expr(val* self, val* p0) {
9432 val* var /* : nullable RuntimeVariable */;
9433 val* var1 /* : nullable RuntimeVariable */;
9434 var1 = abstract_compiler__ABlockExpr__expr(self, p0);
9435 var = var1;
9436 RET_LABEL:;
9437 return var;
9438 }
9439 /* method abstract_compiler#AVardeclExpr#stmt for (self: AVardeclExpr, AbstractCompilerVisitor) */
9440 void abstract_compiler__AVardeclExpr__stmt(val* self, val* p0) {
9441 val* var_v /* var v: AbstractCompilerVisitor */;
9442 val* var /* : nullable Variable */;
9443 val* var_variable /* var variable: Variable */;
9444 val* var1 /* : nullable AExpr */;
9445 val* var_ne /* var ne: nullable AExpr */;
9446 val* var2 /* : null */;
9447 short int var3 /* : Bool */;
9448 val* var4 /* : nullable MType */;
9449 val* var5 /* : RuntimeVariable */;
9450 val* var_i /* var i: RuntimeVariable */;
9451 val* var6 /* : RuntimeVariable */;
9452 var_v = p0;
9453 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVardeclExpr__variable]))(self) /* variable on <self:AVardeclExpr>*/;
9454 if (var == NULL) {
9455 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1763);
9456 exit(1);
9457 }
9458 var_variable = var;
9459 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AVardeclExpr__n_expr]))(self) /* n_expr on <self:AVardeclExpr>*/;
9460 var_ne = var1;
9461 var2 = NULL;
9462 if (var_ne == NULL) {
9463 var3 = 0; /* is null */
9464 } else {
9465 var3 = 1; /* arg is null and recv is not */
9466 }
9467 if (var3){
9468 var4 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
9469 var5 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_ne, var4) /* expr on <var_v:AbstractCompilerVisitor>*/;
9470 var_i = var5;
9471 var6 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
9472 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var6, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
9473 } else {
9474 }
9475 RET_LABEL:;
9476 }
9477 /* method abstract_compiler#AVardeclExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9478 void VIRTUAL_abstract_compiler__AVardeclExpr__stmt(val* self, val* p0) {
9479 abstract_compiler__AVardeclExpr__stmt(self, p0);
9480 RET_LABEL:;
9481 }
9482 /* method abstract_compiler#AVarExpr#expr for (self: AVarExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9483 val* abstract_compiler__AVarExpr__expr(val* self, val* p0) {
9484 val* var /* : nullable RuntimeVariable */;
9485 val* var_v /* var v: AbstractCompilerVisitor */;
9486 val* var1 /* : nullable Variable */;
9487 val* var2 /* : RuntimeVariable */;
9488 val* var_res /* var res: RuntimeVariable */;
9489 val* var3 /* : nullable MType */;
9490 val* var_mtype /* var mtype: MType */;
9491 val* var4 /* : RuntimeVariable */;
9492 var_v = p0;
9493 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarExpr>*/;
9494 if (var1 == NULL) {
9495 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1775);
9496 exit(1);
9497 }
9498 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var1) /* variable on <var_v:AbstractCompilerVisitor>*/;
9499 var_res = var2;
9500 var3 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AVarExpr>*/;
9501 if (var3 == NULL) {
9502 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1776);
9503 exit(1);
9504 }
9505 var_mtype = var3;
9506 var4 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt]))(var_v, var_res, var_mtype) /* autoadapt on <var_v:AbstractCompilerVisitor>*/;
9507 var = var4;
9508 goto RET_LABEL;
9509 RET_LABEL:;
9510 return var;
9511 }
9512 /* method abstract_compiler#AVarExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9513 val* VIRTUAL_abstract_compiler__AVarExpr__expr(val* self, val* p0) {
9514 val* var /* : nullable RuntimeVariable */;
9515 val* var1 /* : nullable RuntimeVariable */;
9516 var1 = abstract_compiler__AVarExpr__expr(self, p0);
9517 var = var1;
9518 RET_LABEL:;
9519 return var;
9520 }
9521 /* method abstract_compiler#AVarAssignExpr#stmt for (self: AVarAssignExpr, AbstractCompilerVisitor) */
9522 void abstract_compiler__AVarAssignExpr__stmt(val* self, val* p0) {
9523 val* var_v /* var v: AbstractCompilerVisitor */;
9524 val* var /* : nullable Variable */;
9525 val* var_variable /* var variable: Variable */;
9526 val* var1 /* : AExpr */;
9527 val* var2 /* : nullable MType */;
9528 val* var3 /* : RuntimeVariable */;
9529 val* var_i /* var i: RuntimeVariable */;
9530 val* var4 /* : RuntimeVariable */;
9531 var_v = p0;
9532 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarAssignExpr>*/;
9533 if (var == NULL) {
9534 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1784);
9535 exit(1);
9536 }
9537 var_variable = var;
9538 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on <self:AVarAssignExpr>*/;
9539 var2 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
9540 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
9541 var_i = var3;
9542 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
9543 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var4, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
9544 RET_LABEL:;
9545 }
9546 /* method abstract_compiler#AVarAssignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9547 void VIRTUAL_abstract_compiler__AVarAssignExpr__stmt(val* self, val* p0) {
9548 abstract_compiler__AVarAssignExpr__stmt(self, p0);
9549 RET_LABEL:;
9550 }
9551 /* method abstract_compiler#AVarAssignExpr#expr for (self: AVarAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9552 val* abstract_compiler__AVarAssignExpr__expr(val* self, val* p0) {
9553 val* var /* : nullable RuntimeVariable */;
9554 val* var_v /* var v: AbstractCompilerVisitor */;
9555 val* var1 /* : nullable Variable */;
9556 val* var_variable /* var variable: Variable */;
9557 val* var2 /* : AExpr */;
9558 val* var3 /* : nullable MType */;
9559 val* var4 /* : RuntimeVariable */;
9560 val* var_i /* var i: RuntimeVariable */;
9561 val* var5 /* : RuntimeVariable */;
9562 var_v = p0;
9563 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarAssignExpr>*/;
9564 if (var1 == NULL) {
9565 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1790);
9566 exit(1);
9567 }
9568 var_variable = var1;
9569 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on <self:AVarAssignExpr>*/;
9570 var3 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
9571 var4 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var2, var3) /* expr on <var_v:AbstractCompilerVisitor>*/;
9572 var_i = var4;
9573 var5 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
9574 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var5, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
9575 var = var_i;
9576 goto RET_LABEL;
9577 RET_LABEL:;
9578 return var;
9579 }
9580 /* method abstract_compiler#AVarAssignExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9581 val* VIRTUAL_abstract_compiler__AVarAssignExpr__expr(val* self, val* p0) {
9582 val* var /* : nullable RuntimeVariable */;
9583 val* var1 /* : nullable RuntimeVariable */;
9584 var1 = abstract_compiler__AVarAssignExpr__expr(self, p0);
9585 var = var1;
9586 RET_LABEL:;
9587 return var;
9588 }
9589 /* method abstract_compiler#AVarReassignExpr#stmt for (self: AVarReassignExpr, AbstractCompilerVisitor) */
9590 void abstract_compiler__AVarReassignExpr__stmt(val* self, val* p0) {
9591 val* var_v /* var v: AbstractCompilerVisitor */;
9592 val* var /* : nullable Variable */;
9593 val* var_variable /* var variable: Variable */;
9594 val* var1 /* : RuntimeVariable */;
9595 val* var_vari /* var vari: RuntimeVariable */;
9596 val* var2 /* : AExpr */;
9597 val* var3 /* : nullable MType */;
9598 val* var4 /* : RuntimeVariable */;
9599 val* var_value /* var value: RuntimeVariable */;
9600 val* var5 /* : nullable CallSite */;
9601 val* var6 /* : Array[RuntimeVariable] */;
9602 long var7 /* : Int */;
9603 val* var8 /* : NativeArray[RuntimeVariable] */;
9604 val* var9 /* : nullable RuntimeVariable */;
9605 val* var_res /* var res: nullable RuntimeVariable */;
9606 val* var10 /* : null */;
9607 short int var11 /* : Bool */;
9608 val* var12 /* : RuntimeVariable */;
9609 var_v = p0;
9610 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarReassignExpr>*/;
9611 if (var == NULL) {
9612 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1800);
9613 exit(1);
9614 }
9615 var_variable = var;
9616 var1 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
9617 var_vari = var1;
9618 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:AVarReassignExpr>*/;
9619 var3 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
9620 var4 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var2, var3) /* expr on <var_v:AbstractCompilerVisitor>*/;
9621 var_value = var4;
9622 var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on <self:AVarReassignExpr>*/;
9623 if (var5 == NULL) {
9624 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1803);
9625 exit(1);
9626 }
9627 var6 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
9628 { /* var6 = array_instance Array[RuntimeVariable] */
9629 var7 = 2;
9630 var8 = NEW_array__NativeArray(var7, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
9631 ((struct instance_array__NativeArray*)var8)->values[0] = (val*) var_vari;
9632 ((struct instance_array__NativeArray*)var8)->values[1] = (val*) var_value;
9633 ((void (*)(val*, val*, long))(var6->class->vft[COLOR_array__Array__with_native]))(var6, var8, var7) /* with_native on <var6:Array[RuntimeVariable]>*/;
9634 CHECK_NEW_array__Array(var6);
9635 }
9636 var9 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var5, var6) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
9637 var_res = var9;
9638 var10 = NULL;
9639 if (var_res == NULL) {
9640 var11 = 0; /* is null */
9641 } else {
9642 var11 = 1; /* arg is null and recv is not */
9643 }
9644 if (!var11) {
9645 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/abstract_compiler.nit", 1804);
9646 exit(1);
9647 }
9648 var12 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
9649 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var12, var_res) /* assign on <var_v:AbstractCompilerVisitor>*/;
9650 RET_LABEL:;
9651 }
9652 /* method abstract_compiler#AVarReassignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9653 void VIRTUAL_abstract_compiler__AVarReassignExpr__stmt(val* self, val* p0) {
9654 abstract_compiler__AVarReassignExpr__stmt(self, p0);
9655 RET_LABEL:;
9656 }
9657 /* method abstract_compiler#ASelfExpr#expr for (self: ASelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9658 val* abstract_compiler__ASelfExpr__expr(val* self, val* p0) {
9659 val* var /* : nullable RuntimeVariable */;
9660 val* var_v /* var v: AbstractCompilerVisitor */;
9661 val* var1 /* : nullable Frame */;
9662 val* var2 /* : Array[RuntimeVariable] */;
9663 val* var3 /* : nullable Object */;
9664 var_v = p0;
9665 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
9666 if (var1 == NULL) {
9667 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1810);
9668 exit(1);
9669 } else {
9670 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_compiler__Frame__arguments]))(var1) /* arguments on <var1:nullable Frame>*/;
9671 }
9672 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__first]))(var2) /* first on <var2:Array[RuntimeVariable]>*/;
9673 var = var3;
9674 goto RET_LABEL;
9675 RET_LABEL:;
9676 return var;
9677 }
9678 /* method abstract_compiler#ASelfExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9679 val* VIRTUAL_abstract_compiler__ASelfExpr__expr(val* self, val* p0) {
9680 val* var /* : nullable RuntimeVariable */;
9681 val* var1 /* : nullable RuntimeVariable */;
9682 var1 = abstract_compiler__ASelfExpr__expr(self, p0);
9683 var = var1;
9684 RET_LABEL:;
9685 return var;
9686 }
9687 /* method abstract_compiler#AContinueExpr#stmt for (self: AContinueExpr, AbstractCompilerVisitor) */
9688 void abstract_compiler__AContinueExpr__stmt(val* self, val* p0) {
9689 val* var_v /* var v: AbstractCompilerVisitor */;
9690 static val* varonce;
9691 val* var /* : String */;
9692 char* var1 /* : NativeString */;
9693 long var2 /* : Int */;
9694 val* var3 /* : String */;
9695 val* var4 /* : nullable EscapeMark */;
9696 val* var5 /* : String */;
9697 static val* varonce6;
9698 val* var7 /* : String */;
9699 char* var8 /* : NativeString */;
9700 long var9 /* : Int */;
9701 val* var10 /* : String */;
9702 val* var11 /* : Array[Object] */;
9703 long var12 /* : Int */;
9704 val* var13 /* : NativeArray[Object] */;
9705 val* var14 /* : String */;
9706 var_v = p0;
9707 if (varonce) {
9708 var = varonce;
9709 } else {
9710 var1 = "goto CONTINUE_";
9711 var2 = 14;
9712 var3 = string__NativeString__to_s_with_length(var1, var2);
9713 var = var3;
9714 varonce = var;
9715 }
9716 var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AContinueExpr__escapemark]))(self) /* escapemark on <self:AContinueExpr>*/;
9717 var5 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var4) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
9718 if (varonce6) {
9719 var7 = varonce6;
9720 } else {
9721 var8 = ";";
9722 var9 = 1;
9723 var10 = string__NativeString__to_s_with_length(var8, var9);
9724 var7 = var10;
9725 varonce6 = var7;
9726 }
9727 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
9728 { /* var11 = array_instance Array[Object] */
9729 var12 = 3;
9730 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
9731 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var;
9732 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var5;
9733 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var7;
9734 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
9735 CHECK_NEW_array__Array(var11);
9736 }
9737 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
9738 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var14) /* add on <var_v:AbstractCompilerVisitor>*/;
9739 RET_LABEL:;
9740 }
9741 /* method abstract_compiler#AContinueExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9742 void VIRTUAL_abstract_compiler__AContinueExpr__stmt(val* self, val* p0) {
9743 abstract_compiler__AContinueExpr__stmt(self, p0);
9744 RET_LABEL:;
9745 }
9746 /* method abstract_compiler#ABreakExpr#stmt for (self: ABreakExpr, AbstractCompilerVisitor) */
9747 void abstract_compiler__ABreakExpr__stmt(val* self, val* p0) {
9748 val* var_v /* var v: AbstractCompilerVisitor */;
9749 static val* varonce;
9750 val* var /* : String */;
9751 char* var1 /* : NativeString */;
9752 long var2 /* : Int */;
9753 val* var3 /* : String */;
9754 val* var4 /* : nullable EscapeMark */;
9755 val* var5 /* : String */;
9756 static val* varonce6;
9757 val* var7 /* : String */;
9758 char* var8 /* : NativeString */;
9759 long var9 /* : Int */;
9760 val* var10 /* : String */;
9761 val* var11 /* : Array[Object] */;
9762 long var12 /* : Int */;
9763 val* var13 /* : NativeArray[Object] */;
9764 val* var14 /* : String */;
9765 var_v = p0;
9766 if (varonce) {
9767 var = varonce;
9768 } else {
9769 var1 = "goto BREAK_";
9770 var2 = 11;
9771 var3 = string__NativeString__to_s_with_length(var1, var2);
9772 var = var3;
9773 varonce = var;
9774 }
9775 var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ABreakExpr__escapemark]))(self) /* escapemark on <self:ABreakExpr>*/;
9776 var5 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var4) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
9777 if (varonce6) {
9778 var7 = varonce6;
9779 } else {
9780 var8 = ";";
9781 var9 = 1;
9782 var10 = string__NativeString__to_s_with_length(var8, var9);
9783 var7 = var10;
9784 varonce6 = var7;
9785 }
9786 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
9787 { /* var11 = array_instance Array[Object] */
9788 var12 = 3;
9789 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
9790 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var;
9791 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var5;
9792 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var7;
9793 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
9794 CHECK_NEW_array__Array(var11);
9795 }
9796 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
9797 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var14) /* add on <var_v:AbstractCompilerVisitor>*/;
9798 RET_LABEL:;
9799 }
9800 /* method abstract_compiler#ABreakExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9801 void VIRTUAL_abstract_compiler__ABreakExpr__stmt(val* self, val* p0) {
9802 abstract_compiler__ABreakExpr__stmt(self, p0);
9803 RET_LABEL:;
9804 }
9805 /* method abstract_compiler#AReturnExpr#stmt for (self: AReturnExpr, AbstractCompilerVisitor) */
9806 void abstract_compiler__AReturnExpr__stmt(val* self, val* p0) {
9807 val* var_v /* var v: AbstractCompilerVisitor */;
9808 val* var /* : nullable AExpr */;
9809 val* var_nexpr /* var nexpr: nullable AExpr */;
9810 val* var1 /* : null */;
9811 short int var2 /* : Bool */;
9812 val* var3 /* : nullable Frame */;
9813 val* var4 /* : nullable RuntimeVariable */;
9814 val* var_returnvar /* var returnvar: RuntimeVariable */;
9815 val* var5 /* : MType */;
9816 val* var6 /* : RuntimeVariable */;
9817 val* var_i /* var i: RuntimeVariable */;
9818 static val* varonce;
9819 val* var7 /* : String */;
9820 char* var8 /* : NativeString */;
9821 long var9 /* : Int */;
9822 val* var10 /* : String */;
9823 val* var11 /* : nullable Frame */;
9824 val* var12 /* : nullable String */;
9825 static val* varonce13;
9826 val* var14 /* : String */;
9827 char* var15 /* : NativeString */;
9828 long var16 /* : Int */;
9829 val* var17 /* : String */;
9830 val* var18 /* : Array[Object] */;
9831 long var19 /* : Int */;
9832 val* var20 /* : NativeArray[Object] */;
9833 val* var21 /* : String */;
9834 var_v = p0;
9835 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReturnExpr__n_expr]))(self) /* n_expr on <self:AReturnExpr>*/;
9836 var_nexpr = var;
9837 var1 = NULL;
9838 if (var_nexpr == NULL) {
9839 var2 = 0; /* is null */
9840 } else {
9841 var2 = 1; /* arg is null and recv is not */
9842 }
9843 if (var2){
9844 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
9845 if (var3 == NULL) {
9846 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1826);
9847 exit(1);
9848 } else {
9849 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var3) /* returnvar on <var3:nullable Frame>*/;
9850 }
9851 if (var4 == NULL) {
9852 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1826);
9853 exit(1);
9854 }
9855 var_returnvar = var4;
9856 var5 = ((val* (*)(val*))(var_returnvar->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_returnvar) /* mtype on <var_returnvar:RuntimeVariable>*/;
9857 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_nexpr, var5) /* expr on <var_v:AbstractCompilerVisitor>*/;
9858 var_i = var6;
9859 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_returnvar, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
9860 } else {
9861 }
9862 if (varonce) {
9863 var7 = varonce;
9864 } else {
9865 var8 = "goto ";
9866 var9 = 5;
9867 var10 = string__NativeString__to_s_with_length(var8, var9);
9868 var7 = var10;
9869 varonce = var7;
9870 }
9871 var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
9872 if (var11 == NULL) {
9873 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/abstract_compiler.nit", 1830);
9874 exit(1);
9875 } else {
9876 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_compiler__Frame__returnlabel]))(var11) /* returnlabel on <var11:nullable Frame>*/;
9877 }
9878 if (var12 == NULL) {
9879 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/abstract_compiler.nit", 1830);
9880 exit(1);
9881 }
9882 if (varonce13) {
9883 var14 = varonce13;
9884 } else {
9885 var15 = ";";
9886 var16 = 1;
9887 var17 = string__NativeString__to_s_with_length(var15, var16);
9888 var14 = var17;
9889 varonce13 = var14;
9890 }
9891 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
9892 { /* var18 = array_instance Array[Object] */
9893 var19 = 3;
9894 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
9895 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var7;
9896 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var12;
9897 ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var14;
9898 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
9899 CHECK_NEW_array__Array(var18);
9900 }
9901 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
9902 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var21) /* add on <var_v:AbstractCompilerVisitor>*/;
9903 RET_LABEL:;
9904 }
9905 /* method abstract_compiler#AReturnExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9906 void VIRTUAL_abstract_compiler__AReturnExpr__stmt(val* self, val* p0) {
9907 abstract_compiler__AReturnExpr__stmt(self, p0);
9908 RET_LABEL:;
9909 }
9910 /* method abstract_compiler#AAbortExpr#stmt for (self: AAbortExpr, AbstractCompilerVisitor) */
9911 void abstract_compiler__AAbortExpr__stmt(val* self, val* p0) {
9912 val* var_v /* var v: AbstractCompilerVisitor */;
9913 static val* varonce;
9914 val* var /* : String */;
9915 char* var1 /* : NativeString */;
9916 long var2 /* : Int */;
9917 val* var3 /* : String */;
9918 var_v = p0;
9919 if (varonce) {
9920 var = varonce;
9921 } else {
9922 var1 = "Aborted";
9923 var2 = 7;
9924 var3 = string__NativeString__to_s_with_length(var1, var2);
9925 var = var3;
9926 varonce = var;
9927 }
9928 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort]))(var_v, var) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
9929 RET_LABEL:;
9930 }
9931 /* method abstract_compiler#AAbortExpr#stmt for (self: Object, AbstractCompilerVisitor) */
9932 void VIRTUAL_abstract_compiler__AAbortExpr__stmt(val* self, val* p0) {
9933 abstract_compiler__AAbortExpr__stmt(self, p0);
9934 RET_LABEL:;
9935 }