1 /* This C file is generated by NIT to compile module range. */
2 #include "range._sep.h"
3 val_t
range___Range___first(val_t p0
){
4 struct {struct stack_frame_t me
;} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_range
;
10 fra
.me
.meth
= LOCATE_range___Range___first
;
13 fra
.me
.REG
[0] = NIT_NULL
;
15 /* ./../lib/standard//collection//range.nit:22 */
16 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
17 if (UNTAG_Bool(REGB0
)) {
19 nit_abort("Uninitialized attribute %s", "_first", LOCATE_range
, 22);
21 fra
.me
.REG
[0] = ATTR_range___Range____first(fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 val_t
range___Range___last(val_t p0
){
26 struct {struct stack_frame_t me
;} fra
;
29 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
30 fra
.me
.file
= LOCATE_range
;
32 fra
.me
.meth
= LOCATE_range___Range___last
;
35 fra
.me
.REG
[0] = NIT_NULL
;
37 /* ./../lib/standard//collection//range.nit:24 */
38 REGB0
= TAG_Bool(ATTR_range___Range____last(fra
.me
.REG
[0])!=NIT_NULL
);
39 if (UNTAG_Bool(REGB0
)) {
41 nit_abort("Uninitialized attribute %s", "_last", LOCATE_range
, 24);
43 fra
.me
.REG
[0] = ATTR_range___Range____last(fra
.me
.REG
[0]);
44 stack_frame_head
= fra
.me
.prev
;
47 val_t
range___Range___after(val_t p0
){
48 struct {struct stack_frame_t me
;} fra
;
51 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
52 fra
.me
.file
= LOCATE_range
;
54 fra
.me
.meth
= LOCATE_range___Range___after
;
57 fra
.me
.REG
[0] = NIT_NULL
;
59 /* ./../lib/standard//collection//range.nit:27 */
60 REGB0
= TAG_Bool(ATTR_range___Range____after(fra
.me
.REG
[0])!=NIT_NULL
);
61 if (UNTAG_Bool(REGB0
)) {
63 nit_abort("Uninitialized attribute %s", "_after", LOCATE_range
, 27);
65 fra
.me
.REG
[0] = ATTR_range___Range____after(fra
.me
.REG
[0]);
66 stack_frame_head
= fra
.me
.prev
;
69 val_t
range___Range___has(val_t p0
, val_t p1
){
70 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
74 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
75 fra
.me
.file
= LOCATE_range
;
77 fra
.me
.meth
= LOCATE_range___Range___has
;
80 fra
.me
.REG
[0] = NIT_NULL
;
81 fra
.me
.REG
[1] = NIT_NULL
;
82 fra
.me
.REG
[2] = NIT_NULL
;
85 /* ./../lib/standard//collection//range.nit:30 */
86 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
87 if (UNTAG_Bool(REGB0
)) {
89 nit_abort("Uninitialized attribute %s", "_first", LOCATE_range
, 30);
91 fra
.me
.REG
[2] = ATTR_range___Range____first(fra
.me
.REG
[0]);
92 REGB0
= CALL_kernel___Comparable_____geq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
93 if (UNTAG_Bool(REGB0
)) {
94 REGB0
= TAG_Bool(ATTR_range___Range____last(fra
.me
.REG
[0])!=NIT_NULL
);
95 if (UNTAG_Bool(REGB0
)) {
97 nit_abort("Uninitialized attribute %s", "_last", LOCATE_range
, 30);
99 fra
.me
.REG
[0] = ATTR_range___Range____last(fra
.me
.REG
[0]);
100 REGB0
= CALL_kernel___Comparable_____leq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
102 REGB1
= TAG_Bool(false);
107 stack_frame_head
= fra
.me
.prev
;
110 val_t
range___Range___has_only(val_t p0
, val_t p1
){
111 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
115 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
116 fra
.me
.file
= LOCATE_range
;
118 fra
.me
.meth
= LOCATE_range___Range___has_only
;
119 fra
.me
.has_broke
= 0;
121 fra
.me
.REG
[0] = NIT_NULL
;
122 fra
.me
.REG
[1] = NIT_NULL
;
123 fra
.me
.REG
[2] = NIT_NULL
;
126 /* ./../lib/standard//collection//range.nit:32 */
127 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
128 if (UNTAG_Bool(REGB0
)) {
130 nit_abort("Uninitialized attribute %s", "_first", LOCATE_range
, 32);
132 fra
.me
.REG
[2] = ATTR_range___Range____first(fra
.me
.REG
[0]);
133 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
134 if (UNTAG_Bool(REGB0
)) {
136 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
139 if (UNTAG_Bool(REGB0
)) {
140 REGB0
= TAG_Bool(ATTR_range___Range____last(fra
.me
.REG
[0])!=NIT_NULL
);
141 if (UNTAG_Bool(REGB0
)) {
143 nit_abort("Uninitialized attribute %s", "_last", LOCATE_range
, 32);
145 fra
.me
.REG
[0] = ATTR_range___Range____last(fra
.me
.REG
[0]);
146 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
147 if (UNTAG_Bool(REGB0
)) {
149 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
153 REGB1
= TAG_Bool(false);
158 stack_frame_head
= fra
.me
.prev
;
161 val_t
range___Range___count(val_t p0
, val_t p1
){
162 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
166 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
167 fra
.me
.file
= LOCATE_range
;
169 fra
.me
.meth
= LOCATE_range___Range___count
;
170 fra
.me
.has_broke
= 0;
172 fra
.me
.REG
[0] = NIT_NULL
;
173 fra
.me
.REG
[1] = NIT_NULL
;
176 /* ./../lib/standard//collection//range.nit:36 */
177 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
178 if (UNTAG_Bool(REGB0
)) {
179 /* ./../lib/standard//collection//range.nit:37 */
183 /* ./../lib/standard//collection//range.nit:39 */
189 stack_frame_head
= fra
.me
.prev
;
192 val_t
range___Range___iterator(val_t p0
){
193 struct {struct stack_frame_t me
;} fra
;
195 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
196 fra
.me
.file
= LOCATE_range
;
198 fra
.me
.meth
= LOCATE_range___Range___iterator
;
199 fra
.me
.has_broke
= 0;
201 fra
.me
.REG
[0] = NIT_NULL
;
203 /* ./../lib/standard//collection//range.nit:43 */
204 fra
.me
.REG
[0] = NEW_IteratorRange_range___IteratorRange___init(fra
.me
.REG
[0]);
207 stack_frame_head
= fra
.me
.prev
;
208 return fra
.me
.REG
[0];
210 void range___Range___iterate(val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
211 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
215 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
216 fra
.me
.file
= LOCATE_range
;
218 fra
.me
.meth
= LOCATE_range___Range___iterate
;
219 fra
.me
.has_broke
= 0;
221 fra
.me
.REG
[0] = NIT_NULL
;
222 fra
.me
.REG
[1] = NIT_NULL
;
223 fra
.me
.REG
[2] = NIT_NULL
;
224 fra
.me
.closure_ctx
= closctx_param
;
225 fra
.me
.closure_funs
= CREG
;
228 /* ./../lib/standard//collection//range.nit:48 */
229 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
230 if (UNTAG_Bool(REGB0
)) {
232 nit_abort("Uninitialized attribute %s", "_first", LOCATE_range
, 48);
234 fra
.me
.REG
[1] = ATTR_range___Range____first(fra
.me
.REG
[0]);
235 /* ./../lib/standard//collection//range.nit:49 */
236 REGB0
= TAG_Bool(ATTR_range___Range____last(fra
.me
.REG
[0])!=NIT_NULL
);
237 if (UNTAG_Bool(REGB0
)) {
239 nit_abort("Uninitialized attribute %s", "_last", LOCATE_range
, 49);
241 fra
.me
.REG
[0] = ATTR_range___Range____last(fra
.me
.REG
[0]);
242 /* ./../lib/standard//collection//range.nit:50 */
244 REGB0
= CALL_kernel___Comparable_____leq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
245 if (UNTAG_Bool(REGB0
)) {
246 /* ./../lib/standard//collection//range.nit:51 */
247 ((void (*)(struct stack_frame_t
*, val_t
))(CREG
[0]))(closctx_param
, fra
.me
.REG
[1]);
248 if (closctx_param
->has_broke
) {
251 /* ./../lib/standard//collection//range.nit:52 */
252 fra
.me
.REG
[2] = CALL_kernel___Discrete___succ(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
253 fra
.me
.REG
[1] = fra
.me
.REG
[2];
255 /* ./../lib/standard//collection//range.nit:50 */
261 stack_frame_head
= fra
.me
.prev
;
264 val_t
range___Range___length(val_t p0
){
265 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
269 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
270 fra
.me
.file
= LOCATE_range
;
272 fra
.me
.meth
= LOCATE_range___Range___length
;
273 fra
.me
.has_broke
= 0;
275 fra
.me
.REG
[0] = NIT_NULL
;
276 fra
.me
.REG
[1] = NIT_NULL
;
278 /* ./../lib/standard//collection//range.nit:58 */
279 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
280 if (UNTAG_Bool(REGB0
)) {
282 nit_abort("Uninitialized attribute %s", "_first", LOCATE_range
, 58);
284 fra
.me
.REG
[1] = ATTR_range___Range____first(fra
.me
.REG
[0]);
285 REGB0
= TAG_Bool(ATTR_range___Range____after(fra
.me
.REG
[0])!=NIT_NULL
);
286 if (UNTAG_Bool(REGB0
)) {
288 nit_abort("Uninitialized attribute %s", "_after", LOCATE_range
, 58);
290 fra
.me
.REG
[0] = ATTR_range___Range____after(fra
.me
.REG
[0]);
291 REGB0
= CALL_kernel___Discrete___distance(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
292 /* ./../lib/standard//collection//range.nit:59 */
294 /* ./../lib/standard//kernel.nit:214 */
295 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
296 /* ./../lib/standard//collection//range.nit:59 */
297 if (UNTAG_Bool(REGB1
)) {
298 /* ./../lib/standard//collection//range.nit:60 */
301 /* ./../lib/standard//collection//range.nit:62 */
307 stack_frame_head
= fra
.me
.prev
;
310 val_t
range___Range___is_empty(val_t p0
){
311 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
314 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
315 fra
.me
.file
= LOCATE_range
;
317 fra
.me
.meth
= LOCATE_range___Range___is_empty
;
318 fra
.me
.has_broke
= 0;
320 fra
.me
.REG
[0] = NIT_NULL
;
321 fra
.me
.REG
[1] = NIT_NULL
;
323 /* ./../lib/standard//collection//range.nit:66 */
324 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
325 if (UNTAG_Bool(REGB0
)) {
327 nit_abort("Uninitialized attribute %s", "_first", LOCATE_range
, 66);
329 fra
.me
.REG
[1] = ATTR_range___Range____first(fra
.me
.REG
[0]);
330 REGB0
= TAG_Bool(ATTR_range___Range____after(fra
.me
.REG
[0])!=NIT_NULL
);
331 if (UNTAG_Bool(REGB0
)) {
333 nit_abort("Uninitialized attribute %s", "_after", LOCATE_range
, 66);
335 fra
.me
.REG
[0] = ATTR_range___Range____after(fra
.me
.REG
[0]);
336 REGB0
= CALL_kernel___Comparable_____geq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
339 stack_frame_head
= fra
.me
.prev
;
342 void range___Range___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
343 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_Range
].i
;
344 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
346 if (init_table
[itpos0
]) return;
347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
348 fra
.me
.file
= LOCATE_range
;
350 fra
.me
.meth
= LOCATE_range___Range___init
;
351 fra
.me
.has_broke
= 0;
353 fra
.me
.REG
[0] = NIT_NULL
;
354 fra
.me
.REG
[1] = NIT_NULL
;
355 fra
.me
.REG
[2] = NIT_NULL
;
359 /* ./../lib/standard//collection//range.nit:72 */
360 ATTR_range___Range____first(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
361 /* ./../lib/standard//collection//range.nit:73 */
362 ATTR_range___Range____last(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
363 /* ./../lib/standard//collection//range.nit:74 */
364 fra
.me
.REG
[2] = CALL_kernel___Discrete___succ(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
365 ATTR_range___Range____after(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
366 stack_frame_head
= fra
.me
.prev
;
367 init_table
[itpos0
] = 1;
370 void range___Range___without_last(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
371 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_Range
].i
;
372 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
374 if (init_table
[itpos1
]) return;
375 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
376 fra
.me
.file
= LOCATE_range
;
378 fra
.me
.meth
= LOCATE_range___Range___without_last
;
379 fra
.me
.has_broke
= 0;
381 fra
.me
.REG
[0] = NIT_NULL
;
382 fra
.me
.REG
[1] = NIT_NULL
;
383 fra
.me
.REG
[2] = NIT_NULL
;
387 /* ./../lib/standard//collection//range.nit:81 */
388 ATTR_range___Range____first(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
389 /* ./../lib/standard//collection//range.nit:82 */
390 fra
.me
.REG
[1] = CALL_kernel___Discrete___prec(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
391 ATTR_range___Range____last(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
392 /* ./../lib/standard//collection//range.nit:83 */
393 ATTR_range___Range____after(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
394 stack_frame_head
= fra
.me
.prev
;
395 init_table
[itpos1
] = 1;
398 val_t
range___IteratorRange___item(val_t p0
){
399 struct {struct stack_frame_t me
;} fra
;
402 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
403 fra
.me
.file
= LOCATE_range
;
405 fra
.me
.meth
= LOCATE_range___IteratorRange___item
;
406 fra
.me
.has_broke
= 0;
408 fra
.me
.REG
[0] = NIT_NULL
;
410 /* ./../lib/standard//collection//range.nit:91 */
411 REGB0
= TAG_Bool(ATTR_range___IteratorRange____item(fra
.me
.REG
[0])!=NIT_NULL
);
412 if (UNTAG_Bool(REGB0
)) {
414 nit_abort("Uninitialized attribute %s", "_item", LOCATE_range
, 91);
416 fra
.me
.REG
[0] = ATTR_range___IteratorRange____item(fra
.me
.REG
[0]);
417 stack_frame_head
= fra
.me
.prev
;
418 return fra
.me
.REG
[0];
420 val_t
range___IteratorRange___is_ok(val_t p0
){
421 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
424 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
425 fra
.me
.file
= LOCATE_range
;
427 fra
.me
.meth
= LOCATE_range___IteratorRange___is_ok
;
428 fra
.me
.has_broke
= 0;
430 fra
.me
.REG
[0] = NIT_NULL
;
431 fra
.me
.REG
[1] = NIT_NULL
;
433 /* ./../lib/standard//collection//range.nit:93 */
434 REGB0
= TAG_Bool(ATTR_range___IteratorRange____item(fra
.me
.REG
[0])!=NIT_NULL
);
435 if (UNTAG_Bool(REGB0
)) {
437 nit_abort("Uninitialized attribute %s", "_item", LOCATE_range
, 93);
439 fra
.me
.REG
[1] = ATTR_range___IteratorRange____item(fra
.me
.REG
[0]);
440 REGB0
= TAG_Bool(ATTR_range___IteratorRange____range(fra
.me
.REG
[0])!=NIT_NULL
);
441 if (UNTAG_Bool(REGB0
)) {
443 nit_abort("Uninitialized attribute %s", "_range", LOCATE_range
, 93);
445 fra
.me
.REG
[0] = ATTR_range___IteratorRange____range(fra
.me
.REG
[0]);
446 fra
.me
.REG
[0] = CALL_range___Range___after(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
447 REGB0
= CALL_kernel___Comparable_____l(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
450 stack_frame_head
= fra
.me
.prev
;
453 void range___IteratorRange___next(val_t p0
){
454 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
457 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
458 fra
.me
.file
= LOCATE_range
;
460 fra
.me
.meth
= LOCATE_range___IteratorRange___next
;
461 fra
.me
.has_broke
= 0;
463 fra
.me
.REG
[0] = NIT_NULL
;
464 fra
.me
.REG
[1] = NIT_NULL
;
466 /* ./../lib/standard//collection//range.nit:95 */
467 REGB0
= TAG_Bool(ATTR_range___IteratorRange____item(fra
.me
.REG
[0])!=NIT_NULL
);
468 if (UNTAG_Bool(REGB0
)) {
470 nit_abort("Uninitialized attribute %s", "_item", LOCATE_range
, 95);
472 fra
.me
.REG
[1] = ATTR_range___IteratorRange____item(fra
.me
.REG
[0]);
473 fra
.me
.REG
[1] = CALL_kernel___Discrete___succ(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
474 ATTR_range___IteratorRange____item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
475 stack_frame_head
= fra
.me
.prev
;
478 void range___IteratorRange___init(val_t p0
, val_t p1
, int* init_table
){
479 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_IteratorRange
].i
;
480 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
482 if (init_table
[itpos2
]) return;
483 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
484 fra
.me
.file
= LOCATE_range
;
486 fra
.me
.meth
= LOCATE_range___IteratorRange___init
;
487 fra
.me
.has_broke
= 0;
489 fra
.me
.REG
[0] = NIT_NULL
;
490 fra
.me
.REG
[1] = NIT_NULL
;
493 /* ./../lib/standard//collection//range.nit:99 */
494 ATTR_range___IteratorRange____range(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
495 /* ./../lib/standard//collection//range.nit:100 */
496 fra
.me
.REG
[1] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
497 ATTR_range___IteratorRange____item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
498 stack_frame_head
= fra
.me
.prev
;
499 init_table
[itpos2
] = 1;