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