1 #include "range._sep.h"
2 val_t
range___Range___first(val_t self
) {
3 struct trace_t trace
= {NULL
, "range::Range::first (bin/../lib/standard//range.nit:22,2--30)"};
4 trace
.prev
= tracehead
; tracehead
= &trace
;
5 tracehead
= trace
.prev
;
6 return ATTR_range___Range____first( self
) /*Range::_first*/;
8 val_t
range___Range___last(val_t self
) {
9 struct trace_t trace
= {NULL
, "range::Range::last (bin/../lib/standard//range.nit:24,2--25:23)"};
10 trace
.prev
= tracehead
; tracehead
= &trace
;
11 tracehead
= trace
.prev
;
12 return ATTR_range___Range____last( self
) /*Range::_last*/;
14 val_t
range___Range___after(val_t self
) {
15 struct trace_t trace
= {NULL
, "range::Range::after (bin/../lib/standard//range.nit:27,2--28:24)"};
16 trace
.prev
= tracehead
; tracehead
= &trace
;
17 tracehead
= trace
.prev
;
18 return ATTR_range___Range____after( self
) /*Range::_after*/;
20 val_t
range___Range___has(val_t self
, val_t param0
) {
21 struct trace_t trace
= {NULL
, "range::Range::has (bin/../lib/standard//range.nit:30,2--64)"};
25 trace
.prev
= tracehead
; tracehead
= &trace
;
27 variable1
= ATTR_range___Range____first( self
) /*Range::_first*/;
28 variable1
= ((kernel___Comparable_____geq_t
)CALL( variable0
/*item*/,COLOR_kernel___Comparable_____geq
))( variable0
/*item*/, variable1
) /*Discrete::>=*/;
29 variable2
= variable1
;
30 if (UNTAG_Bool(variable2
)) { /* and */
31 variable2
= ATTR_range___Range____last( self
) /*Range::_last*/;
32 variable2
= ((kernel___Comparable_____leq_t
)CALL( variable0
/*item*/,COLOR_kernel___Comparable_____leq
))( variable0
/*item*/, variable2
) /*Discrete::<=*/;
34 variable1
= variable2
;
36 return_label0
: while(false);
37 tracehead
= trace
.prev
;
40 val_t
range___Range___has_only(val_t self
, val_t param0
) {
41 struct trace_t trace
= {NULL
, "range::Range::has_only (bin/../lib/standard//range.nit:32,2--69)"};
45 trace
.prev
= tracehead
; tracehead
= &trace
;
47 variable1
= ATTR_range___Range____first( self
) /*Range::_first*/;
48 variable1
= TAG_Bool((variable1
== variable0
/*item*/) || ((variable1
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable1
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))(variable1
, variable0
/*item*/) /*Discrete::==*/)))));
49 variable2
= variable1
;
50 if (UNTAG_Bool(variable2
)) { /* and */
51 variable2
= ATTR_range___Range____last( self
) /*Range::_last*/;
52 variable2
= TAG_Bool(( variable0
/*item*/ == variable2
) || (( variable0
/*item*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*item*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*item*/,variable2
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*item*/,COLOR_kernel___Object_____eqeq
))( variable0
/*item*/, variable2
) /*Discrete::==*/)))));
54 variable1
= variable2
;
56 return_label1
: while(false);
57 tracehead
= trace
.prev
;
60 val_t
range___Range___count(val_t self
, val_t param0
) {
61 struct trace_t trace
= {NULL
, "range::Range::count (bin/../lib/standard//range.nit:34,2--39:11)"};
64 trace
.prev
= tracehead
; tracehead
= &trace
;
66 variable1
= ((range___Range___has_t
)CALL( self
,COLOR_abstract_collection___Collection___has
))( self
, variable0
/*item*/) /*Range::has*/;
67 if (UNTAG_Bool(variable1
)) { /*if*/
68 variable1
= TAG_Int(1);
71 variable1
= TAG_Int(0);
74 return_label2
: while(false);
75 tracehead
= trace
.prev
;
78 val_t
range___Range___iterator(val_t self
) {
79 struct trace_t trace
= {NULL
, "range::Range::iterator (bin/../lib/standard//range.nit:43,2--56)"};
81 trace
.prev
= tracehead
; tracehead
= &trace
;
82 variable0
= NEW_range___IteratorRange___init( self
); /*new IteratorRange[E]*/
84 return_label3
: while(false);
85 tracehead
= trace
.prev
;
88 val_t
range___Range___length(val_t self
) {
89 struct trace_t trace
= {NULL
, "range::Range::length (bin/../lib/standard//range.nit:45,2--51:11)"};
93 trace
.prev
= tracehead
; tracehead
= &trace
;
94 variable1
= ATTR_range___Range____first( self
) /*Range::_first*/;
95 variable2
= ATTR_range___Range____after( self
) /*Range::_after*/;
96 variable1
= ((kernel___Discrete___distance_t
)CALL(variable1
,COLOR_kernel___Discrete___distance
))(variable1
, variable2
) /*Discrete::distance*/;
97 variable0
= variable1
;
98 variable1
= TAG_Bool(UNTAG_Int( variable0
/*nb*/)>UNTAG_Int( TAG_Int(0)));
99 if (UNTAG_Bool(variable1
)) { /*if*/
100 variable0
= variable0
/*nb*/;
103 variable0
= TAG_Int(0);
106 return_label4
: while(false);
107 tracehead
= trace
.prev
;
110 val_t
range___Range___is_empty(val_t self
) {
111 struct trace_t trace
= {NULL
, "range::Range::is_empty (bin/../lib/standard//range.nit:55,2--47)"};
114 trace
.prev
= tracehead
; tracehead
= &trace
;
115 variable0
= ATTR_range___Range____first( self
) /*Range::_first*/;
116 variable1
= ATTR_range___Range____after( self
) /*Range::_after*/;
117 variable0
= ((kernel___Comparable_____geq_t
)CALL(variable0
,COLOR_kernel___Comparable_____geq
))(variable0
, variable1
) /*Discrete::>=*/;
119 return_label5
: while(false);
120 tracehead
= trace
.prev
;
123 void range___Range___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
124 struct trace_t trace
= {NULL
, "range::Range::init (bin/../lib/standard//range.nit:57,2--63:18)"};
128 trace
.prev
= tracehead
; tracehead
= &trace
;
131 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Range
].i
]) return;
132 ATTR_range___Range____first( self
) /*Range::_first*/ = variable0
/*from*/;
133 ATTR_range___Range____last( self
) /*Range::_last*/ = variable1
/*to*/;
134 variable2
= ((kernel___Discrete___succ_t
)CALL( variable1
/*to*/,COLOR_kernel___Discrete___succ
))( variable1
/*to*/) /*Discrete::succ*/;
135 ATTR_range___Range____after( self
) /*Range::_after*/ = variable2
;
136 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Range
].i
] = 1;
137 tracehead
= trace
.prev
;
140 void range___Range___without_last(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
141 struct trace_t trace
= {NULL
, "range::Range::without_last (bin/../lib/standard//range.nit:66,2--72:13)"};
145 trace
.prev
= tracehead
; tracehead
= &trace
;
148 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Range
].i
]) return;
149 ATTR_range___Range____first( self
) /*Range::_first*/ = variable0
/*from*/;
150 variable2
= ((kernel___Discrete___prec_t
)CALL( variable1
/*to*/,COLOR_kernel___Discrete___prec
))( variable1
/*to*/) /*Discrete::prec*/;
151 ATTR_range___Range____last( self
) /*Range::_last*/ = variable2
;
152 ATTR_range___Range____after( self
) /*Range::_after*/ = variable1
/*to*/;
153 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Range
].i
] = 1;
154 tracehead
= trace
.prev
;
157 val_t
range___IteratorRange___item(val_t self
) {
158 struct trace_t trace
= {NULL
, "range::IteratorRange::item (bin/../lib/standard//range.nit:80,2--29)"};
159 trace
.prev
= tracehead
; tracehead
= &trace
;
160 tracehead
= trace
.prev
;
161 return ATTR_range___IteratorRange____item( self
) /*IteratorRange::_item*/;
163 val_t
range___IteratorRange___is_ok(val_t self
) {
164 struct trace_t trace
= {NULL
, "range::IteratorRange::is_ok (bin/../lib/standard//range.nit:82,2--48)"};
167 trace
.prev
= tracehead
; tracehead
= &trace
;
168 variable0
= ATTR_range___IteratorRange____item( self
) /*IteratorRange::_item*/;
169 variable1
= ATTR_range___IteratorRange____range( self
) /*IteratorRange::_range*/;
170 variable1
= ((range___Range___after_t
)CALL(variable1
,COLOR_range___Range___after
))(variable1
) /*Range::after*/;
171 variable0
= ((kernel___Comparable_____l_t
)CALL(variable0
,COLOR_kernel___Comparable_____l
))(variable0
, variable1
) /*Discrete::<*/;
173 return_label8
: while(false);
174 tracehead
= trace
.prev
;
177 void range___IteratorRange___next(val_t self
) {
178 struct trace_t trace
= {NULL
, "range::IteratorRange::next (bin/../lib/standard//range.nit:84,2--38)"};
180 trace
.prev
= tracehead
; tracehead
= &trace
;
181 variable0
= ATTR_range___IteratorRange____item( self
) /*IteratorRange::_item*/;
182 variable0
= ((kernel___Discrete___succ_t
)CALL(variable0
,COLOR_kernel___Discrete___succ
))(variable0
) /*Discrete::succ*/;
183 ATTR_range___IteratorRange____item( self
) /*IteratorRange::_item*/ = variable0
;
184 tracehead
= trace
.prev
;
187 void range___IteratorRange___init(val_t self
, val_t param0
, int* init_table
) {
188 struct trace_t trace
= {NULL
, "range::IteratorRange::init (bin/../lib/standard//range.nit:86,2--89:17)"};
191 trace
.prev
= tracehead
; tracehead
= &trace
;
193 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_IteratorRange
].i
]) return;
194 ATTR_range___IteratorRange____range( self
) /*IteratorRange::_range*/ = variable0
/*r*/;
195 variable1
= ((range___Range___first_t
)CALL( variable0
/*r*/,COLOR_abstract_collection___Collection___first
))( variable0
/*r*/) /*Range::first*/;
196 ATTR_range___IteratorRange____item( self
) /*IteratorRange::_item*/ = variable1
;
197 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_IteratorRange
].i
] = 1;
198 tracehead
= trace
.prev
;