src: add nc0 and nc1 to test bootstrap from c_src
[nit.git] / c_src / kernel._sep.c
1 /* This C file is generated by NIT to compile module kernel. */
2 #include "kernel._sep.h"
3 val_t kernel___Object___object_id(val_t self) {
4 struct trace_t trace = {NULL, NULL, 26, LOCATE_kernel___Object___object_id};
5 val_t *variable = NULL;
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_kernel;
9 tracehead = trace.prev;
10 return TAG_Int((bigint) self);
11 }
12 val_t kernel___Object___is_same_type(val_t self, val_t param0) {
13 struct trace_t trace = {NULL, NULL, 29, LOCATE_kernel___Object___is_same_type};
14 val_t *variable = NULL;
15 void **closurevariable = NULL;
16 trace.prev = tracehead; tracehead = &trace;
17 trace.file = LOCATE_kernel;
18 tracehead = trace.prev;
19 return TAG_Bool((VAL2VFT( self)==VAL2VFT( param0)));
20 }
21 val_t kernel___Object_____eqeq(val_t self, val_t param0) {
22 struct trace_t trace = {NULL, NULL, 32, LOCATE_kernel___Object_____eqeq};
23 val_t variable[4];
24 void **closurevariable = NULL;
25 trace.prev = tracehead; tracehead = &trace;
26 trace.file = LOCATE_kernel;
27 variable[0] = self;
28 variable[1] = param0;
29 variable[3] = variable[0];
30 variable[3] = TAG_Bool(IS_EQUAL_NN(variable[3], variable[1] /*other*/));
31 variable[2] = variable[3];
32 goto return_label0;
33 return_label0: while(false);
34 tracehead = trace.prev;
35 return variable[2];
36 }
37 val_t kernel___Object_____neq(val_t self, val_t param0) {
38 struct trace_t trace = {NULL, NULL, 37, LOCATE_kernel___Object_____neq};
39 val_t variable[4];
40 void **closurevariable = NULL;
41 trace.prev = tracehead; tracehead = &trace;
42 trace.file = LOCATE_kernel;
43 variable[0] = self;
44 variable[1] = param0;
45 variable[3] = variable[0];
46 variable[3] = TAG_Bool((variable[3] == variable[1] /*other*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*other*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[1] /*other*/) /*Object::==*/)))));
47 variable[2] = TAG_Bool(!UNTAG_Bool(variable[3]));
48 goto return_label1;
49 return_label1: while(false);
50 tracehead = trace.prev;
51 return variable[2];
52 }
53 void kernel___Object___output(val_t self) {
54 struct trace_t trace = {NULL, NULL, 42, LOCATE_kernel___Object___output};
55 val_t variable[3];
56 void **closurevariable = NULL;
57 trace.prev = tracehead; tracehead = &trace;
58 trace.file = LOCATE_kernel;
59 variable[0] = self;
60 printf("%c", (unsigned char)UNTAG_Char( TAG_Char('<')));
61 variable[2] = variable[0];
62 variable[2] = TAG_Int((bigint)variable[2]);
63 printf("%ld\n", UNTAG_Int(variable[2]));
64 printf("%c", (unsigned char)UNTAG_Char( TAG_Char('>')));
65 return_label2: while(false);
66 tracehead = trace.prev;
67 return;
68 }
69 void kernel___Object___exit(val_t self, val_t param0) {
70 struct trace_t trace = {NULL, NULL, 50, LOCATE_kernel___Object___exit};
71 val_t *variable = NULL;
72 void **closurevariable = NULL;
73 trace.prev = tracehead; tracehead = &trace;
74 trace.file = LOCATE_kernel;
75 exit(UNTAG_Int( param0));
76 tracehead = trace.prev;
77 return;
78 }
79 val_t kernel___Object___sys(val_t self) {
80 struct trace_t trace = {NULL, NULL, 51, LOCATE_kernel___Object___sys};
81 val_t *variable = NULL;
82 void **closurevariable = NULL;
83 trace.prev = tracehead; tracehead = &trace;
84 trace.file = LOCATE_kernel;
85 tracehead = trace.prev;
86 return (G_sys);
87 }
88 void kernel___Sys___main(val_t self) {
89 struct trace_t trace = {NULL, NULL, 56, LOCATE_kernel___Sys___main};
90 val_t variable[2];
91 void **closurevariable = NULL;
92 trace.prev = tracehead; tracehead = &trace;
93 trace.file = LOCATE_kernel;
94 variable[0] = self;
95 return_label3: while(false);
96 tracehead = trace.prev;
97 return;
98 }
99 void kernel___Sys___init(val_t self, int* init_table) {
100 struct trace_t trace = {NULL, NULL, 0, LOCATE_kernel___Sys___init};
101 val_t *variable = NULL;
102 void **closurevariable = NULL;
103 trace.prev = tracehead; tracehead = &trace;
104 trace.file = LOCATE_kernel;
105 tracehead = trace.prev;
106 return;
107 }
108 val_t kernel___Comparable_____l(val_t self, val_t param0) {
109 struct trace_t trace = {NULL, NULL, 69, LOCATE_kernel___Comparable_____l};
110 val_t *variable = NULL;
111 void **closurevariable = NULL;
112 trace.prev = tracehead; tracehead = &trace;
113 trace.file = LOCATE_kernel;
114 fprintf(stderr, "Deferred method called");
115 fprintf(stderr, " (%s:%d)\n", LOCATE_kernel, 69);
116 nit_exit(1);
117 tracehead = trace.prev;
118 return NIT_NULL;
119 }
120 val_t kernel___Comparable_____leq(val_t self, val_t param0) {
121 struct trace_t trace = {NULL, NULL, 72, LOCATE_kernel___Comparable_____leq};
122 val_t variable[4];
123 void **closurevariable = NULL;
124 trace.prev = tracehead; tracehead = &trace;
125 trace.file = LOCATE_kernel;
126 variable[0] = self;
127 variable[1] = param0;
128 variable[3] = variable[0];
129 variable[3] = CALL_kernel___Comparable_____l( variable[1] /*other*/)( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
130 variable[2] = TAG_Bool(!UNTAG_Bool(variable[3]));
131 goto return_label4;
132 return_label4: while(false);
133 tracehead = trace.prev;
134 return variable[2];
135 }
136 val_t kernel___Comparable_____geq(val_t self, val_t param0) {
137 struct trace_t trace = {NULL, NULL, 75, LOCATE_kernel___Comparable_____geq};
138 val_t variable[4];
139 void **closurevariable = NULL;
140 trace.prev = tracehead; tracehead = &trace;
141 trace.file = LOCATE_kernel;
142 variable[0] = self;
143 variable[1] = param0;
144 variable[3] = variable[0];
145 variable[3] = CALL_kernel___Comparable_____l(variable[3])(variable[3], variable[1] /*other*/) /*Comparable::<*/;
146 variable[2] = TAG_Bool(!UNTAG_Bool(variable[3]));
147 goto return_label5;
148 return_label5: while(false);
149 tracehead = trace.prev;
150 return variable[2];
151 }
152 val_t kernel___Comparable_____g(val_t self, val_t param0) {
153 struct trace_t trace = {NULL, NULL, 78, LOCATE_kernel___Comparable_____g};
154 val_t variable[4];
155 void **closurevariable = NULL;
156 trace.prev = tracehead; tracehead = &trace;
157 trace.file = LOCATE_kernel;
158 variable[0] = self;
159 variable[1] = param0;
160 variable[3] = variable[0];
161 variable[3] = CALL_kernel___Comparable_____l( variable[1] /*other*/)( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
162 variable[2] = variable[3];
163 goto return_label6;
164 return_label6: while(false);
165 tracehead = trace.prev;
166 return variable[2];
167 }
168 val_t kernel___Comparable_____leqg(val_t self, val_t param0) {
169 struct trace_t trace = {NULL, NULL, 81, LOCATE_kernel___Comparable_____leqg};
170 val_t variable[4];
171 void **closurevariable = NULL;
172 trace.prev = tracehead; tracehead = &trace;
173 trace.file = LOCATE_kernel;
174 variable[0] = self;
175 variable[1] = param0;
176 variable[3] = variable[0];
177 variable[3] = CALL_kernel___Comparable_____l(variable[3])(variable[3], variable[1] /*other*/) /*Comparable::<*/;
178 if (UNTAG_Bool(variable[3])) { /*if*/
179 variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
180 variable[2] = variable[3];
181 goto return_label7;
182 } else { /*if*/
183 variable[3] = variable[0];
184 variable[3] = CALL_kernel___Comparable_____l( variable[1] /*other*/)( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
185 if (UNTAG_Bool(variable[3])) { /*if*/
186 variable[2] = TAG_Int(1);
187 goto return_label7;
188 } else { /*if*/
189 variable[2] = TAG_Int(0);
190 goto return_label7;
191 }
192 }
193 return_label7: while(false);
194 tracehead = trace.prev;
195 return variable[2];
196 }
197 val_t kernel___Comparable___is_between(val_t self, val_t param0, val_t param1) {
198 struct trace_t trace = {NULL, NULL, 93, LOCATE_kernel___Comparable___is_between};
199 val_t variable[6];
200 void **closurevariable = NULL;
201 trace.prev = tracehead; tracehead = &trace;
202 trace.file = LOCATE_kernel;
203 variable[0] = self;
204 variable[1] = param0;
205 variable[2] = param1;
206 variable[4] = variable[0];
207 variable[4] = CALL_kernel___Comparable_____leq( variable[1] /*c*/)( variable[1] /*c*/, variable[4]) /*Comparable::<=*/;
208 variable[5] = variable[4];
209 if (UNTAG_Bool(variable[5])) { /* and */
210 variable[5] = variable[0];
211 variable[5] = CALL_kernel___Comparable_____leq(variable[5])(variable[5], variable[2] /*d*/) /*Comparable::<=*/;
212 }
213 variable[4] = variable[5];
214 variable[3] = variable[4];
215 goto return_label8;
216 return_label8: while(false);
217 tracehead = trace.prev;
218 return variable[3];
219 }
220 val_t kernel___Comparable___max(val_t self, val_t param0) {
221 struct trace_t trace = {NULL, NULL, 99, LOCATE_kernel___Comparable___max};
222 val_t variable[4];
223 void **closurevariable = NULL;
224 trace.prev = tracehead; tracehead = &trace;
225 trace.file = LOCATE_kernel;
226 variable[0] = self;
227 variable[1] = param0;
228 variable[3] = variable[0];
229 variable[3] = CALL_kernel___Comparable_____l(variable[3])(variable[3], variable[1] /*other*/) /*Comparable::<*/;
230 if (UNTAG_Bool(variable[3])) { /*if*/
231 variable[2] = variable[1] /*other*/;
232 goto return_label9;
233 } else { /*if*/
234 variable[3] = variable[0];
235 variable[2] = variable[3];
236 goto return_label9;
237 }
238 return_label9: while(false);
239 tracehead = trace.prev;
240 return variable[2];
241 }
242 val_t kernel___Comparable___min(val_t self, val_t param0) {
243 struct trace_t trace = {NULL, NULL, 109, LOCATE_kernel___Comparable___min};
244 val_t variable[4];
245 void **closurevariable = NULL;
246 trace.prev = tracehead; tracehead = &trace;
247 trace.file = LOCATE_kernel;
248 variable[0] = self;
249 variable[1] = param0;
250 variable[3] = variable[0];
251 variable[3] = CALL_kernel___Comparable_____l( variable[1] /*c*/)( variable[1] /*c*/, variable[3]) /*Comparable::<*/;
252 if (UNTAG_Bool(variable[3])) { /*if*/
253 variable[2] = variable[1] /*c*/;
254 goto return_label10;
255 } else { /*if*/
256 variable[3] = variable[0];
257 variable[2] = variable[3];
258 goto return_label10;
259 }
260 return_label10: while(false);
261 tracehead = trace.prev;
262 return variable[2];
263 }
264 val_t kernel___Discrete___succ(val_t self) {
265 struct trace_t trace = {NULL, NULL, 126, LOCATE_kernel___Discrete___succ};
266 val_t variable[3];
267 void **closurevariable = NULL;
268 trace.prev = tracehead; tracehead = &trace;
269 trace.file = LOCATE_kernel;
270 variable[0] = self;
271 variable[2] = variable[0];
272 variable[2] = CALL_kernel___Discrete_____plus(variable[2])(variable[2], TAG_Int(1)) /*Discrete::+*/;
273 variable[1] = variable[2];
274 goto return_label11;
275 return_label11: while(false);
276 tracehead = trace.prev;
277 return variable[1];
278 }
279 val_t kernel___Discrete___prec(val_t self) {
280 struct trace_t trace = {NULL, NULL, 129, LOCATE_kernel___Discrete___prec};
281 val_t variable[3];
282 void **closurevariable = NULL;
283 trace.prev = tracehead; tracehead = &trace;
284 trace.file = LOCATE_kernel;
285 variable[0] = self;
286 variable[2] = variable[0];
287 variable[2] = CALL_kernel___Discrete_____minus(variable[2])(variable[2], TAG_Int(1)) /*Discrete::-*/;
288 variable[1] = variable[2];
289 goto return_label12;
290 return_label12: while(false);
291 tracehead = trace.prev;
292 return variable[1];
293 }
294 val_t kernel___Discrete_____plus(val_t self, val_t param0) {
295 struct trace_t trace = {NULL, NULL, 132, LOCATE_kernel___Discrete_____plus};
296 val_t *variable = NULL;
297 void **closurevariable = NULL;
298 trace.prev = tracehead; tracehead = &trace;
299 trace.file = LOCATE_kernel;
300 fprintf(stderr, "Deferred method called");
301 fprintf(stderr, " (%s:%d)\n", LOCATE_kernel, 132);
302 nit_exit(1);
303 tracehead = trace.prev;
304 return NIT_NULL;
305 }
306 val_t kernel___Discrete_____minus(val_t self, val_t param0) {
307 struct trace_t trace = {NULL, NULL, 135, LOCATE_kernel___Discrete_____minus};
308 val_t *variable = NULL;
309 void **closurevariable = NULL;
310 trace.prev = tracehead; tracehead = &trace;
311 trace.file = LOCATE_kernel;
312 fprintf(stderr, "Deferred method called");
313 fprintf(stderr, " (%s:%d)\n", LOCATE_kernel, 135);
314 nit_exit(1);
315 tracehead = trace.prev;
316 return NIT_NULL;
317 }
318 val_t kernel___Discrete___distance(val_t self, val_t param0) {
319 struct trace_t trace = {NULL, NULL, 138, LOCATE_kernel___Discrete___distance};
320 val_t variable[7];
321 void **closurevariable = NULL;
322 trace.prev = tracehead; tracehead = &trace;
323 trace.file = LOCATE_kernel;
324 variable[0] = self;
325 variable[1] = param0;
326 /*variable[3] is variable cursor*/
327 /*variable[4] is variable stop*/
328 variable[5] = variable[0];
329 variable[5] = CALL_kernel___Comparable_____l(variable[5])(variable[5], variable[1] /*d*/) /*Comparable::<*/;
330 if (UNTAG_Bool(variable[5])) { /*if*/
331 variable[5] = variable[0];
332 variable[3] = variable[5] /*cursor=*/;
333 variable[4] = variable[1] /*d*/ /*stop=*/;
334 } else { /*if*/
335 variable[5] = variable[0];
336 variable[5] = CALL_kernel___Comparable_____g(variable[5])(variable[5], variable[1] /*d*/) /*Comparable::>*/;
337 if (UNTAG_Bool(variable[5])) { /*if*/
338 variable[3] = variable[1] /*d*/ /*cursor=*/;
339 variable[5] = variable[0];
340 variable[4] = variable[5] /*stop=*/;
341 } else { /*if*/
342 variable[2] = TAG_Int(0);
343 goto return_label13;
344 }
345 }
346 variable[5] = TAG_Int(0);
347 while (true) { /*while*/
348 variable[6] = CALL_kernel___Comparable_____l( variable[3] /*cursor*/)( variable[3] /*cursor*/, variable[4] /*stop*/) /*Comparable::<*/;
349 if (!UNTAG_Bool(variable[6])) break; /* while*/
350 variable[6] = CALL_kernel___Discrete___succ( variable[3] /*cursor*/)( variable[3] /*cursor*/) /*Discrete::succ*/;
351 variable[3] = variable[6] /*cursor=*/;
352 variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*nb*/;
353 continue_14: while(0);
354 }
355 break_14: while(0);
356 variable[2] = variable[5] /*nb*/;
357 goto return_label13;
358 return_label13: while(false);
359 tracehead = trace.prev;
360 return variable[2];
361 }
362 val_t kernel___Bool___object_id(val_t self) {
363 struct trace_t trace = {NULL, NULL, 174, LOCATE_kernel___Bool___object_id};
364 val_t *variable = NULL;
365 void **closurevariable = NULL;
366 trace.prev = tracehead; tracehead = &trace;
367 trace.file = LOCATE_kernel;
368 tracehead = trace.prev;
369 return TAG_Int(UNTAG_Bool( self));
370 }
371 val_t kernel___Bool_____eqeq(val_t self, val_t param0) {
372 struct trace_t trace = {NULL, NULL, 175, LOCATE_kernel___Bool_____eqeq};
373 val_t *variable = NULL;
374 void **closurevariable = NULL;
375 trace.prev = tracehead; tracehead = &trace;
376 trace.file = LOCATE_kernel;
377 tracehead = trace.prev;
378 return TAG_Bool(( self)==( param0));
379 }
380 val_t kernel___Bool_____neq(val_t self, val_t param0) {
381 struct trace_t trace = {NULL, NULL, 176, LOCATE_kernel___Bool_____neq};
382 val_t *variable = NULL;
383 void **closurevariable = NULL;
384 trace.prev = tracehead; tracehead = &trace;
385 trace.file = LOCATE_kernel;
386 tracehead = trace.prev;
387 return TAG_Bool(( self)!=( param0));
388 }
389 void kernel___Bool___output(val_t self) {
390 struct trace_t trace = {NULL, NULL, 177, LOCATE_kernel___Bool___output};
391 val_t *variable = NULL;
392 void **closurevariable = NULL;
393 trace.prev = tracehead; tracehead = &trace;
394 trace.file = LOCATE_kernel;
395 (void)printf(UNTAG_Bool( self)?"true\n":"false\n");
396 tracehead = trace.prev;
397 return;
398 }
399 val_t kernel___Float___object_id(val_t self) {
400 struct trace_t trace = {NULL, NULL, 183, LOCATE_kernel___Float___object_id};
401 val_t *variable = NULL;
402 void **closurevariable = NULL;
403 trace.prev = tracehead; tracehead = &trace;
404 trace.file = LOCATE_kernel;
405 tracehead = trace.prev;
406 return TAG_Int((bigint)UNBOX_Float( self));
407 }
408 void kernel___Float___output(val_t self) {
409 struct trace_t trace = {NULL, NULL, 184, LOCATE_kernel___Float___output};
410 val_t *variable = NULL;
411 void **closurevariable = NULL;
412 trace.prev = tracehead; tracehead = &trace;
413 trace.file = LOCATE_kernel;
414 printf("%f\n", UNBOX_Float( self));
415 tracehead = trace.prev;
416 return;
417 }
418 val_t kernel___Float_____leq(val_t self, val_t param0) {
419 struct trace_t trace = {NULL, NULL, 186, LOCATE_kernel___Float_____leq};
420 val_t *variable = NULL;
421 void **closurevariable = NULL;
422 trace.prev = tracehead; tracehead = &trace;
423 trace.file = LOCATE_kernel;
424 tracehead = trace.prev;
425 return TAG_Bool(UNBOX_Float( self)<=UNBOX_Float( param0));
426 }
427 val_t kernel___Float_____l(val_t self, val_t param0) {
428 struct trace_t trace = {NULL, NULL, 187, LOCATE_kernel___Float_____l};
429 val_t *variable = NULL;
430 void **closurevariable = NULL;
431 trace.prev = tracehead; tracehead = &trace;
432 trace.file = LOCATE_kernel;
433 tracehead = trace.prev;
434 return TAG_Bool(UNBOX_Float( self)<UNBOX_Float( param0));
435 }
436 val_t kernel___Float_____geq(val_t self, val_t param0) {
437 struct trace_t trace = {NULL, NULL, 188, LOCATE_kernel___Float_____geq};
438 val_t *variable = NULL;
439 void **closurevariable = NULL;
440 trace.prev = tracehead; tracehead = &trace;
441 trace.file = LOCATE_kernel;
442 tracehead = trace.prev;
443 return TAG_Bool(UNBOX_Float( self)>=UNBOX_Float( param0));
444 }
445 val_t kernel___Float_____g(val_t self, val_t param0) {
446 struct trace_t trace = {NULL, NULL, 189, LOCATE_kernel___Float_____g};
447 val_t *variable = NULL;
448 void **closurevariable = NULL;
449 trace.prev = tracehead; tracehead = &trace;
450 trace.file = LOCATE_kernel;
451 tracehead = trace.prev;
452 return TAG_Bool(UNBOX_Float( self)>UNBOX_Float( param0));
453 }
454 val_t kernel___Float_____plus(val_t self, val_t param0) {
455 struct trace_t trace = {NULL, NULL, 190, LOCATE_kernel___Float_____plus};
456 val_t *variable = NULL;
457 void **closurevariable = NULL;
458 trace.prev = tracehead; tracehead = &trace;
459 trace.file = LOCATE_kernel;
460 tracehead = trace.prev;
461 return BOX_Float(UNBOX_Float( self)+UNBOX_Float( param0));
462 }
463 val_t kernel___Float___unary__minus(val_t self) {
464 struct trace_t trace = {NULL, NULL, 191, LOCATE_kernel___Float___unary__minus};
465 val_t *variable = NULL;
466 void **closurevariable = NULL;
467 trace.prev = tracehead; tracehead = &trace;
468 trace.file = LOCATE_kernel;
469 tracehead = trace.prev;
470 return BOX_Float(-UNBOX_Float( self));
471 }
472 val_t kernel___Float_____minus(val_t self, val_t param0) {
473 struct trace_t trace = {NULL, NULL, 192, LOCATE_kernel___Float_____minus};
474 val_t *variable = NULL;
475 void **closurevariable = NULL;
476 trace.prev = tracehead; tracehead = &trace;
477 trace.file = LOCATE_kernel;
478 tracehead = trace.prev;
479 return BOX_Float(UNBOX_Float( self)-UNBOX_Float( param0));
480 }
481 val_t kernel___Float_____star(val_t self, val_t param0) {
482 struct trace_t trace = {NULL, NULL, 193, LOCATE_kernel___Float_____star};
483 val_t *variable = NULL;
484 void **closurevariable = NULL;
485 trace.prev = tracehead; tracehead = &trace;
486 trace.file = LOCATE_kernel;
487 tracehead = trace.prev;
488 return BOX_Float(UNBOX_Float( self)*UNBOX_Float( param0));
489 }
490 val_t kernel___Float_____slash(val_t self, val_t param0) {
491 struct trace_t trace = {NULL, NULL, 194, LOCATE_kernel___Float_____slash};
492 val_t *variable = NULL;
493 void **closurevariable = NULL;
494 trace.prev = tracehead; tracehead = &trace;
495 trace.file = LOCATE_kernel;
496 tracehead = trace.prev;
497 return BOX_Float(UNBOX_Float( self)/UNBOX_Float( param0));
498 }
499 val_t kernel___Float___to_i(val_t self) {
500 struct trace_t trace = {NULL, NULL, 196, LOCATE_kernel___Float___to_i};
501 val_t *variable = NULL;
502 void **closurevariable = NULL;
503 trace.prev = tracehead; tracehead = &trace;
504 trace.file = LOCATE_kernel;
505 tracehead = trace.prev;
506 return TAG_Int((bigint)UNBOX_Float( self));
507 }
508 val_t kernel___Int___object_id(val_t self) {
509 struct trace_t trace = {NULL, NULL, 206, LOCATE_kernel___Int___object_id};
510 val_t *variable = NULL;
511 void **closurevariable = NULL;
512 trace.prev = tracehead; tracehead = &trace;
513 trace.file = LOCATE_kernel;
514 tracehead = trace.prev;
515 return self;
516 }
517 val_t kernel___Int_____eqeq(val_t self, val_t param0) {
518 struct trace_t trace = {NULL, NULL, 207, LOCATE_kernel___Int_____eqeq};
519 val_t *variable = NULL;
520 void **closurevariable = NULL;
521 trace.prev = tracehead; tracehead = &trace;
522 trace.file = LOCATE_kernel;
523 tracehead = trace.prev;
524 return TAG_Bool(( self)==( param0));
525 }
526 val_t kernel___Int_____neq(val_t self, val_t param0) {
527 struct trace_t trace = {NULL, NULL, 208, LOCATE_kernel___Int_____neq};
528 val_t *variable = NULL;
529 void **closurevariable = NULL;
530 trace.prev = tracehead; tracehead = &trace;
531 trace.file = LOCATE_kernel;
532 tracehead = trace.prev;
533 return TAG_Bool(( self)!=( param0));
534 }
535 void kernel___Int___output(val_t self) {
536 struct trace_t trace = {NULL, NULL, 209, LOCATE_kernel___Int___output};
537 val_t *variable = NULL;
538 void **closurevariable = NULL;
539 trace.prev = tracehead; tracehead = &trace;
540 trace.file = LOCATE_kernel;
541 printf("%ld\n", UNTAG_Int( self));
542 tracehead = trace.prev;
543 return;
544 }
545 val_t kernel___Int_____l(val_t self, val_t param0) {
546 struct trace_t trace = {NULL, NULL, 212, LOCATE_kernel___Int_____l};
547 val_t *variable = NULL;
548 void **closurevariable = NULL;
549 trace.prev = tracehead; tracehead = &trace;
550 trace.file = LOCATE_kernel;
551 tracehead = trace.prev;
552 return TAG_Bool(UNTAG_Int( self)<UNTAG_Int( param0));
553 }
554 val_t kernel___Int_____leq(val_t self, val_t param0) {
555 struct trace_t trace = {NULL, NULL, 211, LOCATE_kernel___Int_____leq};
556 val_t *variable = NULL;
557 void **closurevariable = NULL;
558 trace.prev = tracehead; tracehead = &trace;
559 trace.file = LOCATE_kernel;
560 tracehead = trace.prev;
561 return TAG_Bool(UNTAG_Int( self)<=UNTAG_Int( param0));
562 }
563 val_t kernel___Int_____geq(val_t self, val_t param0) {
564 struct trace_t trace = {NULL, NULL, 213, LOCATE_kernel___Int_____geq};
565 val_t *variable = NULL;
566 void **closurevariable = NULL;
567 trace.prev = tracehead; tracehead = &trace;
568 trace.file = LOCATE_kernel;
569 tracehead = trace.prev;
570 return TAG_Bool(UNTAG_Int( self)>=UNTAG_Int( param0));
571 }
572 val_t kernel___Int_____g(val_t self, val_t param0) {
573 struct trace_t trace = {NULL, NULL, 214, LOCATE_kernel___Int_____g};
574 val_t *variable = NULL;
575 void **closurevariable = NULL;
576 trace.prev = tracehead; tracehead = &trace;
577 trace.file = LOCATE_kernel;
578 tracehead = trace.prev;
579 return TAG_Bool(UNTAG_Int( self)>UNTAG_Int( param0));
580 }
581 val_t kernel___Int_____leqg(val_t self, val_t param0) {
582 struct trace_t trace = {NULL, NULL, 239, LOCATE_kernel___Int_____leqg};
583 val_t variable[4];
584 void **closurevariable = NULL;
585 trace.prev = tracehead; tracehead = &trace;
586 trace.file = LOCATE_kernel;
587 variable[0] = self;
588 variable[1] = param0;
589 variable[3] = variable[0];
590 variable[3] = TAG_Bool(UNTAG_Int(variable[3])<UNTAG_Int( variable[1] /*other*/));
591 if (UNTAG_Bool(variable[3])) { /*if*/
592 variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
593 variable[2] = variable[3];
594 goto return_label15;
595 } else { /*if*/
596 variable[3] = variable[0];
597 variable[3] = TAG_Bool(UNTAG_Int( variable[1] /*other*/)<UNTAG_Int(variable[3]));
598 if (UNTAG_Bool(variable[3])) { /*if*/
599 variable[2] = TAG_Int(1);
600 goto return_label15;
601 } else { /*if*/
602 variable[2] = TAG_Int(0);
603 goto return_label15;
604 }
605 }
606 return_label15: while(false);
607 tracehead = trace.prev;
608 return variable[2];
609 }
610 val_t kernel___Int___is_between(val_t self, val_t param0, val_t param1) {
611 struct trace_t trace = {NULL, NULL, 250, LOCATE_kernel___Int___is_between};
612 val_t variable[6];
613 void **closurevariable = NULL;
614 trace.prev = tracehead; tracehead = &trace;
615 trace.file = LOCATE_kernel;
616 variable[0] = self;
617 variable[1] = param0;
618 variable[2] = param1;
619 variable[4] = variable[0];
620 variable[4] = TAG_Bool(UNTAG_Int(variable[4])<UNTAG_Int( variable[1] /*c*/));
621 variable[5] = variable[4];
622 if (!UNTAG_Bool(variable[5])) { /* or */
623 variable[5] = variable[0];
624 variable[5] = TAG_Bool(UNTAG_Int( variable[2] /*d*/)<UNTAG_Int(variable[5]));
625 }
626 variable[4] = variable[5];
627 if (UNTAG_Bool(variable[4])) { /*if*/
628 variable[3] = TAG_Bool(false);
629 goto return_label16;
630 } else { /*if*/
631 variable[3] = TAG_Bool(true);
632 goto return_label16;
633 }
634 return_label16: while(false);
635 tracehead = trace.prev;
636 return variable[3];
637 }
638 val_t kernel___Int___max(val_t self, val_t param0) {
639 struct trace_t trace = {NULL, NULL, 259, LOCATE_kernel___Int___max};
640 val_t variable[4];
641 void **closurevariable = NULL;
642 trace.prev = tracehead; tracehead = &trace;
643 trace.file = LOCATE_kernel;
644 variable[0] = self;
645 variable[1] = param0;
646 variable[3] = variable[0];
647 variable[3] = TAG_Bool(UNTAG_Int(variable[3])<UNTAG_Int( variable[1] /*other*/));
648 if (UNTAG_Bool(variable[3])) { /*if*/
649 variable[2] = variable[1] /*other*/;
650 goto return_label17;
651 } else { /*if*/
652 variable[3] = variable[0];
653 variable[2] = variable[3];
654 goto return_label17;
655 }
656 return_label17: while(false);
657 tracehead = trace.prev;
658 return variable[2];
659 }
660 val_t kernel___Int___min(val_t self, val_t param0) {
661 struct trace_t trace = {NULL, NULL, 268, LOCATE_kernel___Int___min};
662 val_t variable[4];
663 void **closurevariable = NULL;
664 trace.prev = tracehead; tracehead = &trace;
665 trace.file = LOCATE_kernel;
666 variable[0] = self;
667 variable[1] = param0;
668 variable[3] = variable[0];
669 variable[3] = TAG_Bool(UNTAG_Int( variable[1] /*c*/)<UNTAG_Int(variable[3]));
670 if (UNTAG_Bool(variable[3])) { /*if*/
671 variable[2] = variable[1] /*c*/;
672 goto return_label18;
673 } else { /*if*/
674 variable[3] = variable[0];
675 variable[2] = variable[3];
676 goto return_label18;
677 }
678 return_label18: while(false);
679 tracehead = trace.prev;
680 return variable[2];
681 }
682 val_t kernel___Int___succ(val_t self) {
683 struct trace_t trace = {NULL, NULL, 227, LOCATE_kernel___Int___succ};
684 val_t *variable = NULL;
685 void **closurevariable = NULL;
686 trace.prev = tracehead; tracehead = &trace;
687 trace.file = LOCATE_kernel;
688 tracehead = trace.prev;
689 return TAG_Int(UNTAG_Int( self)+1);
690 }
691 val_t kernel___Int___prec(val_t self) {
692 struct trace_t trace = {NULL, NULL, 228, LOCATE_kernel___Int___prec};
693 val_t *variable = NULL;
694 void **closurevariable = NULL;
695 trace.prev = tracehead; tracehead = &trace;
696 trace.file = LOCATE_kernel;
697 tracehead = trace.prev;
698 return TAG_Int(UNTAG_Int( self)-1);
699 }
700 val_t kernel___Int_____plus(val_t self, val_t param0) {
701 struct trace_t trace = {NULL, NULL, 215, LOCATE_kernel___Int_____plus};
702 val_t *variable = NULL;
703 void **closurevariable = NULL;
704 trace.prev = tracehead; tracehead = &trace;
705 trace.file = LOCATE_kernel;
706 tracehead = trace.prev;
707 return TAG_Int(UNTAG_Int( self)+UNTAG_Int( param0));
708 }
709 val_t kernel___Int_____minus(val_t self, val_t param0) {
710 struct trace_t trace = {NULL, NULL, 217, LOCATE_kernel___Int_____minus};
711 val_t *variable = NULL;
712 void **closurevariable = NULL;
713 trace.prev = tracehead; tracehead = &trace;
714 trace.file = LOCATE_kernel;
715 tracehead = trace.prev;
716 return TAG_Int(UNTAG_Int( self)-UNTAG_Int( param0));
717 }
718 val_t kernel___Int___distance(val_t self, val_t param0) {
719 struct trace_t trace = {NULL, NULL, 229, LOCATE_kernel___Int___distance};
720 val_t variable[5];
721 void **closurevariable = NULL;
722 trace.prev = tracehead; tracehead = &trace;
723 trace.file = LOCATE_kernel;
724 variable[0] = self;
725 variable[1] = param0;
726 variable[4] = variable[0];
727 variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( variable[1] /*i*/));
728 variable[3] = variable[4];
729 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*d*/)>=UNTAG_Int( TAG_Int(0)));
730 if (UNTAG_Bool(variable[4])) { /*if*/
731 variable[2] = variable[3] /*d*/;
732 goto return_label19;
733 } else { /*if*/
734 variable[4] = TAG_Int(-UNTAG_Int( variable[3] /*d*/));
735 variable[2] = variable[4];
736 goto return_label19;
737 }
738 return_label19: while(false);
739 tracehead = trace.prev;
740 return variable[2];
741 }
742 val_t kernel___Int___unary__minus(val_t self) {
743 struct trace_t trace = {NULL, NULL, 216, LOCATE_kernel___Int___unary__minus};
744 val_t *variable = NULL;
745 void **closurevariable = NULL;
746 trace.prev = tracehead; tracehead = &trace;
747 trace.file = LOCATE_kernel;
748 tracehead = trace.prev;
749 return TAG_Int(-UNTAG_Int( self));
750 }
751 val_t kernel___Int_____star(val_t self, val_t param0) {
752 struct trace_t trace = {NULL, NULL, 218, LOCATE_kernel___Int_____star};
753 val_t *variable = NULL;
754 void **closurevariable = NULL;
755 trace.prev = tracehead; tracehead = &trace;
756 trace.file = LOCATE_kernel;
757 tracehead = trace.prev;
758 return TAG_Int(UNTAG_Int( self)*UNTAG_Int( param0));
759 }
760 val_t kernel___Int_____slash(val_t self, val_t param0) {
761 struct trace_t trace = {NULL, NULL, 219, LOCATE_kernel___Int_____slash};
762 val_t *variable = NULL;
763 void **closurevariable = NULL;
764 trace.prev = tracehead; tracehead = &trace;
765 trace.file = LOCATE_kernel;
766 tracehead = trace.prev;
767 return TAG_Int(UNTAG_Int( self)/UNTAG_Int( param0));
768 }
769 val_t kernel___Int_____percent(val_t self, val_t param0) {
770 struct trace_t trace = {NULL, NULL, 220, LOCATE_kernel___Int_____percent};
771 val_t *variable = NULL;
772 void **closurevariable = NULL;
773 trace.prev = tracehead; tracehead = &trace;
774 trace.file = LOCATE_kernel;
775 tracehead = trace.prev;
776 return TAG_Int(UNTAG_Int( self)%UNTAG_Int( param0));
777 }
778 val_t kernel___Int___lshift(val_t self, val_t param0) {
779 struct trace_t trace = {NULL, NULL, 221, LOCATE_kernel___Int___lshift};
780 val_t *variable = NULL;
781 void **closurevariable = NULL;
782 trace.prev = tracehead; tracehead = &trace;
783 trace.file = LOCATE_kernel;
784 tracehead = trace.prev;
785 return TAG_Int(UNTAG_Int( self)<<UNTAG_Int( param0));
786 }
787 val_t kernel___Int___rshift(val_t self, val_t param0) {
788 struct trace_t trace = {NULL, NULL, 222, LOCATE_kernel___Int___rshift};
789 val_t *variable = NULL;
790 void **closurevariable = NULL;
791 trace.prev = tracehead; tracehead = &trace;
792 trace.file = LOCATE_kernel;
793 tracehead = trace.prev;
794 return TAG_Int(UNTAG_Int( self)>>UNTAG_Int( param0));
795 }
796 val_t kernel___Int___to_f(val_t self) {
797 struct trace_t trace = {NULL, NULL, 224, LOCATE_kernel___Int___to_f};
798 val_t *variable = NULL;
799 void **closurevariable = NULL;
800 trace.prev = tracehead; tracehead = &trace;
801 trace.file = LOCATE_kernel;
802 tracehead = trace.prev;
803 return BOX_Float((float)UNTAG_Int( self));
804 }
805 val_t kernel___Int___ascii(val_t self) {
806 struct trace_t trace = {NULL, NULL, 277, LOCATE_kernel___Int___ascii};
807 val_t *variable = NULL;
808 void **closurevariable = NULL;
809 trace.prev = tracehead; tracehead = &trace;
810 trace.file = LOCATE_kernel;
811 tracehead = trace.prev;
812 return TAG_Char(UNTAG_Int( self));
813 }
814 val_t kernel___Int___digit_count(val_t self, val_t param0) {
815 struct trace_t trace = {NULL, NULL, 280, LOCATE_kernel___Int___digit_count};
816 val_t variable[6];
817 void **closurevariable = NULL;
818 trace.prev = tracehead; tracehead = &trace;
819 trace.file = LOCATE_kernel;
820 variable[0] = self;
821 variable[1] = param0;
822 /*variable[3] is variable d*/
823 /*variable[4] is variable n*/
824 variable[5] = variable[0];
825 variable[5] = TAG_Bool(UNTAG_Int(variable[5])<UNTAG_Int( TAG_Int(0)));
826 if (UNTAG_Bool(variable[5])) { /*if*/
827 variable[3] = TAG_Int(1) /*d=*/;
828 variable[5] = variable[0];
829 variable[5] = TAG_Int(-UNTAG_Int(variable[5]));
830 variable[4] = variable[5] /*n=*/;
831 } else { /*if*/
832 variable[5] = variable[0];
833 variable[5] = TAG_Bool((variable[5])==( TAG_Int(0)));
834 if (UNTAG_Bool(variable[5])) { /*if*/
835 variable[2] = TAG_Int(1);
836 goto return_label20;
837 } else { /*if*/
838 variable[3] = TAG_Int(0) /*d=*/;
839 variable[5] = variable[0];
840 variable[4] = variable[5] /*n=*/;
841 }
842 }
843 while (true) { /*while*/
844 variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*n*/)>UNTAG_Int( TAG_Int(0)));
845 if (!UNTAG_Bool(variable[5])) break; /* while*/
846 variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*d*/;
847 variable[5] = TAG_Int(UNTAG_Int( variable[4] /*n*/)/UNTAG_Int( variable[1] /*b*/));
848 variable[4] = variable[5] /*n=*/;
849 continue_21: while(0);
850 }
851 break_21: while(0);
852 variable[2] = variable[3] /*d*/;
853 goto return_label20;
854 return_label20: while(false);
855 tracehead = trace.prev;
856 return variable[2];
857 }
858 val_t kernel___Int___to_c(val_t self) {
859 struct trace_t trace = {NULL, NULL, 303, LOCATE_kernel___Int___to_c};
860 val_t variable[4];
861 void **closurevariable = NULL;
862 trace.prev = tracehead; tracehead = &trace;
863 trace.file = LOCATE_kernel;
864 variable[0] = self;
865 variable[2] = variable[0];
866 variable[2] = TAG_Bool(UNTAG_Int(variable[2])>=UNTAG_Int( TAG_Int(0)));
867 variable[3] = variable[2];
868 if (UNTAG_Bool(variable[3])) { /* and */
869 variable[3] = variable[0];
870 variable[3] = TAG_Bool(UNTAG_Int(variable[3])<=UNTAG_Int( TAG_Int(36)));
871 }
872 variable[2] = variable[3];
873 if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_kernel___Int___to_c, LOCATE_kernel, 308); nit_exit(1);}
874 variable[2] = variable[0];
875 variable[2] = TAG_Bool(UNTAG_Int(variable[2])<UNTAG_Int( TAG_Int(10)));
876 if (UNTAG_Bool(variable[2])) { /*if*/
877 variable[2] = variable[0];
878 variable[3] = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('0')));
879 variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int(variable[3]));
880 variable[2] = TAG_Char(UNTAG_Int(variable[2]));
881 variable[1] = variable[2];
882 goto return_label22;
883 } else { /*if*/
884 variable[2] = variable[0];
885 variable[3] = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('a')));
886 variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(10)));
887 variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int(variable[3]));
888 variable[2] = TAG_Char(UNTAG_Int(variable[2]));
889 variable[1] = variable[2];
890 goto return_label22;
891 }
892 return_label22: while(false);
893 tracehead = trace.prev;
894 return variable[1];
895 }
896 val_t kernel___Char___object_id(val_t self) {
897 struct trace_t trace = {NULL, NULL, 324, LOCATE_kernel___Char___object_id};
898 val_t *variable = NULL;
899 void **closurevariable = NULL;
900 trace.prev = tracehead; tracehead = &trace;
901 trace.file = LOCATE_kernel;
902 tracehead = trace.prev;
903 return TAG_Int(UNTAG_Char( self));
904 }
905 val_t kernel___Char_____eqeq(val_t self, val_t param0) {
906 struct trace_t trace = {NULL, NULL, 325, LOCATE_kernel___Char_____eqeq};
907 val_t *variable = NULL;
908 void **closurevariable = NULL;
909 trace.prev = tracehead; tracehead = &trace;
910 trace.file = LOCATE_kernel;
911 tracehead = trace.prev;
912 return TAG_Bool(( self)==( param0));
913 }
914 val_t kernel___Char_____neq(val_t self, val_t param0) {
915 struct trace_t trace = {NULL, NULL, 326, LOCATE_kernel___Char_____neq};
916 val_t *variable = NULL;
917 void **closurevariable = NULL;
918 trace.prev = tracehead; tracehead = &trace;
919 trace.file = LOCATE_kernel;
920 tracehead = trace.prev;
921 return TAG_Bool(( self)!=( param0));
922 }
923 void kernel___Char___output(val_t self) {
924 struct trace_t trace = {NULL, NULL, 327, LOCATE_kernel___Char___output};
925 val_t *variable = NULL;
926 void **closurevariable = NULL;
927 trace.prev = tracehead; tracehead = &trace;
928 trace.file = LOCATE_kernel;
929 printf("%c", (unsigned char)UNTAG_Char( self));
930 tracehead = trace.prev;
931 return;
932 }
933 val_t kernel___Char_____l(val_t self, val_t param0) {
934 struct trace_t trace = {NULL, NULL, 330, LOCATE_kernel___Char_____l};
935 val_t *variable = NULL;
936 void **closurevariable = NULL;
937 trace.prev = tracehead; tracehead = &trace;
938 trace.file = LOCATE_kernel;
939 tracehead = trace.prev;
940 return TAG_Bool(UNTAG_Char( self)<UNTAG_Char( param0));
941 }
942 val_t kernel___Char_____leq(val_t self, val_t param0) {
943 struct trace_t trace = {NULL, NULL, 329, LOCATE_kernel___Char_____leq};
944 val_t *variable = NULL;
945 void **closurevariable = NULL;
946 trace.prev = tracehead; tracehead = &trace;
947 trace.file = LOCATE_kernel;
948 tracehead = trace.prev;
949 return TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( param0));
950 }
951 val_t kernel___Char_____geq(val_t self, val_t param0) {
952 struct trace_t trace = {NULL, NULL, 331, LOCATE_kernel___Char_____geq};
953 val_t *variable = NULL;
954 void **closurevariable = NULL;
955 trace.prev = tracehead; tracehead = &trace;
956 trace.file = LOCATE_kernel;
957 tracehead = trace.prev;
958 return TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( param0));
959 }
960 val_t kernel___Char_____g(val_t self, val_t param0) {
961 struct trace_t trace = {NULL, NULL, 332, LOCATE_kernel___Char_____g};
962 val_t *variable = NULL;
963 void **closurevariable = NULL;
964 trace.prev = tracehead; tracehead = &trace;
965 trace.file = LOCATE_kernel;
966 tracehead = trace.prev;
967 return TAG_Bool(UNTAG_Char( self)>UNTAG_Char( param0));
968 }
969 val_t kernel___Char___succ(val_t self) {
970 struct trace_t trace = {NULL, NULL, 334, LOCATE_kernel___Char___succ};
971 val_t *variable = NULL;
972 void **closurevariable = NULL;
973 trace.prev = tracehead; tracehead = &trace;
974 trace.file = LOCATE_kernel;
975 tracehead = trace.prev;
976 return TAG_Char(UNTAG_Char( self)+1);
977 }
978 val_t kernel___Char___prec(val_t self) {
979 struct trace_t trace = {NULL, NULL, 335, LOCATE_kernel___Char___prec};
980 val_t *variable = NULL;
981 void **closurevariable = NULL;
982 trace.prev = tracehead; tracehead = &trace;
983 trace.file = LOCATE_kernel;
984 tracehead = trace.prev;
985 return TAG_Char(UNTAG_Char( self)-1);
986 }
987 val_t kernel___Char_____plus(val_t self, val_t param0) {
988 struct trace_t trace = {NULL, NULL, 363, LOCATE_kernel___Char_____plus};
989 val_t *variable = NULL;
990 void **closurevariable = NULL;
991 trace.prev = tracehead; tracehead = &trace;
992 trace.file = LOCATE_kernel;
993 tracehead = trace.prev;
994 return TAG_Char(UNTAG_Char( self)+UNTAG_Char( param0));
995 }
996 val_t kernel___Char_____minus(val_t self, val_t param0) {
997 struct trace_t trace = {NULL, NULL, 364, LOCATE_kernel___Char_____minus};
998 val_t *variable = NULL;
999 void **closurevariable = NULL;
1000 trace.prev = tracehead; tracehead = &trace;
1001 trace.file = LOCATE_kernel;
1002 tracehead = trace.prev;
1003 return TAG_Char(UNTAG_Char( self)-UNTAG_Char( param0));
1004 }
1005 val_t kernel___Char___distance(val_t self, val_t param0) {
1006 struct trace_t trace = {NULL, NULL, 337, LOCATE_kernel___Char___distance};
1007 val_t variable[6];
1008 void **closurevariable = NULL;
1009 trace.prev = tracehead; tracehead = &trace;
1010 trace.file = LOCATE_kernel;
1011 variable[0] = self;
1012 variable[1] = param0;
1013 variable[4] = variable[0];
1014 variable[4] = TAG_Int((unsigned char)UNTAG_Char(variable[4]));
1015 variable[5] = TAG_Int((unsigned char)UNTAG_Char( variable[1] /*c*/));
1016 variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int(variable[5]));
1017 variable[3] = variable[4];
1018 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*d*/)>=UNTAG_Int( TAG_Int(0)));
1019 if (UNTAG_Bool(variable[4])) { /*if*/
1020 variable[2] = variable[3] /*d*/;
1021 goto return_label23;
1022 } else { /*if*/
1023 variable[4] = TAG_Int(-UNTAG_Int( variable[3] /*d*/));
1024 variable[2] = variable[4];
1025 goto return_label23;
1026 }
1027 return_label23: while(false);
1028 tracehead = trace.prev;
1029 return variable[2];
1030 }
1031 val_t kernel___Char___to_i(val_t self) {
1032 struct trace_t trace = {NULL, NULL, 347, LOCATE_kernel___Char___to_i};
1033 val_t variable[4];
1034 void **closurevariable = NULL;
1035 trace.prev = tracehead; tracehead = &trace;
1036 trace.file = LOCATE_kernel;
1037 variable[0] = self;
1038 variable[2] = variable[0];
1039 variable[2] = TAG_Bool((variable[2])==( TAG_Char('-')));
1040 if (UNTAG_Bool(variable[2])) { /*if*/
1041 variable[2] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
1042 variable[1] = variable[2];
1043 goto return_label24;
1044 } else { /*if*/
1045 variable[2] = variable[0];
1046 variable[2] = TAG_Bool(UNTAG_Char(variable[2])>=UNTAG_Char( TAG_Char('0')));
1047 variable[3] = variable[2];
1048 if (UNTAG_Bool(variable[3])) { /* and */
1049 variable[3] = variable[0];
1050 variable[3] = TAG_Bool(UNTAG_Char(variable[3])<=UNTAG_Char( TAG_Char('9')));
1051 }
1052 variable[2] = variable[3];
1053 if (UNTAG_Bool(variable[2])) { /*if*/
1054 variable[2] = variable[0];
1055 variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2]));
1056 variable[3] = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('0')));
1057 variable[2] = TAG_Int(UNTAG_Int(variable[2])-UNTAG_Int(variable[3]));
1058 variable[1] = variable[2];
1059 goto return_label24;
1060 } else { /*if*/
1061 variable[2] = variable[0];
1062 variable[2] = CALL_kernel___Char___to_lower(variable[2])(variable[2]) /*Char::to_lower*/;
1063 variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2]));
1064 variable[3] = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('a')));
1065 variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(10)));
1066 variable[2] = TAG_Int(UNTAG_Int(variable[2])-UNTAG_Int(variable[3]));
1067 variable[1] = variable[2];
1068 goto return_label24;
1069 }
1070 }
1071 return_label24: while(false);
1072 tracehead = trace.prev;
1073 return variable[1];
1074 }
1075 val_t kernel___Char___ascii(val_t self) {
1076 struct trace_t trace = {NULL, NULL, 360, LOCATE_kernel___Char___ascii};
1077 val_t *variable = NULL;
1078 void **closurevariable = NULL;
1079 trace.prev = tracehead; tracehead = &trace;
1080 trace.file = LOCATE_kernel;
1081 tracehead = trace.prev;
1082 return TAG_Int((unsigned char)UNTAG_Char( self));
1083 }
1084 val_t kernel___Char___to_lower(val_t self) {
1085 struct trace_t trace = {NULL, NULL, 366, LOCATE_kernel___Char___to_lower};
1086 val_t variable[4];
1087 void **closurevariable = NULL;
1088 trace.prev = tracehead; tracehead = &trace;
1089 trace.file = LOCATE_kernel;
1090 variable[0] = self;
1091 variable[2] = variable[0];
1092 variable[2] = TAG_Bool(UNTAG_Char(variable[2])>=UNTAG_Char( TAG_Char('A')));
1093 variable[3] = variable[2];
1094 if (UNTAG_Bool(variable[3])) { /* and */
1095 variable[3] = variable[0];
1096 variable[3] = TAG_Bool(UNTAG_Char(variable[3])<=UNTAG_Char( TAG_Char('Z')));
1097 }
1098 variable[2] = variable[3];
1099 if (UNTAG_Bool(variable[2])) { /*if*/
1100 variable[2] = variable[0];
1101 variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2]));
1102 variable[3] = CALL_kernel___Discrete___distance( TAG_Char('a'))( TAG_Char('a'), TAG_Char('A')) /*Char::distance*/;
1103 variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int(variable[3]));
1104 variable[2] = TAG_Char(UNTAG_Int(variable[2]));
1105 variable[1] = variable[2];
1106 goto return_label25;
1107 } else { /*if*/
1108 variable[2] = variable[0];
1109 variable[1] = variable[2];
1110 goto return_label25;
1111 }
1112 return_label25: while(false);
1113 tracehead = trace.prev;
1114 return variable[1];
1115 }
1116 val_t kernel___Char___to_upper(val_t self) {
1117 struct trace_t trace = {NULL, NULL, 376, LOCATE_kernel___Char___to_upper};
1118 val_t variable[4];
1119 void **closurevariable = NULL;
1120 trace.prev = tracehead; tracehead = &trace;
1121 trace.file = LOCATE_kernel;
1122 variable[0] = self;
1123 variable[2] = variable[0];
1124 variable[2] = TAG_Bool(UNTAG_Char(variable[2])>=UNTAG_Char( TAG_Char('a')));
1125 variable[3] = variable[2];
1126 if (UNTAG_Bool(variable[3])) { /* and */
1127 variable[3] = variable[0];
1128 variable[3] = TAG_Bool(UNTAG_Char(variable[3])<=UNTAG_Char( TAG_Char('z')));
1129 }
1130 variable[2] = variable[3];
1131 if (UNTAG_Bool(variable[2])) { /*if*/
1132 variable[2] = variable[0];
1133 variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2]));
1134 variable[3] = CALL_kernel___Discrete___distance( TAG_Char('a'))( TAG_Char('a'), TAG_Char('A')) /*Char::distance*/;
1135 variable[2] = TAG_Int(UNTAG_Int(variable[2])-UNTAG_Int(variable[3]));
1136 variable[2] = TAG_Char(UNTAG_Int(variable[2]));
1137 variable[1] = variable[2];
1138 goto return_label26;
1139 } else { /*if*/
1140 variable[2] = variable[0];
1141 variable[1] = variable[2];
1142 goto return_label26;
1143 }
1144 return_label26: while(false);
1145 tracehead = trace.prev;
1146 return variable[1];
1147 }