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
);
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
)));
15 val_t
kernel___Object_____eqeq(val_t self
, val_t param0
) {
16 struct trace_t trace
= {NULL
, LOCATE_kernel___Object_____eqeq
, 32};
19 trace
.prev
= tracehead
; tracehead
= &trace
;
21 variable1
= TAG_Bool(IS_EQUAL_NN( self
, variable0
/*other*/));
23 return_label0
: while(false);
24 tracehead
= trace
.prev
;
27 val_t
kernel___Object_____neq(val_t self
, val_t param0
) {
28 struct trace_t trace
= {NULL
, LOCATE_kernel___Object_____neq
, 37};
31 trace
.prev
= tracehead
; tracehead
= &trace
;
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
));
36 return_label1
: while(false);
37 tracehead
= trace
.prev
;
40 void kernel___Object___output(val_t self
) {
41 struct trace_t trace
= {NULL
, LOCATE_kernel___Object___output
, 42};
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
;
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
;
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
;
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
;
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);
75 tracehead
= trace
.prev
;
78 val_t
kernel___Comparable_____leq(val_t self
, val_t param0
) {
79 struct trace_t trace
= {NULL
, LOCATE_kernel___Comparable_____leq
, 72};
82 trace
.prev
= tracehead
; tracehead
= &trace
;
84 variable1
= ((kernel___Comparable_____l_t
)CALL( variable0
/*other*/,COLOR_kernel___Comparable_____l
))( variable0
/*other*/, self
) /*Comparable::<*/;
85 variable1
= TAG_Bool(!UNTAG_Bool(variable1
));
87 return_label4
: while(false);
88 tracehead
= trace
.prev
;
91 val_t
kernel___Comparable_____geq(val_t self
, val_t param0
) {
92 struct trace_t trace
= {NULL
, LOCATE_kernel___Comparable_____geq
, 75};
95 trace
.prev
= tracehead
; tracehead
= &trace
;
97 variable1
= ((kernel___Comparable_____l_t
)CALL( self
,COLOR_kernel___Comparable_____l
))( self
, variable0
/*other*/) /*Comparable::<*/;
98 variable1
= TAG_Bool(!UNTAG_Bool(variable1
));
100 return_label5
: while(false);
101 tracehead
= trace
.prev
;
104 val_t
kernel___Comparable_____g(val_t self
, val_t param0
) {
105 struct trace_t trace
= {NULL
, LOCATE_kernel___Comparable_____g
, 78};
108 trace
.prev
= tracehead
; tracehead
= &trace
;
110 variable1
= ((kernel___Comparable_____l_t
)CALL( variable0
/*other*/,COLOR_kernel___Comparable_____l
))( variable0
/*other*/, self
) /*Comparable::<*/;
112 return_label6
: while(false);
113 tracehead
= trace
.prev
;
116 val_t
kernel___Comparable_____leqg(val_t self
, val_t param0
) {
117 struct trace_t trace
= {NULL
, LOCATE_kernel___Comparable_____leqg
, 81};
120 trace
.prev
= tracehead
; tracehead
= &trace
;
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)));
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);
132 variable1
= TAG_Int(0);
136 return_label7
: while(false);
137 tracehead
= trace
.prev
;
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};
146 trace
.prev
= tracehead
; tracehead
= &trace
;
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::<=*/;
154 variable2
= variable3
;
156 return_label8
: while(false);
157 tracehead
= trace
.prev
;
160 val_t
kernel___Comparable___max(val_t self
, val_t param0
) {
161 struct trace_t trace
= {NULL
, LOCATE_kernel___Comparable___max
, 99};
164 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
174 return_label9
: while(false);
175 tracehead
= trace
.prev
;
178 val_t
kernel___Comparable___min(val_t self
, val_t param0
) {
179 struct trace_t trace
= {NULL
, LOCATE_kernel___Comparable___min
, 109};
182 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
192 return_label10
: while(false);
193 tracehead
= trace
.prev
;
196 val_t
kernel___Discrete___succ(val_t self
) {
197 struct trace_t trace
= {NULL
, LOCATE_kernel___Discrete___succ
, 126};
199 trace
.prev
= tracehead
; tracehead
= &trace
;
200 variable0
= ((kernel___Discrete_____plus_t
)CALL( self
,COLOR_kernel___Discrete_____plus
))( self
, TAG_Int(1)) /*Discrete::+*/;
202 return_label11
: while(false);
203 tracehead
= trace
.prev
;
206 val_t
kernel___Discrete___prec(val_t self
) {
207 struct trace_t trace
= {NULL
, LOCATE_kernel___Discrete___prec
, 129};
209 trace
.prev
= tracehead
; tracehead
= &trace
;
210 variable0
= ((kernel___Discrete_____minus_t
)CALL( self
,COLOR_kernel___Discrete_____minus
))( self
, TAG_Int(1)) /*Discrete::-*/;
212 return_label12
: while(false);
213 tracehead
= trace
.prev
;
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);
221 tracehead
= trace
.prev
;
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);
229 tracehead
= trace
.prev
;
232 val_t
kernel___Discrete___distance(val_t self
, val_t param0
) {
233 struct trace_t trace
= {NULL
, LOCATE_kernel___Discrete___distance
, 138};
239 trace
.prev
= tracehead
; tracehead
= &trace
;
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=*/;
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=*/;
253 variable1
= TAG_Int(0);
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);
267 variable1
= variable3
/*nb*/;
269 return_label13
: while(false);
270 tracehead
= trace
.prev
;
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
));
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
));
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
));
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
;
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
));
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
;
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
;
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
));
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
));
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
;
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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
));
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);
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);
486 val_t
kernel___Int___distance(val_t self
, val_t param0
) {
487 struct trace_t trace
= {NULL
, LOCATE_kernel___Int___distance
, 229};
491 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
500 variable2
= TAG_Int(-UNTAG_Int( variable1
/*d*/));
501 variable1
= variable2
;
504 return_label15
: while(false);
505 tracehead
= trace
.prev
;
508 val_t
kernel___Int_____leqg(val_t self
, val_t param0
) {
509 struct trace_t trace
= {NULL
, LOCATE_kernel___Int_____leqg
, 239};
512 trace
.prev
= tracehead
; tracehead
= &trace
;
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)));
519 variable1
= TAG_Bool(UNTAG_Int( variable0
/*other*/)<UNTAG_Int( self
));
520 if (UNTAG_Bool(variable1
)) { /*if*/
521 variable1
= TAG_Int(1);
524 variable1
= TAG_Int(0);
528 return_label16
: while(false);
529 tracehead
= trace
.prev
;
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};
538 trace
.prev
= tracehead
; tracehead
= &trace
;
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
));
546 variable2
= variable3
;
547 if (UNTAG_Bool(variable2
)) { /*if*/
548 variable2
= TAG_Bool(false);
551 variable2
= TAG_Bool(true);
554 return_label17
: while(false);
555 tracehead
= trace
.prev
;
558 val_t
kernel___Int___max(val_t self
, val_t param0
) {
559 struct trace_t trace
= {NULL
, LOCATE_kernel___Int___max
, 259};
562 trace
.prev
= tracehead
; tracehead
= &trace
;
564 variable1
= TAG_Bool(UNTAG_Int( self
)<UNTAG_Int( variable0
/*other*/));
565 if (UNTAG_Bool(variable1
)) { /*if*/
566 variable1
= variable0
/*other*/;
572 return_label18
: while(false);
573 tracehead
= trace
.prev
;
576 val_t
kernel___Int___min(val_t self
, val_t param0
) {
577 struct trace_t trace
= {NULL
, LOCATE_kernel___Int___min
, 268};
580 trace
.prev
= tracehead
; tracehead
= &trace
;
582 variable1
= TAG_Bool(UNTAG_Int( variable0
/*c*/)<UNTAG_Int( self
));
583 if (UNTAG_Bool(variable1
)) { /*if*/
584 variable1
= variable0
/*c*/;
590 return_label19
: while(false);
591 tracehead
= trace
.prev
;
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
));
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};
606 trace
.prev
= tracehead
; tracehead
= &trace
;
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=*/;
616 variable3
= TAG_Bool(( self
)==( TAG_Int(0)));
617 if (UNTAG_Bool(variable3
)) { /*if*/
618 variable1
= TAG_Int(1);
621 variable1
= TAG_Int(0) /*d=*/;
622 variable2
= self
/*n=*/;
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);
634 variable1
= variable1
/*d*/;
636 return_label20
: while(false);
637 tracehead
= trace
.prev
;
640 val_t
kernel___Int___to_c(val_t self
) {
641 struct trace_t trace
= {NULL
, LOCATE_kernel___Int___to_c
, 303};
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)));
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
));
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
));
665 return_label22
: while(false);
666 tracehead
= trace
.prev
;
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
));
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
));
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
));
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
;
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
));
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
));
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
));
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
));
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);
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);
730 val_t
kernel___Char___distance(val_t self
, val_t param0
) {
731 struct trace_t trace
= {NULL
, LOCATE_kernel___Char___distance
, 337};
736 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
747 variable2
= TAG_Int(-UNTAG_Int( variable1
/*d*/));
748 variable1
= variable2
;
751 return_label23
: while(false);
752 tracehead
= trace
.prev
;
755 val_t
kernel___Char___to_i(val_t self
) {
756 struct trace_t trace
= {NULL
, LOCATE_kernel___Char___to_i
, 347};
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)));
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')));
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
));
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
));
785 return_label24
: while(false);
786 tracehead
= trace
.prev
;
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
));
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
));
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
));
807 val_t
kernel___Char___to_lower(val_t self
) {
808 struct trace_t trace
= {NULL
, LOCATE_kernel___Char___to_lower
, 366};
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')));
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
));
828 return_label25
: while(false);
829 tracehead
= trace
.prev
;
832 val_t
kernel___Char___to_upper(val_t self
) {
833 struct trace_t trace
= {NULL
, LOCATE_kernel___Char___to_upper
, 376};
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')));
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
));
853 return_label26
: while(false);
854 tracehead
= trace
.prev
;