remove putenv, setenv and unsetenv
[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, LOCATE_kernel___Object___object_id, 26};
5 trace.prev = tracehead; tracehead = &trace;
6 tracehead = trace.prev;
7 return TAG_Int((int) self);
8 }
9 val_t kernel___Object___is_same_type(val_t self, val_t param0) {
10 struct trace_t trace = {NULL, LOCATE_kernel___Object___is_same_type, 29};
11 trace.prev = tracehead; tracehead = &trace;
12 tracehead = trace.prev;
13 return TAG_Bool((VAL2VFT( self)==VAL2VFT( param0)));
14 }
15 val_t kernel___Object_____eqeq(val_t self, val_t param0) {
16 struct trace_t trace = {NULL, LOCATE_kernel___Object_____eqeq, 32};
17 val_t variable0;
18 val_t variable1;
19 trace.prev = tracehead; tracehead = &trace;
20 variable0 = param0;
21 variable1 = TAG_Bool(IS_EQUAL_NN( self, variable0 /*other*/));
22 goto return_label0;
23 return_label0: while(false);
24 tracehead = trace.prev;
25 return variable1;
26 }
27 val_t kernel___Object_____neq(val_t self, val_t param0) {
28 struct trace_t trace = {NULL, LOCATE_kernel___Object_____neq, 37};
29 val_t variable0;
30 val_t variable1;
31 trace.prev = tracehead; tracehead = &trace;
32 variable0 = param0;
33 variable1 = TAG_Bool(( self == variable0 /*other*/) || (( self != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( self, variable0 /*other*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))( self, variable0 /*other*/) /*Object::==*/)))));
34 variable1 = TAG_Bool(!UNTAG_Bool(variable1));
35 goto return_label1;
36 return_label1: while(false);
37 tracehead = trace.prev;
38 return variable1;
39 }
40 void kernel___Object___output(val_t self) {
41 struct trace_t trace = {NULL, LOCATE_kernel___Object___output, 42};
42 val_t variable0;
43 trace.prev = tracehead; tracehead = &trace;
44 printf("%c", (unsigned char)UNTAG_Char( TAG_Char('<')));
45 variable0 = TAG_Int((int) self);
46 printf("%d\n", UNTAG_Int(variable0));
47 printf("%c", (unsigned char)UNTAG_Char( TAG_Char('>')));
48 tracehead = trace.prev;
49 return;
50 }
51 void kernel___Object___exit(val_t self, val_t param0) {
52 struct trace_t trace = {NULL, LOCATE_kernel___Object___exit, 50};
53 trace.prev = tracehead; tracehead = &trace;
54 exit(UNTAG_Int( param0));
55 tracehead = trace.prev;
56 return;
57 }
58 val_t kernel___Object___sys(val_t self) {
59 struct trace_t trace = {NULL, LOCATE_kernel___Object___sys, 51};
60 trace.prev = tracehead; tracehead = &trace;
61 tracehead = trace.prev;
62 return (G_sys);
63 }
64 void kernel___Sys___main(val_t self) {
65 struct trace_t trace = {NULL, LOCATE_kernel___Sys___main, 56};
66 trace.prev = tracehead; tracehead = &trace;
67 tracehead = trace.prev;
68 return;
69 }
70 val_t kernel___Comparable_____l(val_t self, val_t param0) {
71 struct trace_t trace = {NULL, LOCATE_kernel___Comparable_____l, 69};
72 trace.prev = tracehead; tracehead = &trace;
73 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "<", LOCATE_kernel___Sys___main, 69);
74 nit_exit(1);
75 tracehead = trace.prev;
76 return NIT_NULL;
77 }
78 val_t kernel___Comparable_____leq(val_t self, val_t param0) {
79 struct trace_t trace = {NULL, LOCATE_kernel___Comparable_____leq, 72};
80 val_t variable0;
81 val_t variable1;
82 trace.prev = tracehead; tracehead = &trace;
83 variable0 = param0;
84 variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*other*/,COLOR_kernel___Comparable_____l))( variable0 /*other*/, self) /*Comparable::<*/;
85 variable1 = TAG_Bool(!UNTAG_Bool(variable1));
86 goto return_label4;
87 return_label4: while(false);
88 tracehead = trace.prev;
89 return variable1;
90 }
91 val_t kernel___Comparable_____geq(val_t self, val_t param0) {
92 struct trace_t trace = {NULL, LOCATE_kernel___Comparable_____geq, 75};
93 val_t variable0;
94 val_t variable1;
95 trace.prev = tracehead; tracehead = &trace;
96 variable0 = param0;
97 variable1 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self, variable0 /*other*/) /*Comparable::<*/;
98 variable1 = TAG_Bool(!UNTAG_Bool(variable1));
99 goto return_label5;
100 return_label5: while(false);
101 tracehead = trace.prev;
102 return variable1;
103 }
104 val_t kernel___Comparable_____g(val_t self, val_t param0) {
105 struct trace_t trace = {NULL, LOCATE_kernel___Comparable_____g, 78};
106 val_t variable0;
107 val_t variable1;
108 trace.prev = tracehead; tracehead = &trace;
109 variable0 = param0;
110 variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*other*/,COLOR_kernel___Comparable_____l))( variable0 /*other*/, self) /*Comparable::<*/;
111 goto return_label6;
112 return_label6: while(false);
113 tracehead = trace.prev;
114 return variable1;
115 }
116 val_t kernel___Comparable_____leqg(val_t self, val_t param0) {
117 struct trace_t trace = {NULL, LOCATE_kernel___Comparable_____leqg, 81};
118 val_t variable0;
119 val_t variable1;
120 trace.prev = tracehead; tracehead = &trace;
121 variable0 = param0;
122 variable1 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self, variable0 /*other*/) /*Comparable::<*/;
123 if (UNTAG_Bool(variable1)) { /*if*/
124 variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
125 goto return_label7;
126 } else { /*if*/
127 variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*other*/,COLOR_kernel___Comparable_____l))( variable0 /*other*/, self) /*Comparable::<*/;
128 if (UNTAG_Bool(variable1)) { /*if*/
129 variable1 = TAG_Int(1);
130 goto return_label7;
131 } else { /*if*/
132 variable1 = TAG_Int(0);
133 goto return_label7;
134 }
135 }
136 return_label7: while(false);
137 tracehead = trace.prev;
138 return variable1;
139 }
140 val_t kernel___Comparable___is_between(val_t self, val_t param0, val_t param1) {
141 struct trace_t trace = {NULL, LOCATE_kernel___Comparable___is_between, 93};
142 val_t variable0;
143 val_t variable1;
144 val_t variable2;
145 val_t variable3;
146 trace.prev = tracehead; tracehead = &trace;
147 variable0 = param0;
148 variable1 = param1;
149 variable2 = ((kernel___Comparable_____leq_t)CALL( variable0 /*c*/,COLOR_kernel___Comparable_____leq))( variable0 /*c*/, self) /*Comparable::<=*/;
150 variable3 = variable2;
151 if (UNTAG_Bool(variable3)) { /* and */
152 variable3 = ((kernel___Comparable_____leq_t)CALL( self,COLOR_kernel___Comparable_____leq))( self, variable1 /*d*/) /*Comparable::<=*/;
153 }
154 variable2 = variable3;
155 goto return_label8;
156 return_label8: while(false);
157 tracehead = trace.prev;
158 return variable2;
159 }
160 val_t kernel___Comparable___max(val_t self, val_t param0) {
161 struct trace_t trace = {NULL, LOCATE_kernel___Comparable___max, 99};
162 val_t variable0;
163 val_t variable1;
164 trace.prev = tracehead; tracehead = &trace;
165 variable0 = param0;
166 variable1 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self, variable0 /*other*/) /*Comparable::<*/;
167 if (UNTAG_Bool(variable1)) { /*if*/
168 variable1 = variable0 /*other*/;
169 goto return_label9;
170 } else { /*if*/
171 variable1 = self;
172 goto return_label9;
173 }
174 return_label9: while(false);
175 tracehead = trace.prev;
176 return variable1;
177 }
178 val_t kernel___Comparable___min(val_t self, val_t param0) {
179 struct trace_t trace = {NULL, LOCATE_kernel___Comparable___min, 109};
180 val_t variable0;
181 val_t variable1;
182 trace.prev = tracehead; tracehead = &trace;
183 variable0 = param0;
184 variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*c*/,COLOR_kernel___Comparable_____l))( variable0 /*c*/, self) /*Comparable::<*/;
185 if (UNTAG_Bool(variable1)) { /*if*/
186 variable1 = variable0 /*c*/;
187 goto return_label10;
188 } else { /*if*/
189 variable1 = self;
190 goto return_label10;
191 }
192 return_label10: while(false);
193 tracehead = trace.prev;
194 return variable1;
195 }
196 val_t kernel___Discrete___succ(val_t self) {
197 struct trace_t trace = {NULL, LOCATE_kernel___Discrete___succ, 126};
198 val_t variable0;
199 trace.prev = tracehead; tracehead = &trace;
200 variable0 = ((kernel___Discrete_____plus_t)CALL( self,COLOR_kernel___Discrete_____plus))( self, TAG_Int(1)) /*Discrete::+*/;
201 goto return_label11;
202 return_label11: while(false);
203 tracehead = trace.prev;
204 return variable0;
205 }
206 val_t kernel___Discrete___prec(val_t self) {
207 struct trace_t trace = {NULL, LOCATE_kernel___Discrete___prec, 129};
208 val_t variable0;
209 trace.prev = tracehead; tracehead = &trace;
210 variable0 = ((kernel___Discrete_____minus_t)CALL( self,COLOR_kernel___Discrete_____minus))( self, TAG_Int(1)) /*Discrete::-*/;
211 goto return_label12;
212 return_label12: while(false);
213 tracehead = trace.prev;
214 return variable0;
215 }
216 val_t kernel___Discrete_____plus(val_t self, val_t param0) {
217 struct trace_t trace = {NULL, LOCATE_kernel___Discrete_____plus, 132};
218 trace.prev = tracehead; tracehead = &trace;
219 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "+", LOCATE_kernel___Discrete___prec, 132);
220 nit_exit(1);
221 tracehead = trace.prev;
222 return NIT_NULL;
223 }
224 val_t kernel___Discrete_____minus(val_t self, val_t param0) {
225 struct trace_t trace = {NULL, LOCATE_kernel___Discrete_____minus, 135};
226 trace.prev = tracehead; tracehead = &trace;
227 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "-", LOCATE_kernel___Discrete___prec, 135);
228 nit_exit(1);
229 tracehead = trace.prev;
230 return NIT_NULL;
231 }
232 val_t kernel___Discrete___distance(val_t self, val_t param0) {
233 struct trace_t trace = {NULL, LOCATE_kernel___Discrete___distance, 138};
234 val_t variable0;
235 val_t variable1;
236 val_t variable2;
237 val_t variable3;
238 val_t variable4;
239 trace.prev = tracehead; tracehead = &trace;
240 variable0 = param0;
241 variable1 = NIT_NULL /*decl variable cursor*/;
242 variable2 = NIT_NULL /*decl variable stop*/;
243 variable3 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self, variable0 /*d*/) /*Discrete::<*/;
244 if (UNTAG_Bool(variable3)) { /*if*/
245 variable1 = self /*cursor=*/;
246 variable2 = variable0 /*d*/ /*stop=*/;
247 } else { /*if*/
248 variable3 = ((kernel___Comparable_____g_t)CALL( self,COLOR_kernel___Comparable_____g))( self, variable0 /*d*/) /*Discrete::>*/;
249 if (UNTAG_Bool(variable3)) { /*if*/
250 variable1 = variable0 /*d*/ /*cursor=*/;
251 variable2 = self /*stop=*/;
252 } else { /*if*/
253 variable1 = TAG_Int(0);
254 goto return_label13;
255 }
256 }
257 variable3 = TAG_Int(0);
258 while (true) { /*while*/
259 variable4 = ((kernel___Comparable_____l_t)CALL( variable1 /*cursor*/,COLOR_kernel___Comparable_____l))( variable1 /*cursor*/, variable2 /*stop*/) /*Discrete::<*/;
260 if (!UNTAG_Bool(variable4)) break; /* while*/
261 variable4 = ((kernel___Discrete___succ_t)CALL( variable1 /*cursor*/,COLOR_kernel___Discrete___succ))( variable1 /*cursor*/) /*Discrete::succ*/;
262 variable1 = variable4 /*cursor=*/;
263 variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*nb*/;
264 continue_14: while(0);
265 }
266 break_14: while(0);
267 variable1 = variable3 /*nb*/;
268 goto return_label13;
269 return_label13: while(false);
270 tracehead = trace.prev;
271 return variable1;
272 }
273 val_t kernel___Bool___object_id(val_t self) {
274 struct trace_t trace = {NULL, LOCATE_kernel___Bool___object_id, 174};
275 trace.prev = tracehead; tracehead = &trace;
276 tracehead = trace.prev;
277 return TAG_Int(UNTAG_Bool( self));
278 }
279 val_t kernel___Bool_____eqeq(val_t self, val_t param0) {
280 struct trace_t trace = {NULL, LOCATE_kernel___Bool_____eqeq, 175};
281 trace.prev = tracehead; tracehead = &trace;
282 tracehead = trace.prev;
283 return TAG_Bool(( self)==( param0));
284 }
285 val_t kernel___Bool_____neq(val_t self, val_t param0) {
286 struct trace_t trace = {NULL, LOCATE_kernel___Bool_____neq, 176};
287 trace.prev = tracehead; tracehead = &trace;
288 tracehead = trace.prev;
289 return TAG_Bool(( self)!=( param0));
290 }
291 void kernel___Bool___output(val_t self) {
292 struct trace_t trace = {NULL, LOCATE_kernel___Bool___output, 177};
293 trace.prev = tracehead; tracehead = &trace;
294 (void)printf(UNTAG_Bool( self)?"true\n":"false\n");
295 tracehead = trace.prev;
296 return;
297 }
298 val_t kernel___Float___object_id(val_t self) {
299 struct trace_t trace = {NULL, LOCATE_kernel___Float___object_id, 183};
300 trace.prev = tracehead; tracehead = &trace;
301 tracehead = trace.prev;
302 return TAG_Int((int)UNBOX_Float( self));
303 }
304 void kernel___Float___output(val_t self) {
305 struct trace_t trace = {NULL, LOCATE_kernel___Float___output, 184};
306 trace.prev = tracehead; tracehead = &trace;
307 printf("%f\n", UNBOX_Float( self));
308 tracehead = trace.prev;
309 return;
310 }
311 val_t kernel___Float_____leq(val_t self, val_t param0) {
312 struct trace_t trace = {NULL, LOCATE_kernel___Float_____leq, 186};
313 trace.prev = tracehead; tracehead = &trace;
314 tracehead = trace.prev;
315 return TAG_Bool(UNBOX_Float( self)<=UNBOX_Float( param0));
316 }
317 val_t kernel___Float_____l(val_t self, val_t param0) {
318 struct trace_t trace = {NULL, LOCATE_kernel___Float_____l, 187};
319 trace.prev = tracehead; tracehead = &trace;
320 tracehead = trace.prev;
321 return TAG_Bool(UNBOX_Float( self)<UNBOX_Float( param0));
322 }
323 val_t kernel___Float_____geq(val_t self, val_t param0) {
324 struct trace_t trace = {NULL, LOCATE_kernel___Float_____geq, 188};
325 trace.prev = tracehead; tracehead = &trace;
326 tracehead = trace.prev;
327 return TAG_Bool(UNBOX_Float( self)>=UNBOX_Float( param0));
328 }
329 val_t kernel___Float_____g(val_t self, val_t param0) {
330 struct trace_t trace = {NULL, LOCATE_kernel___Float_____g, 189};
331 trace.prev = tracehead; tracehead = &trace;
332 tracehead = trace.prev;
333 return TAG_Bool(UNBOX_Float( self)>UNBOX_Float( param0));
334 }
335 val_t kernel___Float_____plus(val_t self, val_t param0) {
336 struct trace_t trace = {NULL, LOCATE_kernel___Float_____plus, 190};
337 trace.prev = tracehead; tracehead = &trace;
338 tracehead = trace.prev;
339 return BOX_Float(UNBOX_Float( self)+UNBOX_Float( param0));
340 }
341 val_t kernel___Float___unary__minus(val_t self) {
342 struct trace_t trace = {NULL, LOCATE_kernel___Float___unary__minus, 191};
343 trace.prev = tracehead; tracehead = &trace;
344 tracehead = trace.prev;
345 return BOX_Float(-UNBOX_Float( self));
346 }
347 val_t kernel___Float_____minus(val_t self, val_t param0) {
348 struct trace_t trace = {NULL, LOCATE_kernel___Float_____minus, 192};
349 trace.prev = tracehead; tracehead = &trace;
350 tracehead = trace.prev;
351 return BOX_Float(UNBOX_Float( self)-UNBOX_Float( param0));
352 }
353 val_t kernel___Float_____star(val_t self, val_t param0) {
354 struct trace_t trace = {NULL, LOCATE_kernel___Float_____star, 193};
355 trace.prev = tracehead; tracehead = &trace;
356 tracehead = trace.prev;
357 return BOX_Float(UNBOX_Float( self)*UNBOX_Float( param0));
358 }
359 val_t kernel___Float_____slash(val_t self, val_t param0) {
360 struct trace_t trace = {NULL, LOCATE_kernel___Float_____slash, 194};
361 trace.prev = tracehead; tracehead = &trace;
362 tracehead = trace.prev;
363 return BOX_Float(UNBOX_Float( self)/UNBOX_Float( param0));
364 }
365 val_t kernel___Float___to_i(val_t self) {
366 struct trace_t trace = {NULL, LOCATE_kernel___Float___to_i, 196};
367 trace.prev = tracehead; tracehead = &trace;
368 tracehead = trace.prev;
369 return TAG_Int((int)UNBOX_Float( self));
370 }
371 val_t kernel___Int___object_id(val_t self) {
372 struct trace_t trace = {NULL, LOCATE_kernel___Int___object_id, 206};
373 trace.prev = tracehead; tracehead = &trace;
374 tracehead = trace.prev;
375 return self;
376 }
377 val_t kernel___Int_____eqeq(val_t self, val_t param0) {
378 struct trace_t trace = {NULL, LOCATE_kernel___Int_____eqeq, 207};
379 trace.prev = tracehead; tracehead = &trace;
380 tracehead = trace.prev;
381 return TAG_Bool(( self)==( param0));
382 }
383 val_t kernel___Int_____neq(val_t self, val_t param0) {
384 struct trace_t trace = {NULL, LOCATE_kernel___Int_____neq, 208};
385 trace.prev = tracehead; tracehead = &trace;
386 tracehead = trace.prev;
387 return TAG_Bool(( self)!=( param0));
388 }
389 void kernel___Int___output(val_t self) {
390 struct trace_t trace = {NULL, LOCATE_kernel___Int___output, 209};
391 trace.prev = tracehead; tracehead = &trace;
392 printf("%d\n", UNTAG_Int( self));
393 tracehead = trace.prev;
394 return;
395 }
396 val_t kernel___Int_____leq(val_t self, val_t param0) {
397 struct trace_t trace = {NULL, LOCATE_kernel___Int_____leq, 211};
398 trace.prev = tracehead; tracehead = &trace;
399 tracehead = trace.prev;
400 return TAG_Bool(UNTAG_Int( self)<=UNTAG_Int( param0));
401 }
402 val_t kernel___Int_____l(val_t self, val_t param0) {
403 struct trace_t trace = {NULL, LOCATE_kernel___Int_____l, 212};
404 trace.prev = tracehead; tracehead = &trace;
405 tracehead = trace.prev;
406 return TAG_Bool(UNTAG_Int( self)<UNTAG_Int( param0));
407 }
408 val_t kernel___Int_____geq(val_t self, val_t param0) {
409 struct trace_t trace = {NULL, LOCATE_kernel___Int_____geq, 213};
410 trace.prev = tracehead; tracehead = &trace;
411 tracehead = trace.prev;
412 return TAG_Bool(UNTAG_Int( self)>=UNTAG_Int( param0));
413 }
414 val_t kernel___Int_____g(val_t self, val_t param0) {
415 struct trace_t trace = {NULL, LOCATE_kernel___Int_____g, 214};
416 trace.prev = tracehead; tracehead = &trace;
417 tracehead = trace.prev;
418 return TAG_Bool(UNTAG_Int( self)>UNTAG_Int( param0));
419 }
420 val_t kernel___Int_____plus(val_t self, val_t param0) {
421 struct trace_t trace = {NULL, LOCATE_kernel___Int_____plus, 215};
422 trace.prev = tracehead; tracehead = &trace;
423 tracehead = trace.prev;
424 return TAG_Int(UNTAG_Int( self)+UNTAG_Int( param0));
425 }
426 val_t kernel___Int___unary__minus(val_t self) {
427 struct trace_t trace = {NULL, LOCATE_kernel___Int___unary__minus, 216};
428 trace.prev = tracehead; tracehead = &trace;
429 tracehead = trace.prev;
430 return TAG_Int(-UNTAG_Int( self));
431 }
432 val_t kernel___Int_____minus(val_t self, val_t param0) {
433 struct trace_t trace = {NULL, LOCATE_kernel___Int_____minus, 217};
434 trace.prev = tracehead; tracehead = &trace;
435 tracehead = trace.prev;
436 return TAG_Int(UNTAG_Int( self)-UNTAG_Int( param0));
437 }
438 val_t kernel___Int_____star(val_t self, val_t param0) {
439 struct trace_t trace = {NULL, LOCATE_kernel___Int_____star, 218};
440 trace.prev = tracehead; tracehead = &trace;
441 tracehead = trace.prev;
442 return TAG_Int(UNTAG_Int( self)*UNTAG_Int( param0));
443 }
444 val_t kernel___Int_____slash(val_t self, val_t param0) {
445 struct trace_t trace = {NULL, LOCATE_kernel___Int_____slash, 219};
446 trace.prev = tracehead; tracehead = &trace;
447 tracehead = trace.prev;
448 return TAG_Int(UNTAG_Int( self)/UNTAG_Int( param0));
449 }
450 val_t kernel___Int_____percent(val_t self, val_t param0) {
451 struct trace_t trace = {NULL, LOCATE_kernel___Int_____percent, 220};
452 trace.prev = tracehead; tracehead = &trace;
453 tracehead = trace.prev;
454 return TAG_Int(UNTAG_Int( self)%UNTAG_Int( param0));
455 }
456 val_t kernel___Int___lshift(val_t self, val_t param0) {
457 struct trace_t trace = {NULL, LOCATE_kernel___Int___lshift, 221};
458 trace.prev = tracehead; tracehead = &trace;
459 tracehead = trace.prev;
460 return TAG_Int(UNTAG_Int( self)<<UNTAG_Int( param0));
461 }
462 val_t kernel___Int___rshift(val_t self, val_t param0) {
463 struct trace_t trace = {NULL, LOCATE_kernel___Int___rshift, 222};
464 trace.prev = tracehead; tracehead = &trace;
465 tracehead = trace.prev;
466 return TAG_Int(UNTAG_Int( self)>>UNTAG_Int( param0));
467 }
468 val_t kernel___Int___to_f(val_t self) {
469 struct trace_t trace = {NULL, LOCATE_kernel___Int___to_f, 224};
470 trace.prev = tracehead; tracehead = &trace;
471 tracehead = trace.prev;
472 return BOX_Float((float)UNTAG_Int( self));
473 }
474 val_t kernel___Int___succ(val_t self) {
475 struct trace_t trace = {NULL, LOCATE_kernel___Int___succ, 227};
476 trace.prev = tracehead; tracehead = &trace;
477 tracehead = trace.prev;
478 return TAG_Int(UNTAG_Int( self)+1);
479 }
480 val_t kernel___Int___prec(val_t self) {
481 struct trace_t trace = {NULL, LOCATE_kernel___Int___prec, 228};
482 trace.prev = tracehead; tracehead = &trace;
483 tracehead = trace.prev;
484 return TAG_Int(UNTAG_Int( self)-1);
485 }
486 val_t kernel___Int___distance(val_t self, val_t param0) {
487 struct trace_t trace = {NULL, LOCATE_kernel___Int___distance, 229};
488 val_t variable0;
489 val_t variable1;
490 val_t variable2;
491 trace.prev = tracehead; tracehead = &trace;
492 variable0 = param0;
493 variable2 = TAG_Int(UNTAG_Int( self)-UNTAG_Int( variable0 /*i*/));
494 variable1 = variable2;
495 variable2 = TAG_Bool(UNTAG_Int( variable1 /*d*/)>=UNTAG_Int( TAG_Int(0)));
496 if (UNTAG_Bool(variable2)) { /*if*/
497 variable1 = variable1 /*d*/;
498 goto return_label15;
499 } else { /*if*/
500 variable2 = TAG_Int(-UNTAG_Int( variable1 /*d*/));
501 variable1 = variable2;
502 goto return_label15;
503 }
504 return_label15: while(false);
505 tracehead = trace.prev;
506 return variable1;
507 }
508 val_t kernel___Int_____leqg(val_t self, val_t param0) {
509 struct trace_t trace = {NULL, LOCATE_kernel___Int_____leqg, 239};
510 val_t variable0;
511 val_t variable1;
512 trace.prev = tracehead; tracehead = &trace;
513 variable0 = param0;
514 variable1 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( variable0 /*other*/));
515 if (UNTAG_Bool(variable1)) { /*if*/
516 variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
517 goto return_label16;
518 } else { /*if*/
519 variable1 = TAG_Bool(UNTAG_Int( variable0 /*other*/)<UNTAG_Int( self));
520 if (UNTAG_Bool(variable1)) { /*if*/
521 variable1 = TAG_Int(1);
522 goto return_label16;
523 } else { /*if*/
524 variable1 = TAG_Int(0);
525 goto return_label16;
526 }
527 }
528 return_label16: while(false);
529 tracehead = trace.prev;
530 return variable1;
531 }
532 val_t kernel___Int___is_between(val_t self, val_t param0, val_t param1) {
533 struct trace_t trace = {NULL, LOCATE_kernel___Int___is_between, 250};
534 val_t variable0;
535 val_t variable1;
536 val_t variable2;
537 val_t variable3;
538 trace.prev = tracehead; tracehead = &trace;
539 variable0 = param0;
540 variable1 = param1;
541 variable2 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( variable0 /*c*/));
542 variable3 = variable2;
543 if (!UNTAG_Bool(variable3)) { /* or */
544 variable3 = TAG_Bool(UNTAG_Int( variable1 /*d*/)<UNTAG_Int( self));
545 }
546 variable2 = variable3;
547 if (UNTAG_Bool(variable2)) { /*if*/
548 variable2 = TAG_Bool(false);
549 goto return_label17;
550 } else { /*if*/
551 variable2 = TAG_Bool(true);
552 goto return_label17;
553 }
554 return_label17: while(false);
555 tracehead = trace.prev;
556 return variable2;
557 }
558 val_t kernel___Int___max(val_t self, val_t param0) {
559 struct trace_t trace = {NULL, LOCATE_kernel___Int___max, 259};
560 val_t variable0;
561 val_t variable1;
562 trace.prev = tracehead; tracehead = &trace;
563 variable0 = param0;
564 variable1 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( variable0 /*other*/));
565 if (UNTAG_Bool(variable1)) { /*if*/
566 variable1 = variable0 /*other*/;
567 goto return_label18;
568 } else { /*if*/
569 variable1 = self;
570 goto return_label18;
571 }
572 return_label18: while(false);
573 tracehead = trace.prev;
574 return variable1;
575 }
576 val_t kernel___Int___min(val_t self, val_t param0) {
577 struct trace_t trace = {NULL, LOCATE_kernel___Int___min, 268};
578 val_t variable0;
579 val_t variable1;
580 trace.prev = tracehead; tracehead = &trace;
581 variable0 = param0;
582 variable1 = TAG_Bool(UNTAG_Int( variable0 /*c*/)<UNTAG_Int( self));
583 if (UNTAG_Bool(variable1)) { /*if*/
584 variable1 = variable0 /*c*/;
585 goto return_label19;
586 } else { /*if*/
587 variable1 = self;
588 goto return_label19;
589 }
590 return_label19: while(false);
591 tracehead = trace.prev;
592 return variable1;
593 }
594 val_t kernel___Int___ascii(val_t self) {
595 struct trace_t trace = {NULL, LOCATE_kernel___Int___ascii, 277};
596 trace.prev = tracehead; tracehead = &trace;
597 tracehead = trace.prev;
598 return TAG_Char(UNTAG_Int( self));
599 }
600 val_t kernel___Int___digit_count(val_t self, val_t param0) {
601 struct trace_t trace = {NULL, LOCATE_kernel___Int___digit_count, 280};
602 val_t variable0;
603 val_t variable1;
604 val_t variable2;
605 val_t variable3;
606 trace.prev = tracehead; tracehead = &trace;
607 variable0 = param0;
608 variable1 = TAG_Int((int)0) /*decl variable d*/;
609 variable2 = TAG_Int((int)0) /*decl variable n*/;
610 variable3 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( TAG_Int(0)));
611 if (UNTAG_Bool(variable3)) { /*if*/
612 variable1 = TAG_Int(1) /*d=*/;
613 variable3 = TAG_Int(-UNTAG_Int( self));
614 variable2 = variable3 /*n=*/;
615 } else { /*if*/
616 variable3 = TAG_Bool(( self)==( TAG_Int(0)));
617 if (UNTAG_Bool(variable3)) { /*if*/
618 variable1 = TAG_Int(1);
619 goto return_label20;
620 } else { /*if*/
621 variable1 = TAG_Int(0) /*d=*/;
622 variable2 = self /*n=*/;
623 }
624 }
625 while (true) { /*while*/
626 variable3 = TAG_Bool(UNTAG_Int( variable2 /*n*/)>UNTAG_Int( TAG_Int(0)));
627 if (!UNTAG_Bool(variable3)) break; /* while*/
628 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*d*/;
629 variable3 = TAG_Int(UNTAG_Int( variable2 /*n*/)/UNTAG_Int( variable0 /*b*/));
630 variable2 = variable3 /*n=*/;
631 continue_21: while(0);
632 }
633 break_21: while(0);
634 variable1 = variable1 /*d*/;
635 goto return_label20;
636 return_label20: while(false);
637 tracehead = trace.prev;
638 return variable1;
639 }
640 val_t kernel___Int___to_c(val_t self) {
641 struct trace_t trace = {NULL, LOCATE_kernel___Int___to_c, 303};
642 val_t variable0;
643 val_t variable1;
644 trace.prev = tracehead; tracehead = &trace;
645 variable0 = TAG_Bool(UNTAG_Int( self)>=UNTAG_Int( TAG_Int(0)));
646 variable1 = variable0;
647 if (UNTAG_Bool(variable1)) { /* and */
648 variable1 = TAG_Bool(UNTAG_Int( self)<=UNTAG_Int( TAG_Int(36)));
649 }
650 variable0 = variable1;
651 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_kernel___Int___to_c, 308); nit_exit(1);}
652 variable0 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( TAG_Int(10)));
653 if (UNTAG_Bool(variable0)) { /*if*/
654 variable0 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('0')));
655 variable0 = TAG_Int(UNTAG_Int( self)+UNTAG_Int(variable0));
656 variable0 = TAG_Char(UNTAG_Int(variable0));
657 goto return_label22;
658 } else { /*if*/
659 variable0 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('a')));
660 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(10)));
661 variable0 = TAG_Int(UNTAG_Int( self)+UNTAG_Int(variable0));
662 variable0 = TAG_Char(UNTAG_Int(variable0));
663 goto return_label22;
664 }
665 return_label22: while(false);
666 tracehead = trace.prev;
667 return variable0;
668 }
669 val_t kernel___Char___object_id(val_t self) {
670 struct trace_t trace = {NULL, LOCATE_kernel___Char___object_id, 324};
671 trace.prev = tracehead; tracehead = &trace;
672 tracehead = trace.prev;
673 return TAG_Int(UNTAG_Char( self));
674 }
675 val_t kernel___Char_____eqeq(val_t self, val_t param0) {
676 struct trace_t trace = {NULL, LOCATE_kernel___Char_____eqeq, 325};
677 trace.prev = tracehead; tracehead = &trace;
678 tracehead = trace.prev;
679 return TAG_Bool(( self)==( param0));
680 }
681 val_t kernel___Char_____neq(val_t self, val_t param0) {
682 struct trace_t trace = {NULL, LOCATE_kernel___Char_____neq, 326};
683 trace.prev = tracehead; tracehead = &trace;
684 tracehead = trace.prev;
685 return TAG_Bool(( self)!=( param0));
686 }
687 void kernel___Char___output(val_t self) {
688 struct trace_t trace = {NULL, LOCATE_kernel___Char___output, 327};
689 trace.prev = tracehead; tracehead = &trace;
690 printf("%c", (unsigned char)UNTAG_Char( self));
691 tracehead = trace.prev;
692 return;
693 }
694 val_t kernel___Char_____leq(val_t self, val_t param0) {
695 struct trace_t trace = {NULL, LOCATE_kernel___Char_____leq, 329};
696 trace.prev = tracehead; tracehead = &trace;
697 tracehead = trace.prev;
698 return TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( param0));
699 }
700 val_t kernel___Char_____l(val_t self, val_t param0) {
701 struct trace_t trace = {NULL, LOCATE_kernel___Char_____l, 330};
702 trace.prev = tracehead; tracehead = &trace;
703 tracehead = trace.prev;
704 return TAG_Bool(UNTAG_Char( self)<UNTAG_Char( param0));
705 }
706 val_t kernel___Char_____geq(val_t self, val_t param0) {
707 struct trace_t trace = {NULL, LOCATE_kernel___Char_____geq, 331};
708 trace.prev = tracehead; tracehead = &trace;
709 tracehead = trace.prev;
710 return TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( param0));
711 }
712 val_t kernel___Char_____g(val_t self, val_t param0) {
713 struct trace_t trace = {NULL, LOCATE_kernel___Char_____g, 332};
714 trace.prev = tracehead; tracehead = &trace;
715 tracehead = trace.prev;
716 return TAG_Bool(UNTAG_Char( self)>UNTAG_Char( param0));
717 }
718 val_t kernel___Char___succ(val_t self) {
719 struct trace_t trace = {NULL, LOCATE_kernel___Char___succ, 334};
720 trace.prev = tracehead; tracehead = &trace;
721 tracehead = trace.prev;
722 return TAG_Char(UNTAG_Char( self)+1);
723 }
724 val_t kernel___Char___prec(val_t self) {
725 struct trace_t trace = {NULL, LOCATE_kernel___Char___prec, 335};
726 trace.prev = tracehead; tracehead = &trace;
727 tracehead = trace.prev;
728 return TAG_Char(UNTAG_Char( self)-1);
729 }
730 val_t kernel___Char___distance(val_t self, val_t param0) {
731 struct trace_t trace = {NULL, LOCATE_kernel___Char___distance, 337};
732 val_t variable0;
733 val_t variable1;
734 val_t variable2;
735 val_t variable3;
736 trace.prev = tracehead; tracehead = &trace;
737 variable0 = param0;
738 variable2 = TAG_Int((unsigned char)UNTAG_Char( self));
739 variable3 = TAG_Int((unsigned char)UNTAG_Char( variable0 /*c*/));
740 variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int(variable3));
741 variable1 = variable2;
742 variable2 = TAG_Bool(UNTAG_Int( variable1 /*d*/)>=UNTAG_Int( TAG_Int(0)));
743 if (UNTAG_Bool(variable2)) { /*if*/
744 variable1 = variable1 /*d*/;
745 goto return_label23;
746 } else { /*if*/
747 variable2 = TAG_Int(-UNTAG_Int( variable1 /*d*/));
748 variable1 = variable2;
749 goto return_label23;
750 }
751 return_label23: while(false);
752 tracehead = trace.prev;
753 return variable1;
754 }
755 val_t kernel___Char___to_i(val_t self) {
756 struct trace_t trace = {NULL, LOCATE_kernel___Char___to_i, 347};
757 val_t variable0;
758 val_t variable1;
759 trace.prev = tracehead; tracehead = &trace;
760 variable0 = TAG_Bool(( self)==( TAG_Char('-')));
761 if (UNTAG_Bool(variable0)) { /*if*/
762 variable0 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
763 goto return_label24;
764 } else { /*if*/
765 variable0 = TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( TAG_Char('0')));
766 variable1 = variable0;
767 if (UNTAG_Bool(variable1)) { /* and */
768 variable1 = TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( TAG_Char('9')));
769 }
770 variable0 = variable1;
771 if (UNTAG_Bool(variable0)) { /*if*/
772 variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
773 variable1 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('0')));
774 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int(variable1));
775 goto return_label24;
776 } else { /*if*/
777 variable0 = ((kernel___Char___to_lower_t)CALL( self,COLOR_kernel___Char___to_lower))( self) /*Char::to_lower*/;
778 variable0 = TAG_Int((unsigned char)UNTAG_Char(variable0));
779 variable1 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('a')));
780 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(10)));
781 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int(variable1));
782 goto return_label24;
783 }
784 }
785 return_label24: while(false);
786 tracehead = trace.prev;
787 return variable0;
788 }
789 val_t kernel___Char___ascii(val_t self) {
790 struct trace_t trace = {NULL, LOCATE_kernel___Char___ascii, 360};
791 trace.prev = tracehead; tracehead = &trace;
792 tracehead = trace.prev;
793 return TAG_Int((unsigned char)UNTAG_Char( self));
794 }
795 val_t kernel___Char_____plus(val_t self, val_t param0) {
796 struct trace_t trace = {NULL, LOCATE_kernel___Char_____plus, 363};
797 trace.prev = tracehead; tracehead = &trace;
798 tracehead = trace.prev;
799 return TAG_Char(UNTAG_Char( self)+UNTAG_Char( param0));
800 }
801 val_t kernel___Char_____minus(val_t self, val_t param0) {
802 struct trace_t trace = {NULL, LOCATE_kernel___Char_____minus, 364};
803 trace.prev = tracehead; tracehead = &trace;
804 tracehead = trace.prev;
805 return TAG_Char(UNTAG_Char( self)-UNTAG_Char( param0));
806 }
807 val_t kernel___Char___to_lower(val_t self) {
808 struct trace_t trace = {NULL, LOCATE_kernel___Char___to_lower, 366};
809 val_t variable0;
810 val_t variable1;
811 trace.prev = tracehead; tracehead = &trace;
812 variable0 = TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( TAG_Char('A')));
813 variable1 = variable0;
814 if (UNTAG_Bool(variable1)) { /* and */
815 variable1 = TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( TAG_Char('Z')));
816 }
817 variable0 = variable1;
818 if (UNTAG_Bool(variable0)) { /*if*/
819 variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
820 variable1 = ((kernel___Char___distance_t)CALL( TAG_Char('a'),COLOR_kernel___Discrete___distance))( TAG_Char('a'), TAG_Char('A')) /*Char::distance*/;
821 variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int(variable1));
822 variable0 = TAG_Char(UNTAG_Int(variable0));
823 goto return_label25;
824 } else { /*if*/
825 variable0 = self;
826 goto return_label25;
827 }
828 return_label25: while(false);
829 tracehead = trace.prev;
830 return variable0;
831 }
832 val_t kernel___Char___to_upper(val_t self) {
833 struct trace_t trace = {NULL, LOCATE_kernel___Char___to_upper, 376};
834 val_t variable0;
835 val_t variable1;
836 trace.prev = tracehead; tracehead = &trace;
837 variable0 = TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( TAG_Char('a')));
838 variable1 = variable0;
839 if (UNTAG_Bool(variable1)) { /* and */
840 variable1 = TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( TAG_Char('z')));
841 }
842 variable0 = variable1;
843 if (UNTAG_Bool(variable0)) { /*if*/
844 variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
845 variable1 = ((kernel___Char___distance_t)CALL( TAG_Char('a'),COLOR_kernel___Discrete___distance))( TAG_Char('a'), TAG_Char('A')) /*Char::distance*/;
846 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int(variable1));
847 variable0 = TAG_Char(UNTAG_Int(variable0));
848 goto return_label26;
849 } else { /*if*/
850 variable0 = self;
851 goto return_label26;
852 }
853 return_label26: while(false);
854 tracehead = trace.prev;
855 return variable0;
856 }