1 /* This C file is generated by NIT to compile module range. */
2 #include "range._sep.h"
3 val_t
range___Range___iterator(val_t p0
){
4 struct {struct stack_frame_t me
;} fra
;
6 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7 fra
.me
.file
= LOCATE_range
;
9 fra
.me
.meth
= LOCATE_range___Range___iterator
;
12 fra
.me
.REG
[0] = NIT_NULL
;
14 fra
.me
.REG
[0] = NEW_IteratorRange_range___IteratorRange___init(fra
.me
.REG
[0]);
15 /* ./../lib/standard//collection//range.nit:43 */
18 stack_frame_head
= fra
.me
.prev
;
21 val_t
range___Range___is_empty(val_t p0
){
22 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
25 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
26 fra
.me
.file
= LOCATE_range
;
28 fra
.me
.meth
= LOCATE_range___Range___is_empty
;
31 fra
.me
.REG
[0] = NIT_NULL
;
32 fra
.me
.REG
[1] = NIT_NULL
;
34 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
35 /* ./../lib/standard//collection//range.nit:55 */
36 if (UNTAG_Bool(REGB0
)) {
38 fprintf(stderr
, "Uninitialized attribute %s", "_first");
39 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 55);
42 fra
.me
.REG
[1] = ATTR_range___Range____first(fra
.me
.REG
[0]);
43 REGB0
= TAG_Bool(ATTR_range___Range____after(fra
.me
.REG
[0])!=NIT_NULL
);
44 if (UNTAG_Bool(REGB0
)) {
46 fprintf(stderr
, "Uninitialized attribute %s", "_after");
47 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 55);
50 fra
.me
.REG
[0] = ATTR_range___Range____after(fra
.me
.REG
[0]);
51 REGB0
= CALL_kernel___Comparable_____geq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
54 stack_frame_head
= fra
.me
.prev
;
57 val_t
range___Range___length(val_t p0
){
58 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
62 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
63 fra
.me
.file
= LOCATE_range
;
65 fra
.me
.meth
= LOCATE_range___Range___length
;
68 fra
.me
.REG
[0] = NIT_NULL
;
69 fra
.me
.REG
[1] = NIT_NULL
;
71 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
72 /* ./../lib/standard//collection//range.nit:47 */
73 if (UNTAG_Bool(REGB0
)) {
75 fprintf(stderr
, "Uninitialized attribute %s", "_first");
76 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 47);
79 fra
.me
.REG
[1] = ATTR_range___Range____first(fra
.me
.REG
[0]);
80 REGB0
= TAG_Bool(ATTR_range___Range____after(fra
.me
.REG
[0])!=NIT_NULL
);
81 if (UNTAG_Bool(REGB0
)) {
83 fprintf(stderr
, "Uninitialized attribute %s", "_after");
84 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 47);
87 fra
.me
.REG
[0] = ATTR_range___Range____after(fra
.me
.REG
[0]);
88 REGB0
= CALL_kernel___Discrete___distance(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
90 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
91 /* ./../lib/standard//collection//range.nit:48 */
92 if (UNTAG_Bool(REGB1
)) {
93 /* ./../lib/standard//collection//range.nit:49 */
98 /* ./../lib/standard//collection//range.nit:51 */
102 stack_frame_head
= fra
.me
.prev
;
105 val_t
range___Range___has(val_t p0
, val_t p1
){
106 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
110 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
111 fra
.me
.file
= LOCATE_range
;
113 fra
.me
.meth
= LOCATE_range___Range___has
;
114 fra
.me
.has_broke
= 0;
116 fra
.me
.REG
[0] = NIT_NULL
;
117 fra
.me
.REG
[1] = NIT_NULL
;
118 fra
.me
.REG
[2] = NIT_NULL
;
121 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
122 /* ./../lib/standard//collection//range.nit:30 */
123 if (UNTAG_Bool(REGB0
)) {
125 fprintf(stderr
, "Uninitialized attribute %s", "_first");
126 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 30);
129 fra
.me
.REG
[2] = ATTR_range___Range____first(fra
.me
.REG
[0]);
130 REGB0
= CALL_kernel___Comparable_____geq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
131 if (UNTAG_Bool(REGB0
)) {
132 REGB0
= TAG_Bool(ATTR_range___Range____last(fra
.me
.REG
[0])!=NIT_NULL
);
133 if (UNTAG_Bool(REGB0
)) {
135 fprintf(stderr
, "Uninitialized attribute %s", "_last");
136 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 30);
139 fra
.me
.REG
[0] = ATTR_range___Range____last(fra
.me
.REG
[0]);
140 REGB0
= CALL_kernel___Comparable_____leq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
142 REGB1
= TAG_Bool(false);
147 stack_frame_head
= fra
.me
.prev
;
150 val_t
range___Range___has_only(val_t p0
, val_t p1
){
151 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
155 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
156 fra
.me
.file
= LOCATE_range
;
158 fra
.me
.meth
= LOCATE_range___Range___has_only
;
159 fra
.me
.has_broke
= 0;
161 fra
.me
.REG
[0] = NIT_NULL
;
162 fra
.me
.REG
[1] = NIT_NULL
;
163 fra
.me
.REG
[2] = NIT_NULL
;
166 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
167 /* ./../lib/standard//collection//range.nit:32 */
168 if (UNTAG_Bool(REGB0
)) {
170 fprintf(stderr
, "Uninitialized attribute %s", "_first");
171 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 32);
174 fra
.me
.REG
[2] = ATTR_range___Range____first(fra
.me
.REG
[0]);
175 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
176 if (UNTAG_Bool(REGB0
)) {
178 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
181 if (UNTAG_Bool(REGB0
)) {
182 REGB0
= TAG_Bool(ATTR_range___Range____last(fra
.me
.REG
[0])!=NIT_NULL
);
183 if (UNTAG_Bool(REGB0
)) {
185 fprintf(stderr
, "Uninitialized attribute %s", "_last");
186 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 32);
189 fra
.me
.REG
[0] = ATTR_range___Range____last(fra
.me
.REG
[0]);
190 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
191 if (UNTAG_Bool(REGB0
)) {
193 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
197 REGB1
= TAG_Bool(false);
202 stack_frame_head
= fra
.me
.prev
;
205 val_t
range___Range___count(val_t p0
, val_t p1
){
206 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
210 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
211 fra
.me
.file
= LOCATE_range
;
213 fra
.me
.meth
= LOCATE_range___Range___count
;
214 fra
.me
.has_broke
= 0;
216 fra
.me
.REG
[0] = NIT_NULL
;
217 fra
.me
.REG
[1] = NIT_NULL
;
220 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
221 /* ./../lib/standard//collection//range.nit:36 */
222 if (UNTAG_Bool(REGB0
)) {
224 /* ./../lib/standard//collection//range.nit:37 */
229 /* ./../lib/standard//collection//range.nit:39 */
233 stack_frame_head
= fra
.me
.prev
;
236 val_t
range___Range___first(val_t p0
){
237 struct {struct stack_frame_t me
;} fra
;
240 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
241 fra
.me
.file
= LOCATE_range
;
243 fra
.me
.meth
= LOCATE_range___Range___first
;
244 fra
.me
.has_broke
= 0;
246 fra
.me
.REG
[0] = NIT_NULL
;
248 REGB0
= TAG_Bool(ATTR_range___Range____first(fra
.me
.REG
[0])!=NIT_NULL
);
249 /* ./../lib/standard//collection//range.nit:22 */
250 if (UNTAG_Bool(REGB0
)) {
252 fprintf(stderr
, "Uninitialized attribute %s", "_first");
253 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 22);
256 fra
.me
.REG
[0] = ATTR_range___Range____first(fra
.me
.REG
[0]);
257 stack_frame_head
= fra
.me
.prev
;
258 return fra
.me
.REG
[0];
260 val_t
range___Range___last(val_t p0
){
261 struct {struct stack_frame_t me
;} fra
;
264 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
265 fra
.me
.file
= LOCATE_range
;
267 fra
.me
.meth
= LOCATE_range___Range___last
;
268 fra
.me
.has_broke
= 0;
270 fra
.me
.REG
[0] = NIT_NULL
;
272 REGB0
= TAG_Bool(ATTR_range___Range____last(fra
.me
.REG
[0])!=NIT_NULL
);
273 /* ./../lib/standard//collection//range.nit:24 */
274 if (UNTAG_Bool(REGB0
)) {
276 fprintf(stderr
, "Uninitialized attribute %s", "_last");
277 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 24);
280 fra
.me
.REG
[0] = ATTR_range___Range____last(fra
.me
.REG
[0]);
281 stack_frame_head
= fra
.me
.prev
;
282 return fra
.me
.REG
[0];
284 val_t
range___Range___after(val_t p0
){
285 struct {struct stack_frame_t me
;} fra
;
288 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
289 fra
.me
.file
= LOCATE_range
;
291 fra
.me
.meth
= LOCATE_range___Range___after
;
292 fra
.me
.has_broke
= 0;
294 fra
.me
.REG
[0] = NIT_NULL
;
296 REGB0
= TAG_Bool(ATTR_range___Range____after(fra
.me
.REG
[0])!=NIT_NULL
);
297 /* ./../lib/standard//collection//range.nit:27 */
298 if (UNTAG_Bool(REGB0
)) {
300 fprintf(stderr
, "Uninitialized attribute %s", "_after");
301 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 27);
304 fra
.me
.REG
[0] = ATTR_range___Range____after(fra
.me
.REG
[0]);
305 stack_frame_head
= fra
.me
.prev
;
306 return fra
.me
.REG
[0];
308 void range___Range___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
309 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_Range
].i
;
310 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
312 if (init_table
[itpos0
]) return;
313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
314 fra
.me
.file
= LOCATE_range
;
316 fra
.me
.meth
= LOCATE_range___Range___init
;
317 fra
.me
.has_broke
= 0;
319 fra
.me
.REG
[0] = NIT_NULL
;
320 fra
.me
.REG
[1] = NIT_NULL
;
321 fra
.me
.REG
[2] = NIT_NULL
;
325 /* ./../lib/standard//collection//range.nit:61 */
326 ATTR_range___Range____first(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
327 /* ./../lib/standard//collection//range.nit:62 */
328 ATTR_range___Range____last(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
329 fra
.me
.REG
[2] = CALL_kernel___Discrete___succ(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
330 /* ./../lib/standard//collection//range.nit:63 */
331 ATTR_range___Range____after(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
332 stack_frame_head
= fra
.me
.prev
;
333 init_table
[itpos0
] = 1;
336 void range___Range___without_last(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
337 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_Range
].i
;
338 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
340 if (init_table
[itpos1
]) return;
341 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
342 fra
.me
.file
= LOCATE_range
;
344 fra
.me
.meth
= LOCATE_range___Range___without_last
;
345 fra
.me
.has_broke
= 0;
347 fra
.me
.REG
[0] = NIT_NULL
;
348 fra
.me
.REG
[1] = NIT_NULL
;
349 fra
.me
.REG
[2] = NIT_NULL
;
353 /* ./../lib/standard//collection//range.nit:70 */
354 ATTR_range___Range____first(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
355 fra
.me
.REG
[1] = CALL_kernel___Discrete___prec(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
356 /* ./../lib/standard//collection//range.nit:71 */
357 ATTR_range___Range____last(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
358 /* ./../lib/standard//collection//range.nit:72 */
359 ATTR_range___Range____after(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
360 stack_frame_head
= fra
.me
.prev
;
361 init_table
[itpos1
] = 1;
364 val_t
range___IteratorRange___item(val_t p0
){
365 struct {struct stack_frame_t me
;} fra
;
368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
369 fra
.me
.file
= LOCATE_range
;
371 fra
.me
.meth
= LOCATE_range___IteratorRange___item
;
372 fra
.me
.has_broke
= 0;
374 fra
.me
.REG
[0] = NIT_NULL
;
376 REGB0
= TAG_Bool(ATTR_range___IteratorRange____item(fra
.me
.REG
[0])!=NIT_NULL
);
377 /* ./../lib/standard//collection//range.nit:80 */
378 if (UNTAG_Bool(REGB0
)) {
380 fprintf(stderr
, "Uninitialized attribute %s", "_item");
381 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 80);
384 fra
.me
.REG
[0] = ATTR_range___IteratorRange____item(fra
.me
.REG
[0]);
385 stack_frame_head
= fra
.me
.prev
;
386 return fra
.me
.REG
[0];
388 void range___IteratorRange___next(val_t p0
){
389 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
392 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
393 fra
.me
.file
= LOCATE_range
;
395 fra
.me
.meth
= LOCATE_range___IteratorRange___next
;
396 fra
.me
.has_broke
= 0;
398 fra
.me
.REG
[0] = NIT_NULL
;
399 fra
.me
.REG
[1] = NIT_NULL
;
401 REGB0
= TAG_Bool(ATTR_range___IteratorRange____item(fra
.me
.REG
[0])!=NIT_NULL
);
402 /* ./../lib/standard//collection//range.nit:84 */
403 if (UNTAG_Bool(REGB0
)) {
405 fprintf(stderr
, "Uninitialized attribute %s", "_item");
406 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 84);
409 fra
.me
.REG
[1] = ATTR_range___IteratorRange____item(fra
.me
.REG
[0]);
410 fra
.me
.REG
[1] = CALL_kernel___Discrete___succ(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
411 ATTR_range___IteratorRange____item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
412 stack_frame_head
= fra
.me
.prev
;
415 val_t
range___IteratorRange___is_ok(val_t p0
){
416 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
419 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
420 fra
.me
.file
= LOCATE_range
;
422 fra
.me
.meth
= LOCATE_range___IteratorRange___is_ok
;
423 fra
.me
.has_broke
= 0;
425 fra
.me
.REG
[0] = NIT_NULL
;
426 fra
.me
.REG
[1] = NIT_NULL
;
428 REGB0
= TAG_Bool(ATTR_range___IteratorRange____item(fra
.me
.REG
[0])!=NIT_NULL
);
429 /* ./../lib/standard//collection//range.nit:82 */
430 if (UNTAG_Bool(REGB0
)) {
432 fprintf(stderr
, "Uninitialized attribute %s", "_item");
433 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 82);
436 fra
.me
.REG
[1] = ATTR_range___IteratorRange____item(fra
.me
.REG
[0]);
437 REGB0
= TAG_Bool(ATTR_range___IteratorRange____range(fra
.me
.REG
[0])!=NIT_NULL
);
438 if (UNTAG_Bool(REGB0
)) {
440 fprintf(stderr
, "Uninitialized attribute %s", "_range");
441 fprintf(stderr
, " (%s:%d)\n", LOCATE_range
, 82);
444 fra
.me
.REG
[0] = ATTR_range___IteratorRange____range(fra
.me
.REG
[0]);
445 fra
.me
.REG
[0] = CALL_range___Range___after(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
446 REGB0
= CALL_kernel___Comparable_____l(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
449 stack_frame_head
= fra
.me
.prev
;
452 void range___IteratorRange___init(val_t p0
, val_t p1
, int* init_table
){
453 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_IteratorRange
].i
;
454 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
456 if (init_table
[itpos2
]) return;
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___init
;
461 fra
.me
.has_broke
= 0;
463 fra
.me
.REG
[0] = NIT_NULL
;
464 fra
.me
.REG
[1] = NIT_NULL
;
467 /* ./../lib/standard//collection//range.nit:88 */
468 ATTR_range___IteratorRange____range(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
469 fra
.me
.REG
[1] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
470 /* ./../lib/standard//collection//range.nit:89 */
471 ATTR_range___IteratorRange____item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
472 stack_frame_head
= fra
.me
.prev
;
473 init_table
[itpos2
] = 1;