First NIT release and new clean mercurial repository
[nit.git] / c_src / range._sep.c
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*/;
7 }
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*/;
13 }
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*/;
19 }
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)"};
22 val_t variable0;
23 val_t variable1;
24 val_t variable2;
25 trace.prev = tracehead; tracehead = &trace;
26 variable0 = param0;
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::<=*/;
33 }
34 variable1 = variable2;
35 goto return_label0;
36 return_label0: while(false);
37 tracehead = trace.prev;
38 return variable1;
39 }
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)"};
42 val_t variable0;
43 val_t variable1;
44 val_t variable2;
45 trace.prev = tracehead; tracehead = &trace;
46 variable0 = param0;
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::==*/)))));
53 }
54 variable1 = variable2;
55 goto return_label1;
56 return_label1: while(false);
57 tracehead = trace.prev;
58 return variable1;
59 }
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)"};
62 val_t variable0;
63 val_t variable1;
64 trace.prev = tracehead; tracehead = &trace;
65 variable0 = param0;
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);
69 goto return_label2;
70 } else { /*if*/
71 variable1 = TAG_Int(0);
72 goto return_label2;
73 }
74 return_label2: while(false);
75 tracehead = trace.prev;
76 return variable1;
77 }
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)"};
80 val_t variable0;
81 trace.prev = tracehead; tracehead = &trace;
82 variable0 = NEW_range___IteratorRange___init( self); /*new IteratorRange[E]*/
83 goto return_label3;
84 return_label3: while(false);
85 tracehead = trace.prev;
86 return variable0;
87 }
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)"};
90 val_t variable0;
91 val_t variable1;
92 val_t variable2;
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*/;
101 goto return_label4;
102 } else { /*if*/
103 variable0 = TAG_Int(0);
104 goto return_label4;
105 }
106 return_label4: while(false);
107 tracehead = trace.prev;
108 return variable0;
109 }
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)"};
112 val_t variable0;
113 val_t variable1;
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::>=*/;
118 goto return_label5;
119 return_label5: while(false);
120 tracehead = trace.prev;
121 return variable0;
122 }
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)"};
125 val_t variable0;
126 val_t variable1;
127 val_t variable2;
128 trace.prev = tracehead; tracehead = &trace;
129 variable0 = param0;
130 variable1 = param1;
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;
138 return;
139 }
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)"};
142 val_t variable0;
143 val_t variable1;
144 val_t variable2;
145 trace.prev = tracehead; tracehead = &trace;
146 variable0 = param0;
147 variable1 = param1;
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;
155 return;
156 }
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*/;
162 }
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)"};
165 val_t variable0;
166 val_t variable1;
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::<*/;
172 goto return_label8;
173 return_label8: while(false);
174 tracehead = trace.prev;
175 return variable0;
176 }
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)"};
179 val_t variable0;
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;
185 return;
186 }
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)"};
189 val_t variable0;
190 val_t variable1;
191 trace.prev = tracehead; tracehead = &trace;
192 variable0 = param0;
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;
199 return;
200 }