tests: add << and >> in test_operators.nit
[nit.git] / c_src / sorter._sep.c
1 /* This C file is generated by NIT to compile module sorter. */
2 #include "sorter._sep.h"
3 val_t sorter___AbstractSorter___compare(val_t p0, val_t p1, val_t p2){
4 struct {struct stack_frame_t me;} fra;
5 val_t tmp;
6 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7 fra.me.file = LOCATE_sorter;
8 fra.me.line = 22;
9 fra.me.meth = LOCATE_sorter___AbstractSorter___compare;
10 fra.me.has_broke = 0;
11 fra.me.REG_size = 0;
12 /* ./../lib/standard//collection//sorter.nit:22 */
13 fprintf(stderr, "Deferred method called");
14 fprintf(stderr, " (%s:%d)\n", LOCATE_sorter, 22);
15 nit_exit(1);
16 stack_frame_head = fra.me.prev;
17 return NIT_NULL;
18 }
19 void sorter___AbstractSorter___sort(val_t p0, val_t p1){
20 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21 val_t REGB0;
22 val_t REGB1;
23 val_t REGB2;
24 val_t tmp;
25 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26 fra.me.file = LOCATE_sorter;
27 fra.me.line = 29;
28 fra.me.meth = LOCATE_sorter___AbstractSorter___sort;
29 fra.me.has_broke = 0;
30 fra.me.REG_size = 2;
31 fra.me.REG[0] = NIT_NULL;
32 fra.me.REG[1] = NIT_NULL;
33 fra.me.REG[0] = p0;
34 fra.me.REG[1] = p1;
35 REGB0 = TAG_Int(0);
36 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
37 /* ./../lib/standard//collection//array.nit:23 */
38 if (UNTAG_Bool(REGB1)) {
39 } else {
40 fprintf(stderr, "Uninitialized attribute %s", "_length");
41 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
42 nit_exit(1);
43 }
44 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
45 REGB2 = TAG_Int(1);
46 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
47 /* ./../lib/standard//collection//sorter.nit:30 */
48 CALL_sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB2);
49 stack_frame_head = fra.me.prev;
50 return;
51 }
52 void sorter___AbstractSorter___sub_sort(val_t p0, val_t p1, val_t p2, val_t p3){
53 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
54 val_t REGB0;
55 val_t REGB1;
56 val_t REGB2;
57 val_t tmp;
58 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
59 fra.me.file = LOCATE_sorter;
60 fra.me.line = 32;
61 fra.me.meth = LOCATE_sorter___AbstractSorter___sub_sort;
62 fra.me.has_broke = 0;
63 fra.me.REG_size = 2;
64 fra.me.REG[0] = NIT_NULL;
65 fra.me.REG[1] = NIT_NULL;
66 fra.me.REG[0] = p0;
67 fra.me.REG[1] = p1;
68 REGB0 = p2;
69 REGB1 = p3;
70 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
71 /* ./../lib/standard//collection//sorter.nit:35 */
72 if (UNTAG_Bool(REGB2)) {
73 /* ./../lib/standard//collection//sorter.nit:36 */
74 goto label1;
75 } else {
76 REGB2 = TAG_Int(7);
77 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
78 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
79 /* ./../lib/standard//collection//sorter.nit:37 */
80 if (UNTAG_Bool(REGB2)) {
81 /* ./../lib/standard//collection//sorter.nit:38 */
82 CALL_sorter___AbstractSorter___quick_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
83 } else {
84 /* ./../lib/standard//collection//sorter.nit:40 */
85 CALL_sorter___AbstractSorter___bubble_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
86 }
87 }
88 label1: while(0);
89 stack_frame_head = fra.me.prev;
90 return;
91 }
92 void sorter___AbstractSorter___quick_sort(val_t p0, val_t p1, val_t p2, val_t p3){
93 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
94 val_t REGB0;
95 val_t REGB1;
96 val_t REGB2;
97 val_t REGB3;
98 val_t REGB4;
99 val_t REGB5;
100 val_t REGB6;
101 val_t tmp;
102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
103 fra.me.file = LOCATE_sorter;
104 fra.me.line = 44;
105 fra.me.meth = LOCATE_sorter___AbstractSorter___quick_sort;
106 fra.me.has_broke = 0;
107 fra.me.REG_size = 5;
108 fra.me.REG[0] = NIT_NULL;
109 fra.me.REG[1] = NIT_NULL;
110 fra.me.REG[2] = NIT_NULL;
111 fra.me.REG[3] = NIT_NULL;
112 fra.me.REG[4] = NIT_NULL;
113 fra.me.REG[0] = p0;
114 fra.me.REG[1] = p1;
115 REGB0 = p2;
116 REGB1 = p3;
117 fra.me.REG[2] = fra.me.REG[1];
118 REGB2 = REGB0;
119 REGB3 = TAG_Int(0);
120 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
121 /* ./../lib/standard//collection//array.nit:233 */
122 if (UNTAG_Bool(REGB3)) {
123 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
124 if (UNTAG_Bool(REGB3)) {
125 } else {
126 fprintf(stderr, "Uninitialized attribute %s", "_length");
127 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
128 nit_exit(1);
129 }
130 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
131 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
132 /* ./../lib/standard//collection//array.nit:233 */
133 } else {
134 REGB4 = TAG_Bool(false);
135 REGB3 = REGB4;
136 }
137 if (UNTAG_Bool(REGB3)) {
138 } else {
139 fprintf(stderr, "Assert %s failed", "'index'");
140 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
141 nit_exit(1);
142 }
143 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
144 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
145 /* ./../lib/standard//collection//array.nit:234 */
146 if (UNTAG_Bool(REGB3)) {
147 fprintf(stderr, "Reciever is null");
148 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
149 nit_exit(1);
150 }
151 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
152 /* ./../lib/standard//collection//array.nit:234 */
153 goto label1;
154 label1: while(0);
155 REGB2 = REGB0;
156 REGB3 = REGB1;
157 /* ./../lib/standard//collection//sorter.nit:50 */
158 while(1) {
159 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
160 /* ./../lib/standard//collection//sorter.nit:50 */
161 if (UNTAG_Bool(REGB4)) {
162 /* ./../lib/standard//collection//sorter.nit:51 */
163 while(1) {
164 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
165 /* ./../lib/standard//collection//sorter.nit:51 */
166 if (UNTAG_Bool(REGB4)) {
167 fra.me.REG[3] = fra.me.REG[1];
168 REGB4 = REGB2;
169 REGB5 = TAG_Int(0);
170 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
171 /* ./../lib/standard//collection//array.nit:233 */
172 if (UNTAG_Bool(REGB5)) {
173 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
174 if (UNTAG_Bool(REGB5)) {
175 } else {
176 fprintf(stderr, "Uninitialized attribute %s", "_length");
177 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
178 nit_exit(1);
179 }
180 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
181 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
182 /* ./../lib/standard//collection//array.nit:233 */
183 } else {
184 REGB6 = TAG_Bool(false);
185 REGB5 = REGB6;
186 }
187 if (UNTAG_Bool(REGB5)) {
188 } else {
189 fprintf(stderr, "Assert %s failed", "'index'");
190 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
191 nit_exit(1);
192 }
193 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
194 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
195 /* ./../lib/standard//collection//array.nit:234 */
196 if (UNTAG_Bool(REGB5)) {
197 fprintf(stderr, "Reciever is null");
198 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
199 nit_exit(1);
200 }
201 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
202 /* ./../lib/standard//collection//array.nit:234 */
203 goto label2;
204 label2: while(0);
205 REGB4 = CALL_sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
206 REGB5 = TAG_Int(0);
207 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5));
208 /* ./../lib/standard//collection//sorter.nit:51 */
209 } else {
210 REGB4 = TAG_Bool(false);
211 REGB5 = REGB4;
212 }
213 if (UNTAG_Bool(REGB5)) {
214 REGB5 = TAG_Int(1);
215 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
216 REGB2 = REGB5;
217 /* ./../lib/standard//collection//sorter.nit:51 */
218 } else {
219 goto label3;
220 }
221 }
222 label3: while(0);
223 /* ./../lib/standard//collection//sorter.nit:52 */
224 while(1) {
225 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
226 /* ./../lib/standard//collection//sorter.nit:52 */
227 if (UNTAG_Bool(REGB5)) {
228 fra.me.REG[3] = fra.me.REG[1];
229 REGB5 = REGB3;
230 REGB4 = TAG_Int(0);
231 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
232 /* ./../lib/standard//collection//array.nit:233 */
233 if (UNTAG_Bool(REGB4)) {
234 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
235 if (UNTAG_Bool(REGB4)) {
236 } else {
237 fprintf(stderr, "Uninitialized attribute %s", "_length");
238 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
239 nit_exit(1);
240 }
241 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
242 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
243 /* ./../lib/standard//collection//array.nit:233 */
244 } else {
245 REGB6 = TAG_Bool(false);
246 REGB4 = REGB6;
247 }
248 if (UNTAG_Bool(REGB4)) {
249 } else {
250 fprintf(stderr, "Assert %s failed", "'index'");
251 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
252 nit_exit(1);
253 }
254 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
255 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
256 /* ./../lib/standard//collection//array.nit:234 */
257 if (UNTAG_Bool(REGB4)) {
258 fprintf(stderr, "Reciever is null");
259 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
260 nit_exit(1);
261 }
262 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB5)];
263 /* ./../lib/standard//collection//array.nit:234 */
264 goto label4;
265 label4: while(0);
266 REGB5 = CALL_sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
267 REGB4 = TAG_Int(0);
268 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
269 /* ./../lib/standard//collection//sorter.nit:52 */
270 } else {
271 REGB5 = TAG_Bool(false);
272 REGB4 = REGB5;
273 }
274 if (UNTAG_Bool(REGB4)) {
275 REGB4 = TAG_Int(1);
276 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
277 REGB3 = REGB4;
278 /* ./../lib/standard//collection//sorter.nit:52 */
279 } else {
280 goto label5;
281 }
282 }
283 label5: while(0);
284 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
285 /* ./../lib/standard//collection//sorter.nit:53 */
286 if (UNTAG_Bool(REGB4)) {
287 fra.me.REG[3] = fra.me.REG[1];
288 REGB4 = REGB2;
289 REGB5 = TAG_Int(0);
290 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
291 /* ./../lib/standard//collection//array.nit:233 */
292 if (UNTAG_Bool(REGB5)) {
293 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
294 if (UNTAG_Bool(REGB5)) {
295 } else {
296 fprintf(stderr, "Uninitialized attribute %s", "_length");
297 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
298 nit_exit(1);
299 }
300 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
301 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
302 /* ./../lib/standard//collection//array.nit:233 */
303 } else {
304 REGB6 = TAG_Bool(false);
305 REGB5 = REGB6;
306 }
307 if (UNTAG_Bool(REGB5)) {
308 } else {
309 fprintf(stderr, "Assert %s failed", "'index'");
310 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
311 nit_exit(1);
312 }
313 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
314 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
315 /* ./../lib/standard//collection//array.nit:234 */
316 if (UNTAG_Bool(REGB5)) {
317 fprintf(stderr, "Reciever is null");
318 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
319 nit_exit(1);
320 }
321 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
322 /* ./../lib/standard//collection//array.nit:234 */
323 goto label6;
324 label6: while(0);
325 fra.me.REG[4] = fra.me.REG[1];
326 REGB4 = REGB3;
327 REGB5 = TAG_Int(0);
328 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
329 /* ./../lib/standard//collection//array.nit:233 */
330 if (UNTAG_Bool(REGB5)) {
331 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
332 if (UNTAG_Bool(REGB5)) {
333 } else {
334 fprintf(stderr, "Uninitialized attribute %s", "_length");
335 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
336 nit_exit(1);
337 }
338 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
339 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
340 /* ./../lib/standard//collection//array.nit:233 */
341 } else {
342 REGB6 = TAG_Bool(false);
343 REGB5 = REGB6;
344 }
345 if (UNTAG_Bool(REGB5)) {
346 } else {
347 fprintf(stderr, "Assert %s failed", "'index'");
348 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
349 nit_exit(1);
350 }
351 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
352 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
353 /* ./../lib/standard//collection//array.nit:234 */
354 if (UNTAG_Bool(REGB5)) {
355 fprintf(stderr, "Reciever is null");
356 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
357 nit_exit(1);
358 }
359 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB4)];
360 /* ./../lib/standard//collection//array.nit:234 */
361 goto label7;
362 label7: while(0);
363 /* ./../lib/standard//collection//sorter.nit:55 */
364 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[4]);
365 /* ./../lib/standard//collection//sorter.nit:56 */
366 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[3]);
367 }
368 } else {
369 /* ./../lib/standard//collection//sorter.nit:50 */
370 goto label8;
371 }
372 }
373 label8: while(0);
374 REGB3 = TAG_Int(1);
375 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
376 fra.me.REG[3] = fra.me.REG[1];
377 REGB4 = TAG_Int(0);
378 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
379 /* ./../lib/standard//collection//array.nit:233 */
380 if (UNTAG_Bool(REGB4)) {
381 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
382 if (UNTAG_Bool(REGB4)) {
383 } else {
384 fprintf(stderr, "Uninitialized attribute %s", "_length");
385 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
386 nit_exit(1);
387 }
388 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
389 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
390 /* ./../lib/standard//collection//array.nit:233 */
391 } else {
392 REGB5 = TAG_Bool(false);
393 REGB4 = REGB5;
394 }
395 if (UNTAG_Bool(REGB4)) {
396 } else {
397 fprintf(stderr, "Assert %s failed", "'index'");
398 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
399 nit_exit(1);
400 }
401 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
402 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
403 /* ./../lib/standard//collection//array.nit:234 */
404 if (UNTAG_Bool(REGB4)) {
405 fprintf(stderr, "Reciever is null");
406 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
407 nit_exit(1);
408 }
409 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB3)];
410 /* ./../lib/standard//collection//array.nit:234 */
411 goto label9;
412 label9: while(0);
413 /* ./../lib/standard//collection//sorter.nit:59 */
414 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[3]);
415 REGB3 = TAG_Int(1);
416 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
417 /* ./../lib/standard//collection//sorter.nit:60 */
418 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]);
419 REGB3 = TAG_Int(2);
420 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
421 /* ./../lib/standard//collection//sorter.nit:61 */
422 CALL_sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB3);
423 /* ./../lib/standard//collection//sorter.nit:62 */
424 CALL_sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2, REGB1);
425 stack_frame_head = fra.me.prev;
426 return;
427 }
428 void sorter___AbstractSorter___bubble_sort(val_t p0, val_t p1, val_t p2, val_t p3){
429 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
430 val_t REGB0;
431 val_t REGB1;
432 val_t REGB2;
433 val_t REGB3;
434 val_t REGB4;
435 val_t REGB5;
436 val_t REGB6;
437 val_t tmp;
438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
439 fra.me.file = LOCATE_sorter;
440 fra.me.line = 65;
441 fra.me.meth = LOCATE_sorter___AbstractSorter___bubble_sort;
442 fra.me.has_broke = 0;
443 fra.me.REG_size = 4;
444 fra.me.REG[0] = NIT_NULL;
445 fra.me.REG[1] = NIT_NULL;
446 fra.me.REG[2] = NIT_NULL;
447 fra.me.REG[3] = NIT_NULL;
448 fra.me.REG[0] = p0;
449 fra.me.REG[1] = p1;
450 REGB0 = p2;
451 REGB1 = p3;
452 /* ./../lib/standard//collection//sorter.nit:69 */
453 while(1) {
454 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
455 /* ./../lib/standard//collection//sorter.nit:69 */
456 if (UNTAG_Bool(REGB2)) {
457 REGB2 = REGB0;
458 fra.me.REG[2] = fra.me.REG[1];
459 REGB3 = REGB0;
460 REGB4 = TAG_Int(0);
461 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
462 /* ./../lib/standard//collection//array.nit:233 */
463 if (UNTAG_Bool(REGB4)) {
464 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
465 if (UNTAG_Bool(REGB4)) {
466 } else {
467 fprintf(stderr, "Uninitialized attribute %s", "_length");
468 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
469 nit_exit(1);
470 }
471 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
472 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
473 /* ./../lib/standard//collection//array.nit:233 */
474 } else {
475 REGB5 = TAG_Bool(false);
476 REGB4 = REGB5;
477 }
478 if (UNTAG_Bool(REGB4)) {
479 } else {
480 fprintf(stderr, "Assert %s failed", "'index'");
481 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
482 nit_exit(1);
483 }
484 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
485 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
486 /* ./../lib/standard//collection//array.nit:234 */
487 if (UNTAG_Bool(REGB4)) {
488 fprintf(stderr, "Reciever is null");
489 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
490 nit_exit(1);
491 }
492 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
493 /* ./../lib/standard//collection//array.nit:234 */
494 goto label1;
495 label1: while(0);
496 REGB3 = REGB0;
497 /* ./../lib/standard//collection//sorter.nit:73 */
498 while(1) {
499 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
500 /* ./../lib/standard//collection//sorter.nit:73 */
501 if (UNTAG_Bool(REGB4)) {
502 fra.me.REG[3] = fra.me.REG[1];
503 REGB4 = REGB3;
504 REGB5 = TAG_Int(0);
505 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
506 /* ./../lib/standard//collection//array.nit:233 */
507 if (UNTAG_Bool(REGB5)) {
508 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
509 if (UNTAG_Bool(REGB5)) {
510 } else {
511 fprintf(stderr, "Uninitialized attribute %s", "_length");
512 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
513 nit_exit(1);
514 }
515 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
516 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
517 /* ./../lib/standard//collection//array.nit:233 */
518 } else {
519 REGB6 = TAG_Bool(false);
520 REGB5 = REGB6;
521 }
522 if (UNTAG_Bool(REGB5)) {
523 } else {
524 fprintf(stderr, "Assert %s failed", "'index'");
525 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
526 nit_exit(1);
527 }
528 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
529 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
530 /* ./../lib/standard//collection//array.nit:234 */
531 if (UNTAG_Bool(REGB5)) {
532 fprintf(stderr, "Reciever is null");
533 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
534 nit_exit(1);
535 }
536 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
537 /* ./../lib/standard//collection//array.nit:234 */
538 goto label2;
539 label2: while(0);
540 REGB4 = CALL_sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
541 REGB5 = TAG_Int(0);
542 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
543 /* ./../lib/standard//collection//sorter.nit:74 */
544 if (UNTAG_Bool(REGB5)) {
545 REGB2 = REGB3;
546 fra.me.REG[3] = fra.me.REG[1];
547 REGB5 = REGB3;
548 REGB4 = TAG_Int(0);
549 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
550 /* ./../lib/standard//collection//array.nit:233 */
551 if (UNTAG_Bool(REGB4)) {
552 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
553 if (UNTAG_Bool(REGB4)) {
554 } else {
555 fprintf(stderr, "Uninitialized attribute %s", "_length");
556 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
557 nit_exit(1);
558 }
559 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
560 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
561 /* ./../lib/standard//collection//array.nit:233 */
562 } else {
563 REGB6 = TAG_Bool(false);
564 REGB4 = REGB6;
565 }
566 if (UNTAG_Bool(REGB4)) {
567 } else {
568 fprintf(stderr, "Assert %s failed", "'index'");
569 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
570 nit_exit(1);
571 }
572 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
573 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
574 /* ./../lib/standard//collection//array.nit:234 */
575 if (UNTAG_Bool(REGB4)) {
576 fprintf(stderr, "Reciever is null");
577 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
578 nit_exit(1);
579 }
580 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB5)];
581 /* ./../lib/standard//collection//array.nit:234 */
582 goto label3;
583 label3: while(0);
584 fra.me.REG[2] = fra.me.REG[3];
585 /* ./../lib/standard//collection//sorter.nit:76 */
586 }
587 REGB5 = TAG_Int(1);
588 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
589 REGB3 = REGB5;
590 /* ./../lib/standard//collection//sorter.nit:78 */
591 } else {
592 /* ./../lib/standard//collection//sorter.nit:73 */
593 goto label4;
594 }
595 }
596 label4: while(0);
597 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
598 /* ./../lib/standard//collection//sorter.nit:80 */
599 if (UNTAG_Bool(REGB3)) {
600 } else {
601 REGB5 = TAG_Bool((REGB2)==(REGB0));
602 REGB3 = REGB5;
603 /* ./../lib/standard//collection//sorter.nit:80 */
604 }
605 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
606 if (UNTAG_Bool(REGB3)) {
607 fra.me.REG[3] = fra.me.REG[1];
608 REGB3 = REGB0;
609 REGB5 = TAG_Int(0);
610 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
611 /* ./../lib/standard//collection//array.nit:233 */
612 if (UNTAG_Bool(REGB5)) {
613 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
614 if (UNTAG_Bool(REGB5)) {
615 } else {
616 fprintf(stderr, "Uninitialized attribute %s", "_length");
617 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
618 nit_exit(1);
619 }
620 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
621 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
622 /* ./../lib/standard//collection//array.nit:233 */
623 } else {
624 REGB4 = TAG_Bool(false);
625 REGB5 = REGB4;
626 }
627 if (UNTAG_Bool(REGB5)) {
628 } else {
629 fprintf(stderr, "Assert %s failed", "'index'");
630 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
631 nit_exit(1);
632 }
633 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
634 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
635 /* ./../lib/standard//collection//array.nit:234 */
636 if (UNTAG_Bool(REGB5)) {
637 fprintf(stderr, "Reciever is null");
638 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
639 nit_exit(1);
640 }
641 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB3)];
642 /* ./../lib/standard//collection//array.nit:234 */
643 goto label5;
644 label5: while(0);
645 /* ./../lib/standard//collection//sorter.nit:81 */
646 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[3]);
647 /* ./../lib/standard//collection//sorter.nit:82 */
648 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
649 }
650 REGB2 = TAG_Int(1);
651 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
652 REGB0 = REGB2;
653 /* ./../lib/standard//collection//sorter.nit:84 */
654 } else {
655 /* ./../lib/standard//collection//sorter.nit:69 */
656 goto label6;
657 }
658 }
659 label6: while(0);
660 stack_frame_head = fra.me.prev;
661 return;
662 }
663 void sorter___AbstractSorter___init(val_t p0, int* init_table){
664 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AbstractSorter].i;
665 struct {struct stack_frame_t me;} fra;
666 val_t tmp;
667 if (init_table[itpos0]) return;
668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
669 fra.me.file = LOCATE_sorter;
670 fra.me.line = 0;
671 fra.me.meth = LOCATE_sorter___AbstractSorter___init;
672 fra.me.has_broke = 0;
673 fra.me.REG_size = 0;
674 stack_frame_head = fra.me.prev;
675 init_table[itpos0] = 1;
676 return;
677 }
678 val_t sorter___ComparableSorter___compare(val_t p0, val_t p1, val_t p2){
679 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
680 val_t REGB0;
681 val_t tmp;
682 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
683 fra.me.file = LOCATE_sorter;
684 fra.me.line = 93;
685 fra.me.meth = LOCATE_sorter___ComparableSorter___compare;
686 fra.me.has_broke = 0;
687 fra.me.REG_size = 3;
688 fra.me.REG[0] = NIT_NULL;
689 fra.me.REG[1] = NIT_NULL;
690 fra.me.REG[2] = NIT_NULL;
691 fra.me.REG[0] = p0;
692 fra.me.REG[1] = p1;
693 fra.me.REG[2] = p2;
694 REGB0 = CALL_kernel___Comparable_____leqg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
695 /* ./../lib/standard//collection//sorter.nit:94 */
696 goto label1;
697 label1: while(0);
698 stack_frame_head = fra.me.prev;
699 return REGB0;
700 }
701 void sorter___ComparableSorter___init(val_t p0, int* init_table){
702 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ComparableSorter].i;
703 struct {struct stack_frame_t me;} fra;
704 val_t tmp;
705 if (init_table[itpos1]) return;
706 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
707 fra.me.file = LOCATE_sorter;
708 fra.me.line = 96;
709 fra.me.meth = LOCATE_sorter___ComparableSorter___init;
710 fra.me.has_broke = 0;
711 fra.me.REG_size = 1;
712 fra.me.REG[0] = NIT_NULL;
713 fra.me.REG[0] = p0;
714 /* ./../lib/standard//collection//sorter.nit:96 */
715 CALL_sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table);
716 stack_frame_head = fra.me.prev;
717 init_table[itpos1] = 1;
718 return;
719 }