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