parser: remove last clorure-related classes
[nit.git] / c_src / kernel.sep.1.c
1 #include "kernel.sep.0.h"
2 /* method kernel#Object#object_id for (self: Object): Int */
3 long kernel__Object__object_id(val* self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 var1 = (long)self;
7 var = var1;
8 goto RET_LABEL;
9 RET_LABEL:;
10 return var;
11 }
12 /* method kernel#Object#object_id for (self: Object): Int */
13 long VIRTUAL_kernel__Object__object_id(val* self) {
14 long var /* : Int */;
15 long var1 /* : Int */;
16 long var3 /* : Int */;
17 { /* Inline kernel#Object#object_id (self) */
18 var3 = (long)self;
19 var1 = var3;
20 goto RET_LABEL2;
21 RET_LABEL2:(void)0;
22 }
23 var = var1;
24 RET_LABEL:;
25 return var;
26 }
27 /* method kernel#Object#is_same_type for (self: Object, Object): Bool */
28 short int kernel__Object__is_same_type(val* self, val* p0) {
29 short int var /* : Bool */;
30 short int var1 /* : Bool */;
31 var1 = (self == p0) || (self != NULL && p0 != NULL && self->class == p0->class); /* is_same_type_test */
32 var = var1;
33 goto RET_LABEL;
34 RET_LABEL:;
35 return var;
36 }
37 /* method kernel#Object#is_same_type for (self: Object, Object): Bool */
38 short int VIRTUAL_kernel__Object__is_same_type(val* self, val* p0) {
39 short int var /* : Bool */;
40 short int var1 /* : Bool */;
41 short int var3 /* : Bool */;
42 { /* Inline kernel#Object#is_same_type (self,p0) */
43 var3 = (self == p0) || (self != NULL && p0 != NULL && self->class == p0->class); /* is_same_type_test */
44 var1 = var3;
45 goto RET_LABEL2;
46 RET_LABEL2:(void)0;
47 }
48 var = var1;
49 RET_LABEL:;
50 return var;
51 }
52 /* method kernel#Object#== for (self: Object, nullable Object): Bool */
53 short int kernel__Object___61d_61d(val* self, val* p0) {
54 short int var /* : Bool */;
55 val* var_other /* var other: nullable Object */;
56 short int var1 /* : Bool */;
57 var_other = p0;
58 var1 = self == var_other || (var_other != NULL && self->class == var_other->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)var_other)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)var_other)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)var_other)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)var_other)->value)));
59 var = var1;
60 goto RET_LABEL;
61 RET_LABEL:;
62 return var;
63 }
64 /* method kernel#Object#== for (self: Object, nullable Object): Bool */
65 short int VIRTUAL_kernel__Object___61d_61d(val* self, val* p0) {
66 short int var /* : Bool */;
67 short int var1 /* : Bool */;
68 var1 = kernel__Object___61d_61d(self, p0);
69 var = var1;
70 RET_LABEL:;
71 return var;
72 }
73 /* method kernel#Object#!= for (self: Object, nullable Object): Bool */
74 short int kernel__Object___33d_61d(val* self, val* p0) {
75 short int var /* : Bool */;
76 val* var_other /* var other: nullable Object */;
77 short int var1 /* : Bool */;
78 short int var2 /* : Bool */;
79 var_other = p0;
80 var1 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on <self:Object>*/;
81 var2 = !var1;
82 var = var2;
83 goto RET_LABEL;
84 RET_LABEL:;
85 return var;
86 }
87 /* method kernel#Object#!= for (self: Object, nullable Object): Bool */
88 short int VIRTUAL_kernel__Object___33d_61d(val* self, val* p0) {
89 short int var /* : Bool */;
90 short int var1 /* : Bool */;
91 var1 = kernel__Object___33d_61d(self, p0);
92 var = var1;
93 RET_LABEL:;
94 return var;
95 }
96 /* method kernel#Object#output for (self: Object) */
97 void kernel__Object__output(val* self) {
98 char var /* : Char */;
99 long var2 /* : Int */;
100 char var4 /* : Char */;
101 var = '<';
102 { /* Inline kernel#Char#output (var) */
103 printf("%c", var);
104 RET_LABEL1:(void)0;
105 }
106 var2 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
107 { /* Inline kernel#Int#output (var2) */
108 printf("%ld\n", var2);
109 RET_LABEL3:(void)0;
110 }
111 var4 = '>';
112 { /* Inline kernel#Char#output (var4) */
113 printf("%c", var4);
114 RET_LABEL5:(void)0;
115 }
116 RET_LABEL:;
117 }
118 /* method kernel#Object#output for (self: Object) */
119 void VIRTUAL_kernel__Object__output(val* self) {
120 kernel__Object__output(self);
121 RET_LABEL:;
122 }
123 /* method kernel#Object#output_class_name for (self: Object) */
124 void kernel__Object__output_class_name(val* self) {
125 const char* var_class_name;
126 var_class_name = self == NULL ? "null" : self->type->name;
127 printf("%s\n", var_class_name);
128 RET_LABEL:;
129 }
130 /* method kernel#Object#output_class_name for (self: Object) */
131 void VIRTUAL_kernel__Object__output_class_name(val* self) {
132 const char* var_class_name;
133 { /* Inline kernel#Object#output_class_name (self) */
134 var_class_name = self == NULL ? "null" : self->type->name;
135 printf("%s\n", var_class_name);
136 RET_LABEL1:(void)0;
137 }
138 RET_LABEL:;
139 }
140 /* method kernel#Object#exit for (self: Object, Int) */
141 void kernel__Object__exit(val* self, long p0) {
142 exit(p0);
143 RET_LABEL:;
144 }
145 /* method kernel#Object#exit for (self: Object, Int) */
146 void VIRTUAL_kernel__Object__exit(val* self, long p0) {
147 { /* Inline kernel#Object#exit (self,p0) */
148 exit(p0);
149 RET_LABEL1:(void)0;
150 }
151 RET_LABEL:;
152 }
153 /* method kernel#Object#sys for (self: Object): Sys */
154 val* kernel__Object__sys(val* self) {
155 val* var /* : Sys */;
156 val* var1 /* : Sys */;
157 var1 = glob_sys;
158 var = var1;
159 goto RET_LABEL;
160 RET_LABEL:;
161 return var;
162 }
163 /* method kernel#Object#sys for (self: Object): Sys */
164 val* VIRTUAL_kernel__Object__sys(val* self) {
165 val* var /* : Sys */;
166 val* var1 /* : Sys */;
167 val* var3 /* : Sys */;
168 { /* Inline kernel#Object#sys (self) */
169 var3 = glob_sys;
170 var1 = var3;
171 goto RET_LABEL2;
172 RET_LABEL2:(void)0;
173 }
174 var = var1;
175 RET_LABEL:;
176 return var;
177 }
178 /* method kernel#Object#hash for (self: Object): Int */
179 long kernel__Object__hash(val* self) {
180 long var /* : Int */;
181 long var1 /* : Int */;
182 long var2 /* : Int */;
183 long var3 /* : Int */;
184 long var5 /* : Int */;
185 var1 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
186 var2 = 8;
187 { /* Inline kernel#Int#/ (var1,var2) */
188 var5 = var1 / var2;
189 var3 = var5;
190 goto RET_LABEL4;
191 RET_LABEL4:(void)0;
192 }
193 var = var3;
194 goto RET_LABEL;
195 RET_LABEL:;
196 return var;
197 }
198 /* method kernel#Object#hash for (self: Object): Int */
199 long VIRTUAL_kernel__Object__hash(val* self) {
200 long var /* : Int */;
201 long var1 /* : Int */;
202 var1 = kernel__Object__hash(self);
203 var = var1;
204 RET_LABEL:;
205 return var;
206 }
207 /* method kernel#Sys#main for (self: Sys) */
208 void kernel__Sys__main(val* self) {
209 RET_LABEL:;
210 }
211 /* method kernel#Sys#main for (self: Object) */
212 void VIRTUAL_kernel__Sys__main(val* self) {
213 kernel__Sys__main(self);
214 RET_LABEL:;
215 }
216 /* method kernel#Sys#init for (self: Sys) */
217 void kernel__Sys__init(val* self) {
218 RET_LABEL:;
219 }
220 /* method kernel#Sys#init for (self: Object) */
221 void VIRTUAL_kernel__Sys__init(val* self) {
222 kernel__Sys__init(self);
223 RET_LABEL:;
224 }
225 /* method kernel#Comparable#< for (self: Comparable, Comparable): Bool */
226 short int kernel__Comparable___60d(val* self, val* p0) {
227 short int var /* : Bool */;
228 short int var1 /* : Bool */;
229 int cltype;
230 int idtype;
231 const struct type* type_struct;
232 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
233 /* <p0:Comparable> isa OTHER */
234 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
235 cltype = type_struct->color;
236 idtype = type_struct->id;
237 if(cltype >= p0->type->table_size) {
238 var1 = 0;
239 } else {
240 var1 = p0->type->type_table[cltype] == idtype;
241 }
242 if (!var1) {
243 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 95);
244 exit(1);
245 }
246 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/kernel.nit", 95);
247 exit(1);
248 RET_LABEL:;
249 return var;
250 }
251 /* method kernel#Comparable#< for (self: Object, Comparable): Bool */
252 short int VIRTUAL_kernel__Comparable___60d(val* self, val* p0) {
253 short int var /* : Bool */;
254 short int var1 /* : Bool */;
255 var1 = kernel__Comparable___60d(self, p0);
256 var = var1;
257 RET_LABEL:;
258 return var;
259 }
260 /* method kernel#Comparable#<= for (self: Comparable, Comparable): Bool */
261 short int kernel__Comparable___60d_61d(val* self, val* p0) {
262 short int var /* : Bool */;
263 short int var1 /* : Bool */;
264 int cltype;
265 int idtype;
266 const struct type* type_struct;
267 val* var_other /* var other: Comparable */;
268 short int var2 /* : Bool */;
269 short int var3 /* : Bool */;
270 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
271 /* <p0:Comparable> isa OTHER */
272 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
273 cltype = type_struct->color;
274 idtype = type_struct->id;
275 if(cltype >= p0->type->table_size) {
276 var1 = 0;
277 } else {
278 var1 = p0->type->type_table[cltype] == idtype;
279 }
280 if (!var1) {
281 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 98);
282 exit(1);
283 }
284 var_other = p0;
285 var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
286 var3 = !var2;
287 var = var3;
288 goto RET_LABEL;
289 RET_LABEL:;
290 return var;
291 }
292 /* method kernel#Comparable#<= for (self: Object, Comparable): Bool */
293 short int VIRTUAL_kernel__Comparable___60d_61d(val* self, val* p0) {
294 short int var /* : Bool */;
295 short int var1 /* : Bool */;
296 var1 = kernel__Comparable___60d_61d(self, p0);
297 var = var1;
298 RET_LABEL:;
299 return var;
300 }
301 /* method kernel#Comparable#>= for (self: Comparable, Comparable): Bool */
302 short int kernel__Comparable___62d_61d(val* self, val* p0) {
303 short int var /* : Bool */;
304 short int var1 /* : Bool */;
305 int cltype;
306 int idtype;
307 const struct type* type_struct;
308 val* var_other /* var other: Comparable */;
309 short int var2 /* : Bool */;
310 short int var3 /* : Bool */;
311 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
312 /* <p0:Comparable> isa OTHER */
313 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
314 cltype = type_struct->color;
315 idtype = type_struct->id;
316 if(cltype >= p0->type->table_size) {
317 var1 = 0;
318 } else {
319 var1 = p0->type->type_table[cltype] == idtype;
320 }
321 if (!var1) {
322 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 102);
323 exit(1);
324 }
325 var_other = p0;
326 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
327 var3 = !var2;
328 var = var3;
329 goto RET_LABEL;
330 RET_LABEL:;
331 return var;
332 }
333 /* method kernel#Comparable#>= for (self: Object, Comparable): Bool */
334 short int VIRTUAL_kernel__Comparable___62d_61d(val* self, val* p0) {
335 short int var /* : Bool */;
336 short int var1 /* : Bool */;
337 var1 = kernel__Comparable___62d_61d(self, p0);
338 var = var1;
339 RET_LABEL:;
340 return var;
341 }
342 /* method kernel#Comparable#> for (self: Comparable, Comparable): Bool */
343 short int kernel__Comparable___62d(val* self, val* p0) {
344 short int var /* : Bool */;
345 short int var1 /* : Bool */;
346 int cltype;
347 int idtype;
348 const struct type* type_struct;
349 val* var_other /* var other: Comparable */;
350 short int var2 /* : Bool */;
351 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
352 /* <p0:Comparable> isa OTHER */
353 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
354 cltype = type_struct->color;
355 idtype = type_struct->id;
356 if(cltype >= p0->type->table_size) {
357 var1 = 0;
358 } else {
359 var1 = p0->type->type_table[cltype] == idtype;
360 }
361 if (!var1) {
362 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 106);
363 exit(1);
364 }
365 var_other = p0;
366 var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
367 var = var2;
368 goto RET_LABEL;
369 RET_LABEL:;
370 return var;
371 }
372 /* method kernel#Comparable#> for (self: Object, Comparable): Bool */
373 short int VIRTUAL_kernel__Comparable___62d(val* self, val* p0) {
374 short int var /* : Bool */;
375 short int var1 /* : Bool */;
376 var1 = kernel__Comparable___62d(self, p0);
377 var = var1;
378 RET_LABEL:;
379 return var;
380 }
381 /* method kernel#Comparable#<=> for (self: Comparable, Comparable): Int */
382 long kernel__Comparable___60d_61d_62d(val* self, val* p0) {
383 long var /* : Int */;
384 short int var1 /* : Bool */;
385 int cltype;
386 int idtype;
387 const struct type* type_struct;
388 val* var_other /* var other: Comparable */;
389 short int var2 /* : Bool */;
390 long var3 /* : Int */;
391 long var4 /* : Int */;
392 long var6 /* : Int */;
393 short int var7 /* : Bool */;
394 long var8 /* : Int */;
395 long var9 /* : Int */;
396 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
397 /* <p0:Comparable> isa OTHER */
398 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
399 cltype = type_struct->color;
400 idtype = type_struct->id;
401 if(cltype >= p0->type->table_size) {
402 var1 = 0;
403 } else {
404 var1 = p0->type->type_table[cltype] == idtype;
405 }
406 if (!var1) {
407 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 109);
408 exit(1);
409 }
410 var_other = p0;
411 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
412 if (var2){
413 var3 = 1;
414 { /* Inline kernel#Int#unary - (var3) */
415 var6 = -var3;
416 var4 = var6;
417 goto RET_LABEL5;
418 RET_LABEL5:(void)0;
419 }
420 var = var4;
421 goto RET_LABEL;
422 } else {
423 var7 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
424 if (var7){
425 var8 = 1;
426 var = var8;
427 goto RET_LABEL;
428 } else {
429 var9 = 0;
430 var = var9;
431 goto RET_LABEL;
432 }
433 }
434 RET_LABEL:;
435 return var;
436 }
437 /* method kernel#Comparable#<=> for (self: Object, Comparable): Int */
438 long VIRTUAL_kernel__Comparable___60d_61d_62d(val* self, val* p0) {
439 long var /* : Int */;
440 long var1 /* : Int */;
441 var1 = kernel__Comparable___60d_61d_62d(self, p0);
442 var = var1;
443 RET_LABEL:;
444 return var;
445 }
446 /* method kernel#Comparable#is_between for (self: Comparable, Comparable, Comparable): Bool */
447 short int kernel__Comparable__is_between(val* self, val* p0, val* p1) {
448 short int var /* : Bool */;
449 short int var1 /* : Bool */;
450 int cltype;
451 int idtype;
452 const struct type* type_struct;
453 short int var2 /* : Bool */;
454 int cltype3;
455 int idtype4;
456 const struct type* type_struct5;
457 val* var_c /* var c: Comparable */;
458 val* var_d /* var d: Comparable */;
459 short int var6 /* : Bool */;
460 short int var7 /* : Bool */;
461 short int var_ /* var : Bool */;
462 short int var8 /* : Bool */;
463 /* Covariant cast for argument 0 (c) <p0:Comparable> isa OTHER */
464 /* <p0:Comparable> isa OTHER */
465 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
466 cltype = type_struct->color;
467 idtype = type_struct->id;
468 if(cltype >= p0->type->table_size) {
469 var1 = 0;
470 } else {
471 var1 = p0->type->type_table[cltype] == idtype;
472 }
473 if (!var1) {
474 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 122);
475 exit(1);
476 }
477 /* Covariant cast for argument 1 (d) <p1:Comparable> isa OTHER */
478 /* <p1:Comparable> isa OTHER */
479 type_struct5 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
480 cltype3 = type_struct5->color;
481 idtype4 = type_struct5->id;
482 if(cltype3 >= p1->type->table_size) {
483 var2 = 0;
484 } else {
485 var2 = p1->type->type_table[cltype3] == idtype4;
486 }
487 if (!var2) {
488 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 122);
489 exit(1);
490 }
491 var_c = p0;
492 var_d = p1;
493 var7 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d_61d]))(var_c, self) /* <= on <var_c:Comparable>*/;
494 var_ = var7;
495 if (var7){
496 var8 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d_61d]))(self, var_d) /* <= on <self:Comparable>*/;
497 var6 = var8;
498 } else {
499 var6 = var_;
500 }
501 var = var6;
502 goto RET_LABEL;
503 RET_LABEL:;
504 return var;
505 }
506 /* method kernel#Comparable#is_between for (self: Object, Comparable, Comparable): Bool */
507 short int VIRTUAL_kernel__Comparable__is_between(val* self, val* p0, val* p1) {
508 short int var /* : Bool */;
509 short int var1 /* : Bool */;
510 var1 = kernel__Comparable__is_between(self, p0, p1);
511 var = var1;
512 RET_LABEL:;
513 return var;
514 }
515 /* method kernel#Comparable#max for (self: Comparable, Comparable): Comparable */
516 val* kernel__Comparable__max(val* self, val* p0) {
517 val* var /* : Comparable */;
518 short int var1 /* : Bool */;
519 int cltype;
520 int idtype;
521 const struct type* type_struct;
522 val* var_other /* var other: Comparable */;
523 short int var2 /* : Bool */;
524 short int var3 /* : Bool */;
525 int cltype4;
526 int idtype5;
527 const struct type* type_struct6;
528 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
529 /* <p0:Comparable> isa OTHER */
530 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
531 cltype = type_struct->color;
532 idtype = type_struct->id;
533 if(cltype >= p0->type->table_size) {
534 var1 = 0;
535 } else {
536 var1 = p0->type->type_table[cltype] == idtype;
537 }
538 if (!var1) {
539 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 128);
540 exit(1);
541 }
542 var_other = p0;
543 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
544 if (var2){
545 var = var_other;
546 goto RET_LABEL;
547 } else {
548 /* <self:Comparable> isa OTHER */
549 type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
550 cltype4 = type_struct6->color;
551 idtype5 = type_struct6->id;
552 if(cltype4 >= self->type->table_size) {
553 var3 = 0;
554 } else {
555 var3 = self->type->type_table[cltype4] == idtype5;
556 }
557 if (!var3) {
558 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 134);
559 exit(1);
560 }
561 var = self;
562 goto RET_LABEL;
563 }
564 RET_LABEL:;
565 return var;
566 }
567 /* method kernel#Comparable#max for (self: Object, Comparable): Comparable */
568 val* VIRTUAL_kernel__Comparable__max(val* self, val* p0) {
569 val* var /* : Comparable */;
570 val* var1 /* : Comparable */;
571 var1 = kernel__Comparable__max(self, p0);
572 var = var1;
573 RET_LABEL:;
574 return var;
575 }
576 /* method kernel#Comparable#min for (self: Comparable, Comparable): Comparable */
577 val* kernel__Comparable__min(val* self, val* p0) {
578 val* var /* : Comparable */;
579 short int var1 /* : Bool */;
580 int cltype;
581 int idtype;
582 const struct type* type_struct;
583 val* var_c /* var c: Comparable */;
584 short int var2 /* : Bool */;
585 short int var3 /* : Bool */;
586 int cltype4;
587 int idtype5;
588 const struct type* type_struct6;
589 /* Covariant cast for argument 0 (c) <p0:Comparable> isa OTHER */
590 /* <p0:Comparable> isa OTHER */
591 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
592 cltype = type_struct->color;
593 idtype = type_struct->id;
594 if(cltype >= p0->type->table_size) {
595 var1 = 0;
596 } else {
597 var1 = p0->type->type_table[cltype] == idtype;
598 }
599 if (!var1) {
600 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 138);
601 exit(1);
602 }
603 var_c = p0;
604 var2 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d]))(var_c, self) /* < on <var_c:Comparable>*/;
605 if (var2){
606 var = var_c;
607 goto RET_LABEL;
608 } else {
609 /* <self:Comparable> isa OTHER */
610 type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
611 cltype4 = type_struct6->color;
612 idtype5 = type_struct6->id;
613 if(cltype4 >= self->type->table_size) {
614 var3 = 0;
615 } else {
616 var3 = self->type->type_table[cltype4] == idtype5;
617 }
618 if (!var3) {
619 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 144);
620 exit(1);
621 }
622 var = self;
623 goto RET_LABEL;
624 }
625 RET_LABEL:;
626 return var;
627 }
628 /* method kernel#Comparable#min for (self: Object, Comparable): Comparable */
629 val* VIRTUAL_kernel__Comparable__min(val* self, val* p0) {
630 val* var /* : Comparable */;
631 val* var1 /* : Comparable */;
632 var1 = kernel__Comparable__min(self, p0);
633 var = var1;
634 RET_LABEL:;
635 return var;
636 }
637 /* method kernel#Discrete#succ for (self: Discrete): Discrete */
638 val* kernel__Discrete__succ(val* self) {
639 val* var /* : Discrete */;
640 long var1 /* : Int */;
641 val* var2 /* : Discrete */;
642 var1 = 1;
643 var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_kernel__Discrete___43d]))(self, var1) /* + on <self:Discrete>*/;
644 var = var2;
645 goto RET_LABEL;
646 RET_LABEL:;
647 return var;
648 }
649 /* method kernel#Discrete#succ for (self: Object): Discrete */
650 val* VIRTUAL_kernel__Discrete__succ(val* self) {
651 val* var /* : Discrete */;
652 val* var1 /* : Discrete */;
653 var1 = kernel__Discrete__succ(self);
654 var = var1;
655 RET_LABEL:;
656 return var;
657 }
658 /* method kernel#Discrete#prec for (self: Discrete): Discrete */
659 val* kernel__Discrete__prec(val* self) {
660 val* var /* : Discrete */;
661 long var1 /* : Int */;
662 val* var2 /* : Discrete */;
663 var1 = 1;
664 var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_kernel__Discrete___45d]))(self, var1) /* - on <self:Discrete>*/;
665 var = var2;
666 goto RET_LABEL;
667 RET_LABEL:;
668 return var;
669 }
670 /* method kernel#Discrete#prec for (self: Object): Discrete */
671 val* VIRTUAL_kernel__Discrete__prec(val* self) {
672 val* var /* : Discrete */;
673 val* var1 /* : Discrete */;
674 var1 = kernel__Discrete__prec(self);
675 var = var1;
676 RET_LABEL:;
677 return var;
678 }
679 /* method kernel#Discrete#+ for (self: Discrete, Int): Discrete */
680 val* kernel__Discrete___43d(val* self, long p0) {
681 val* var /* : Discrete */;
682 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/kernel.nit", 161);
683 exit(1);
684 RET_LABEL:;
685 return var;
686 }
687 /* method kernel#Discrete#+ for (self: Object, Int): Discrete */
688 val* VIRTUAL_kernel__Discrete___43d(val* self, long p0) {
689 val* var /* : Discrete */;
690 val* var1 /* : Discrete */;
691 var1 = kernel__Discrete___43d(self, p0);
692 var = var1;
693 RET_LABEL:;
694 return var;
695 }
696 /* method kernel#Discrete#- for (self: Discrete, Int): Discrete */
697 val* kernel__Discrete___45d(val* self, long p0) {
698 val* var /* : Discrete */;
699 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/kernel.nit", 164);
700 exit(1);
701 RET_LABEL:;
702 return var;
703 }
704 /* method kernel#Discrete#- for (self: Object, Int): Discrete */
705 val* VIRTUAL_kernel__Discrete___45d(val* self, long p0) {
706 val* var /* : Discrete */;
707 val* var1 /* : Discrete */;
708 var1 = kernel__Discrete___45d(self, p0);
709 var = var1;
710 RET_LABEL:;
711 return var;
712 }
713 /* method kernel#Discrete#distance for (self: Discrete, Discrete): Int */
714 long kernel__Discrete__distance(val* self, val* p0) {
715 long var /* : Int */;
716 short int var1 /* : Bool */;
717 int cltype;
718 int idtype;
719 const struct type* type_struct;
720 val* var_d /* var d: Discrete */;
721 short int var2 /* : Bool */;
722 short int var3 /* : Bool */;
723 int cltype4;
724 int idtype5;
725 const struct type* type_struct6;
726 val* var_cursor /* var cursor: Discrete */;
727 val* var_stop /* var stop: Discrete */;
728 short int var7 /* : Bool */;
729 short int var8 /* : Bool */;
730 int cltype9;
731 int idtype10;
732 const struct type* type_struct11;
733 long var12 /* : Int */;
734 long var13 /* : Int */;
735 long var_nb /* var nb: Int */;
736 short int var14 /* : Bool */;
737 val* var15 /* : Discrete */;
738 short int var16 /* : Bool */;
739 int cltype17;
740 int idtype18;
741 const struct type* type_struct19;
742 long var20 /* : Int */;
743 long var21 /* : Int */;
744 long var23 /* : Int */;
745 /* Covariant cast for argument 0 (d) <p0:Discrete> isa OTHER */
746 /* <p0:Discrete> isa OTHER */
747 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
748 cltype = type_struct->color;
749 idtype = type_struct->id;
750 if(cltype >= p0->type->table_size) {
751 var1 = 0;
752 } else {
753 var1 = p0->type->type_table[cltype] == idtype;
754 }
755 if (!var1) {
756 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 167);
757 exit(1);
758 }
759 var_d = p0;
760 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_d) /* < on <self:Discrete>*/;
761 if (var2){
762 /* <self:Discrete> isa OTHER */
763 type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
764 cltype4 = type_struct6->color;
765 idtype5 = type_struct6->id;
766 if(cltype4 >= self->type->table_size) {
767 var3 = 0;
768 } else {
769 var3 = self->type->type_table[cltype4] == idtype5;
770 }
771 if (!var3) {
772 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 176);
773 exit(1);
774 }
775 var_cursor = self;
776 var_stop = var_d;
777 } else {
778 var7 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___62d]))(self, var_d) /* > on <self:Discrete>*/;
779 if (var7){
780 var_cursor = var_d;
781 /* <self:Discrete> isa OTHER */
782 type_struct11 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
783 cltype9 = type_struct11->color;
784 idtype10 = type_struct11->id;
785 if(cltype9 >= self->type->table_size) {
786 var8 = 0;
787 } else {
788 var8 = self->type->type_table[cltype9] == idtype10;
789 }
790 if (!var8) {
791 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 180);
792 exit(1);
793 }
794 var_stop = self;
795 } else {
796 var12 = 0;
797 var = var12;
798 goto RET_LABEL;
799 }
800 }
801 var13 = 0;
802 var_nb = var13;
803 for(;;) {
804 var14 = ((short int (*)(val*, val*))(var_cursor->class->vft[COLOR_kernel__Comparable___60d]))(var_cursor, var_stop) /* < on <var_cursor:Discrete>*/;
805 if (!var14) break;
806 var15 = ((val* (*)(val*))(var_cursor->class->vft[COLOR_kernel__Discrete__succ]))(var_cursor) /* succ on <var_cursor:Discrete>*/;
807 /* <var15:Discrete> isa OTHER */
808 type_struct19 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
809 cltype17 = type_struct19->color;
810 idtype18 = type_struct19->id;
811 if(cltype17 >= var15->type->table_size) {
812 var16 = 0;
813 } else {
814 var16 = var15->type->type_table[cltype17] == idtype18;
815 }
816 if (!var16) {
817 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 187);
818 exit(1);
819 }
820 var_cursor = var15;
821 var20 = 1;
822 { /* Inline kernel#Int#+ (var_nb,var20) */
823 var23 = var_nb + var20;
824 var21 = var23;
825 goto RET_LABEL22;
826 RET_LABEL22:(void)0;
827 }
828 var_nb = var21;
829 CONTINUE_label: (void)0;
830 }
831 BREAK_label: (void)0;
832 var = var_nb;
833 goto RET_LABEL;
834 RET_LABEL:;
835 return var;
836 }
837 /* method kernel#Discrete#distance for (self: Object, Discrete): Int */
838 long VIRTUAL_kernel__Discrete__distance(val* self, val* p0) {
839 long var /* : Int */;
840 long var1 /* : Int */;
841 var1 = kernel__Discrete__distance(self, p0);
842 var = var1;
843 RET_LABEL:;
844 return var;
845 }
846 /* method kernel#Bool#object_id for (self: Bool): Int */
847 long kernel__Bool__object_id(short int self) {
848 long var /* : Int */;
849 long var1 /* : Int */;
850 var1 = (long)self;
851 var = var1;
852 goto RET_LABEL;
853 RET_LABEL:;
854 return var;
855 }
856 /* method kernel#Bool#object_id for (self: Object): Int */
857 long VIRTUAL_kernel__Bool__object_id(val* self) {
858 long var /* : Int */;
859 long var1 /* : Int */;
860 short int var3 /* : Bool */;
861 long var4 /* : Int */;
862 { /* Inline kernel#Bool#object_id (self) */
863 var3 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
864 var4 = (long)var3;
865 var1 = var4;
866 goto RET_LABEL2;
867 RET_LABEL2:(void)0;
868 }
869 var = var1;
870 RET_LABEL:;
871 return var;
872 }
873 /* method kernel#Bool#== for (self: Bool, nullable Object): Bool */
874 short int kernel__Bool___61d_61d(short int self, val* p0) {
875 short int var /* : Bool */;
876 short int var1 /* : Bool */;
877 short int var2 /* : Bool */;
878 var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool);
879 if (var1) {
880 var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
881 var1 = (var2 == self);
882 }
883 var = var1;
884 goto RET_LABEL;
885 RET_LABEL:;
886 return var;
887 }
888 /* method kernel#Bool#== for (self: Object, nullable Object): Bool */
889 short int VIRTUAL_kernel__Bool___61d_61d(val* self, val* p0) {
890 short int var /* : Bool */;
891 short int var1 /* : Bool */;
892 short int var3 /* : Bool */;
893 { /* Inline kernel#Bool#== (self,p0) */
894 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value);
895 var1 = var3;
896 goto RET_LABEL2;
897 RET_LABEL2:(void)0;
898 }
899 var = var1;
900 RET_LABEL:;
901 return var;
902 }
903 /* method kernel#Bool#!= for (self: Bool, nullable Object): Bool */
904 short int kernel__Bool___33d_61d(short int self, val* p0) {
905 short int var /* : Bool */;
906 short int var1 /* : Bool */;
907 short int var2 /* : Bool */;
908 short int var3 /* : Bool */;
909 var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool);
910 if (var1) {
911 var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
912 var1 = (var2 == self);
913 }
914 var3 = !var1;
915 var = var3;
916 goto RET_LABEL;
917 RET_LABEL:;
918 return var;
919 }
920 /* method kernel#Bool#!= for (self: Object, nullable Object): Bool */
921 short int VIRTUAL_kernel__Bool___33d_61d(val* self, val* p0) {
922 short int var /* : Bool */;
923 short int var1 /* : Bool */;
924 short int var3 /* : Bool */;
925 short int var4 /* : Bool */;
926 { /* Inline kernel#Bool#!= (self,p0) */
927 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value);
928 var4 = !var3;
929 var1 = var4;
930 goto RET_LABEL2;
931 RET_LABEL2:(void)0;
932 }
933 var = var1;
934 RET_LABEL:;
935 return var;
936 }
937 /* method kernel#Bool#output for (self: Bool) */
938 void kernel__Bool__output(short int self) {
939 printf(self?"true\n":"false\n");
940 RET_LABEL:;
941 }
942 /* method kernel#Bool#output for (self: Object) */
943 void VIRTUAL_kernel__Bool__output(val* self) {
944 short int var /* : Bool */;
945 { /* Inline kernel#Bool#output (self) */
946 var = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
947 printf(var?"true\n":"false\n");
948 RET_LABEL1:(void)0;
949 }
950 RET_LABEL:;
951 }
952 /* method kernel#Bool#hash for (self: Bool): Int */
953 long kernel__Bool__hash(short int self) {
954 long var /* : Int */;
955 long var1 /* : Int */;
956 long var2 /* : Int */;
957 if (self){
958 var1 = 1;
959 var = var1;
960 goto RET_LABEL;
961 } else {
962 var2 = 0;
963 var = var2;
964 goto RET_LABEL;
965 }
966 RET_LABEL:;
967 return var;
968 }
969 /* method kernel#Bool#hash for (self: Object): Int */
970 long VIRTUAL_kernel__Bool__hash(val* self) {
971 long var /* : Int */;
972 long var1 /* : Int */;
973 short int var2 /* : Bool */;
974 var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
975 var1 = kernel__Bool__hash(var2);
976 var = var1;
977 RET_LABEL:;
978 return var;
979 }
980 /* method kernel#Float#object_id for (self: Float): Int */
981 long kernel__Float__object_id(double self) {
982 long var /* : Int */;
983 long var1 /* : Int */;
984 var1 = (double)self;
985 var = var1;
986 goto RET_LABEL;
987 RET_LABEL:;
988 return var;
989 }
990 /* method kernel#Float#object_id for (self: Object): Int */
991 long VIRTUAL_kernel__Float__object_id(val* self) {
992 long var /* : Int */;
993 long var1 /* : Int */;
994 double var3 /* : Float */;
995 long var4 /* : Int */;
996 { /* Inline kernel#Float#object_id (self) */
997 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
998 var4 = (double)var3;
999 var1 = var4;
1000 goto RET_LABEL2;
1001 RET_LABEL2:(void)0;
1002 }
1003 var = var1;
1004 RET_LABEL:;
1005 return var;
1006 }
1007 /* method kernel#Float#output for (self: Float) */
1008 void kernel__Float__output(double self) {
1009 printf("%f\n", self);
1010 RET_LABEL:;
1011 }
1012 /* method kernel#Float#output for (self: Object) */
1013 void VIRTUAL_kernel__Float__output(val* self) {
1014 double var /* : Float */;
1015 { /* Inline kernel#Float#output (self) */
1016 var = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1017 printf("%f\n", var);
1018 RET_LABEL1:(void)0;
1019 }
1020 RET_LABEL:;
1021 }
1022 /* method kernel#Float#<= for (self: Float, Float): Bool */
1023 short int kernel__Float___60d_61d(double self, double p0) {
1024 short int var /* : Bool */;
1025 short int var1 /* : Bool */;
1026 var1 = self <= p0;
1027 var = var1;
1028 goto RET_LABEL;
1029 RET_LABEL:;
1030 return var;
1031 }
1032 /* method kernel#Float#<= for (self: Object, Float): Bool */
1033 short int VIRTUAL_kernel__Float___60d_61d(val* self, double p0) {
1034 short int var /* : Bool */;
1035 short int var1 /* : Bool */;
1036 double var3 /* : Float */;
1037 short int var4 /* : Bool */;
1038 { /* Inline kernel#Float#<= (self,p0) */
1039 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1040 var4 = var3 <= p0;
1041 var1 = var4;
1042 goto RET_LABEL2;
1043 RET_LABEL2:(void)0;
1044 }
1045 var = var1;
1046 RET_LABEL:;
1047 return var;
1048 }
1049 /* method kernel#Float#< for (self: Float, Float): Bool */
1050 short int kernel__Float___60d(double self, double p0) {
1051 short int var /* : Bool */;
1052 short int var1 /* : Bool */;
1053 var1 = self < p0;
1054 var = var1;
1055 goto RET_LABEL;
1056 RET_LABEL:;
1057 return var;
1058 }
1059 /* method kernel#Float#< for (self: Object, Float): Bool */
1060 short int VIRTUAL_kernel__Float___60d(val* self, double p0) {
1061 short int var /* : Bool */;
1062 short int var1 /* : Bool */;
1063 double var3 /* : Float */;
1064 short int var4 /* : Bool */;
1065 { /* Inline kernel#Float#< (self,p0) */
1066 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1067 var4 = var3 < p0;
1068 var1 = var4;
1069 goto RET_LABEL2;
1070 RET_LABEL2:(void)0;
1071 }
1072 var = var1;
1073 RET_LABEL:;
1074 return var;
1075 }
1076 /* method kernel#Float#>= for (self: Float, Float): Bool */
1077 short int kernel__Float___62d_61d(double self, double p0) {
1078 short int var /* : Bool */;
1079 short int var1 /* : Bool */;
1080 var1 = self >= p0;
1081 var = var1;
1082 goto RET_LABEL;
1083 RET_LABEL:;
1084 return var;
1085 }
1086 /* method kernel#Float#>= for (self: Object, Float): Bool */
1087 short int VIRTUAL_kernel__Float___62d_61d(val* self, double p0) {
1088 short int var /* : Bool */;
1089 short int var1 /* : Bool */;
1090 double var3 /* : Float */;
1091 short int var4 /* : Bool */;
1092 { /* Inline kernel#Float#>= (self,p0) */
1093 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1094 var4 = var3 >= p0;
1095 var1 = var4;
1096 goto RET_LABEL2;
1097 RET_LABEL2:(void)0;
1098 }
1099 var = var1;
1100 RET_LABEL:;
1101 return var;
1102 }
1103 /* method kernel#Float#> for (self: Float, Float): Bool */
1104 short int kernel__Float___62d(double self, double p0) {
1105 short int var /* : Bool */;
1106 short int var1 /* : Bool */;
1107 var1 = self > p0;
1108 var = var1;
1109 goto RET_LABEL;
1110 RET_LABEL:;
1111 return var;
1112 }
1113 /* method kernel#Float#> for (self: Object, Float): Bool */
1114 short int VIRTUAL_kernel__Float___62d(val* self, double p0) {
1115 short int var /* : Bool */;
1116 short int var1 /* : Bool */;
1117 double var3 /* : Float */;
1118 short int var4 /* : Bool */;
1119 { /* Inline kernel#Float#> (self,p0) */
1120 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1121 var4 = var3 > p0;
1122 var1 = var4;
1123 goto RET_LABEL2;
1124 RET_LABEL2:(void)0;
1125 }
1126 var = var1;
1127 RET_LABEL:;
1128 return var;
1129 }
1130 /* method kernel#Float#+ for (self: Float, Float): Float */
1131 double kernel__Float___43d(double self, double p0) {
1132 double var /* : Float */;
1133 double var1 /* : Float */;
1134 var1 = self + p0;
1135 var = var1;
1136 goto RET_LABEL;
1137 RET_LABEL:;
1138 return var;
1139 }
1140 /* method kernel#Float#+ for (self: Object, Float): Float */
1141 double VIRTUAL_kernel__Float___43d(val* self, double p0) {
1142 double var /* : Float */;
1143 double var1 /* : Float */;
1144 double var3 /* : Float */;
1145 double var4 /* : Float */;
1146 { /* Inline kernel#Float#+ (self,p0) */
1147 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1148 var4 = var3 + p0;
1149 var1 = var4;
1150 goto RET_LABEL2;
1151 RET_LABEL2:(void)0;
1152 }
1153 var = var1;
1154 RET_LABEL:;
1155 return var;
1156 }
1157 /* method kernel#Float#unary - for (self: Float): Float */
1158 double kernel__Float__unary_32d_45d(double self) {
1159 double var /* : Float */;
1160 double var1 /* : Float */;
1161 var1 = -self;
1162 var = var1;
1163 goto RET_LABEL;
1164 RET_LABEL:;
1165 return var;
1166 }
1167 /* method kernel#Float#unary - for (self: Object): Float */
1168 double VIRTUAL_kernel__Float__unary_32d_45d(val* self) {
1169 double var /* : Float */;
1170 double var1 /* : Float */;
1171 double var3 /* : Float */;
1172 double var4 /* : Float */;
1173 { /* Inline kernel#Float#unary - (self) */
1174 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1175 var4 = -var3;
1176 var1 = var4;
1177 goto RET_LABEL2;
1178 RET_LABEL2:(void)0;
1179 }
1180 var = var1;
1181 RET_LABEL:;
1182 return var;
1183 }
1184 /* method kernel#Float#- for (self: Float, Float): Float */
1185 double kernel__Float___45d(double self, double p0) {
1186 double var /* : Float */;
1187 double var1 /* : Float */;
1188 var1 = self - p0;
1189 var = var1;
1190 goto RET_LABEL;
1191 RET_LABEL:;
1192 return var;
1193 }
1194 /* method kernel#Float#- for (self: Object, Float): Float */
1195 double VIRTUAL_kernel__Float___45d(val* self, double p0) {
1196 double var /* : Float */;
1197 double var1 /* : Float */;
1198 double var3 /* : Float */;
1199 double var4 /* : Float */;
1200 { /* Inline kernel#Float#- (self,p0) */
1201 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1202 var4 = var3 - p0;
1203 var1 = var4;
1204 goto RET_LABEL2;
1205 RET_LABEL2:(void)0;
1206 }
1207 var = var1;
1208 RET_LABEL:;
1209 return var;
1210 }
1211 /* method kernel#Float#* for (self: Float, Float): Float */
1212 double kernel__Float___42d(double self, double p0) {
1213 double var /* : Float */;
1214 double var1 /* : Float */;
1215 var1 = self * p0;
1216 var = var1;
1217 goto RET_LABEL;
1218 RET_LABEL:;
1219 return var;
1220 }
1221 /* method kernel#Float#* for (self: Object, Float): Float */
1222 double VIRTUAL_kernel__Float___42d(val* self, double p0) {
1223 double var /* : Float */;
1224 double var1 /* : Float */;
1225 double var3 /* : Float */;
1226 double var4 /* : Float */;
1227 { /* Inline kernel#Float#* (self,p0) */
1228 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1229 var4 = var3 * p0;
1230 var1 = var4;
1231 goto RET_LABEL2;
1232 RET_LABEL2:(void)0;
1233 }
1234 var = var1;
1235 RET_LABEL:;
1236 return var;
1237 }
1238 /* method kernel#Float#/ for (self: Float, Float): Float */
1239 double kernel__Float___47d(double self, double p0) {
1240 double var /* : Float */;
1241 double var1 /* : Float */;
1242 var1 = self / p0;
1243 var = var1;
1244 goto RET_LABEL;
1245 RET_LABEL:;
1246 return var;
1247 }
1248 /* method kernel#Float#/ for (self: Object, Float): Float */
1249 double VIRTUAL_kernel__Float___47d(val* self, double p0) {
1250 double var /* : Float */;
1251 double var1 /* : Float */;
1252 double var3 /* : Float */;
1253 double var4 /* : Float */;
1254 { /* Inline kernel#Float#/ (self,p0) */
1255 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1256 var4 = var3 / p0;
1257 var1 = var4;
1258 goto RET_LABEL2;
1259 RET_LABEL2:(void)0;
1260 }
1261 var = var1;
1262 RET_LABEL:;
1263 return var;
1264 }
1265 /* method kernel#Float#to_i for (self: Float): Int */
1266 long kernel__Float__to_i(double self) {
1267 long var /* : Int */;
1268 long var1 /* : Int */;
1269 var1 = (long)self;
1270 var = var1;
1271 goto RET_LABEL;
1272 RET_LABEL:;
1273 return var;
1274 }
1275 /* method kernel#Float#to_i for (self: Object): Int */
1276 long VIRTUAL_kernel__Float__to_i(val* self) {
1277 long var /* : Int */;
1278 long var1 /* : Int */;
1279 double var3 /* : Float */;
1280 long var4 /* : Int */;
1281 { /* Inline kernel#Float#to_i (self) */
1282 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1283 var4 = (long)var3;
1284 var1 = var4;
1285 goto RET_LABEL2;
1286 RET_LABEL2:(void)0;
1287 }
1288 var = var1;
1289 RET_LABEL:;
1290 return var;
1291 }
1292 /* method kernel#Int#object_id for (self: Int): Int */
1293 long kernel__Int__object_id(long self) {
1294 long var /* : Int */;
1295 var = self;
1296 goto RET_LABEL;
1297 RET_LABEL:;
1298 return var;
1299 }
1300 /* method kernel#Int#object_id for (self: Object): Int */
1301 long VIRTUAL_kernel__Int__object_id(val* self) {
1302 long var /* : Int */;
1303 long var1 /* : Int */;
1304 long var3 /* : Int */;
1305 { /* Inline kernel#Int#object_id (self) */
1306 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1307 var1 = var3;
1308 goto RET_LABEL2;
1309 RET_LABEL2:(void)0;
1310 }
1311 var = var1;
1312 RET_LABEL:;
1313 return var;
1314 }
1315 /* method kernel#Int#hash for (self: Int): Int */
1316 long kernel__Int__hash(long self) {
1317 long var /* : Int */;
1318 var = self;
1319 goto RET_LABEL;
1320 RET_LABEL:;
1321 return var;
1322 }
1323 /* method kernel#Int#hash for (self: Object): Int */
1324 long VIRTUAL_kernel__Int__hash(val* self) {
1325 long var /* : Int */;
1326 long var1 /* : Int */;
1327 long var2 /* : Int */;
1328 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1329 var1 = kernel__Int__hash(var2);
1330 var = var1;
1331 RET_LABEL:;
1332 return var;
1333 }
1334 /* method kernel#Int#== for (self: Int, nullable Object): Bool */
1335 short int kernel__Int___61d_61d(long self, val* p0) {
1336 short int var /* : Bool */;
1337 short int var1 /* : Bool */;
1338 long var2 /* : Int */;
1339 var1 = (p0 != NULL) && (p0->class == &class_kernel__Int);
1340 if (var1) {
1341 var2 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from nullable Object to Int */;
1342 var1 = (var2 == self);
1343 }
1344 var = var1;
1345 goto RET_LABEL;
1346 RET_LABEL:;
1347 return var;
1348 }
1349 /* method kernel#Int#== for (self: Object, nullable Object): Bool */
1350 short int VIRTUAL_kernel__Int___61d_61d(val* self, val* p0) {
1351 short int var /* : Bool */;
1352 short int var1 /* : Bool */;
1353 short int var3 /* : Bool */;
1354 { /* Inline kernel#Int#== (self,p0) */
1355 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value);
1356 var1 = var3;
1357 goto RET_LABEL2;
1358 RET_LABEL2:(void)0;
1359 }
1360 var = var1;
1361 RET_LABEL:;
1362 return var;
1363 }
1364 /* method kernel#Int#!= for (self: Int, nullable Object): Bool */
1365 short int kernel__Int___33d_61d(long self, val* p0) {
1366 short int var /* : Bool */;
1367 short int var1 /* : Bool */;
1368 long var2 /* : Int */;
1369 short int var3 /* : Bool */;
1370 var1 = (p0 != NULL) && (p0->class == &class_kernel__Int);
1371 if (var1) {
1372 var2 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from nullable Object to Int */;
1373 var1 = (var2 == self);
1374 }
1375 var3 = !var1;
1376 var = var3;
1377 goto RET_LABEL;
1378 RET_LABEL:;
1379 return var;
1380 }
1381 /* method kernel#Int#!= for (self: Object, nullable Object): Bool */
1382 short int VIRTUAL_kernel__Int___33d_61d(val* self, val* p0) {
1383 short int var /* : Bool */;
1384 short int var1 /* : Bool */;
1385 short int var3 /* : Bool */;
1386 short int var4 /* : Bool */;
1387 { /* Inline kernel#Int#!= (self,p0) */
1388 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value);
1389 var4 = !var3;
1390 var1 = var4;
1391 goto RET_LABEL2;
1392 RET_LABEL2:(void)0;
1393 }
1394 var = var1;
1395 RET_LABEL:;
1396 return var;
1397 }
1398 /* method kernel#Int#output for (self: Int) */
1399 void kernel__Int__output(long self) {
1400 printf("%ld\n", self);
1401 RET_LABEL:;
1402 }
1403 /* method kernel#Int#output for (self: Object) */
1404 void VIRTUAL_kernel__Int__output(val* self) {
1405 long var /* : Int */;
1406 { /* Inline kernel#Int#output (self) */
1407 var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1408 printf("%ld\n", var);
1409 RET_LABEL1:(void)0;
1410 }
1411 RET_LABEL:;
1412 }
1413 /* method kernel#Int#<= for (self: Int, Int): Bool */
1414 short int kernel__Int___60d_61d(long self, long p0) {
1415 short int var /* : Bool */;
1416 short int var1 /* : Bool */;
1417 int cltype;
1418 int idtype;
1419 short int var2 /* : Bool */;
1420 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1421 /* <p0:Int> isa OTHER */
1422 var1 = 1; /* easy <p0:Int> isa OTHER*/
1423 if (!var1) {
1424 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
1425 exit(1);
1426 }
1427 var2 = self <= p0;
1428 var = var2;
1429 goto RET_LABEL;
1430 RET_LABEL:;
1431 return var;
1432 }
1433 /* method kernel#Int#<= for (self: Object, Comparable): Bool */
1434 short int VIRTUAL_kernel__Int___60d_61d(val* self, val* p0) {
1435 short int var /* : Bool */;
1436 short int var1 /* : Bool */;
1437 short int var3 /* : Bool */;
1438 int cltype;
1439 int idtype;
1440 const struct type* type_struct;
1441 long var4 /* : Int */;
1442 long var5 /* : Int */;
1443 short int var6 /* : Bool */;
1444 { /* Inline kernel#Int#<= (self,p0) */
1445 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1446 /* <p0:Comparable> isa OTHER */
1447 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1448 cltype = type_struct->color;
1449 idtype = type_struct->id;
1450 if(cltype >= p0->type->table_size) {
1451 var3 = 0;
1452 } else {
1453 var3 = p0->type->type_table[cltype] == idtype;
1454 }
1455 if (!var3) {
1456 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
1457 exit(1);
1458 }
1459 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1460 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1461 var6 = var4 <= var5;
1462 var1 = var6;
1463 goto RET_LABEL2;
1464 RET_LABEL2:(void)0;
1465 }
1466 var = var1;
1467 RET_LABEL:;
1468 return var;
1469 }
1470 /* method kernel#Int#< for (self: Int, Int): Bool */
1471 short int kernel__Int___60d(long self, long p0) {
1472 short int var /* : Bool */;
1473 short int var1 /* : Bool */;
1474 int cltype;
1475 int idtype;
1476 short int var2 /* : Bool */;
1477 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1478 /* <p0:Int> isa OTHER */
1479 var1 = 1; /* easy <p0:Int> isa OTHER*/
1480 if (!var1) {
1481 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
1482 exit(1);
1483 }
1484 var2 = self < p0;
1485 var = var2;
1486 goto RET_LABEL;
1487 RET_LABEL:;
1488 return var;
1489 }
1490 /* method kernel#Int#< for (self: Object, Comparable): Bool */
1491 short int VIRTUAL_kernel__Int___60d(val* self, val* p0) {
1492 short int var /* : Bool */;
1493 short int var1 /* : Bool */;
1494 short int var3 /* : Bool */;
1495 int cltype;
1496 int idtype;
1497 const struct type* type_struct;
1498 long var4 /* : Int */;
1499 long var5 /* : Int */;
1500 short int var6 /* : Bool */;
1501 { /* Inline kernel#Int#< (self,p0) */
1502 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1503 /* <p0:Comparable> isa OTHER */
1504 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1505 cltype = type_struct->color;
1506 idtype = type_struct->id;
1507 if(cltype >= p0->type->table_size) {
1508 var3 = 0;
1509 } else {
1510 var3 = p0->type->type_table[cltype] == idtype;
1511 }
1512 if (!var3) {
1513 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
1514 exit(1);
1515 }
1516 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1517 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1518 var6 = var4 < var5;
1519 var1 = var6;
1520 goto RET_LABEL2;
1521 RET_LABEL2:(void)0;
1522 }
1523 var = var1;
1524 RET_LABEL:;
1525 return var;
1526 }
1527 /* method kernel#Int#>= for (self: Int, Int): Bool */
1528 short int kernel__Int___62d_61d(long self, long p0) {
1529 short int var /* : Bool */;
1530 short int var1 /* : Bool */;
1531 int cltype;
1532 int idtype;
1533 short int var2 /* : Bool */;
1534 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1535 /* <p0:Int> isa OTHER */
1536 var1 = 1; /* easy <p0:Int> isa OTHER*/
1537 if (!var1) {
1538 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
1539 exit(1);
1540 }
1541 var2 = self >= p0;
1542 var = var2;
1543 goto RET_LABEL;
1544 RET_LABEL:;
1545 return var;
1546 }
1547 /* method kernel#Int#>= for (self: Object, Comparable): Bool */
1548 short int VIRTUAL_kernel__Int___62d_61d(val* self, val* p0) {
1549 short int var /* : Bool */;
1550 short int var1 /* : Bool */;
1551 short int var3 /* : Bool */;
1552 int cltype;
1553 int idtype;
1554 const struct type* type_struct;
1555 long var4 /* : Int */;
1556 long var5 /* : Int */;
1557 short int var6 /* : Bool */;
1558 { /* Inline kernel#Int#>= (self,p0) */
1559 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1560 /* <p0:Comparable> isa OTHER */
1561 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1562 cltype = type_struct->color;
1563 idtype = type_struct->id;
1564 if(cltype >= p0->type->table_size) {
1565 var3 = 0;
1566 } else {
1567 var3 = p0->type->type_table[cltype] == idtype;
1568 }
1569 if (!var3) {
1570 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
1571 exit(1);
1572 }
1573 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1574 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1575 var6 = var4 >= var5;
1576 var1 = var6;
1577 goto RET_LABEL2;
1578 RET_LABEL2:(void)0;
1579 }
1580 var = var1;
1581 RET_LABEL:;
1582 return var;
1583 }
1584 /* method kernel#Int#> for (self: Int, Int): Bool */
1585 short int kernel__Int___62d(long self, long p0) {
1586 short int var /* : Bool */;
1587 short int var1 /* : Bool */;
1588 int cltype;
1589 int idtype;
1590 short int var2 /* : Bool */;
1591 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1592 /* <p0:Int> isa OTHER */
1593 var1 = 1; /* easy <p0:Int> isa OTHER*/
1594 if (!var1) {
1595 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
1596 exit(1);
1597 }
1598 var2 = self > p0;
1599 var = var2;
1600 goto RET_LABEL;
1601 RET_LABEL:;
1602 return var;
1603 }
1604 /* method kernel#Int#> for (self: Object, Comparable): Bool */
1605 short int VIRTUAL_kernel__Int___62d(val* self, val* p0) {
1606 short int var /* : Bool */;
1607 short int var1 /* : Bool */;
1608 short int var3 /* : Bool */;
1609 int cltype;
1610 int idtype;
1611 const struct type* type_struct;
1612 long var4 /* : Int */;
1613 long var5 /* : Int */;
1614 short int var6 /* : Bool */;
1615 { /* Inline kernel#Int#> (self,p0) */
1616 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1617 /* <p0:Comparable> isa OTHER */
1618 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1619 cltype = type_struct->color;
1620 idtype = type_struct->id;
1621 if(cltype >= p0->type->table_size) {
1622 var3 = 0;
1623 } else {
1624 var3 = p0->type->type_table[cltype] == idtype;
1625 }
1626 if (!var3) {
1627 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
1628 exit(1);
1629 }
1630 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1631 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1632 var6 = var4 > var5;
1633 var1 = var6;
1634 goto RET_LABEL2;
1635 RET_LABEL2:(void)0;
1636 }
1637 var = var1;
1638 RET_LABEL:;
1639 return var;
1640 }
1641 /* method kernel#Int#+ for (self: Int, Int): Int */
1642 long kernel__Int___43d(long self, long p0) {
1643 long var /* : Int */;
1644 long var1 /* : Int */;
1645 var1 = self + p0;
1646 var = var1;
1647 goto RET_LABEL;
1648 RET_LABEL:;
1649 return var;
1650 }
1651 /* method kernel#Int#+ for (self: Object, Int): Discrete */
1652 val* VIRTUAL_kernel__Int___43d(val* self, long p0) {
1653 val* var /* : Discrete */;
1654 long var1 /* : Int */;
1655 long var3 /* : Int */;
1656 long var4 /* : Int */;
1657 val* var5 /* : Discrete */;
1658 { /* Inline kernel#Int#+ (self,p0) */
1659 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1660 var4 = var3 + p0;
1661 var1 = var4;
1662 goto RET_LABEL2;
1663 RET_LABEL2:(void)0;
1664 }
1665 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
1666 var = var5;
1667 RET_LABEL:;
1668 return var;
1669 }
1670 /* method kernel#Int#unary - for (self: Int): Int */
1671 long kernel__Int__unary_32d_45d(long self) {
1672 long var /* : Int */;
1673 long var1 /* : Int */;
1674 var1 = -self;
1675 var = var1;
1676 goto RET_LABEL;
1677 RET_LABEL:;
1678 return var;
1679 }
1680 /* method kernel#Int#unary - for (self: Object): Int */
1681 long VIRTUAL_kernel__Int__unary_32d_45d(val* self) {
1682 long var /* : Int */;
1683 long var1 /* : Int */;
1684 long var3 /* : Int */;
1685 long var4 /* : Int */;
1686 { /* Inline kernel#Int#unary - (self) */
1687 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1688 var4 = -var3;
1689 var1 = var4;
1690 goto RET_LABEL2;
1691 RET_LABEL2:(void)0;
1692 }
1693 var = var1;
1694 RET_LABEL:;
1695 return var;
1696 }
1697 /* method kernel#Int#- for (self: Int, Int): Int */
1698 long kernel__Int___45d(long self, long p0) {
1699 long var /* : Int */;
1700 long var1 /* : Int */;
1701 var1 = self - p0;
1702 var = var1;
1703 goto RET_LABEL;
1704 RET_LABEL:;
1705 return var;
1706 }
1707 /* method kernel#Int#- for (self: Object, Int): Discrete */
1708 val* VIRTUAL_kernel__Int___45d(val* self, long p0) {
1709 val* var /* : Discrete */;
1710 long var1 /* : Int */;
1711 long var3 /* : Int */;
1712 long var4 /* : Int */;
1713 val* var5 /* : Discrete */;
1714 { /* Inline kernel#Int#- (self,p0) */
1715 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1716 var4 = var3 - p0;
1717 var1 = var4;
1718 goto RET_LABEL2;
1719 RET_LABEL2:(void)0;
1720 }
1721 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
1722 var = var5;
1723 RET_LABEL:;
1724 return var;
1725 }
1726 /* method kernel#Int#* for (self: Int, Int): Int */
1727 long kernel__Int___42d(long self, long p0) {
1728 long var /* : Int */;
1729 long var1 /* : Int */;
1730 var1 = self * p0;
1731 var = var1;
1732 goto RET_LABEL;
1733 RET_LABEL:;
1734 return var;
1735 }
1736 /* method kernel#Int#* for (self: Object, Int): Int */
1737 long VIRTUAL_kernel__Int___42d(val* self, long p0) {
1738 long var /* : Int */;
1739 long var1 /* : Int */;
1740 long var3 /* : Int */;
1741 long var4 /* : Int */;
1742 { /* Inline kernel#Int#* (self,p0) */
1743 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1744 var4 = var3 * p0;
1745 var1 = var4;
1746 goto RET_LABEL2;
1747 RET_LABEL2:(void)0;
1748 }
1749 var = var1;
1750 RET_LABEL:;
1751 return var;
1752 }
1753 /* method kernel#Int#/ for (self: Int, Int): Int */
1754 long kernel__Int___47d(long self, long p0) {
1755 long var /* : Int */;
1756 long var1 /* : Int */;
1757 var1 = self / p0;
1758 var = var1;
1759 goto RET_LABEL;
1760 RET_LABEL:;
1761 return var;
1762 }
1763 /* method kernel#Int#/ for (self: Object, Int): Int */
1764 long VIRTUAL_kernel__Int___47d(val* self, long p0) {
1765 long var /* : Int */;
1766 long var1 /* : Int */;
1767 long var3 /* : Int */;
1768 long var4 /* : Int */;
1769 { /* Inline kernel#Int#/ (self,p0) */
1770 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1771 var4 = var3 / p0;
1772 var1 = var4;
1773 goto RET_LABEL2;
1774 RET_LABEL2:(void)0;
1775 }
1776 var = var1;
1777 RET_LABEL:;
1778 return var;
1779 }
1780 /* method kernel#Int#% for (self: Int, Int): Int */
1781 long kernel__Int___37d(long self, long p0) {
1782 long var /* : Int */;
1783 long var1 /* : Int */;
1784 var1 = self % p0;
1785 var = var1;
1786 goto RET_LABEL;
1787 RET_LABEL:;
1788 return var;
1789 }
1790 /* method kernel#Int#% for (self: Object, Int): Int */
1791 long VIRTUAL_kernel__Int___37d(val* self, long p0) {
1792 long var /* : Int */;
1793 long var1 /* : Int */;
1794 long var3 /* : Int */;
1795 long var4 /* : Int */;
1796 { /* Inline kernel#Int#% (self,p0) */
1797 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1798 var4 = var3 % p0;
1799 var1 = var4;
1800 goto RET_LABEL2;
1801 RET_LABEL2:(void)0;
1802 }
1803 var = var1;
1804 RET_LABEL:;
1805 return var;
1806 }
1807 /* method kernel#Int#lshift for (self: Int, Int): Int */
1808 long kernel__Int__lshift(long self, long p0) {
1809 long var /* : Int */;
1810 long var1 /* : Int */;
1811 var1 = self << p0;
1812 var = var1;
1813 goto RET_LABEL;
1814 RET_LABEL:;
1815 return var;
1816 }
1817 /* method kernel#Int#lshift for (self: Object, Int): Int */
1818 long VIRTUAL_kernel__Int__lshift(val* self, long p0) {
1819 long var /* : Int */;
1820 long var1 /* : Int */;
1821 long var3 /* : Int */;
1822 long var4 /* : Int */;
1823 { /* Inline kernel#Int#lshift (self,p0) */
1824 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1825 var4 = var3 << p0;
1826 var1 = var4;
1827 goto RET_LABEL2;
1828 RET_LABEL2:(void)0;
1829 }
1830 var = var1;
1831 RET_LABEL:;
1832 return var;
1833 }
1834 /* method kernel#Int#rshift for (self: Int, Int): Int */
1835 long kernel__Int__rshift(long self, long p0) {
1836 long var /* : Int */;
1837 long var1 /* : Int */;
1838 var1 = self >> p0;
1839 var = var1;
1840 goto RET_LABEL;
1841 RET_LABEL:;
1842 return var;
1843 }
1844 /* method kernel#Int#rshift for (self: Object, Int): Int */
1845 long VIRTUAL_kernel__Int__rshift(val* self, long p0) {
1846 long var /* : Int */;
1847 long var1 /* : Int */;
1848 long var3 /* : Int */;
1849 long var4 /* : Int */;
1850 { /* Inline kernel#Int#rshift (self,p0) */
1851 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1852 var4 = var3 >> p0;
1853 var1 = var4;
1854 goto RET_LABEL2;
1855 RET_LABEL2:(void)0;
1856 }
1857 var = var1;
1858 RET_LABEL:;
1859 return var;
1860 }
1861 /* method kernel#Int#to_f for (self: Int): Float */
1862 double kernel__Int__to_f(long self) {
1863 double var /* : Float */;
1864 double var1 /* : Float */;
1865 var1 = (double)self;
1866 var = var1;
1867 goto RET_LABEL;
1868 RET_LABEL:;
1869 return var;
1870 }
1871 /* method kernel#Int#to_f for (self: Object): Float */
1872 double VIRTUAL_kernel__Int__to_f(val* self) {
1873 double var /* : Float */;
1874 double var1 /* : Float */;
1875 long var3 /* : Int */;
1876 double var4 /* : Float */;
1877 { /* Inline kernel#Int#to_f (self) */
1878 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1879 var4 = (double)var3;
1880 var1 = var4;
1881 goto RET_LABEL2;
1882 RET_LABEL2:(void)0;
1883 }
1884 var = var1;
1885 RET_LABEL:;
1886 return var;
1887 }
1888 /* method kernel#Int#succ for (self: Int): Int */
1889 long kernel__Int__succ(long self) {
1890 long var /* : Int */;
1891 long var1 /* : Int */;
1892 var1 = self+1;
1893 var = var1;
1894 goto RET_LABEL;
1895 RET_LABEL:;
1896 return var;
1897 }
1898 /* method kernel#Int#succ for (self: Object): Discrete */
1899 val* VIRTUAL_kernel__Int__succ(val* self) {
1900 val* var /* : Discrete */;
1901 long var1 /* : Int */;
1902 long var3 /* : Int */;
1903 long var4 /* : Int */;
1904 val* var5 /* : Discrete */;
1905 { /* Inline kernel#Int#succ (self) */
1906 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1907 var4 = var3+1;
1908 var1 = var4;
1909 goto RET_LABEL2;
1910 RET_LABEL2:(void)0;
1911 }
1912 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
1913 var = var5;
1914 RET_LABEL:;
1915 return var;
1916 }
1917 /* method kernel#Int#prec for (self: Int): Int */
1918 long kernel__Int__prec(long self) {
1919 long var /* : Int */;
1920 long var1 /* : Int */;
1921 var1 = self-1;
1922 var = var1;
1923 goto RET_LABEL;
1924 RET_LABEL:;
1925 return var;
1926 }
1927 /* method kernel#Int#prec for (self: Object): Discrete */
1928 val* VIRTUAL_kernel__Int__prec(val* self) {
1929 val* var /* : Discrete */;
1930 long var1 /* : Int */;
1931 long var3 /* : Int */;
1932 long var4 /* : Int */;
1933 val* var5 /* : Discrete */;
1934 { /* Inline kernel#Int#prec (self) */
1935 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1936 var4 = var3-1;
1937 var1 = var4;
1938 goto RET_LABEL2;
1939 RET_LABEL2:(void)0;
1940 }
1941 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
1942 var = var5;
1943 RET_LABEL:;
1944 return var;
1945 }
1946 /* method kernel#Int#distance for (self: Int, Int): Int */
1947 long kernel__Int__distance(long self, long p0) {
1948 long var /* : Int */;
1949 short int var1 /* : Bool */;
1950 int cltype;
1951 int idtype;
1952 long var_i /* var i: Int */;
1953 long var2 /* : Int */;
1954 long var4 /* : Int */;
1955 long var_d /* var d: Int */;
1956 long var5 /* : Int */;
1957 short int var6 /* : Bool */;
1958 short int var8 /* : Bool */;
1959 int cltype9;
1960 int idtype10;
1961 short int var11 /* : Bool */;
1962 long var12 /* : Int */;
1963 long var14 /* : Int */;
1964 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1965 /* <p0:Int> isa OTHER */
1966 var1 = 1; /* easy <p0:Int> isa OTHER*/
1967 if (!var1) {
1968 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 285);
1969 exit(1);
1970 }
1971 var_i = p0;
1972 { /* Inline kernel#Int#- (self,var_i) */
1973 var4 = self - var_i;
1974 var2 = var4;
1975 goto RET_LABEL3;
1976 RET_LABEL3:(void)0;
1977 }
1978 var_d = var2;
1979 var5 = 0;
1980 { /* Inline kernel#Int#>= (var_d,var5) */
1981 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
1982 /* <var5:Int> isa OTHER */
1983 var8 = 1; /* easy <var5:Int> isa OTHER*/
1984 if (!var8) {
1985 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
1986 exit(1);
1987 }
1988 var11 = var_d >= var5;
1989 var6 = var11;
1990 goto RET_LABEL7;
1991 RET_LABEL7:(void)0;
1992 }
1993 if (var6){
1994 var = var_d;
1995 goto RET_LABEL;
1996 } else {
1997 { /* Inline kernel#Int#unary - (var_d) */
1998 var14 = -var_d;
1999 var12 = var14;
2000 goto RET_LABEL13;
2001 RET_LABEL13:(void)0;
2002 }
2003 var = var12;
2004 goto RET_LABEL;
2005 }
2006 RET_LABEL:;
2007 return var;
2008 }
2009 /* method kernel#Int#distance for (self: Object, Discrete): Int */
2010 long VIRTUAL_kernel__Int__distance(val* self, val* p0) {
2011 long var /* : Int */;
2012 long var1 /* : Int */;
2013 long var2 /* : Int */;
2014 long var3 /* : Int */;
2015 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2016 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Discrete to Int */;
2017 var1 = kernel__Int__distance(var2, var3);
2018 var = var1;
2019 RET_LABEL:;
2020 return var;
2021 }
2022 /* method kernel#Int#<=> for (self: Int, Int): Int */
2023 long kernel__Int___60d_61d_62d(long self, long p0) {
2024 long var /* : Int */;
2025 short int var1 /* : Bool */;
2026 int cltype;
2027 int idtype;
2028 long var_other /* var other: Int */;
2029 short int var2 /* : Bool */;
2030 short int var4 /* : Bool */;
2031 int cltype5;
2032 int idtype6;
2033 short int var7 /* : Bool */;
2034 long var8 /* : Int */;
2035 long var9 /* : Int */;
2036 long var11 /* : Int */;
2037 short int var12 /* : Bool */;
2038 short int var14 /* : Bool */;
2039 int cltype15;
2040 int idtype16;
2041 short int var17 /* : Bool */;
2042 long var18 /* : Int */;
2043 long var19 /* : Int */;
2044 /* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
2045 /* <p0:Int> isa OTHER */
2046 var1 = 1; /* easy <p0:Int> isa OTHER*/
2047 if (!var1) {
2048 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 295);
2049 exit(1);
2050 }
2051 var_other = p0;
2052 { /* Inline kernel#Int#< (self,var_other) */
2053 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
2054 /* <var_other:Int> isa OTHER */
2055 var4 = 1; /* easy <var_other:Int> isa OTHER*/
2056 if (!var4) {
2057 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2058 exit(1);
2059 }
2060 var7 = self < var_other;
2061 var2 = var7;
2062 goto RET_LABEL3;
2063 RET_LABEL3:(void)0;
2064 }
2065 if (var2){
2066 var8 = 1;
2067 { /* Inline kernel#Int#unary - (var8) */
2068 var11 = -var8;
2069 var9 = var11;
2070 goto RET_LABEL10;
2071 RET_LABEL10:(void)0;
2072 }
2073 var = var9;
2074 goto RET_LABEL;
2075 } else {
2076 { /* Inline kernel#Int#< (var_other,self) */
2077 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
2078 /* <self:Int> isa OTHER */
2079 var14 = 1; /* easy <self:Int> isa OTHER*/
2080 if (!var14) {
2081 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2082 exit(1);
2083 }
2084 var17 = var_other < self;
2085 var12 = var17;
2086 goto RET_LABEL13;
2087 RET_LABEL13:(void)0;
2088 }
2089 if (var12){
2090 var18 = 1;
2091 var = var18;
2092 goto RET_LABEL;
2093 } else {
2094 var19 = 0;
2095 var = var19;
2096 goto RET_LABEL;
2097 }
2098 }
2099 RET_LABEL:;
2100 return var;
2101 }
2102 /* method kernel#Int#<=> for (self: Object, Comparable): Int */
2103 long VIRTUAL_kernel__Int___60d_61d_62d(val* self, val* p0) {
2104 long var /* : Int */;
2105 long var1 /* : Int */;
2106 long var2 /* : Int */;
2107 long var3 /* : Int */;
2108 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2109 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2110 var1 = kernel__Int___60d_61d_62d(var2, var3);
2111 var = var1;
2112 RET_LABEL:;
2113 return var;
2114 }
2115 /* method kernel#Int#is_between for (self: Int, Int, Int): Bool */
2116 short int kernel__Int__is_between(long self, long p0, long p1) {
2117 short int var /* : Bool */;
2118 short int var1 /* : Bool */;
2119 int cltype;
2120 int idtype;
2121 short int var2 /* : Bool */;
2122 int cltype3;
2123 int idtype4;
2124 long var_c /* var c: Int */;
2125 long var_d /* var d: Int */;
2126 short int var5 /* : Bool */;
2127 short int var6 /* : Bool */;
2128 short int var8 /* : Bool */;
2129 int cltype9;
2130 int idtype10;
2131 short int var11 /* : Bool */;
2132 short int var_ /* var : Bool */;
2133 short int var12 /* : Bool */;
2134 short int var14 /* : Bool */;
2135 int cltype15;
2136 int idtype16;
2137 short int var17 /* : Bool */;
2138 short int var18 /* : Bool */;
2139 short int var19 /* : Bool */;
2140 /* Covariant cast for argument 0 (c) <p0:Int> isa OTHER */
2141 /* <p0:Int> isa OTHER */
2142 var1 = 1; /* easy <p0:Int> isa OTHER*/
2143 if (!var1) {
2144 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 306);
2145 exit(1);
2146 }
2147 /* Covariant cast for argument 1 (d) <p1:Int> isa OTHER */
2148 /* <p1:Int> isa OTHER */
2149 var2 = 1; /* easy <p1:Int> isa OTHER*/
2150 if (!var2) {
2151 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 306);
2152 exit(1);
2153 }
2154 var_c = p0;
2155 var_d = p1;
2156 { /* Inline kernel#Int#< (self,var_c) */
2157 /* Covariant cast for argument 0 (i) <var_c:Int> isa OTHER */
2158 /* <var_c:Int> isa OTHER */
2159 var8 = 1; /* easy <var_c:Int> isa OTHER*/
2160 if (!var8) {
2161 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2162 exit(1);
2163 }
2164 var11 = self < var_c;
2165 var6 = var11;
2166 goto RET_LABEL7;
2167 RET_LABEL7:(void)0;
2168 }
2169 var_ = var6;
2170 if (var6){
2171 var5 = var_;
2172 } else {
2173 { /* Inline kernel#Int#< (var_d,self) */
2174 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
2175 /* <self:Int> isa OTHER */
2176 var14 = 1; /* easy <self:Int> isa OTHER*/
2177 if (!var14) {
2178 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2179 exit(1);
2180 }
2181 var17 = var_d < self;
2182 var12 = var17;
2183 goto RET_LABEL13;
2184 RET_LABEL13:(void)0;
2185 }
2186 var5 = var12;
2187 }
2188 if (var5){
2189 var18 = 0;
2190 var = var18;
2191 goto RET_LABEL;
2192 } else {
2193 var19 = 1;
2194 var = var19;
2195 goto RET_LABEL;
2196 }
2197 RET_LABEL:;
2198 return var;
2199 }
2200 /* method kernel#Int#is_between for (self: Object, Comparable, Comparable): Bool */
2201 short int VIRTUAL_kernel__Int__is_between(val* self, val* p0, val* p1) {
2202 short int var /* : Bool */;
2203 short int var1 /* : Bool */;
2204 long var2 /* : Int */;
2205 long var3 /* : Int */;
2206 long var4 /* : Int */;
2207 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2208 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2209 var4 = ((struct instance_kernel__Int*)p1)->value; /* autounbox from Comparable to Int */;
2210 var1 = kernel__Int__is_between(var2, var3, var4);
2211 var = var1;
2212 RET_LABEL:;
2213 return var;
2214 }
2215 /* method kernel#Int#max for (self: Int, Int): Int */
2216 long kernel__Int__max(long self, long p0) {
2217 long var /* : Int */;
2218 short int var1 /* : Bool */;
2219 int cltype;
2220 int idtype;
2221 long var_other /* var other: Int */;
2222 short int var2 /* : Bool */;
2223 short int var4 /* : Bool */;
2224 int cltype5;
2225 int idtype6;
2226 short int var7 /* : Bool */;
2227 /* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
2228 /* <p0:Int> isa OTHER */
2229 var1 = 1; /* easy <p0:Int> isa OTHER*/
2230 if (!var1) {
2231 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 315);
2232 exit(1);
2233 }
2234 var_other = p0;
2235 { /* Inline kernel#Int#< (self,var_other) */
2236 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
2237 /* <var_other:Int> isa OTHER */
2238 var4 = 1; /* easy <var_other:Int> isa OTHER*/
2239 if (!var4) {
2240 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2241 exit(1);
2242 }
2243 var7 = self < var_other;
2244 var2 = var7;
2245 goto RET_LABEL3;
2246 RET_LABEL3:(void)0;
2247 }
2248 if (var2){
2249 var = var_other;
2250 goto RET_LABEL;
2251 } else {
2252 var = self;
2253 goto RET_LABEL;
2254 }
2255 RET_LABEL:;
2256 return var;
2257 }
2258 /* method kernel#Int#max for (self: Object, Comparable): Comparable */
2259 val* VIRTUAL_kernel__Int__max(val* self, val* p0) {
2260 val* var /* : Comparable */;
2261 long var1 /* : Int */;
2262 long var2 /* : Int */;
2263 long var3 /* : Int */;
2264 val* var4 /* : Comparable */;
2265 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2266 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2267 var1 = kernel__Int__max(var2, var3);
2268 var4 = BOX_kernel__Int(var1); /* autobox from Int to Comparable */
2269 var = var4;
2270 RET_LABEL:;
2271 return var;
2272 }
2273 /* method kernel#Int#min for (self: Int, Int): Int */
2274 long kernel__Int__min(long self, long p0) {
2275 long var /* : Int */;
2276 short int var1 /* : Bool */;
2277 int cltype;
2278 int idtype;
2279 long var_c /* var c: Int */;
2280 short int var2 /* : Bool */;
2281 short int var4 /* : Bool */;
2282 int cltype5;
2283 int idtype6;
2284 short int var7 /* : Bool */;
2285 /* Covariant cast for argument 0 (c) <p0:Int> isa OTHER */
2286 /* <p0:Int> isa OTHER */
2287 var1 = 1; /* easy <p0:Int> isa OTHER*/
2288 if (!var1) {
2289 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 324);
2290 exit(1);
2291 }
2292 var_c = p0;
2293 { /* Inline kernel#Int#< (var_c,self) */
2294 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
2295 /* <self:Int> isa OTHER */
2296 var4 = 1; /* easy <self:Int> isa OTHER*/
2297 if (!var4) {
2298 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2299 exit(1);
2300 }
2301 var7 = var_c < self;
2302 var2 = var7;
2303 goto RET_LABEL3;
2304 RET_LABEL3:(void)0;
2305 }
2306 if (var2){
2307 var = var_c;
2308 goto RET_LABEL;
2309 } else {
2310 var = self;
2311 goto RET_LABEL;
2312 }
2313 RET_LABEL:;
2314 return var;
2315 }
2316 /* method kernel#Int#min for (self: Object, Comparable): Comparable */
2317 val* VIRTUAL_kernel__Int__min(val* self, val* p0) {
2318 val* var /* : Comparable */;
2319 long var1 /* : Int */;
2320 long var2 /* : Int */;
2321 long var3 /* : Int */;
2322 val* var4 /* : Comparable */;
2323 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2324 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2325 var1 = kernel__Int__min(var2, var3);
2326 var4 = BOX_kernel__Int(var1); /* autobox from Int to Comparable */
2327 var = var4;
2328 RET_LABEL:;
2329 return var;
2330 }
2331 /* method kernel#Int#ascii for (self: Int): Char */
2332 char kernel__Int__ascii(long self) {
2333 char var /* : Char */;
2334 char var1 /* : Char */;
2335 var1 = self;
2336 var = var1;
2337 goto RET_LABEL;
2338 RET_LABEL:;
2339 return var;
2340 }
2341 /* method kernel#Int#ascii for (self: Object): Char */
2342 char VIRTUAL_kernel__Int__ascii(val* self) {
2343 char var /* : Char */;
2344 char var1 /* : Char */;
2345 long var3 /* : Int */;
2346 char var4 /* : Char */;
2347 { /* Inline kernel#Int#ascii (self) */
2348 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2349 var4 = var3;
2350 var1 = var4;
2351 goto RET_LABEL2;
2352 RET_LABEL2:(void)0;
2353 }
2354 var = var1;
2355 RET_LABEL:;
2356 return var;
2357 }
2358 /* method kernel#Int#digit_count for (self: Int, Int): Int */
2359 long kernel__Int__digit_count(long self, long p0) {
2360 long var /* : Int */;
2361 long var_b /* var b: Int */;
2362 long var1 /* : Int */;
2363 short int var2 /* : Bool */;
2364 short int var4 /* : Bool */;
2365 long var5 /* : Int */;
2366 long var6 /* : Int */;
2367 short int var7 /* : Bool */;
2368 short int var9 /* : Bool */;
2369 int cltype;
2370 int idtype;
2371 short int var10 /* : Bool */;
2372 long var11 /* : Int */;
2373 long var_d /* var d: Int */;
2374 long var12 /* : Int */;
2375 long var14 /* : Int */;
2376 long var_n /* var n: Int */;
2377 long var15 /* : Int */;
2378 short int var16 /* : Bool */;
2379 short int var18 /* : Bool */;
2380 long var19 /* : Int */;
2381 long var20 /* : Int */;
2382 long var21 /* : Int */;
2383 short int var22 /* : Bool */;
2384 short int var24 /* : Bool */;
2385 int cltype25;
2386 int idtype26;
2387 short int var27 /* : Bool */;
2388 long var28 /* : Int */;
2389 long var29 /* : Int */;
2390 long var31 /* : Int */;
2391 long var32 /* : Int */;
2392 long var34 /* : Int */;
2393 var_b = p0;
2394 var1 = 10;
2395 { /* Inline kernel#Int#== (var_b,var1) */
2396 var4 = var_b == var1;
2397 var2 = var4;
2398 goto RET_LABEL3;
2399 RET_LABEL3:(void)0;
2400 }
2401 if (var2){
2402 var5 = kernel__Int__digit_count_base_95d10(self);
2403 var = var5;
2404 goto RET_LABEL;
2405 } else {
2406 }
2407 var6 = 0;
2408 { /* Inline kernel#Int#< (self,var6) */
2409 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
2410 /* <var6:Int> isa OTHER */
2411 var9 = 1; /* easy <var6:Int> isa OTHER*/
2412 if (!var9) {
2413 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2414 exit(1);
2415 }
2416 var10 = self < var6;
2417 var7 = var10;
2418 goto RET_LABEL8;
2419 RET_LABEL8:(void)0;
2420 }
2421 if (var7){
2422 var11 = 1;
2423 var_d = var11;
2424 { /* Inline kernel#Int#unary - (self) */
2425 var14 = -self;
2426 var12 = var14;
2427 goto RET_LABEL13;
2428 RET_LABEL13:(void)0;
2429 }
2430 var_n = var12;
2431 } else {
2432 var15 = 0;
2433 { /* Inline kernel#Int#== (self,var15) */
2434 var18 = self == var15;
2435 var16 = var18;
2436 goto RET_LABEL17;
2437 RET_LABEL17:(void)0;
2438 }
2439 if (var16){
2440 var19 = 1;
2441 var = var19;
2442 goto RET_LABEL;
2443 } else {
2444 var20 = 0;
2445 var_d = var20;
2446 var_n = self;
2447 }
2448 }
2449 for(;;) {
2450 var21 = 0;
2451 { /* Inline kernel#Int#> (var_n,var21) */
2452 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
2453 /* <var21:Int> isa OTHER */
2454 var24 = 1; /* easy <var21:Int> isa OTHER*/
2455 if (!var24) {
2456 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
2457 exit(1);
2458 }
2459 var27 = var_n > var21;
2460 var22 = var27;
2461 goto RET_LABEL23;
2462 RET_LABEL23:(void)0;
2463 }
2464 if (!var22) break;
2465 var28 = 1;
2466 { /* Inline kernel#Int#+ (var_d,var28) */
2467 var31 = var_d + var28;
2468 var29 = var31;
2469 goto RET_LABEL30;
2470 RET_LABEL30:(void)0;
2471 }
2472 var_d = var29;
2473 { /* Inline kernel#Int#/ (var_n,var_b) */
2474 var34 = var_n / var_b;
2475 var32 = var34;
2476 goto RET_LABEL33;
2477 RET_LABEL33:(void)0;
2478 }
2479 var_n = var32;
2480 CONTINUE_label: (void)0;
2481 }
2482 BREAK_label: (void)0;
2483 var = var_d;
2484 goto RET_LABEL;
2485 RET_LABEL:;
2486 return var;
2487 }
2488 /* method kernel#Int#digit_count for (self: Object, Int): Int */
2489 long VIRTUAL_kernel__Int__digit_count(val* self, long p0) {
2490 long var /* : Int */;
2491 long var1 /* : Int */;
2492 long var2 /* : Int */;
2493 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2494 var1 = kernel__Int__digit_count(var2, p0);
2495 var = var1;
2496 RET_LABEL:;
2497 return var;
2498 }
2499 /* method kernel#Int#digit_count_base_10 for (self: Int): Int */
2500 long kernel__Int__digit_count_base_95d10(long self) {
2501 long var /* : Int */;
2502 long var1 /* : Int */;
2503 short int var2 /* : Bool */;
2504 short int var4 /* : Bool */;
2505 int cltype;
2506 int idtype;
2507 short int var5 /* : Bool */;
2508 long var6 /* : Int */;
2509 long var_result /* var result: Int */;
2510 long var7 /* : Int */;
2511 long var9 /* : Int */;
2512 long var_val /* var val: Int */;
2513 long var10 /* : Int */;
2514 long var11 /* : Int */;
2515 short int var12 /* : Bool */;
2516 short int var14 /* : Bool */;
2517 int cltype15;
2518 int idtype16;
2519 short int var17 /* : Bool */;
2520 long var18 /* : Int */;
2521 short int var19 /* : Bool */;
2522 short int var21 /* : Bool */;
2523 int cltype22;
2524 int idtype23;
2525 short int var24 /* : Bool */;
2526 long var25 /* : Int */;
2527 long var26 /* : Int */;
2528 long var28 /* : Int */;
2529 long var29 /* : Int */;
2530 short int var30 /* : Bool */;
2531 short int var32 /* : Bool */;
2532 int cltype33;
2533 int idtype34;
2534 short int var35 /* : Bool */;
2535 long var36 /* : Int */;
2536 long var37 /* : Int */;
2537 long var39 /* : Int */;
2538 long var40 /* : Int */;
2539 short int var41 /* : Bool */;
2540 short int var43 /* : Bool */;
2541 int cltype44;
2542 int idtype45;
2543 short int var46 /* : Bool */;
2544 long var47 /* : Int */;
2545 long var48 /* : Int */;
2546 long var50 /* : Int */;
2547 long var51 /* : Int */;
2548 long var52 /* : Int */;
2549 long var54 /* : Int */;
2550 long var55 /* : Int */;
2551 long var56 /* : Int */;
2552 long var58 /* : Int */;
2553 var1 = 0;
2554 { /* Inline kernel#Int#< (self,var1) */
2555 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2556 /* <var1:Int> isa OTHER */
2557 var4 = 1; /* easy <var1:Int> isa OTHER*/
2558 if (!var4) {
2559 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2560 exit(1);
2561 }
2562 var5 = self < var1;
2563 var2 = var5;
2564 goto RET_LABEL3;
2565 RET_LABEL3:(void)0;
2566 }
2567 if (var2){
2568 var6 = 2;
2569 var_result = var6;
2570 { /* Inline kernel#Int#unary - (self) */
2571 var9 = -self;
2572 var7 = var9;
2573 goto RET_LABEL8;
2574 RET_LABEL8:(void)0;
2575 }
2576 var_val = var7;
2577 } else {
2578 var10 = 1;
2579 var_result = var10;
2580 var_val = self;
2581 }
2582 for(;;) {
2583 var11 = 10;
2584 { /* Inline kernel#Int#< (var_val,var11) */
2585 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
2586 /* <var11:Int> isa OTHER */
2587 var14 = 1; /* easy <var11:Int> isa OTHER*/
2588 if (!var14) {
2589 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2590 exit(1);
2591 }
2592 var17 = var_val < var11;
2593 var12 = var17;
2594 goto RET_LABEL13;
2595 RET_LABEL13:(void)0;
2596 }
2597 if (var12){
2598 var = var_result;
2599 goto RET_LABEL;
2600 } else {
2601 }
2602 var18 = 100;
2603 { /* Inline kernel#Int#< (var_val,var18) */
2604 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
2605 /* <var18:Int> isa OTHER */
2606 var21 = 1; /* easy <var18:Int> isa OTHER*/
2607 if (!var21) {
2608 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2609 exit(1);
2610 }
2611 var24 = var_val < var18;
2612 var19 = var24;
2613 goto RET_LABEL20;
2614 RET_LABEL20:(void)0;
2615 }
2616 if (var19){
2617 var25 = 1;
2618 { /* Inline kernel#Int#+ (var_result,var25) */
2619 var28 = var_result + var25;
2620 var26 = var28;
2621 goto RET_LABEL27;
2622 RET_LABEL27:(void)0;
2623 }
2624 var = var26;
2625 goto RET_LABEL;
2626 } else {
2627 }
2628 var29 = 1000;
2629 { /* Inline kernel#Int#< (var_val,var29) */
2630 /* Covariant cast for argument 0 (i) <var29:Int> isa OTHER */
2631 /* <var29:Int> isa OTHER */
2632 var32 = 1; /* easy <var29:Int> isa OTHER*/
2633 if (!var32) {
2634 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2635 exit(1);
2636 }
2637 var35 = var_val < var29;
2638 var30 = var35;
2639 goto RET_LABEL31;
2640 RET_LABEL31:(void)0;
2641 }
2642 if (var30){
2643 var36 = 2;
2644 { /* Inline kernel#Int#+ (var_result,var36) */
2645 var39 = var_result + var36;
2646 var37 = var39;
2647 goto RET_LABEL38;
2648 RET_LABEL38:(void)0;
2649 }
2650 var = var37;
2651 goto RET_LABEL;
2652 } else {
2653 }
2654 var40 = 10000;
2655 { /* Inline kernel#Int#< (var_val,var40) */
2656 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
2657 /* <var40:Int> isa OTHER */
2658 var43 = 1; /* easy <var40:Int> isa OTHER*/
2659 if (!var43) {
2660 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2661 exit(1);
2662 }
2663 var46 = var_val < var40;
2664 var41 = var46;
2665 goto RET_LABEL42;
2666 RET_LABEL42:(void)0;
2667 }
2668 if (var41){
2669 var47 = 3;
2670 { /* Inline kernel#Int#+ (var_result,var47) */
2671 var50 = var_result + var47;
2672 var48 = var50;
2673 goto RET_LABEL49;
2674 RET_LABEL49:(void)0;
2675 }
2676 var = var48;
2677 goto RET_LABEL;
2678 } else {
2679 }
2680 var51 = 10000;
2681 { /* Inline kernel#Int#/ (var_val,var51) */
2682 var54 = var_val / var51;
2683 var52 = var54;
2684 goto RET_LABEL53;
2685 RET_LABEL53:(void)0;
2686 }
2687 var_val = var52;
2688 var55 = 4;
2689 { /* Inline kernel#Int#+ (var_result,var55) */
2690 var58 = var_result + var55;
2691 var56 = var58;
2692 goto RET_LABEL57;
2693 RET_LABEL57:(void)0;
2694 }
2695 var_result = var56;
2696 CONTINUE_label: (void)0;
2697 }
2698 BREAK_label: (void)0;
2699 RET_LABEL:;
2700 return var;
2701 }
2702 /* method kernel#Int#digit_count_base_10 for (self: Object): Int */
2703 long VIRTUAL_kernel__Int__digit_count_base_95d10(val* self) {
2704 long var /* : Int */;
2705 long var1 /* : Int */;
2706 long var2 /* : Int */;
2707 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2708 var1 = kernel__Int__digit_count_base_95d10(var2);
2709 var = var1;
2710 RET_LABEL:;
2711 return var;
2712 }
2713 /* method kernel#Int#to_c for (self: Int): Char */
2714 char kernel__Int__to_c(long self) {
2715 char var /* : Char */;
2716 short int var1 /* : Bool */;
2717 long var2 /* : Int */;
2718 short int var3 /* : Bool */;
2719 short int var5 /* : Bool */;
2720 int cltype;
2721 int idtype;
2722 short int var6 /* : Bool */;
2723 short int var_ /* var : Bool */;
2724 long var7 /* : Int */;
2725 short int var8 /* : Bool */;
2726 short int var10 /* : Bool */;
2727 int cltype11;
2728 int idtype12;
2729 short int var13 /* : Bool */;
2730 long var14 /* : Int */;
2731 short int var15 /* : Bool */;
2732 short int var17 /* : Bool */;
2733 int cltype18;
2734 int idtype19;
2735 short int var20 /* : Bool */;
2736 char var21 /* : Char */;
2737 long var22 /* : Int */;
2738 long var24 /* : Int */;
2739 long var25 /* : Int */;
2740 long var27 /* : Int */;
2741 char var28 /* : Char */;
2742 char var30 /* : Char */;
2743 char var31 /* : Char */;
2744 long var32 /* : Int */;
2745 long var34 /* : Int */;
2746 long var35 /* : Int */;
2747 long var36 /* : Int */;
2748 long var38 /* : Int */;
2749 long var39 /* : Int */;
2750 long var41 /* : Int */;
2751 char var42 /* : Char */;
2752 char var44 /* : Char */;
2753 var2 = 0;
2754 { /* Inline kernel#Int#>= (self,var2) */
2755 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2756 /* <var2:Int> isa OTHER */
2757 var5 = 1; /* easy <var2:Int> isa OTHER*/
2758 if (!var5) {
2759 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
2760 exit(1);
2761 }
2762 var6 = self >= var2;
2763 var3 = var6;
2764 goto RET_LABEL4;
2765 RET_LABEL4:(void)0;
2766 }
2767 var_ = var3;
2768 if (var3){
2769 var7 = 36;
2770 { /* Inline kernel#Int#<= (self,var7) */
2771 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
2772 /* <var7:Int> isa OTHER */
2773 var10 = 1; /* easy <var7:Int> isa OTHER*/
2774 if (!var10) {
2775 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
2776 exit(1);
2777 }
2778 var13 = self <= var7;
2779 var8 = var13;
2780 goto RET_LABEL9;
2781 RET_LABEL9:(void)0;
2782 }
2783 var1 = var8;
2784 } else {
2785 var1 = var_;
2786 }
2787 if (!var1) {
2788 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/kernel.nit", 395);
2789 exit(1);
2790 }
2791 var14 = 10;
2792 { /* Inline kernel#Int#< (self,var14) */
2793 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
2794 /* <var14:Int> isa OTHER */
2795 var17 = 1; /* easy <var14:Int> isa OTHER*/
2796 if (!var17) {
2797 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2798 exit(1);
2799 }
2800 var20 = self < var14;
2801 var15 = var20;
2802 goto RET_LABEL16;
2803 RET_LABEL16:(void)0;
2804 }
2805 if (var15){
2806 var21 = '0';
2807 { /* Inline kernel#Char#ascii (var21) */
2808 var24 = (unsigned char)var21;
2809 var22 = var24;
2810 goto RET_LABEL23;
2811 RET_LABEL23:(void)0;
2812 }
2813 { /* Inline kernel#Int#+ (self,var22) */
2814 var27 = self + var22;
2815 var25 = var27;
2816 goto RET_LABEL26;
2817 RET_LABEL26:(void)0;
2818 }
2819 { /* Inline kernel#Int#ascii (var25) */
2820 var30 = var25;
2821 var28 = var30;
2822 goto RET_LABEL29;
2823 RET_LABEL29:(void)0;
2824 }
2825 var = var28;
2826 goto RET_LABEL;
2827 } else {
2828 var31 = 'a';
2829 { /* Inline kernel#Char#ascii (var31) */
2830 var34 = (unsigned char)var31;
2831 var32 = var34;
2832 goto RET_LABEL33;
2833 RET_LABEL33:(void)0;
2834 }
2835 var35 = 10;
2836 { /* Inline kernel#Int#- (var32,var35) */
2837 var38 = var32 - var35;
2838 var36 = var38;
2839 goto RET_LABEL37;
2840 RET_LABEL37:(void)0;
2841 }
2842 { /* Inline kernel#Int#+ (self,var36) */
2843 var41 = self + var36;
2844 var39 = var41;
2845 goto RET_LABEL40;
2846 RET_LABEL40:(void)0;
2847 }
2848 { /* Inline kernel#Int#ascii (var39) */
2849 var44 = var39;
2850 var42 = var44;
2851 goto RET_LABEL43;
2852 RET_LABEL43:(void)0;
2853 }
2854 var = var42;
2855 goto RET_LABEL;
2856 }
2857 RET_LABEL:;
2858 return var;
2859 }
2860 /* method kernel#Int#to_c for (self: Object): Char */
2861 char VIRTUAL_kernel__Int__to_c(val* self) {
2862 char var /* : Char */;
2863 char var1 /* : Char */;
2864 long var2 /* : Int */;
2865 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2866 var1 = kernel__Int__to_c(var2);
2867 var = var1;
2868 RET_LABEL:;
2869 return var;
2870 }
2871 /* method kernel#Int#enumerate_to for (self: Int, Int) */
2872 void kernel__Int__enumerate_to(long self, long p0) {
2873 long var_last /* var last: Int */;
2874 long var_cur /* var cur: Int */;
2875 short int var /* : Bool */;
2876 short int var2 /* : Bool */;
2877 int cltype;
2878 int idtype;
2879 short int var3 /* : Bool */;
2880 long var4 /* : Int */;
2881 long var5 /* : Int */;
2882 long var7 /* : Int */;
2883 var_last = p0;
2884 var_cur = self;
2885 for(;;) {
2886 { /* Inline kernel#Int#<= (var_cur,var_last) */
2887 /* Covariant cast for argument 0 (i) <var_last:Int> isa OTHER */
2888 /* <var_last:Int> isa OTHER */
2889 var2 = 1; /* easy <var_last:Int> isa OTHER*/
2890 if (!var2) {
2891 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
2892 exit(1);
2893 }
2894 var3 = var_cur <= var_last;
2895 var = var3;
2896 goto RET_LABEL1;
2897 RET_LABEL1:(void)0;
2898 }
2899 if (!var) break;
2900 printf("NOT YET IMPLEMENTED AClosureCallExpr:lib/standard/kernel.nit:409,4--12\n");
2901 var4 = 1;
2902 { /* Inline kernel#Int#+ (var_cur,var4) */
2903 var7 = var_cur + var4;
2904 var5 = var7;
2905 goto RET_LABEL6;
2906 RET_LABEL6:(void)0;
2907 }
2908 var_cur = var5;
2909 CONTINUE_label: (void)0;
2910 }
2911 BREAK_label: (void)0;
2912 RET_LABEL:;
2913 }
2914 /* method kernel#Int#enumerate_to for (self: Object, Int) */
2915 void VIRTUAL_kernel__Int__enumerate_to(val* self, long p0) {
2916 long var /* : Int */;
2917 var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2918 kernel__Int__enumerate_to(var, p0);
2919 RET_LABEL:;
2920 }
2921 /* method kernel#Int#enumerate_before for (self: Int, Int) */
2922 void kernel__Int__enumerate_before(long self, long p0) {
2923 long var_after /* var after: Int */;
2924 long var_cur /* var cur: Int */;
2925 short int var /* : Bool */;
2926 short int var2 /* : Bool */;
2927 int cltype;
2928 int idtype;
2929 short int var3 /* : Bool */;
2930 long var4 /* : Int */;
2931 long var5 /* : Int */;
2932 long var7 /* : Int */;
2933 var_after = p0;
2934 var_cur = self;
2935 for(;;) {
2936 { /* Inline kernel#Int#< (var_cur,var_after) */
2937 /* Covariant cast for argument 0 (i) <var_after:Int> isa OTHER */
2938 /* <var_after:Int> isa OTHER */
2939 var2 = 1; /* easy <var_after:Int> isa OTHER*/
2940 if (!var2) {
2941 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2942 exit(1);
2943 }
2944 var3 = var_cur < var_after;
2945 var = var3;
2946 goto RET_LABEL1;
2947 RET_LABEL1:(void)0;
2948 }
2949 if (!var) break;
2950 printf("NOT YET IMPLEMENTED AClosureCallExpr:lib/standard/kernel.nit:420,4--12\n");
2951 var4 = 1;
2952 { /* Inline kernel#Int#+ (var_cur,var4) */
2953 var7 = var_cur + var4;
2954 var5 = var7;
2955 goto RET_LABEL6;
2956 RET_LABEL6:(void)0;
2957 }
2958 var_cur = var5;
2959 CONTINUE_label: (void)0;
2960 }
2961 BREAK_label: (void)0;
2962 RET_LABEL:;
2963 }
2964 /* method kernel#Int#enumerate_before for (self: Object, Int) */
2965 void VIRTUAL_kernel__Int__enumerate_before(val* self, long p0) {
2966 long var /* : Int */;
2967 var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2968 kernel__Int__enumerate_before(var, p0);
2969 RET_LABEL:;
2970 }
2971 /* method kernel#Int#abs for (self: Int): Int */
2972 long kernel__Int__abs(long self) {
2973 long var /* : Int */;
2974 long var1 /* : Int */;
2975 short int var2 /* : Bool */;
2976 short int var4 /* : Bool */;
2977 int cltype;
2978 int idtype;
2979 short int var5 /* : Bool */;
2980 long var6 /* : Int */;
2981 long var7 /* : Int */;
2982 long var9 /* : Int */;
2983 long var10 /* : Int */;
2984 long var12 /* : Int */;
2985 var1 = 0;
2986 { /* Inline kernel#Int#>= (self,var1) */
2987 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2988 /* <var1:Int> isa OTHER */
2989 var4 = 1; /* easy <var1:Int> isa OTHER*/
2990 if (!var4) {
2991 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
2992 exit(1);
2993 }
2994 var5 = self >= var1;
2995 var2 = var5;
2996 goto RET_LABEL3;
2997 RET_LABEL3:(void)0;
2998 }
2999 if (var2){
3000 var = self;
3001 goto RET_LABEL;
3002 } else {
3003 var6 = 1;
3004 { /* Inline kernel#Int#unary - (var6) */
3005 var9 = -var6;
3006 var7 = var9;
3007 goto RET_LABEL8;
3008 RET_LABEL8:(void)0;
3009 }
3010 { /* Inline kernel#Int#* (var7,self) */
3011 var12 = var7 * self;
3012 var10 = var12;
3013 goto RET_LABEL11;
3014 RET_LABEL11:(void)0;
3015 }
3016 var = var10;
3017 goto RET_LABEL;
3018 }
3019 RET_LABEL:;
3020 return var;
3021 }
3022 /* method kernel#Int#abs for (self: Object): Int */
3023 long VIRTUAL_kernel__Int__abs(val* self) {
3024 long var /* : Int */;
3025 long var1 /* : Int */;
3026 long var2 /* : Int */;
3027 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
3028 var1 = kernel__Int__abs(var2);
3029 var = var1;
3030 RET_LABEL:;
3031 return var;
3032 }
3033 /* method kernel#Char#object_id for (self: Char): Int */
3034 long kernel__Char__object_id(char self) {
3035 long var /* : Int */;
3036 long var1 /* : Int */;
3037 var1 = (long)self;
3038 var = var1;
3039 goto RET_LABEL;
3040 RET_LABEL:;
3041 return var;
3042 }
3043 /* method kernel#Char#object_id for (self: Object): Int */
3044 long VIRTUAL_kernel__Char__object_id(val* self) {
3045 long var /* : Int */;
3046 long var1 /* : Int */;
3047 char var3 /* : Char */;
3048 long var4 /* : Int */;
3049 { /* Inline kernel#Char#object_id (self) */
3050 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3051 var4 = (long)var3;
3052 var1 = var4;
3053 goto RET_LABEL2;
3054 RET_LABEL2:(void)0;
3055 }
3056 var = var1;
3057 RET_LABEL:;
3058 return var;
3059 }
3060 /* method kernel#Char#hash for (self: Char): Int */
3061 long kernel__Char__hash(char self) {
3062 long var /* : Int */;
3063 long var1 /* : Int */;
3064 long var3 /* : Int */;
3065 { /* Inline kernel#Char#ascii (self) */
3066 var3 = (unsigned char)self;
3067 var1 = var3;
3068 goto RET_LABEL2;
3069 RET_LABEL2:(void)0;
3070 }
3071 var = var1;
3072 goto RET_LABEL;
3073 RET_LABEL:;
3074 return var;
3075 }
3076 /* method kernel#Char#hash for (self: Object): Int */
3077 long VIRTUAL_kernel__Char__hash(val* self) {
3078 long var /* : Int */;
3079 long var1 /* : Int */;
3080 char var2 /* : Char */;
3081 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3082 var1 = kernel__Char__hash(var2);
3083 var = var1;
3084 RET_LABEL:;
3085 return var;
3086 }
3087 /* method kernel#Char#== for (self: Char, nullable Object): Bool */
3088 short int kernel__Char___61d_61d(char self, val* p0) {
3089 short int var /* : Bool */;
3090 short int var1 /* : Bool */;
3091 char var2 /* : Char */;
3092 var1 = (p0 != NULL) && (p0->class == &class_kernel__Char);
3093 if (var1) {
3094 var2 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
3095 var1 = (var2 == self);
3096 }
3097 var = var1;
3098 goto RET_LABEL;
3099 RET_LABEL:;
3100 return var;
3101 }
3102 /* method kernel#Char#== for (self: Object, nullable Object): Bool */
3103 short int VIRTUAL_kernel__Char___61d_61d(val* self, val* p0) {
3104 short int var /* : Bool */;
3105 short int var1 /* : Bool */;
3106 short int var3 /* : Bool */;
3107 { /* Inline kernel#Char#== (self,p0) */
3108 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value);
3109 var1 = var3;
3110 goto RET_LABEL2;
3111 RET_LABEL2:(void)0;
3112 }
3113 var = var1;
3114 RET_LABEL:;
3115 return var;
3116 }
3117 /* method kernel#Char#!= for (self: Char, nullable Object): Bool */
3118 short int kernel__Char___33d_61d(char self, val* p0) {
3119 short int var /* : Bool */;
3120 short int var1 /* : Bool */;
3121 char var2 /* : Char */;
3122 short int var3 /* : Bool */;
3123 var1 = (p0 != NULL) && (p0->class == &class_kernel__Char);
3124 if (var1) {
3125 var2 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
3126 var1 = (var2 == self);
3127 }
3128 var3 = !var1;
3129 var = var3;
3130 goto RET_LABEL;
3131 RET_LABEL:;
3132 return var;
3133 }
3134 /* method kernel#Char#!= for (self: Object, nullable Object): Bool */
3135 short int VIRTUAL_kernel__Char___33d_61d(val* self, val* p0) {
3136 short int var /* : Bool */;
3137 short int var1 /* : Bool */;
3138 short int var3 /* : Bool */;
3139 short int var4 /* : Bool */;
3140 { /* Inline kernel#Char#!= (self,p0) */
3141 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value);
3142 var4 = !var3;
3143 var1 = var4;
3144 goto RET_LABEL2;
3145 RET_LABEL2:(void)0;
3146 }
3147 var = var1;
3148 RET_LABEL:;
3149 return var;
3150 }
3151 /* method kernel#Char#output for (self: Char) */
3152 void kernel__Char__output(char self) {
3153 printf("%c", self);
3154 RET_LABEL:;
3155 }
3156 /* method kernel#Char#output for (self: Object) */
3157 void VIRTUAL_kernel__Char__output(val* self) {
3158 char var /* : Char */;
3159 { /* Inline kernel#Char#output (self) */
3160 var = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3161 printf("%c", var);
3162 RET_LABEL1:(void)0;
3163 }
3164 RET_LABEL:;
3165 }
3166 /* method kernel#Char#<= for (self: Char, Char): Bool */
3167 short int kernel__Char___60d_61d(char self, char p0) {
3168 short int var /* : Bool */;
3169 short int var1 /* : Bool */;
3170 int cltype;
3171 int idtype;
3172 short int var2 /* : Bool */;
3173 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3174 /* <p0:Char> isa OTHER */
3175 var1 = 1; /* easy <p0:Char> isa OTHER*/
3176 if (!var1) {
3177 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454);
3178 exit(1);
3179 }
3180 var2 = self <= p0;
3181 var = var2;
3182 goto RET_LABEL;
3183 RET_LABEL:;
3184 return var;
3185 }
3186 /* method kernel#Char#<= for (self: Object, Comparable): Bool */
3187 short int VIRTUAL_kernel__Char___60d_61d(val* self, val* p0) {
3188 short int var /* : Bool */;
3189 short int var1 /* : Bool */;
3190 short int var3 /* : Bool */;
3191 int cltype;
3192 int idtype;
3193 const struct type* type_struct;
3194 char var4 /* : Char */;
3195 char var5 /* : Char */;
3196 short int var6 /* : Bool */;
3197 { /* Inline kernel#Char#<= (self,p0) */
3198 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3199 /* <p0:Comparable> isa OTHER */
3200 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3201 cltype = type_struct->color;
3202 idtype = type_struct->id;
3203 if(cltype >= p0->type->table_size) {
3204 var3 = 0;
3205 } else {
3206 var3 = p0->type->type_table[cltype] == idtype;
3207 }
3208 if (!var3) {
3209 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454);
3210 exit(1);
3211 }
3212 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3213 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3214 var6 = var4 <= var5;
3215 var1 = var6;
3216 goto RET_LABEL2;
3217 RET_LABEL2:(void)0;
3218 }
3219 var = var1;
3220 RET_LABEL:;
3221 return var;
3222 }
3223 /* method kernel#Char#< for (self: Char, Char): Bool */
3224 short int kernel__Char___60d(char self, char p0) {
3225 short int var /* : Bool */;
3226 short int var1 /* : Bool */;
3227 int cltype;
3228 int idtype;
3229 short int var2 /* : Bool */;
3230 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3231 /* <p0:Char> isa OTHER */
3232 var1 = 1; /* easy <p0:Char> isa OTHER*/
3233 if (!var1) {
3234 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 455);
3235 exit(1);
3236 }
3237 var2 = self < p0;
3238 var = var2;
3239 goto RET_LABEL;
3240 RET_LABEL:;
3241 return var;
3242 }
3243 /* method kernel#Char#< for (self: Object, Comparable): Bool */
3244 short int VIRTUAL_kernel__Char___60d(val* self, val* p0) {
3245 short int var /* : Bool */;
3246 short int var1 /* : Bool */;
3247 short int var3 /* : Bool */;
3248 int cltype;
3249 int idtype;
3250 const struct type* type_struct;
3251 char var4 /* : Char */;
3252 char var5 /* : Char */;
3253 short int var6 /* : Bool */;
3254 { /* Inline kernel#Char#< (self,p0) */
3255 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3256 /* <p0:Comparable> isa OTHER */
3257 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3258 cltype = type_struct->color;
3259 idtype = type_struct->id;
3260 if(cltype >= p0->type->table_size) {
3261 var3 = 0;
3262 } else {
3263 var3 = p0->type->type_table[cltype] == idtype;
3264 }
3265 if (!var3) {
3266 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 455);
3267 exit(1);
3268 }
3269 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3270 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3271 var6 = var4 < var5;
3272 var1 = var6;
3273 goto RET_LABEL2;
3274 RET_LABEL2:(void)0;
3275 }
3276 var = var1;
3277 RET_LABEL:;
3278 return var;
3279 }
3280 /* method kernel#Char#>= for (self: Char, Char): Bool */
3281 short int kernel__Char___62d_61d(char self, char p0) {
3282 short int var /* : Bool */;
3283 short int var1 /* : Bool */;
3284 int cltype;
3285 int idtype;
3286 short int var2 /* : Bool */;
3287 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3288 /* <p0:Char> isa OTHER */
3289 var1 = 1; /* easy <p0:Char> isa OTHER*/
3290 if (!var1) {
3291 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456);
3292 exit(1);
3293 }
3294 var2 = self >= p0;
3295 var = var2;
3296 goto RET_LABEL;
3297 RET_LABEL:;
3298 return var;
3299 }
3300 /* method kernel#Char#>= for (self: Object, Comparable): Bool */
3301 short int VIRTUAL_kernel__Char___62d_61d(val* self, val* p0) {
3302 short int var /* : Bool */;
3303 short int var1 /* : Bool */;
3304 short int var3 /* : Bool */;
3305 int cltype;
3306 int idtype;
3307 const struct type* type_struct;
3308 char var4 /* : Char */;
3309 char var5 /* : Char */;
3310 short int var6 /* : Bool */;
3311 { /* Inline kernel#Char#>= (self,p0) */
3312 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3313 /* <p0:Comparable> isa OTHER */
3314 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3315 cltype = type_struct->color;
3316 idtype = type_struct->id;
3317 if(cltype >= p0->type->table_size) {
3318 var3 = 0;
3319 } else {
3320 var3 = p0->type->type_table[cltype] == idtype;
3321 }
3322 if (!var3) {
3323 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456);
3324 exit(1);
3325 }
3326 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3327 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3328 var6 = var4 >= var5;
3329 var1 = var6;
3330 goto RET_LABEL2;
3331 RET_LABEL2:(void)0;
3332 }
3333 var = var1;
3334 RET_LABEL:;
3335 return var;
3336 }
3337 /* method kernel#Char#> for (self: Char, Char): Bool */
3338 short int kernel__Char___62d(char self, char p0) {
3339 short int var /* : Bool */;
3340 short int var1 /* : Bool */;
3341 int cltype;
3342 int idtype;
3343 short int var2 /* : Bool */;
3344 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3345 /* <p0:Char> isa OTHER */
3346 var1 = 1; /* easy <p0:Char> isa OTHER*/
3347 if (!var1) {
3348 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 457);
3349 exit(1);
3350 }
3351 var2 = self > p0;
3352 var = var2;
3353 goto RET_LABEL;
3354 RET_LABEL:;
3355 return var;
3356 }
3357 /* method kernel#Char#> for (self: Object, Comparable): Bool */
3358 short int VIRTUAL_kernel__Char___62d(val* self, val* p0) {
3359 short int var /* : Bool */;
3360 short int var1 /* : Bool */;
3361 short int var3 /* : Bool */;
3362 int cltype;
3363 int idtype;
3364 const struct type* type_struct;
3365 char var4 /* : Char */;
3366 char var5 /* : Char */;
3367 short int var6 /* : Bool */;
3368 { /* Inline kernel#Char#> (self,p0) */
3369 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3370 /* <p0:Comparable> isa OTHER */
3371 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3372 cltype = type_struct->color;
3373 idtype = type_struct->id;
3374 if(cltype >= p0->type->table_size) {
3375 var3 = 0;
3376 } else {
3377 var3 = p0->type->type_table[cltype] == idtype;
3378 }
3379 if (!var3) {
3380 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 457);
3381 exit(1);
3382 }
3383 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3384 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3385 var6 = var4 > var5;
3386 var1 = var6;
3387 goto RET_LABEL2;
3388 RET_LABEL2:(void)0;
3389 }
3390 var = var1;
3391 RET_LABEL:;
3392 return var;
3393 }
3394 /* method kernel#Char#succ for (self: Char): Char */
3395 char kernel__Char__succ(char self) {
3396 char var /* : Char */;
3397 char var1 /* : Char */;
3398 var1 = self+1;
3399 var = var1;
3400 goto RET_LABEL;
3401 RET_LABEL:;
3402 return var;
3403 }
3404 /* method kernel#Char#succ for (self: Object): Discrete */
3405 val* VIRTUAL_kernel__Char__succ(val* self) {
3406 val* var /* : Discrete */;
3407 char var1 /* : Char */;
3408 char var3 /* : Char */;
3409 char var4 /* : Char */;
3410 val* var5 /* : Discrete */;
3411 { /* Inline kernel#Char#succ (self) */
3412 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3413 var4 = var3+1;
3414 var1 = var4;
3415 goto RET_LABEL2;
3416 RET_LABEL2:(void)0;
3417 }
3418 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3419 var = var5;
3420 RET_LABEL:;
3421 return var;
3422 }
3423 /* method kernel#Char#prec for (self: Char): Char */
3424 char kernel__Char__prec(char self) {
3425 char var /* : Char */;
3426 char var1 /* : Char */;
3427 var1 = self-1;
3428 var = var1;
3429 goto RET_LABEL;
3430 RET_LABEL:;
3431 return var;
3432 }
3433 /* method kernel#Char#prec for (self: Object): Discrete */
3434 val* VIRTUAL_kernel__Char__prec(val* self) {
3435 val* var /* : Discrete */;
3436 char var1 /* : Char */;
3437 char var3 /* : Char */;
3438 char var4 /* : Char */;
3439 val* var5 /* : Discrete */;
3440 { /* Inline kernel#Char#prec (self) */
3441 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3442 var4 = var3-1;
3443 var1 = var4;
3444 goto RET_LABEL2;
3445 RET_LABEL2:(void)0;
3446 }
3447 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3448 var = var5;
3449 RET_LABEL:;
3450 return var;
3451 }
3452 /* method kernel#Char#distance for (self: Char, Char): Int */
3453 long kernel__Char__distance(char self, char p0) {
3454 long var /* : Int */;
3455 short int var1 /* : Bool */;
3456 int cltype;
3457 int idtype;
3458 char var_c /* var c: Char */;
3459 long var2 /* : Int */;
3460 long var4 /* : Int */;
3461 long var5 /* : Int */;
3462 long var7 /* : Int */;
3463 long var8 /* : Int */;
3464 long var10 /* : Int */;
3465 long var_d /* var d: Int */;
3466 long var11 /* : Int */;
3467 short int var12 /* : Bool */;
3468 short int var14 /* : Bool */;
3469 int cltype15;
3470 int idtype16;
3471 short int var17 /* : Bool */;
3472 long var18 /* : Int */;
3473 long var20 /* : Int */;
3474 /* Covariant cast for argument 0 (c) <p0:Char> isa OTHER */
3475 /* <p0:Char> isa OTHER */
3476 var1 = 1; /* easy <p0:Char> isa OTHER*/
3477 if (!var1) {
3478 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 462);
3479 exit(1);
3480 }
3481 var_c = p0;
3482 { /* Inline kernel#Char#ascii (self) */
3483 var4 = (unsigned char)self;
3484 var2 = var4;
3485 goto RET_LABEL3;
3486 RET_LABEL3:(void)0;
3487 }
3488 { /* Inline kernel#Char#ascii (var_c) */
3489 var7 = (unsigned char)var_c;
3490 var5 = var7;
3491 goto RET_LABEL6;
3492 RET_LABEL6:(void)0;
3493 }
3494 { /* Inline kernel#Int#- (var2,var5) */
3495 var10 = var2 - var5;
3496 var8 = var10;
3497 goto RET_LABEL9;
3498 RET_LABEL9:(void)0;
3499 }
3500 var_d = var8;
3501 var11 = 0;
3502 { /* Inline kernel#Int#>= (var_d,var11) */
3503 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
3504 /* <var11:Int> isa OTHER */
3505 var14 = 1; /* easy <var11:Int> isa OTHER*/
3506 if (!var14) {
3507 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
3508 exit(1);
3509 }
3510 var17 = var_d >= var11;
3511 var12 = var17;
3512 goto RET_LABEL13;
3513 RET_LABEL13:(void)0;
3514 }
3515 if (var12){
3516 var = var_d;
3517 goto RET_LABEL;
3518 } else {
3519 { /* Inline kernel#Int#unary - (var_d) */
3520 var20 = -var_d;
3521 var18 = var20;
3522 goto RET_LABEL19;
3523 RET_LABEL19:(void)0;
3524 }
3525 var = var18;
3526 goto RET_LABEL;
3527 }
3528 RET_LABEL:;
3529 return var;
3530 }
3531 /* method kernel#Char#distance for (self: Object, Discrete): Int */
3532 long VIRTUAL_kernel__Char__distance(val* self, val* p0) {
3533 long var /* : Int */;
3534 long var1 /* : Int */;
3535 char var2 /* : Char */;
3536 char var3 /* : Char */;
3537 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3538 var3 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Discrete to Char */;
3539 var1 = kernel__Char__distance(var2, var3);
3540 var = var1;
3541 RET_LABEL:;
3542 return var;
3543 }
3544 /* method kernel#Char#to_i for (self: Char): Int */
3545 long kernel__Char__to_i(char self) {
3546 long var /* : Int */;
3547 char var1 /* : Char */;
3548 short int var2 /* : Bool */;
3549 short int var4 /* : Bool */;
3550 long var5 /* : Int */;
3551 long var6 /* : Int */;
3552 long var8 /* : Int */;
3553 short int var9 /* : Bool */;
3554 long var10 /* : Int */;
3555 long var12 /* : Int */;
3556 char var13 /* : Char */;
3557 long var14 /* : Int */;
3558 long var16 /* : Int */;
3559 long var17 /* : Int */;
3560 long var19 /* : Int */;
3561 char var20 /* : Char */;
3562 long var21 /* : Int */;
3563 long var23 /* : Int */;
3564 char var24 /* : Char */;
3565 long var25 /* : Int */;
3566 long var27 /* : Int */;
3567 long var28 /* : Int */;
3568 long var29 /* : Int */;
3569 long var31 /* : Int */;
3570 long var32 /* : Int */;
3571 long var34 /* : Int */;
3572 var1 = '-';
3573 { /* Inline kernel#Char#== (self,var1) */
3574 var4 = self == var1;
3575 var2 = var4;
3576 goto RET_LABEL3;
3577 RET_LABEL3:(void)0;
3578 }
3579 if (var2){
3580 var5 = 1;
3581 { /* Inline kernel#Int#unary - (var5) */
3582 var8 = -var5;
3583 var6 = var8;
3584 goto RET_LABEL7;
3585 RET_LABEL7:(void)0;
3586 }
3587 var = var6;
3588 goto RET_LABEL;
3589 } else {
3590 var9 = kernel__Char__is_digit(self);
3591 if (var9){
3592 { /* Inline kernel#Char#ascii (self) */
3593 var12 = (unsigned char)self;
3594 var10 = var12;
3595 goto RET_LABEL11;
3596 RET_LABEL11:(void)0;
3597 }
3598 var13 = '0';
3599 { /* Inline kernel#Char#ascii (var13) */
3600 var16 = (unsigned char)var13;
3601 var14 = var16;
3602 goto RET_LABEL15;
3603 RET_LABEL15:(void)0;
3604 }
3605 { /* Inline kernel#Int#- (var10,var14) */
3606 var19 = var10 - var14;
3607 var17 = var19;
3608 goto RET_LABEL18;
3609 RET_LABEL18:(void)0;
3610 }
3611 var = var17;
3612 goto RET_LABEL;
3613 } else {
3614 var20 = kernel__Char__to_lower(self);
3615 { /* Inline kernel#Char#ascii (var20) */
3616 var23 = (unsigned char)var20;
3617 var21 = var23;
3618 goto RET_LABEL22;
3619 RET_LABEL22:(void)0;
3620 }
3621 var24 = 'a';
3622 { /* Inline kernel#Char#ascii (var24) */
3623 var27 = (unsigned char)var24;
3624 var25 = var27;
3625 goto RET_LABEL26;
3626 RET_LABEL26:(void)0;
3627 }
3628 var28 = 10;
3629 { /* Inline kernel#Int#+ (var25,var28) */
3630 var31 = var25 + var28;
3631 var29 = var31;
3632 goto RET_LABEL30;
3633 RET_LABEL30:(void)0;
3634 }
3635 { /* Inline kernel#Int#- (var21,var29) */
3636 var34 = var21 - var29;
3637 var32 = var34;
3638 goto RET_LABEL33;
3639 RET_LABEL33:(void)0;
3640 }
3641 var = var32;
3642 goto RET_LABEL;
3643 }
3644 }
3645 RET_LABEL:;
3646 return var;
3647 }
3648 /* method kernel#Char#to_i for (self: Object): Int */
3649 long VIRTUAL_kernel__Char__to_i(val* self) {
3650 long var /* : Int */;
3651 long var1 /* : Int */;
3652 char var2 /* : Char */;
3653 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3654 var1 = kernel__Char__to_i(var2);
3655 var = var1;
3656 RET_LABEL:;
3657 return var;
3658 }
3659 /* method kernel#Char#ascii for (self: Char): Int */
3660 long kernel__Char__ascii(char self) {
3661 long var /* : Int */;
3662 long var1 /* : Int */;
3663 var1 = (unsigned char)self;
3664 var = var1;
3665 goto RET_LABEL;
3666 RET_LABEL:;
3667 return var;
3668 }
3669 /* method kernel#Char#ascii for (self: Object): Int */
3670 long VIRTUAL_kernel__Char__ascii(val* self) {
3671 long var /* : Int */;
3672 long var1 /* : Int */;
3673 char var3 /* : Char */;
3674 long var4 /* : Int */;
3675 { /* Inline kernel#Char#ascii (self) */
3676 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3677 var4 = (unsigned char)var3;
3678 var1 = var4;
3679 goto RET_LABEL2;
3680 RET_LABEL2:(void)0;
3681 }
3682 var = var1;
3683 RET_LABEL:;
3684 return var;
3685 }
3686 /* method kernel#Char#+ for (self: Char, Int): Char */
3687 char kernel__Char___43d(char self, long p0) {
3688 char var /* : Char */;
3689 char var1 /* : Char */;
3690 var1 = self + p0;
3691 var = var1;
3692 goto RET_LABEL;
3693 RET_LABEL:;
3694 return var;
3695 }
3696 /* method kernel#Char#+ for (self: Object, Int): Discrete */
3697 val* VIRTUAL_kernel__Char___43d(val* self, long p0) {
3698 val* var /* : Discrete */;
3699 char var1 /* : Char */;
3700 char var3 /* : Char */;
3701 char var4 /* : Char */;
3702 val* var5 /* : Discrete */;
3703 { /* Inline kernel#Char#+ (self,p0) */
3704 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3705 var4 = var3 + p0;
3706 var1 = var4;
3707 goto RET_LABEL2;
3708 RET_LABEL2:(void)0;
3709 }
3710 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3711 var = var5;
3712 RET_LABEL:;
3713 return var;
3714 }
3715 /* method kernel#Char#- for (self: Char, Int): Char */
3716 char kernel__Char___45d(char self, long p0) {
3717 char var /* : Char */;
3718 char var1 /* : Char */;
3719 var1 = self - p0;
3720 var = var1;
3721 goto RET_LABEL;
3722 RET_LABEL:;
3723 return var;
3724 }
3725 /* method kernel#Char#- for (self: Object, Int): Discrete */
3726 val* VIRTUAL_kernel__Char___45d(val* self, long p0) {
3727 val* var /* : Discrete */;
3728 char var1 /* : Char */;
3729 char var3 /* : Char */;
3730 char var4 /* : Char */;
3731 val* var5 /* : Discrete */;
3732 { /* Inline kernel#Char#- (self,p0) */
3733 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3734 var4 = var3 - p0;
3735 var1 = var4;
3736 goto RET_LABEL2;
3737 RET_LABEL2:(void)0;
3738 }
3739 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3740 var = var5;
3741 RET_LABEL:;
3742 return var;
3743 }
3744 /* method kernel#Char#to_lower for (self: Char): Char */
3745 char kernel__Char__to_lower(char self) {
3746 char var /* : Char */;
3747 short int var1 /* : Bool */;
3748 long var2 /* : Int */;
3749 long var4 /* : Int */;
3750 char var5 /* : Char */;
3751 char var6 /* : Char */;
3752 long var7 /* : Int */;
3753 long var8 /* : Int */;
3754 long var10 /* : Int */;
3755 char var11 /* : Char */;
3756 char var13 /* : Char */;
3757 var1 = kernel__Char__is_upper(self);
3758 if (var1){
3759 { /* Inline kernel#Char#ascii (self) */
3760 var4 = (unsigned char)self;
3761 var2 = var4;
3762 goto RET_LABEL3;
3763 RET_LABEL3:(void)0;
3764 }
3765 var5 = 'a';
3766 var6 = 'A';
3767 var7 = kernel__Char__distance(var5, var6);
3768 { /* Inline kernel#Int#+ (var2,var7) */
3769 var10 = var2 + var7;
3770 var8 = var10;
3771 goto RET_LABEL9;
3772 RET_LABEL9:(void)0;
3773 }
3774 { /* Inline kernel#Int#ascii (var8) */
3775 var13 = var8;
3776 var11 = var13;
3777 goto RET_LABEL12;
3778 RET_LABEL12:(void)0;
3779 }
3780 var = var11;
3781 goto RET_LABEL;
3782 } else {
3783 var = self;
3784 goto RET_LABEL;
3785 }
3786 RET_LABEL:;
3787 return var;
3788 }
3789 /* method kernel#Char#to_lower for (self: Object): Char */
3790 char VIRTUAL_kernel__Char__to_lower(val* self) {
3791 char var /* : Char */;
3792 char var1 /* : Char */;
3793 char var2 /* : Char */;
3794 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3795 var1 = kernel__Char__to_lower(var2);
3796 var = var1;
3797 RET_LABEL:;
3798 return var;
3799 }
3800 /* method kernel#Char#to_upper for (self: Char): Char */
3801 char kernel__Char__to_upper(char self) {
3802 char var /* : Char */;
3803 short int var1 /* : Bool */;
3804 long var2 /* : Int */;
3805 long var4 /* : Int */;
3806 char var5 /* : Char */;
3807 char var6 /* : Char */;
3808 long var7 /* : Int */;
3809 long var8 /* : Int */;
3810 long var10 /* : Int */;
3811 char var11 /* : Char */;
3812 char var13 /* : Char */;
3813 var1 = kernel__Char__is_lower(self);
3814 if (var1){
3815 { /* Inline kernel#Char#ascii (self) */
3816 var4 = (unsigned char)self;
3817 var2 = var4;
3818 goto RET_LABEL3;
3819 RET_LABEL3:(void)0;
3820 }
3821 var5 = 'a';
3822 var6 = 'A';
3823 var7 = kernel__Char__distance(var5, var6);
3824 { /* Inline kernel#Int#- (var2,var7) */
3825 var10 = var2 - var7;
3826 var8 = var10;
3827 goto RET_LABEL9;
3828 RET_LABEL9:(void)0;
3829 }
3830 { /* Inline kernel#Int#ascii (var8) */
3831 var13 = var8;
3832 var11 = var13;
3833 goto RET_LABEL12;
3834 RET_LABEL12:(void)0;
3835 }
3836 var = var11;
3837 goto RET_LABEL;
3838 } else {
3839 var = self;
3840 goto RET_LABEL;
3841 }
3842 RET_LABEL:;
3843 return var;
3844 }
3845 /* method kernel#Char#to_upper for (self: Object): Char */
3846 char VIRTUAL_kernel__Char__to_upper(val* self) {
3847 char var /* : Char */;
3848 char var1 /* : Char */;
3849 char var2 /* : Char */;
3850 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3851 var1 = kernel__Char__to_upper(var2);
3852 var = var1;
3853 RET_LABEL:;
3854 return var;
3855 }
3856 /* method kernel#Char#is_digit for (self: Char): Bool */
3857 short int kernel__Char__is_digit(char self) {
3858 short int var /* : Bool */;
3859 short int var1 /* : Bool */;
3860 char var2 /* : Char */;
3861 short int var3 /* : Bool */;
3862 short int var5 /* : Bool */;
3863 int cltype;
3864 int idtype;
3865 short int var6 /* : Bool */;
3866 short int var_ /* var : Bool */;
3867 char var7 /* : Char */;
3868 short int var8 /* : Bool */;
3869 short int var10 /* : Bool */;
3870 int cltype11;
3871 int idtype12;
3872 short int var13 /* : Bool */;
3873 var2 = '0';
3874 { /* Inline kernel#Char#>= (self,var2) */
3875 /* Covariant cast for argument 0 (i) <var2:Char> isa OTHER */
3876 /* <var2:Char> isa OTHER */
3877 var5 = 1; /* easy <var2:Char> isa OTHER*/
3878 if (!var5) {
3879 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456);
3880 exit(1);
3881 }
3882 var6 = self >= var2;
3883 var3 = var6;
3884 goto RET_LABEL4;
3885 RET_LABEL4:(void)0;
3886 }
3887 var_ = var3;
3888 if (var3){
3889 var7 = '9';
3890 { /* Inline kernel#Char#<= (self,var7) */
3891 /* Covariant cast for argument 0 (i) <var7:Char> isa OTHER */
3892 /* <var7:Char> isa OTHER */
3893 var10 = 1; /* easy <var7:Char> isa OTHER*/
3894 if (!var10) {
3895 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454);
3896 exit(1);
3897 }
3898 var13 = self <= var7;
3899 var8 = var13;
3900 goto RET_LABEL9;
3901 RET_LABEL9:(void)0;
3902 }
3903 var1 = var8;
3904 } else {
3905 var1 = var_;
3906 }
3907 var = var1;
3908 goto RET_LABEL;
3909 RET_LABEL:;
3910 return var;
3911 }
3912 /* method kernel#Char#is_digit for (self: Object): Bool */
3913 short int VIRTUAL_kernel__Char__is_digit(val* self) {
3914 short int var /* : Bool */;
3915 short int var1 /* : Bool */;
3916 char var2 /* : Char */;
3917 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3918 var1 = kernel__Char__is_digit(var2);
3919 var = var1;
3920 RET_LABEL:;
3921 return var;
3922 }
3923 /* method kernel#Char#is_lower for (self: Char): Bool */
3924 short int kernel__Char__is_lower(char self) {
3925 short int var /* : Bool */;
3926 short int var1 /* : Bool */;
3927 char var2 /* : Char */;
3928 short int var3 /* : Bool */;
3929 short int var5 /* : Bool */;
3930 int cltype;
3931 int idtype;
3932 short int var6 /* : Bool */;
3933 short int var_ /* var : Bool */;
3934 char var7 /* : Char */;
3935 short int var8 /* : Bool */;
3936 short int var10 /* : Bool */;
3937 int cltype11;
3938 int idtype12;
3939 short int var13 /* : Bool */;
3940 var2 = 'a';
3941 { /* Inline kernel#Char#>= (self,var2) */
3942 /* Covariant cast for argument 0 (i) <var2:Char> isa OTHER */
3943 /* <var2:Char> isa OTHER */
3944 var5 = 1; /* easy <var2:Char> isa OTHER*/
3945 if (!var5) {
3946 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456);
3947 exit(1);
3948 }
3949 var6 = self >= var2;
3950 var3 = var6;
3951 goto RET_LABEL4;
3952 RET_LABEL4:(void)0;
3953 }
3954 var_ = var3;
3955 if (var3){
3956 var7 = 'z';
3957 { /* Inline kernel#Char#<= (self,var7) */
3958 /* Covariant cast for argument 0 (i) <var7:Char> isa OTHER */
3959 /* <var7:Char> isa OTHER */
3960 var10 = 1; /* easy <var7:Char> isa OTHER*/
3961 if (!var10) {
3962 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454);
3963 exit(1);
3964 }
3965 var13 = self <= var7;
3966 var8 = var13;
3967 goto RET_LABEL9;
3968 RET_LABEL9:(void)0;
3969 }
3970 var1 = var8;
3971 } else {
3972 var1 = var_;
3973 }
3974 var = var1;
3975 goto RET_LABEL;
3976 RET_LABEL:;
3977 return var;
3978 }
3979 /* method kernel#Char#is_lower for (self: Object): Bool */
3980 short int VIRTUAL_kernel__Char__is_lower(val* self) {
3981 short int var /* : Bool */;
3982 short int var1 /* : Bool */;
3983 char var2 /* : Char */;
3984 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3985 var1 = kernel__Char__is_lower(var2);
3986 var = var1;
3987 RET_LABEL:;
3988 return var;
3989 }
3990 /* method kernel#Char#is_upper for (self: Char): Bool */
3991 short int kernel__Char__is_upper(char self) {
3992 short int var /* : Bool */;
3993 short int var1 /* : Bool */;
3994 char var2 /* : Char */;
3995 short int var3 /* : Bool */;
3996 short int var5 /* : Bool */;
3997 int cltype;
3998 int idtype;
3999 short int var6 /* : Bool */;
4000 short int var_ /* var : Bool */;
4001 char var7 /* : Char */;
4002 short int var8 /* : Bool */;
4003 short int var10 /* : Bool */;
4004 int cltype11;
4005 int idtype12;
4006 short int var13 /* : Bool */;
4007 var2 = 'A';
4008 { /* Inline kernel#Char#>= (self,var2) */
4009 /* Covariant cast for argument 0 (i) <var2:Char> isa OTHER */
4010 /* <var2:Char> isa OTHER */
4011 var5 = 1; /* easy <var2:Char> isa OTHER*/
4012 if (!var5) {
4013 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456);
4014 exit(1);
4015 }
4016 var6 = self >= var2;
4017 var3 = var6;
4018 goto RET_LABEL4;
4019 RET_LABEL4:(void)0;
4020 }
4021 var_ = var3;
4022 if (var3){
4023 var7 = 'Z';
4024 { /* Inline kernel#Char#<= (self,var7) */
4025 /* Covariant cast for argument 0 (i) <var7:Char> isa OTHER */
4026 /* <var7:Char> isa OTHER */
4027 var10 = 1; /* easy <var7:Char> isa OTHER*/
4028 if (!var10) {
4029 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454);
4030 exit(1);
4031 }
4032 var13 = self <= var7;
4033 var8 = var13;
4034 goto RET_LABEL9;
4035 RET_LABEL9:(void)0;
4036 }
4037 var1 = var8;
4038 } else {
4039 var1 = var_;
4040 }
4041 var = var1;
4042 goto RET_LABEL;
4043 RET_LABEL:;
4044 return var;
4045 }
4046 /* method kernel#Char#is_upper for (self: Object): Bool */
4047 short int VIRTUAL_kernel__Char__is_upper(val* self) {
4048 short int var /* : Bool */;
4049 short int var1 /* : Bool */;
4050 char var2 /* : Char */;
4051 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4052 var1 = kernel__Char__is_upper(var2);
4053 var = var1;
4054 RET_LABEL:;
4055 return var;
4056 }
4057 /* method kernel#Char#is_letter for (self: Char): Bool */
4058 short int kernel__Char__is_letter(char self) {
4059 short int var /* : Bool */;
4060 short int var1 /* : Bool */;
4061 short int var2 /* : Bool */;
4062 short int var_ /* var : Bool */;
4063 short int var3 /* : Bool */;
4064 var2 = kernel__Char__is_lower(self);
4065 var_ = var2;
4066 if (var2){
4067 var1 = var_;
4068 } else {
4069 var3 = kernel__Char__is_upper(self);
4070 var1 = var3;
4071 }
4072 var = var1;
4073 goto RET_LABEL;
4074 RET_LABEL:;
4075 return var;
4076 }
4077 /* method kernel#Char#is_letter for (self: Object): Bool */
4078 short int VIRTUAL_kernel__Char__is_letter(val* self) {
4079 short int var /* : Bool */;
4080 short int var1 /* : Bool */;
4081 char var2 /* : Char */;
4082 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4083 var1 = kernel__Char__is_letter(var2);
4084 var = var1;
4085 RET_LABEL:;
4086 return var;
4087 }
4088 /* method kernel#Pointer#address_is_null for (self: Pointer): Bool */
4089 short int kernel__Pointer__address_is_null(void* self) {
4090 short int var /* : Bool */;
4091 fprintf(stderr, "NOT YET IMPLEMENTED nitni for kernel#Pointer#address_is_null at lib/standard/kernel.nit:572,2--573,53\n");
4092 exit(1);
4093 RET_LABEL:;
4094 return var;
4095 }
4096 /* method kernel#Pointer#address_is_null for (self: Object): Bool */
4097 short int VIRTUAL_kernel__Pointer__address_is_null(val* self) {
4098 short int var /* : Bool */;
4099 short int var1 /* : Bool */;
4100 void* var2 /* : Pointer */;
4101 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to Pointer */;
4102 var1 = kernel__Pointer__address_is_null(var2);
4103 var = var1;
4104 RET_LABEL:;
4105 return var;
4106 }