update NOTICE and LICENSE
[nit.git] / c_src / array._sep.c
1 /* This C file is generated by NIT to compile module array. */
2 #include "array._sep.h"
3 val_t array___AbstractArrayRead___length(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_array;
9 fra.me.line = 23;
10 fra.me.meth = LOCATE_array___AbstractArrayRead___length;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 /* ./../lib/standard//collection//array.nit:23 */
16 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
17 if (UNTAG_Bool(REGB0)) {
18 } else {
19 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
20 }
21 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
22 stack_frame_head = fra.me.prev;
23 return REGB0;
24 }
25 val_t array___AbstractArrayRead___is_empty(val_t p0){
26 struct {struct stack_frame_t me;} fra;
27 val_t REGB0;
28 val_t REGB1;
29 val_t REGB2;
30 val_t tmp;
31 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32 fra.me.file = LOCATE_array;
33 fra.me.line = 26;
34 fra.me.meth = LOCATE_array___AbstractArrayRead___is_empty;
35 fra.me.has_broke = 0;
36 fra.me.REG_size = 1;
37 fra.me.REG[0] = NIT_NULL;
38 fra.me.REG[0] = p0;
39 /* ./../lib/standard//collection//array.nit:26 */
40 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
41 if (UNTAG_Bool(REGB0)) {
42 } else {
43 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 26);
44 }
45 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
46 REGB1 = TAG_Int(0);
47 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
48 if (UNTAG_Bool(REGB2)) {
49 } else {
50 /* ./../lib/standard//kernel.nit:207 */
51 REGB1 = TAG_Bool((REGB0)==(REGB1));
52 /* ./../lib/standard//collection//array.nit:26 */
53 REGB2 = REGB1;
54 }
55 goto label1;
56 label1: while(0);
57 stack_frame_head = fra.me.prev;
58 return REGB2;
59 }
60 val_t array___AbstractArrayRead___has(val_t p0, val_t p1){
61 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
62 val_t REGB0;
63 val_t REGB1;
64 val_t REGB2;
65 val_t REGB3;
66 val_t tmp;
67 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
68 fra.me.file = LOCATE_array;
69 fra.me.line = 28;
70 fra.me.meth = LOCATE_array___AbstractArrayRead___has;
71 fra.me.has_broke = 0;
72 fra.me.REG_size = 3;
73 fra.me.REG[0] = NIT_NULL;
74 fra.me.REG[1] = NIT_NULL;
75 fra.me.REG[2] = NIT_NULL;
76 fra.me.REG[0] = p0;
77 fra.me.REG[1] = p1;
78 /* ./../lib/standard//collection//array.nit:30 */
79 REGB0 = TAG_Int(0);
80 /* ./../lib/standard//collection//array.nit:23 */
81 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
82 if (UNTAG_Bool(REGB1)) {
83 } else {
84 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
85 }
86 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
87 /* ./../lib/standard//collection//array.nit:32 */
88 while(1) {
89 /* ./../lib/standard//kernel.nit:212 */
90 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
91 /* ./../lib/standard//collection//array.nit:32 */
92 if (UNTAG_Bool(REGB2)) {
93 /* ./../lib/standard//collection//array.nit:33 */
94 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
95 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
96 if (UNTAG_Bool(REGB2)) {
97 } else {
98 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
99 if (UNTAG_Bool(REGB3)) {
100 REGB3 = TAG_Bool(false);
101 REGB2 = REGB3;
102 } else {
103 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
104 REGB2 = REGB3;
105 }
106 }
107 if (UNTAG_Bool(REGB2)) {
108 REGB2 = TAG_Bool(true);
109 goto label1;
110 }
111 /* ./../lib/standard//collection//array.nit:34 */
112 REGB3 = TAG_Int(1);
113 /* ./../lib/standard//kernel.nit:215 */
114 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
115 /* ./../lib/standard//collection//array.nit:34 */
116 REGB0 = REGB3;
117 } else {
118 /* ./../lib/standard//collection//array.nit:32 */
119 goto label2;
120 }
121 }
122 label2: while(0);
123 /* ./../lib/standard//collection//array.nit:36 */
124 REGB0 = TAG_Bool(false);
125 REGB2 = REGB0;
126 goto label1;
127 label1: while(0);
128 stack_frame_head = fra.me.prev;
129 return REGB2;
130 }
131 val_t array___AbstractArrayRead___has_only(val_t p0, val_t p1){
132 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
133 val_t REGB0;
134 val_t REGB1;
135 val_t REGB2;
136 val_t REGB3;
137 val_t tmp;
138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
139 fra.me.file = LOCATE_array;
140 fra.me.line = 39;
141 fra.me.meth = LOCATE_array___AbstractArrayRead___has_only;
142 fra.me.has_broke = 0;
143 fra.me.REG_size = 3;
144 fra.me.REG[0] = NIT_NULL;
145 fra.me.REG[1] = NIT_NULL;
146 fra.me.REG[2] = NIT_NULL;
147 fra.me.REG[0] = p0;
148 fra.me.REG[1] = p1;
149 /* ./../lib/standard//collection//array.nit:41 */
150 REGB0 = TAG_Int(0);
151 /* ./../lib/standard//collection//array.nit:23 */
152 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
153 if (UNTAG_Bool(REGB1)) {
154 } else {
155 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
156 }
157 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
158 /* ./../lib/standard//collection//array.nit:43 */
159 while(1) {
160 /* ./../lib/standard//kernel.nit:212 */
161 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
162 /* ./../lib/standard//collection//array.nit:43 */
163 if (UNTAG_Bool(REGB2)) {
164 /* ./../lib/standard//collection//array.nit:44 */
165 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
166 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
167 if (UNTAG_Bool(REGB2)) {
168 } else {
169 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
170 if (UNTAG_Bool(REGB3)) {
171 REGB3 = TAG_Bool(false);
172 REGB2 = REGB3;
173 } else {
174 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
175 REGB2 = REGB3;
176 }
177 }
178 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
179 if (UNTAG_Bool(REGB2)) {
180 REGB2 = TAG_Bool(false);
181 goto label1;
182 }
183 /* ./../lib/standard//collection//array.nit:45 */
184 REGB3 = TAG_Int(1);
185 /* ./../lib/standard//kernel.nit:215 */
186 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
187 /* ./../lib/standard//collection//array.nit:45 */
188 REGB0 = REGB3;
189 } else {
190 /* ./../lib/standard//collection//array.nit:43 */
191 goto label2;
192 }
193 }
194 label2: while(0);
195 /* ./../lib/standard//collection//array.nit:47 */
196 REGB0 = TAG_Bool(true);
197 REGB2 = REGB0;
198 goto label1;
199 label1: while(0);
200 stack_frame_head = fra.me.prev;
201 return REGB2;
202 }
203 val_t array___AbstractArrayRead___has_key(val_t p0, val_t p1){
204 struct {struct stack_frame_t me;} fra;
205 val_t REGB0;
206 val_t REGB1;
207 val_t tmp;
208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
209 fra.me.file = LOCATE_array;
210 fra.me.line = 50;
211 fra.me.meth = LOCATE_array___AbstractArrayRead___has_key;
212 fra.me.has_broke = 0;
213 fra.me.REG_size = 1;
214 fra.me.REG[0] = NIT_NULL;
215 fra.me.REG[0] = p0;
216 REGB0 = p1;
217 /* ./../lib/standard//collection//array.nit:50 */
218 REGB1 = TAG_Int(0);
219 /* ./../lib/standard//kernel.nit:213 */
220 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
221 /* ./../lib/standard//collection//array.nit:50 */
222 if (UNTAG_Bool(REGB1)) {
223 /* ./../lib/standard//collection//array.nit:23 */
224 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
225 if (UNTAG_Bool(REGB1)) {
226 } else {
227 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
228 }
229 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
230 /* ./../lib/standard//kernel.nit:212 */
231 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
232 } else {
233 /* ./../lib/standard//collection//array.nit:50 */
234 REGB0 = TAG_Bool(false);
235 REGB1 = REGB0;
236 }
237 goto label1;
238 label1: while(0);
239 stack_frame_head = fra.me.prev;
240 return REGB1;
241 }
242 val_t array___AbstractArrayRead___count(val_t p0, val_t p1){
243 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
244 val_t REGB0;
245 val_t REGB1;
246 val_t REGB2;
247 val_t REGB3;
248 val_t REGB4;
249 val_t tmp;
250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
251 fra.me.file = LOCATE_array;
252 fra.me.line = 52;
253 fra.me.meth = LOCATE_array___AbstractArrayRead___count;
254 fra.me.has_broke = 0;
255 fra.me.REG_size = 3;
256 fra.me.REG[0] = NIT_NULL;
257 fra.me.REG[1] = NIT_NULL;
258 fra.me.REG[2] = NIT_NULL;
259 fra.me.REG[0] = p0;
260 fra.me.REG[1] = p1;
261 /* ./../lib/standard//collection//array.nit:54 */
262 REGB0 = TAG_Int(0);
263 /* ./../lib/standard//collection//array.nit:55 */
264 REGB1 = TAG_Int(0);
265 /* ./../lib/standard//collection//array.nit:23 */
266 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
267 if (UNTAG_Bool(REGB2)) {
268 } else {
269 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
270 }
271 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
272 /* ./../lib/standard//collection//array.nit:57 */
273 while(1) {
274 /* ./../lib/standard//kernel.nit:212 */
275 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
276 /* ./../lib/standard//collection//array.nit:57 */
277 if (UNTAG_Bool(REGB3)) {
278 /* ./../lib/standard//collection//array.nit:58 */
279 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
280 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
281 if (UNTAG_Bool(REGB3)) {
282 } else {
283 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
284 if (UNTAG_Bool(REGB4)) {
285 REGB4 = TAG_Bool(false);
286 REGB3 = REGB4;
287 } else {
288 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
289 REGB3 = REGB4;
290 }
291 }
292 if (UNTAG_Bool(REGB3)) {
293 REGB3 = TAG_Int(1);
294 /* ./../lib/standard//kernel.nit:215 */
295 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
296 /* ./../lib/standard//collection//array.nit:58 */
297 REGB0 = REGB3;
298 }
299 /* ./../lib/standard//collection//array.nit:59 */
300 REGB3 = TAG_Int(1);
301 /* ./../lib/standard//kernel.nit:215 */
302 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
303 /* ./../lib/standard//collection//array.nit:59 */
304 REGB1 = REGB3;
305 } else {
306 /* ./../lib/standard//collection//array.nit:57 */
307 goto label1;
308 }
309 }
310 label1: while(0);
311 /* ./../lib/standard//collection//array.nit:61 */
312 goto label2;
313 label2: while(0);
314 stack_frame_head = fra.me.prev;
315 return REGB0;
316 }
317 val_t array___AbstractArrayRead___index_of(val_t p0, val_t p1){
318 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
319 val_t REGB0;
320 val_t tmp;
321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
322 fra.me.file = LOCATE_array;
323 fra.me.line = 64;
324 fra.me.meth = LOCATE_array___AbstractArrayRead___index_of;
325 fra.me.has_broke = 0;
326 fra.me.REG_size = 2;
327 fra.me.REG[0] = NIT_NULL;
328 fra.me.REG[1] = NIT_NULL;
329 fra.me.REG[0] = p0;
330 fra.me.REG[1] = p1;
331 /* ./../lib/standard//collection//array.nit:64 */
332 REGB0 = TAG_Int(0);
333 REGB0 = CALL_array___AbstractArrayRead___index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
334 goto label1;
335 label1: while(0);
336 stack_frame_head = fra.me.prev;
337 return REGB0;
338 }
339 val_t array___AbstractArrayRead___last_index_of(val_t p0, val_t p1){
340 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
341 val_t REGB0;
342 val_t REGB1;
343 val_t tmp;
344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
345 fra.me.file = LOCATE_array;
346 fra.me.line = 66;
347 fra.me.meth = LOCATE_array___AbstractArrayRead___last_index_of;
348 fra.me.has_broke = 0;
349 fra.me.REG_size = 2;
350 fra.me.REG[0] = NIT_NULL;
351 fra.me.REG[1] = NIT_NULL;
352 fra.me.REG[0] = p0;
353 fra.me.REG[1] = p1;
354 /* ./../lib/standard//collection//array.nit:23 */
355 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
356 if (UNTAG_Bool(REGB0)) {
357 } else {
358 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
359 }
360 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
361 /* ./../lib/standard//collection//array.nit:66 */
362 REGB1 = TAG_Int(1);
363 /* ./../lib/standard//kernel.nit:217 */
364 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
365 /* ./../lib/standard//collection//array.nit:66 */
366 REGB1 = CALL_array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
367 goto label1;
368 label1: while(0);
369 stack_frame_head = fra.me.prev;
370 return REGB1;
371 }
372 val_t array___AbstractArrayRead___index_of_from(val_t p0, val_t p1, val_t p2){
373 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
374 val_t REGB0;
375 val_t REGB1;
376 val_t REGB2;
377 val_t REGB3;
378 val_t tmp;
379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
380 fra.me.file = LOCATE_array;
381 fra.me.line = 68;
382 fra.me.meth = LOCATE_array___AbstractArrayRead___index_of_from;
383 fra.me.has_broke = 0;
384 fra.me.REG_size = 3;
385 fra.me.REG[0] = NIT_NULL;
386 fra.me.REG[1] = NIT_NULL;
387 fra.me.REG[2] = NIT_NULL;
388 fra.me.REG[0] = p0;
389 fra.me.REG[1] = p1;
390 REGB0 = p2;
391 /* ./../lib/standard//collection//array.nit:23 */
392 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
393 if (UNTAG_Bool(REGB1)) {
394 } else {
395 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
396 }
397 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
398 /* ./../lib/standard//collection//array.nit:72 */
399 while(1) {
400 /* ./../lib/standard//kernel.nit:212 */
401 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
402 /* ./../lib/standard//collection//array.nit:72 */
403 if (UNTAG_Bool(REGB2)) {
404 /* ./../lib/standard//collection//array.nit:73 */
405 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
406 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
407 if (UNTAG_Bool(REGB2)) {
408 } else {
409 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
410 if (UNTAG_Bool(REGB3)) {
411 REGB3 = TAG_Bool(false);
412 REGB2 = REGB3;
413 } else {
414 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
415 REGB2 = REGB3;
416 }
417 }
418 if (UNTAG_Bool(REGB2)) {
419 /* ./../lib/standard//collection//array.nit:74 */
420 REGB2 = REGB0;
421 goto label1;
422 }
423 /* ./../lib/standard//collection//array.nit:76 */
424 REGB3 = TAG_Int(1);
425 /* ./../lib/standard//kernel.nit:215 */
426 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
427 /* ./../lib/standard//collection//array.nit:76 */
428 REGB0 = REGB3;
429 } else {
430 /* ./../lib/standard//collection//array.nit:72 */
431 goto label2;
432 }
433 }
434 label2: while(0);
435 /* ./../lib/standard//collection//array.nit:78 */
436 REGB0 = TAG_Int(1);
437 /* ./../lib/standard//kernel.nit:216 */
438 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
439 /* ./../lib/standard//collection//array.nit:78 */
440 REGB2 = REGB0;
441 goto label1;
442 label1: while(0);
443 stack_frame_head = fra.me.prev;
444 return REGB2;
445 }
446 val_t array___AbstractArrayRead___last_index_of_from(val_t p0, val_t p1, val_t p2){
447 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
448 val_t REGB0;
449 val_t REGB1;
450 val_t REGB2;
451 val_t tmp;
452 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
453 fra.me.file = LOCATE_array;
454 fra.me.line = 81;
455 fra.me.meth = LOCATE_array___AbstractArrayRead___last_index_of_from;
456 fra.me.has_broke = 0;
457 fra.me.REG_size = 3;
458 fra.me.REG[0] = NIT_NULL;
459 fra.me.REG[1] = NIT_NULL;
460 fra.me.REG[2] = NIT_NULL;
461 fra.me.REG[0] = p0;
462 fra.me.REG[1] = p1;
463 REGB0 = p2;
464 /* ./../lib/standard//collection//array.nit:84 */
465 while(1) {
466 REGB1 = TAG_Int(0);
467 /* ./../lib/standard//kernel.nit:213 */
468 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
469 /* ./../lib/standard//collection//array.nit:84 */
470 if (UNTAG_Bool(REGB1)) {
471 /* ./../lib/standard//collection//array.nit:85 */
472 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
473 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
474 if (UNTAG_Bool(REGB1)) {
475 } else {
476 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
477 if (UNTAG_Bool(REGB2)) {
478 REGB2 = TAG_Bool(false);
479 REGB1 = REGB2;
480 } else {
481 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
482 REGB1 = REGB2;
483 }
484 }
485 if (UNTAG_Bool(REGB1)) {
486 /* ./../lib/standard//collection//array.nit:86 */
487 REGB1 = REGB0;
488 goto label1;
489 } else {
490 /* ./../lib/standard//collection//array.nit:88 */
491 REGB2 = TAG_Int(1);
492 /* ./../lib/standard//kernel.nit:217 */
493 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
494 /* ./../lib/standard//collection//array.nit:88 */
495 REGB0 = REGB2;
496 }
497 } else {
498 /* ./../lib/standard//collection//array.nit:84 */
499 goto label2;
500 }
501 }
502 label2: while(0);
503 /* ./../lib/standard//collection//array.nit:91 */
504 REGB0 = TAG_Int(1);
505 /* ./../lib/standard//kernel.nit:216 */
506 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
507 /* ./../lib/standard//collection//array.nit:91 */
508 REGB1 = REGB0;
509 goto label1;
510 label1: while(0);
511 stack_frame_head = fra.me.prev;
512 return REGB1;
513 }
514 val_t array___AbstractArrayRead___reversed(val_t p0){
515 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
516 val_t REGB0;
517 val_t REGB1;
518 val_t tmp;
519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
520 fra.me.file = LOCATE_array;
521 fra.me.line = 94;
522 fra.me.meth = LOCATE_array___AbstractArrayRead___reversed;
523 fra.me.has_broke = 0;
524 fra.me.REG_size = 3;
525 fra.me.REG[0] = NIT_NULL;
526 fra.me.REG[1] = NIT_NULL;
527 fra.me.REG[2] = NIT_NULL;
528 fra.me.REG[0] = p0;
529 /* ./../lib/standard//collection//array.nit:96 */
530 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
531 if (UNTAG_Bool(REGB0)) {
532 } else {
533 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 96);
534 }
535 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
536 /* ./../lib/standard//collection//array.nit:97 */
537 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
538 /* ./../lib/standard//collection//array.nit:98 */
539 while(1) {
540 REGB1 = TAG_Int(0);
541 /* ./../lib/standard//kernel.nit:214 */
542 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
543 /* ./../lib/standard//collection//array.nit:98 */
544 if (UNTAG_Bool(REGB1)) {
545 /* ./../lib/standard//collection//array.nit:99 */
546 REGB1 = TAG_Int(1);
547 /* ./../lib/standard//kernel.nit:217 */
548 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
549 /* ./../lib/standard//collection//array.nit:99 */
550 REGB0 = REGB1;
551 /* ./../lib/standard//collection//array.nit:100 */
552 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
553 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
554 } else {
555 /* ./../lib/standard//collection//array.nit:98 */
556 goto label1;
557 }
558 }
559 label1: while(0);
560 /* ./../lib/standard//collection//array.nit:102 */
561 goto label2;
562 label2: while(0);
563 stack_frame_head = fra.me.prev;
564 return fra.me.REG[1];
565 }
566 void array___AbstractArrayRead___copy_to(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
567 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
568 val_t REGB0;
569 val_t REGB1;
570 val_t REGB2;
571 val_t REGB3;
572 val_t REGB4;
573 val_t tmp;
574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
575 fra.me.file = LOCATE_array;
576 fra.me.line = 105;
577 fra.me.meth = LOCATE_array___AbstractArrayRead___copy_to;
578 fra.me.has_broke = 0;
579 fra.me.REG_size = 3;
580 fra.me.REG[0] = NIT_NULL;
581 fra.me.REG[1] = NIT_NULL;
582 fra.me.REG[2] = NIT_NULL;
583 fra.me.REG[0] = p0;
584 REGB0 = p1;
585 REGB1 = p2;
586 fra.me.REG[1] = p3;
587 REGB2 = p4;
588 /* ./../lib/standard//collection//array.nit:109 */
589 while(1) {
590 REGB3 = TAG_Int(0);
591 /* ./../lib/standard//kernel.nit:214 */
592 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
593 /* ./../lib/standard//collection//array.nit:109 */
594 if (UNTAG_Bool(REGB3)) {
595 /* ./../lib/standard//collection//array.nit:110 */
596 REGB3 = TAG_Int(1);
597 /* ./../lib/standard//kernel.nit:217 */
598 REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
599 /* ./../lib/standard//collection//array.nit:110 */
600 REGB1 = REGB3;
601 /* ./../lib/standard//kernel.nit:215 */
602 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
603 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
604 /* ./../lib/standard//collection//array.nit:111 */
605 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB4);
606 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]);
607 } else {
608 /* ./../lib/standard//collection//array.nit:109 */
609 goto label1;
610 }
611 }
612 label1: while(0);
613 stack_frame_head = fra.me.prev;
614 return;
615 }
616 void array___AbstractArrayRead___output(val_t p0){
617 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
618 val_t REGB0;
619 val_t REGB1;
620 val_t REGB2;
621 val_t REGB3;
622 val_t tmp;
623 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
624 fra.me.file = LOCATE_array;
625 fra.me.line = 115;
626 fra.me.meth = LOCATE_array___AbstractArrayRead___output;
627 fra.me.has_broke = 0;
628 fra.me.REG_size = 2;
629 fra.me.REG[0] = NIT_NULL;
630 fra.me.REG[1] = NIT_NULL;
631 fra.me.REG[0] = p0;
632 /* ./../lib/standard//collection//array.nit:117 */
633 REGB0 = TAG_Int(0);
634 /* ./../lib/standard//collection//array.nit:23 */
635 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
636 if (UNTAG_Bool(REGB1)) {
637 } else {
638 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
639 }
640 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
641 /* ./../lib/standard//collection//array.nit:119 */
642 while(1) {
643 /* ./../lib/standard//kernel.nit:212 */
644 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
645 /* ./../lib/standard//collection//array.nit:119 */
646 if (UNTAG_Bool(REGB2)) {
647 /* ./../lib/standard//collection//array.nit:120 */
648 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
649 /* ./../lib/standard//collection//array.nit:121 */
650 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
651 if (UNTAG_Bool(REGB2)) {
652 } else {
653 REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
654 if (UNTAG_Bool(REGB3)) {
655 REGB3 = TAG_Bool(false);
656 REGB2 = REGB3;
657 } else {
658 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
659 REGB2 = REGB3;
660 }
661 }
662 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
663 if (UNTAG_Bool(REGB2)) {
664 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
665 if (UNTAG_Bool(REGB2)) {
666 nit_abort("Reciever is null", NULL, LOCATE_array, 121);
667 }
668 CALL_kernel___Object___output(fra.me.REG[1])(fra.me.REG[1]);
669 }
670 /* ./../lib/standard//collection//array.nit:122 */
671 REGB2 = TAG_Int(1);
672 /* ./../lib/standard//kernel.nit:215 */
673 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
674 /* ./../lib/standard//collection//array.nit:122 */
675 REGB0 = REGB2;
676 } else {
677 /* ./../lib/standard//collection//array.nit:119 */
678 goto label1;
679 }
680 }
681 label1: while(0);
682 stack_frame_head = fra.me.prev;
683 return;
684 }
685 val_t array___AbstractArrayRead___iterator(val_t p0){
686 struct {struct stack_frame_t me;} fra;
687 val_t tmp;
688 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
689 fra.me.file = LOCATE_array;
690 fra.me.line = 126;
691 fra.me.meth = LOCATE_array___AbstractArrayRead___iterator;
692 fra.me.has_broke = 0;
693 fra.me.REG_size = 1;
694 fra.me.REG[0] = NIT_NULL;
695 fra.me.REG[0] = p0;
696 /* ./../lib/standard//collection//array.nit:126 */
697 fra.me.REG[0] = NEW_ArrayIterator_array___ArrayIterator___init(fra.me.REG[0]);
698 goto label1;
699 label1: while(0);
700 stack_frame_head = fra.me.prev;
701 return fra.me.REG[0];
702 }
703 val_t array___AbstractArrayRead_____eqeq(val_t p0, val_t p1){
704 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
705 val_t REGB0;
706 val_t REGB1;
707 val_t REGB2;
708 val_t REGB3;
709 val_t REGB4;
710 val_t tmp;
711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
712 fra.me.file = LOCATE_array;
713 fra.me.line = 128;
714 fra.me.meth = LOCATE_array___AbstractArrayRead_____eqeq;
715 fra.me.has_broke = 0;
716 fra.me.REG_size = 4;
717 fra.me.REG[0] = NIT_NULL;
718 fra.me.REG[1] = NIT_NULL;
719 fra.me.REG[2] = NIT_NULL;
720 fra.me.REG[3] = NIT_NULL;
721 fra.me.REG[0] = p0;
722 fra.me.REG[1] = p1;
723 /* ./../lib/standard//collection//array.nit:131 */
724 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_AbstractArray, ID_AbstractArray)) /*cast AbstractArray[E]*/;
725 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
726 if (UNTAG_Bool(REGB0)) {
727 REGB0 = TAG_Bool(true);
728 } else {
729 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
730 REGB0 = REGB1;
731 }
732 if (UNTAG_Bool(REGB0)) {
733 REGB0 = TAG_Bool(false);
734 goto label1;
735 }
736 /* ./../lib/standard//collection//array.nit:23 */
737 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
738 if (UNTAG_Bool(REGB1)) {
739 } else {
740 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
741 }
742 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
743 /* ./../lib/standard//collection//array.nit:133 */
744 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
745 if (UNTAG_Bool(REGB2)) {
746 nit_abort("Reciever is null", NULL, LOCATE_array, 133);
747 }
748 /* ./../lib/standard//collection//array.nit:23 */
749 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
750 if (UNTAG_Bool(REGB2)) {
751 } else {
752 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
753 }
754 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
755 /* ./../lib/standard//collection//array.nit:133 */
756 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
757 if (UNTAG_Bool(REGB3)) {
758 } else {
759 /* ./../lib/standard//kernel.nit:207 */
760 REGB2 = TAG_Bool((REGB2)==(REGB1));
761 /* ./../lib/standard//collection//array.nit:133 */
762 REGB3 = REGB2;
763 }
764 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
765 if (UNTAG_Bool(REGB3)) {
766 REGB3 = TAG_Bool(false);
767 REGB0 = REGB3;
768 goto label1;
769 }
770 /* ./../lib/standard//collection//array.nit:134 */
771 REGB3 = TAG_Int(0);
772 /* ./../lib/standard//collection//array.nit:135 */
773 while(1) {
774 /* ./../lib/standard//kernel.nit:212 */
775 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
776 /* ./../lib/standard//collection//array.nit:135 */
777 if (UNTAG_Bool(REGB2)) {
778 /* ./../lib/standard//collection//array.nit:136 */
779 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB3);
780 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
781 if (UNTAG_Bool(REGB2)) {
782 nit_abort("Reciever is null", NULL, LOCATE_array, 136);
783 }
784 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB3);
785 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[3]));
786 if (UNTAG_Bool(REGB2)) {
787 } else {
788 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
789 if (UNTAG_Bool(REGB4)) {
790 REGB4 = TAG_Bool(false);
791 REGB2 = REGB4;
792 } else {
793 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
794 REGB2 = REGB4;
795 }
796 }
797 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
798 if (UNTAG_Bool(REGB2)) {
799 REGB2 = TAG_Bool(false);
800 REGB0 = REGB2;
801 goto label1;
802 }
803 /* ./../lib/standard//collection//array.nit:137 */
804 REGB2 = TAG_Int(1);
805 /* ./../lib/standard//kernel.nit:215 */
806 REGB2 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
807 /* ./../lib/standard//collection//array.nit:137 */
808 REGB3 = REGB2;
809 } else {
810 /* ./../lib/standard//collection//array.nit:135 */
811 goto label2;
812 }
813 }
814 label2: while(0);
815 /* ./../lib/standard//collection//array.nit:139 */
816 REGB3 = TAG_Bool(true);
817 REGB0 = REGB3;
818 goto label1;
819 label1: while(0);
820 stack_frame_head = fra.me.prev;
821 return REGB0;
822 }
823 void array___AbstractArrayRead___init(val_t p0, int* init_table){
824 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AbstractArrayRead].i;
825 struct {struct stack_frame_t me;} fra;
826 val_t tmp;
827 if (init_table[itpos0]) return;
828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
829 fra.me.file = LOCATE_array;
830 fra.me.line = 0;
831 fra.me.meth = LOCATE_array___AbstractArrayRead___init;
832 fra.me.has_broke = 0;
833 fra.me.REG_size = 0;
834 stack_frame_head = fra.me.prev;
835 init_table[itpos0] = 1;
836 return;
837 }
838 void array___AbstractArray___enlarge(val_t p0, val_t p1){
839 struct {struct stack_frame_t me;} fra;
840 val_t tmp;
841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
842 fra.me.file = LOCATE_array;
843 fra.me.line = 147;
844 fra.me.meth = LOCATE_array___AbstractArray___enlarge;
845 fra.me.has_broke = 0;
846 fra.me.REG_size = 0;
847 /* ./../lib/standard//collection//array.nit:147 */
848 nit_abort("Deferred method called", NULL, LOCATE_array, 147);
849 stack_frame_head = fra.me.prev;
850 return;
851 }
852 void array___AbstractArray___push(val_t p0, val_t p1){
853 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
854 val_t tmp;
855 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
856 fra.me.file = LOCATE_array;
857 fra.me.line = 149;
858 fra.me.meth = LOCATE_array___AbstractArray___push;
859 fra.me.has_broke = 0;
860 fra.me.REG_size = 2;
861 fra.me.REG[0] = NIT_NULL;
862 fra.me.REG[1] = NIT_NULL;
863 fra.me.REG[0] = p0;
864 fra.me.REG[1] = p1;
865 /* ./../lib/standard//collection//array.nit:149 */
866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
867 stack_frame_head = fra.me.prev;
868 return;
869 }
870 val_t array___AbstractArray___pop(val_t p0){
871 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
872 val_t REGB0;
873 val_t REGB1;
874 val_t tmp;
875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
876 fra.me.file = LOCATE_array;
877 fra.me.line = 151;
878 fra.me.meth = LOCATE_array___AbstractArray___pop;
879 fra.me.has_broke = 0;
880 fra.me.REG_size = 2;
881 fra.me.REG[0] = NIT_NULL;
882 fra.me.REG[1] = NIT_NULL;
883 fra.me.REG[0] = p0;
884 /* ./../lib/standard//collection//array.nit:153 */
885 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
887 if (UNTAG_Bool(REGB0)) {
888 } else {
889 nit_abort("Assert %s failed", "'not_empty'", LOCATE_array, 153);
890 }
891 /* ./../lib/standard//collection//array.nit:154 */
892 fra.me.REG[1] = CALL_abstract_collection___SequenceRead___last(fra.me.REG[0])(fra.me.REG[0]);
893 /* ./../lib/standard//collection//array.nit:155 */
894 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
895 REGB1 = TAG_Int(1);
896 /* ./../lib/standard//kernel.nit:217 */
897 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
898 /* ./../lib/standard//collection//array.nit:155 */
899 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
900 /* ./../lib/standard//collection//array.nit:156 */
901 goto label1;
902 label1: while(0);
903 stack_frame_head = fra.me.prev;
904 return fra.me.REG[1];
905 }
906 val_t array___AbstractArray___shift(val_t p0){
907 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
908 val_t REGB0;
909 val_t REGB1;
910 val_t REGB2;
911 val_t tmp;
912 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
913 fra.me.file = LOCATE_array;
914 fra.me.line = 159;
915 fra.me.meth = LOCATE_array___AbstractArray___shift;
916 fra.me.has_broke = 0;
917 fra.me.REG_size = 3;
918 fra.me.REG[0] = NIT_NULL;
919 fra.me.REG[1] = NIT_NULL;
920 fra.me.REG[2] = NIT_NULL;
921 fra.me.REG[0] = p0;
922 /* ./../lib/standard//collection//array.nit:161 */
923 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
924 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
925 if (UNTAG_Bool(REGB0)) {
926 } else {
927 nit_abort("Assert %s failed", "'not_empty'", LOCATE_array, 161);
928 }
929 /* ./../lib/standard//collection//array.nit:162 */
930 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
931 /* ./../lib/standard//collection//array.nit:163 */
932 REGB0 = TAG_Int(1);
933 /* ./../lib/standard//collection//array.nit:23 */
934 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
935 if (UNTAG_Bool(REGB1)) {
936 } else {
937 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
938 }
939 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
940 /* ./../lib/standard//collection//array.nit:165 */
941 while(1) {
942 /* ./../lib/standard//kernel.nit:212 */
943 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
944 /* ./../lib/standard//collection//array.nit:165 */
945 if (UNTAG_Bool(REGB2)) {
946 /* ./../lib/standard//collection//array.nit:166 */
947 REGB2 = TAG_Int(1);
948 /* ./../lib/standard//kernel.nit:217 */
949 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
950 /* ./../lib/standard//collection//array.nit:166 */
951 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
952 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[2]);
953 /* ./../lib/standard//collection//array.nit:167 */
954 REGB2 = TAG_Int(1);
955 /* ./../lib/standard//kernel.nit:215 */
956 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
957 /* ./../lib/standard//collection//array.nit:167 */
958 REGB0 = REGB2;
959 } else {
960 /* ./../lib/standard//collection//array.nit:165 */
961 goto label1;
962 }
963 }
964 label1: while(0);
965 /* ./../lib/standard//collection//array.nit:169 */
966 REGB0 = TAG_Int(1);
967 /* ./../lib/standard//kernel.nit:217 */
968 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
969 /* ./../lib/standard//collection//array.nit:169 */
970 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
971 /* ./../lib/standard//collection//array.nit:170 */
972 goto label2;
973 label2: while(0);
974 stack_frame_head = fra.me.prev;
975 return fra.me.REG[1];
976 }
977 void array___AbstractArray___unshift(val_t p0, val_t p1){
978 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
979 val_t REGB0;
980 val_t REGB1;
981 val_t tmp;
982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
983 fra.me.file = LOCATE_array;
984 fra.me.line = 173;
985 fra.me.meth = LOCATE_array___AbstractArray___unshift;
986 fra.me.has_broke = 0;
987 fra.me.REG_size = 3;
988 fra.me.REG[0] = NIT_NULL;
989 fra.me.REG[1] = NIT_NULL;
990 fra.me.REG[2] = NIT_NULL;
991 fra.me.REG[0] = p0;
992 fra.me.REG[1] = p1;
993 /* ./../lib/standard//collection//array.nit:23 */
994 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
995 if (UNTAG_Bool(REGB0)) {
996 } else {
997 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
998 }
999 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1000 /* ./../lib/standard//collection//array.nit:175 */
1001 REGB1 = TAG_Int(1);
1002 /* ./../lib/standard//kernel.nit:217 */
1003 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1004 /* ./../lib/standard//collection//array.nit:176 */
1005 while(1) {
1006 REGB0 = TAG_Int(0);
1007 /* ./../lib/standard//kernel.nit:214 */
1008 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
1009 /* ./../lib/standard//collection//array.nit:176 */
1010 if (UNTAG_Bool(REGB0)) {
1011 /* ./../lib/standard//collection//array.nit:177 */
1012 REGB0 = TAG_Int(1);
1013 /* ./../lib/standard//kernel.nit:215 */
1014 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1015 /* ./../lib/standard//collection//array.nit:177 */
1016 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
1017 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
1018 /* ./../lib/standard//collection//array.nit:178 */
1019 REGB0 = TAG_Int(1);
1020 /* ./../lib/standard//kernel.nit:217 */
1021 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
1022 /* ./../lib/standard//collection//array.nit:178 */
1023 REGB1 = REGB0;
1024 } else {
1025 /* ./../lib/standard//collection//array.nit:176 */
1026 goto label1;
1027 }
1028 }
1029 label1: while(0);
1030 /* ./../lib/standard//collection//array.nit:180 */
1031 REGB1 = TAG_Int(0);
1032 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1033 stack_frame_head = fra.me.prev;
1034 return;
1035 }
1036 void array___AbstractArray___insert(val_t p0, val_t p1, val_t p2){
1037 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1038 val_t REGB0;
1039 val_t REGB1;
1040 val_t REGB2;
1041 val_t tmp;
1042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1043 fra.me.file = LOCATE_array;
1044 fra.me.line = 183;
1045 fra.me.meth = LOCATE_array___AbstractArray___insert;
1046 fra.me.has_broke = 0;
1047 fra.me.REG_size = 2;
1048 fra.me.REG[0] = NIT_NULL;
1049 fra.me.REG[1] = NIT_NULL;
1050 fra.me.REG[0] = p0;
1051 fra.me.REG[1] = p1;
1052 REGB0 = p2;
1053 /* ./../lib/standard//collection//array.nit:23 */
1054 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1055 if (UNTAG_Bool(REGB1)) {
1056 } else {
1057 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1058 }
1059 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1060 /* ./../lib/standard//collection//array.nit:185 */
1061 REGB2 = TAG_Int(1);
1062 /* ./../lib/standard//kernel.nit:215 */
1063 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1064 /* ./../lib/standard//collection//array.nit:185 */
1065 CALL_array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB2);
1066 /* ./../lib/standard//collection//array.nit:23 */
1067 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1068 if (UNTAG_Bool(REGB2)) {
1069 } else {
1070 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1071 }
1072 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1073 /* ./../lib/standard//kernel.nit:217 */
1074 REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
1075 /* ./../lib/standard//collection//array.nit:186 */
1076 REGB1 = TAG_Int(1);
1077 /* ./../lib/standard//kernel.nit:215 */
1078 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1079 /* ./../lib/standard//collection//array.nit:186 */
1080 CALL_array___AbstractArrayRead___copy_to(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2, fra.me.REG[0], REGB1);
1081 /* ./../lib/standard//collection//array.nit:187 */
1082 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1083 stack_frame_head = fra.me.prev;
1084 return;
1085 }
1086 void array___AbstractArray___add(val_t p0, val_t p1){
1087 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1088 val_t REGB0;
1089 val_t tmp;
1090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1091 fra.me.file = LOCATE_array;
1092 fra.me.line = 190;
1093 fra.me.meth = LOCATE_array___AbstractArray___add;
1094 fra.me.has_broke = 0;
1095 fra.me.REG_size = 2;
1096 fra.me.REG[0] = NIT_NULL;
1097 fra.me.REG[1] = NIT_NULL;
1098 fra.me.REG[0] = p0;
1099 fra.me.REG[1] = p1;
1100 /* ./../lib/standard//collection//array.nit:23 */
1101 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1102 if (UNTAG_Bool(REGB0)) {
1103 } else {
1104 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1105 }
1106 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1107 /* ./../lib/standard//collection//array.nit:190 */
1108 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1109 stack_frame_head = fra.me.prev;
1110 return;
1111 }
1112 void array___AbstractArray___clear(val_t p0){
1113 struct {struct stack_frame_t me;} fra;
1114 val_t REGB0;
1115 val_t tmp;
1116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1117 fra.me.file = LOCATE_array;
1118 fra.me.line = 192;
1119 fra.me.meth = LOCATE_array___AbstractArray___clear;
1120 fra.me.has_broke = 0;
1121 fra.me.REG_size = 1;
1122 fra.me.REG[0] = NIT_NULL;
1123 fra.me.REG[0] = p0;
1124 /* ./../lib/standard//collection//array.nit:192 */
1125 REGB0 = TAG_Int(0);
1126 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1127 stack_frame_head = fra.me.prev;
1128 return;
1129 }
1130 void array___AbstractArray___remove(val_t p0, val_t p1){
1131 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1132 val_t REGB0;
1133 val_t tmp;
1134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1135 fra.me.file = LOCATE_array;
1136 fra.me.line = 194;
1137 fra.me.meth = LOCATE_array___AbstractArray___remove;
1138 fra.me.has_broke = 0;
1139 fra.me.REG_size = 2;
1140 fra.me.REG[0] = NIT_NULL;
1141 fra.me.REG[1] = NIT_NULL;
1142 fra.me.REG[0] = p0;
1143 fra.me.REG[1] = p1;
1144 /* ./../lib/standard//collection//array.nit:194 */
1145 REGB0 = CALL_abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1146 CALL_abstract_collection___Map___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
1147 stack_frame_head = fra.me.prev;
1148 return;
1149 }
1150 void array___AbstractArray___remove_all(val_t p0, val_t p1){
1151 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1152 val_t REGB0;
1153 val_t REGB1;
1154 val_t tmp;
1155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1156 fra.me.file = LOCATE_array;
1157 fra.me.line = 196;
1158 fra.me.meth = LOCATE_array___AbstractArray___remove_all;
1159 fra.me.has_broke = 0;
1160 fra.me.REG_size = 2;
1161 fra.me.REG[0] = NIT_NULL;
1162 fra.me.REG[1] = NIT_NULL;
1163 fra.me.REG[0] = p0;
1164 fra.me.REG[1] = p1;
1165 /* ./../lib/standard//collection//array.nit:198 */
1166 REGB0 = CALL_abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1167 /* ./../lib/standard//collection//array.nit:199 */
1168 while(1) {
1169 REGB1 = TAG_Int(0);
1170 /* ./../lib/standard//kernel.nit:213 */
1171 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1172 /* ./../lib/standard//collection//array.nit:199 */
1173 if (UNTAG_Bool(REGB1)) {
1174 /* ./../lib/standard//collection//array.nit:200 */
1175 CALL_abstract_collection___Map___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
1176 /* ./../lib/standard//collection//array.nit:201 */
1177 REGB1 = CALL_array___AbstractArrayRead___index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
1178 REGB0 = REGB1;
1179 } else {
1180 /* ./../lib/standard//collection//array.nit:199 */
1181 goto label1;
1182 }
1183 }
1184 label1: while(0);
1185 stack_frame_head = fra.me.prev;
1186 return;
1187 }
1188 void array___AbstractArray___remove_at(val_t p0, val_t p1){
1189 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1190 val_t REGB0;
1191 val_t REGB1;
1192 val_t REGB2;
1193 val_t REGB3;
1194 val_t tmp;
1195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1196 fra.me.file = LOCATE_array;
1197 fra.me.line = 205;
1198 fra.me.meth = LOCATE_array___AbstractArray___remove_at;
1199 fra.me.has_broke = 0;
1200 fra.me.REG_size = 2;
1201 fra.me.REG[0] = NIT_NULL;
1202 fra.me.REG[1] = NIT_NULL;
1203 fra.me.REG[0] = p0;
1204 REGB0 = p1;
1205 /* ./../lib/standard//collection//array.nit:23 */
1206 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1207 if (UNTAG_Bool(REGB1)) {
1208 } else {
1209 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1210 }
1211 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1212 /* ./../lib/standard//collection//array.nit:208 */
1213 REGB2 = TAG_Int(0);
1214 /* ./../lib/standard//kernel.nit:213 */
1215 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
1216 /* ./../lib/standard//collection//array.nit:208 */
1217 if (UNTAG_Bool(REGB2)) {
1218 /* ./../lib/standard//kernel.nit:212 */
1219 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1220 } else {
1221 /* ./../lib/standard//collection//array.nit:208 */
1222 REGB3 = TAG_Bool(false);
1223 REGB2 = REGB3;
1224 }
1225 if (UNTAG_Bool(REGB2)) {
1226 /* ./../lib/standard//collection//array.nit:209 */
1227 REGB2 = TAG_Int(1);
1228 /* ./../lib/standard//kernel.nit:215 */
1229 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1230 /* ./../lib/standard//collection//array.nit:210 */
1231 while(1) {
1232 /* ./../lib/standard//kernel.nit:212 */
1233 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
1234 /* ./../lib/standard//collection//array.nit:210 */
1235 if (UNTAG_Bool(REGB0)) {
1236 /* ./../lib/standard//collection//array.nit:211 */
1237 REGB0 = TAG_Int(1);
1238 /* ./../lib/standard//kernel.nit:217 */
1239 REGB0 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
1240 /* ./../lib/standard//collection//array.nit:211 */
1241 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB2);
1242 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1243 /* ./../lib/standard//collection//array.nit:212 */
1244 REGB0 = TAG_Int(1);
1245 /* ./../lib/standard//kernel.nit:215 */
1246 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1247 /* ./../lib/standard//collection//array.nit:212 */
1248 REGB2 = REGB0;
1249 } else {
1250 /* ./../lib/standard//collection//array.nit:210 */
1251 goto label1;
1252 }
1253 }
1254 label1: while(0);
1255 /* ./../lib/standard//collection//array.nit:214 */
1256 REGB2 = TAG_Int(1);
1257 /* ./../lib/standard//kernel.nit:217 */
1258 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1259 /* ./../lib/standard//collection//array.nit:214 */
1260 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB2;
1261 }
1262 stack_frame_head = fra.me.prev;
1263 return;
1264 }
1265 void array___Array___iterate(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1266 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1267 val_t REGB0;
1268 val_t REGB1;
1269 fun_t CREG[1];
1270 val_t tmp;
1271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1272 fra.me.file = LOCATE_array;
1273 fra.me.line = 231;
1274 fra.me.meth = LOCATE_array___Array___iterate;
1275 fra.me.has_broke = 0;
1276 fra.me.REG_size = 3;
1277 fra.me.REG[0] = NIT_NULL;
1278 fra.me.REG[1] = NIT_NULL;
1279 fra.me.REG[2] = NIT_NULL;
1280 fra.me.closure_ctx = closctx_param;
1281 fra.me.closure_funs = CREG;
1282 fra.me.REG[0] = p0;
1283 CREG[0] = clos_fun0;
1284 /* ./../lib/standard//collection//array.nit:234 */
1285 REGB0 = TAG_Int(0);
1286 /* ./../lib/standard//collection//array.nit:235 */
1287 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1288 if (UNTAG_Bool(REGB1)) {
1289 } else {
1290 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1291 }
1292 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1293 /* ./../lib/standard//collection//array.nit:236 */
1294 fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[0]);
1295 /* ./../lib/standard//collection//array.nit:237 */
1296 while(1) {
1297 /* ./../lib/standard//collection//array.nit:23 */
1298 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1299 if (UNTAG_Bool(REGB1)) {
1300 } else {
1301 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1302 }
1303 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1304 /* ./../lib/standard//kernel.nit:212 */
1305 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1306 /* ./../lib/standard//collection//array.nit:237 */
1307 if (UNTAG_Bool(REGB1)) {
1308 /* ./../lib/standard//collection//array.nit:238 */
1309 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1310 if (UNTAG_Bool(REGB1)) {
1311 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1312 }
1313 /* ./../lib/standard//collection//array.nit:654 */
1314 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
1315 /* ./../lib/standard//collection//array.nit:238 */
1316 ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[2]);
1317 if (closctx_param->has_broke) {
1318 goto label1;
1319 }
1320 /* ./../lib/standard//collection//array.nit:239 */
1321 REGB1 = TAG_Int(1);
1322 /* ./../lib/standard//kernel.nit:215 */
1323 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1324 /* ./../lib/standard//collection//array.nit:239 */
1325 REGB0 = REGB1;
1326 } else {
1327 /* ./../lib/standard//collection//array.nit:237 */
1328 goto label2;
1329 }
1330 }
1331 label2: while(0);
1332 label1: while(0);
1333 stack_frame_head = fra.me.prev;
1334 return;
1335 }
1336 val_t array___Array_____bra(val_t p0, val_t p1){
1337 struct {struct stack_frame_t me;} fra;
1338 val_t REGB0;
1339 val_t REGB1;
1340 val_t REGB2;
1341 val_t tmp;
1342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1343 fra.me.file = LOCATE_array;
1344 fra.me.line = 243;
1345 fra.me.meth = LOCATE_array___Array_____bra;
1346 fra.me.has_broke = 0;
1347 fra.me.REG_size = 1;
1348 fra.me.REG[0] = NIT_NULL;
1349 fra.me.REG[0] = p0;
1350 REGB0 = p1;
1351 /* ./../lib/standard//collection//array.nit:245 */
1352 REGB1 = TAG_Int(0);
1353 /* ./../lib/standard//kernel.nit:213 */
1354 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1355 /* ./../lib/standard//collection//array.nit:245 */
1356 if (UNTAG_Bool(REGB1)) {
1357 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1358 if (UNTAG_Bool(REGB1)) {
1359 } else {
1360 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
1361 }
1362 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1363 /* ./../lib/standard//kernel.nit:212 */
1364 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1365 } else {
1366 /* ./../lib/standard//collection//array.nit:245 */
1367 REGB2 = TAG_Bool(false);
1368 REGB1 = REGB2;
1369 }
1370 if (UNTAG_Bool(REGB1)) {
1371 } else {
1372 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
1373 }
1374 /* ./../lib/standard//collection//array.nit:246 */
1375 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
1376 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1377 if (UNTAG_Bool(REGB1)) {
1378 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
1379 }
1380 /* ./../lib/standard//collection//array.nit:654 */
1381 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
1382 /* ./../lib/standard//collection//array.nit:246 */
1383 goto label1;
1384 label1: while(0);
1385 stack_frame_head = fra.me.prev;
1386 return fra.me.REG[0];
1387 }
1388 void array___Array_____braeq(val_t p0, val_t p1, val_t p2){
1389 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1390 val_t REGB0;
1391 val_t REGB1;
1392 val_t REGB2;
1393 val_t tmp;
1394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1395 fra.me.file = LOCATE_array;
1396 fra.me.line = 249;
1397 fra.me.meth = LOCATE_array___Array_____braeq;
1398 fra.me.has_broke = 0;
1399 fra.me.REG_size = 2;
1400 fra.me.REG[0] = NIT_NULL;
1401 fra.me.REG[1] = NIT_NULL;
1402 fra.me.REG[0] = p0;
1403 REGB0 = p1;
1404 fra.me.REG[1] = p2;
1405 /* ./../lib/standard//collection//array.nit:251 */
1406 REGB1 = TAG_Int(0);
1407 /* ./../lib/standard//kernel.nit:213 */
1408 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1409 /* ./../lib/standard//collection//array.nit:251 */
1410 if (UNTAG_Bool(REGB1)) {
1411 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1412 if (UNTAG_Bool(REGB1)) {
1413 } else {
1414 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 251);
1415 }
1416 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1417 REGB2 = TAG_Int(1);
1418 /* ./../lib/standard//kernel.nit:215 */
1419 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1420 /* ./../lib/standard//kernel.nit:212 */
1421 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1422 } else {
1423 /* ./../lib/standard//collection//array.nit:251 */
1424 REGB1 = TAG_Bool(false);
1425 REGB2 = REGB1;
1426 }
1427 if (UNTAG_Bool(REGB2)) {
1428 } else {
1429 nit_abort("Assert %s failed", "'index'", LOCATE_array, 251);
1430 }
1431 /* ./../lib/standard//collection//array.nit:252 */
1432 REGB2 = TAG_Bool(ATTR_array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1433 if (UNTAG_Bool(REGB2)) {
1434 } else {
1435 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_array, 252);
1436 }
1437 REGB2 = ATTR_array___Array____capacity(fra.me.REG[0]);
1438 /* ./../lib/standard//kernel.nit:211 */
1439 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
1440 /* ./../lib/standard//collection//array.nit:252 */
1441 if (UNTAG_Bool(REGB2)) {
1442 /* ./../lib/standard//collection//array.nit:253 */
1443 REGB2 = TAG_Int(1);
1444 /* ./../lib/standard//kernel.nit:215 */
1445 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1446 /* ./../lib/standard//collection//array.nit:253 */
1447 CALL_array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB2);
1448 }
1449 /* ./../lib/standard//collection//array.nit:255 */
1450 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1451 if (UNTAG_Bool(REGB2)) {
1452 } else {
1453 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 255);
1454 }
1455 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1456 /* ./../lib/standard//kernel.nit:211 */
1457 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
1458 /* ./../lib/standard//collection//array.nit:255 */
1459 if (UNTAG_Bool(REGB2)) {
1460 /* ./../lib/standard//collection//array.nit:256 */
1461 REGB2 = TAG_Int(1);
1462 /* ./../lib/standard//kernel.nit:215 */
1463 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1464 /* ./../lib/standard//collection//array.nit:256 */
1465 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB2;
1466 }
1467 /* ./../lib/standard//collection//array.nit:258 */
1468 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
1469 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1470 if (UNTAG_Bool(REGB2)) {
1471 nit_abort("Reciever is null", NULL, LOCATE_array, 258);
1472 }
1473 /* ./../lib/standard//collection//array.nit:655 */
1474 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
1475 stack_frame_head = fra.me.prev;
1476 return;
1477 }
1478 void array___Array___add(val_t p0, val_t p1){
1479 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1480 val_t REGB0;
1481 val_t REGB1;
1482 val_t tmp;
1483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1484 fra.me.file = LOCATE_array;
1485 fra.me.line = 261;
1486 fra.me.meth = LOCATE_array___Array___add;
1487 fra.me.has_broke = 0;
1488 fra.me.REG_size = 2;
1489 fra.me.REG[0] = NIT_NULL;
1490 fra.me.REG[1] = NIT_NULL;
1491 fra.me.REG[0] = p0;
1492 fra.me.REG[1] = p1;
1493 /* ./../lib/standard//collection//array.nit:263 */
1494 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1495 if (UNTAG_Bool(REGB0)) {
1496 } else {
1497 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 263);
1498 }
1499 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1500 /* ./../lib/standard//collection//array.nit:264 */
1501 REGB1 = TAG_Bool(ATTR_array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1502 if (UNTAG_Bool(REGB1)) {
1503 } else {
1504 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_array, 264);
1505 }
1506 REGB1 = ATTR_array___Array____capacity(fra.me.REG[0]);
1507 /* ./../lib/standard//kernel.nit:211 */
1508 REGB1 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1509 /* ./../lib/standard//collection//array.nit:264 */
1510 if (UNTAG_Bool(REGB1)) {
1511 /* ./../lib/standard//collection//array.nit:265 */
1512 REGB1 = TAG_Int(1);
1513 /* ./../lib/standard//kernel.nit:215 */
1514 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1515 /* ./../lib/standard//collection//array.nit:265 */
1516 CALL_array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
1517 }
1518 /* ./../lib/standard//collection//array.nit:267 */
1519 REGB1 = TAG_Int(1);
1520 /* ./../lib/standard//kernel.nit:215 */
1521 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1522 /* ./../lib/standard//collection//array.nit:267 */
1523 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
1524 /* ./../lib/standard//collection//array.nit:268 */
1525 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
1526 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1527 if (UNTAG_Bool(REGB1)) {
1528 nit_abort("Reciever is null", NULL, LOCATE_array, 268);
1529 }
1530 /* ./../lib/standard//collection//array.nit:655 */
1531 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
1532 stack_frame_head = fra.me.prev;
1533 return;
1534 }
1535 void array___Array___enlarge(val_t p0, val_t p1){
1536 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1537 val_t REGB0;
1538 val_t REGB1;
1539 val_t REGB2;
1540 val_t REGB3;
1541 val_t tmp;
1542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1543 fra.me.file = LOCATE_array;
1544 fra.me.line = 271;
1545 fra.me.meth = LOCATE_array___Array___enlarge;
1546 fra.me.has_broke = 0;
1547 fra.me.REG_size = 3;
1548 fra.me.REG[0] = NIT_NULL;
1549 fra.me.REG[1] = NIT_NULL;
1550 fra.me.REG[2] = NIT_NULL;
1551 fra.me.REG[0] = p0;
1552 REGB0 = p1;
1553 /* ./../lib/standard//collection//array.nit:273 */
1554 REGB1 = TAG_Bool(ATTR_array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1555 if (UNTAG_Bool(REGB1)) {
1556 } else {
1557 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_array, 273);
1558 }
1559 REGB1 = ATTR_array___Array____capacity(fra.me.REG[0]);
1560 /* ./../lib/standard//kernel.nit:211 */
1561 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
1562 /* ./../lib/standard//collection//array.nit:274 */
1563 if (UNTAG_Bool(REGB2)) {
1564 goto label1;
1565 }
1566 /* ./../lib/standard//collection//array.nit:275 */
1567 while(1) {
1568 /* ./../lib/standard//kernel.nit:211 */
1569 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1570 /* ./../lib/standard//collection//array.nit:275 */
1571 if (UNTAG_Bool(REGB2)) {
1572 REGB2 = TAG_Int(2);
1573 /* ./../lib/standard//kernel.nit:218 */
1574 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
1575 /* ./../lib/standard//collection//array.nit:275 */
1576 REGB3 = TAG_Int(2);
1577 /* ./../lib/standard//kernel.nit:215 */
1578 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1579 /* ./../lib/standard//collection//array.nit:275 */
1580 REGB1 = REGB3;
1581 } else {
1582 goto label2;
1583 }
1584 }
1585 label2: while(0);
1586 /* ./../lib/standard//collection//array.nit:648 */
1587 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB1), sizeof(val_t));
1588 /* ./../lib/standard//collection//array.nit:277 */
1589 REGB0 = TAG_Bool(ATTR_array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1590 if (UNTAG_Bool(REGB0)) {
1591 } else {
1592 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_array, 277);
1593 }
1594 REGB0 = ATTR_array___Array____capacity(fra.me.REG[0]);
1595 REGB3 = TAG_Int(0);
1596 /* ./../lib/standard//kernel.nit:214 */
1597 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
1598 /* ./../lib/standard//collection//array.nit:277 */
1599 if (UNTAG_Bool(REGB3)) {
1600 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
1601 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1602 if (UNTAG_Bool(REGB3)) {
1603 } else {
1604 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 277);
1605 }
1606 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1607 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1608 if (UNTAG_Bool(REGB0)) {
1609 nit_abort("Reciever is null", NULL, LOCATE_array, 277);
1610 }
1611 /* ./../lib/standard//collection//array.nit:656 */
1612 (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[2])->val, UNTAG_Int(REGB3)*sizeof(val_t));
1613 }
1614 /* ./../lib/standard//collection//array.nit:278 */
1615 ATTR_array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
1616 /* ./../lib/standard//collection//array.nit:279 */
1617 ATTR_array___Array____capacity(fra.me.REG[0]) = REGB1;
1618 label1: while(0);
1619 stack_frame_head = fra.me.prev;
1620 return;
1621 }
1622 void array___Array___init(val_t p0, int* init_table){
1623 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Array].i;
1624 struct {struct stack_frame_t me;} fra;
1625 val_t REGB0;
1626 val_t tmp;
1627 if (init_table[itpos1]) return;
1628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1629 fra.me.file = LOCATE_array;
1630 fra.me.line = 282;
1631 fra.me.meth = LOCATE_array___Array___init;
1632 fra.me.has_broke = 0;
1633 fra.me.REG_size = 1;
1634 fra.me.REG[0] = NIT_NULL;
1635 fra.me.REG[0] = p0;
1636 /* ./../lib/standard//collection//array.nit:285 */
1637 REGB0 = TAG_Int(0);
1638 ATTR_array___Array____capacity(fra.me.REG[0]) = REGB0;
1639 /* ./../lib/standard//collection//array.nit:286 */
1640 REGB0 = TAG_Int(0);
1641 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1642 stack_frame_head = fra.me.prev;
1643 init_table[itpos1] = 1;
1644 return;
1645 }
1646 void array___Array___with_items(val_t p0, val_t p1, int* init_table){
1647 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Array].i;
1648 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1649 val_t REGB0;
1650 val_t tmp;
1651 if (init_table[itpos2]) return;
1652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1653 fra.me.file = LOCATE_array;
1654 fra.me.line = 289;
1655 fra.me.meth = LOCATE_array___Array___with_items;
1656 fra.me.has_broke = 0;
1657 fra.me.REG_size = 3;
1658 fra.me.REG[0] = NIT_NULL;
1659 fra.me.REG[1] = NIT_NULL;
1660 fra.me.REG[2] = NIT_NULL;
1661 fra.me.REG[0] = p0;
1662 fra.me.REG[1] = p1;
1663 /* ./../lib/standard//collection//array.nit:289 */
1664 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Array, ID_Array)) /*cast Array[E]*/;
1665 if (UNTAG_Bool(REGB0)) {
1666 } else {
1667 nit_abort("Cast failed", NULL, LOCATE_array, 289);
1668 }
1669 /* ./../lib/standard//collection//array.nit:292 */
1670 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[1]);
1671 ATTR_array___Array____items(fra.me.REG[0]) = fra.me.REG[2];
1672 /* ./../lib/standard//collection//array.nit:293 */
1673 REGB0 = TAG_Bool(ATTR_array___Array____capacity(fra.me.REG[1])!=NIT_NULL);
1674 if (UNTAG_Bool(REGB0)) {
1675 } else {
1676 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_array, 293);
1677 }
1678 REGB0 = ATTR_array___Array____capacity(fra.me.REG[1]);
1679 ATTR_array___Array____capacity(fra.me.REG[0]) = REGB0;
1680 /* ./../lib/standard//collection//array.nit:23 */
1681 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1682 if (UNTAG_Bool(REGB0)) {
1683 } else {
1684 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1685 }
1686 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1687 /* ./../lib/standard//collection//array.nit:294 */
1688 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1689 stack_frame_head = fra.me.prev;
1690 init_table[itpos2] = 1;
1691 return;
1692 }
1693 void array___Array___with_capacity(val_t p0, val_t p1, int* init_table){
1694 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Array].i;
1695 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1696 val_t REGB0;
1697 val_t REGB1;
1698 val_t tmp;
1699 if (init_table[itpos3]) return;
1700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1701 fra.me.file = LOCATE_array;
1702 fra.me.line = 297;
1703 fra.me.meth = LOCATE_array___Array___with_capacity;
1704 fra.me.has_broke = 0;
1705 fra.me.REG_size = 2;
1706 fra.me.REG[0] = NIT_NULL;
1707 fra.me.REG[1] = NIT_NULL;
1708 fra.me.REG[0] = p0;
1709 REGB0 = p1;
1710 /* ./../lib/standard//collection//array.nit:300 */
1711 REGB1 = TAG_Int(0);
1712 /* ./../lib/standard//kernel.nit:213 */
1713 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1714 /* ./../lib/standard//collection//array.nit:300 */
1715 if (UNTAG_Bool(REGB1)) {
1716 } else {
1717 nit_abort("Assert %s failed", "'positive'", LOCATE_array, 300);
1718 }
1719 /* ./../lib/standard//collection//array.nit:648 */
1720 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
1721 /* ./../lib/standard//collection//array.nit:301 */
1722 ATTR_array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
1723 /* ./../lib/standard//collection//array.nit:302 */
1724 ATTR_array___Array____capacity(fra.me.REG[0]) = REGB0;
1725 /* ./../lib/standard//collection//array.nit:303 */
1726 REGB0 = TAG_Int(0);
1727 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1728 stack_frame_head = fra.me.prev;
1729 init_table[itpos3] = 1;
1730 return;
1731 }
1732 void array___Array___filled_with(val_t p0, val_t p1, val_t p2, int* init_table){
1733 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Array].i;
1734 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1735 val_t REGB0;
1736 val_t REGB1;
1737 val_t REGB2;
1738 val_t tmp;
1739 if (init_table[itpos4]) return;
1740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1741 fra.me.file = LOCATE_array;
1742 fra.me.line = 306;
1743 fra.me.meth = LOCATE_array___Array___filled_with;
1744 fra.me.has_broke = 0;
1745 fra.me.REG_size = 3;
1746 fra.me.REG[0] = NIT_NULL;
1747 fra.me.REG[1] = NIT_NULL;
1748 fra.me.REG[2] = NIT_NULL;
1749 fra.me.REG[0] = p0;
1750 fra.me.REG[1] = p1;
1751 REGB0 = p2;
1752 /* ./../lib/standard//collection//array.nit:309 */
1753 REGB1 = TAG_Int(0);
1754 /* ./../lib/standard//kernel.nit:213 */
1755 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1756 /* ./../lib/standard//collection//array.nit:309 */
1757 if (UNTAG_Bool(REGB1)) {
1758 } else {
1759 nit_abort("Assert %s failed", "'positive'", LOCATE_array, 309);
1760 }
1761 /* ./../lib/standard//collection//array.nit:648 */
1762 fra.me.REG[2] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
1763 /* ./../lib/standard//collection//array.nit:310 */
1764 ATTR_array___Array____items(fra.me.REG[0]) = fra.me.REG[2];
1765 /* ./../lib/standard//collection//array.nit:311 */
1766 ATTR_array___Array____capacity(fra.me.REG[0]) = REGB0;
1767 /* ./../lib/standard//collection//array.nit:312 */
1768 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1769 /* ./../lib/standard//collection//array.nit:313 */
1770 REGB1 = TAG_Int(0);
1771 /* ./../lib/standard//collection//array.nit:314 */
1772 while(1) {
1773 /* ./../lib/standard//kernel.nit:212 */
1774 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
1775 /* ./../lib/standard//collection//array.nit:314 */
1776 if (UNTAG_Bool(REGB2)) {
1777 /* ./../lib/standard//collection//array.nit:315 */
1778 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1779 /* ./../lib/standard//collection//array.nit:316 */
1780 REGB2 = TAG_Int(1);
1781 /* ./../lib/standard//kernel.nit:215 */
1782 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1783 /* ./../lib/standard//collection//array.nit:316 */
1784 REGB1 = REGB2;
1785 } else {
1786 /* ./../lib/standard//collection//array.nit:314 */
1787 goto label1;
1788 }
1789 }
1790 label1: while(0);
1791 stack_frame_head = fra.me.prev;
1792 init_table[itpos4] = 1;
1793 return;
1794 }
1795 void array___Array___with_native(val_t p0, val_t p1, val_t p2, int* init_table){
1796 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Array].i;
1797 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1798 val_t REGB0;
1799 val_t REGB1;
1800 val_t tmp;
1801 if (init_table[itpos5]) return;
1802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1803 fra.me.file = LOCATE_array;
1804 fra.me.line = 320;
1805 fra.me.meth = LOCATE_array___Array___with_native;
1806 fra.me.has_broke = 0;
1807 fra.me.REG_size = 2;
1808 fra.me.REG[0] = NIT_NULL;
1809 fra.me.REG[1] = NIT_NULL;
1810 fra.me.REG[0] = p0;
1811 fra.me.REG[1] = p1;
1812 REGB0 = p2;
1813 /* ./../lib/standard//collection//array.nit:323 */
1814 REGB1 = TAG_Int(0);
1815 /* ./../lib/standard//kernel.nit:213 */
1816 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1817 /* ./../lib/standard//collection//array.nit:323 */
1818 if (UNTAG_Bool(REGB1)) {
1819 } else {
1820 nit_abort("Assert %s failed", "'positive'", LOCATE_array, 323);
1821 }
1822 /* ./../lib/standard//collection//array.nit:324 */
1823 ATTR_array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
1824 /* ./../lib/standard//collection//array.nit:325 */
1825 ATTR_array___Array____capacity(fra.me.REG[0]) = REGB0;
1826 /* ./../lib/standard//collection//array.nit:326 */
1827 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1828 stack_frame_head = fra.me.prev;
1829 init_table[itpos5] = 1;
1830 return;
1831 }
1832 val_t array___Array___intern_items(val_t p0){
1833 struct {struct stack_frame_t me;} fra;
1834 val_t REGB0;
1835 val_t tmp;
1836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1837 fra.me.file = LOCATE_array;
1838 fra.me.line = 332;
1839 fra.me.meth = LOCATE_array___Array___intern_items;
1840 fra.me.has_broke = 0;
1841 fra.me.REG_size = 1;
1842 fra.me.REG[0] = NIT_NULL;
1843 fra.me.REG[0] = p0;
1844 /* ./../lib/standard//collection//array.nit:334 */
1845 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
1846 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1847 if (UNTAG_Bool(REGB0)) {
1848 } else {
1849 nit_abort("Cast failed", NULL, LOCATE_array, 334);
1850 }
1851 goto label1;
1852 label1: while(0);
1853 stack_frame_head = fra.me.prev;
1854 return fra.me.REG[0];
1855 }
1856 void array___Array___sort(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1857 struct {struct stack_frame_t me;} fra;
1858 val_t REGB0;
1859 val_t REGB1;
1860 val_t REGB2;
1861 fun_t CREG[1];
1862 val_t tmp;
1863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1864 fra.me.file = LOCATE_array;
1865 fra.me.line = 339;
1866 fra.me.meth = LOCATE_array___Array___sort;
1867 fra.me.has_broke = 0;
1868 fra.me.REG_size = 1;
1869 fra.me.REG[0] = NIT_NULL;
1870 fra.me.closure_ctx = closctx_param;
1871 fra.me.closure_funs = CREG;
1872 fra.me.REG[0] = p0;
1873 CREG[0] = clos_fun0;
1874 /* ./../lib/standard//collection//array.nit:343 */
1875 REGB0 = TAG_Int(0);
1876 /* ./../lib/standard//collection//array.nit:23 */
1877 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1878 if (UNTAG_Bool(REGB1)) {
1879 } else {
1880 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1881 }
1882 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1883 /* ./../lib/standard//collection//array.nit:343 */
1884 REGB2 = TAG_Int(1);
1885 /* ./../lib/standard//kernel.nit:217 */
1886 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1887 CALL_array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2, (&(fra.me)), ((fun_t)OC_array___Array___sort_1));
1888 switch ((&(fra.me))->has_broke) {
1889 case 0: break;
1890 case 1: (&(fra.me))->has_broke = 0; goto label3;
1891 }
1892 label3: while(0);
1893 stack_frame_head = fra.me.prev;
1894 return;
1895 }
1896 val_t OC_array___Array___sort_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
1897 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1898 val_t REGB0;
1899 val_t tmp;
1900 /* ./../lib/standard//collection//array.nit:343 */
1901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1902 fra.me.file = LOCATE_array;
1903 fra.me.line = 343;
1904 fra.me.meth = LOCATE_array___Array___sort;
1905 fra.me.has_broke = 0;
1906 fra.me.REG_size = 2;
1907 fra.me.REG[0] = NIT_NULL;
1908 fra.me.REG[1] = NIT_NULL;
1909 fra.me.REG[0] = p0;
1910 fra.me.REG[1] = p1;
1911 REGB0 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0], fra.me.REG[1]);
1912 if (closctx->closure_ctx->has_broke) {
1913 closctx->has_broke = 1;
1914 goto label2;
1915 }
1916 goto label2;
1917 label2: while(0);
1918 stack_frame_head = fra.me.prev;
1919 return REGB0;
1920 }
1921 void array___Array___sub_sort(val_t p0, val_t p1, val_t p2, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1922 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1923 val_t REGB0;
1924 val_t REGB1;
1925 val_t REGB2;
1926 val_t REGB3;
1927 val_t REGB4;
1928 val_t REGB5;
1929 val_t REGB6;
1930 fun_t CREG[1];
1931 val_t tmp;
1932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1933 fra.me.file = LOCATE_array;
1934 fra.me.line = 346;
1935 fra.me.meth = LOCATE_array___Array___sub_sort;
1936 fra.me.has_broke = 0;
1937 fra.me.REG_size = 4;
1938 fra.me.REG[0] = NIT_NULL;
1939 fra.me.REG[1] = NIT_NULL;
1940 fra.me.REG[2] = NIT_NULL;
1941 fra.me.REG[3] = NIT_NULL;
1942 fra.me.closure_ctx = closctx_param;
1943 fra.me.closure_funs = CREG;
1944 fra.me.REG[0] = p0;
1945 REGB0 = p1;
1946 REGB1 = p2;
1947 CREG[0] = clos_fun0;
1948 /* ./../lib/standard//kernel.nit:213 */
1949 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1950 /* ./../lib/standard//collection//array.nit:350 */
1951 if (UNTAG_Bool(REGB2)) {
1952 /* ./../lib/standard//collection//array.nit:351 */
1953 goto label1;
1954 } else {
1955 /* ./../lib/standard//collection//array.nit:352 */
1956 REGB2 = TAG_Int(7);
1957 /* ./../lib/standard//kernel.nit:215 */
1958 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1959 /* ./../lib/standard//kernel.nit:212 */
1960 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
1961 /* ./../lib/standard//collection//array.nit:352 */
1962 if (UNTAG_Bool(REGB2)) {
1963 /* ./../lib/standard//collection//array.nit:243 */
1964 fra.me.REG[1] = fra.me.REG[0];
1965 REGB2 = REGB0;
1966 /* ./../lib/standard//collection//array.nit:245 */
1967 REGB3 = TAG_Int(0);
1968 /* ./../lib/standard//kernel.nit:213 */
1969 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
1970 /* ./../lib/standard//collection//array.nit:245 */
1971 if (UNTAG_Bool(REGB3)) {
1972 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1973 if (UNTAG_Bool(REGB3)) {
1974 } else {
1975 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
1976 }
1977 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1978 /* ./../lib/standard//kernel.nit:212 */
1979 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
1980 } else {
1981 /* ./../lib/standard//collection//array.nit:245 */
1982 REGB4 = TAG_Bool(false);
1983 REGB3 = REGB4;
1984 }
1985 if (UNTAG_Bool(REGB3)) {
1986 } else {
1987 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
1988 }
1989 /* ./../lib/standard//collection//array.nit:246 */
1990 fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[1]);
1991 REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1992 if (UNTAG_Bool(REGB3)) {
1993 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
1994 }
1995 /* ./../lib/standard//collection//array.nit:654 */
1996 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)];
1997 /* ./../lib/standard//collection//array.nit:246 */
1998 goto label2;
1999 label2: while(0);
2000 /* ./../lib/standard//collection//array.nit:354 */
2001 REGB2 = REGB0;
2002 /* ./../lib/standard//collection//array.nit:355 */
2003 REGB3 = REGB1;
2004 /* ./../lib/standard//collection//array.nit:356 */
2005 while(1) {
2006 /* ./../lib/standard//kernel.nit:214 */
2007 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2008 /* ./../lib/standard//collection//array.nit:356 */
2009 if (UNTAG_Bool(REGB4)) {
2010 /* ./../lib/standard//collection//array.nit:357 */
2011 while(1) {
2012 /* ./../lib/standard//kernel.nit:211 */
2013 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
2014 /* ./../lib/standard//collection//array.nit:357 */
2015 if (UNTAG_Bool(REGB4)) {
2016 /* ./../lib/standard//collection//array.nit:243 */
2017 fra.me.REG[2] = fra.me.REG[0];
2018 REGB4 = REGB2;
2019 /* ./../lib/standard//collection//array.nit:245 */
2020 REGB5 = TAG_Int(0);
2021 /* ./../lib/standard//kernel.nit:213 */
2022 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2023 /* ./../lib/standard//collection//array.nit:245 */
2024 if (UNTAG_Bool(REGB5)) {
2025 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2026 if (UNTAG_Bool(REGB5)) {
2027 } else {
2028 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2029 }
2030 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2031 /* ./../lib/standard//kernel.nit:212 */
2032 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2033 } else {
2034 /* ./../lib/standard//collection//array.nit:245 */
2035 REGB6 = TAG_Bool(false);
2036 REGB5 = REGB6;
2037 }
2038 if (UNTAG_Bool(REGB5)) {
2039 } else {
2040 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2041 }
2042 /* ./../lib/standard//collection//array.nit:246 */
2043 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2044 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2045 if (UNTAG_Bool(REGB5)) {
2046 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2047 }
2048 /* ./../lib/standard//collection//array.nit:654 */
2049 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2050 /* ./../lib/standard//collection//array.nit:246 */
2051 goto label3;
2052 label3: while(0);
2053 /* ./../lib/standard//collection//array.nit:357 */
2054 REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
2055 if (closctx_param->has_broke) {
2056 goto label1;
2057 }
2058 REGB5 = TAG_Int(0);
2059 /* ./../lib/standard//kernel.nit:211 */
2060 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5));
2061 } else {
2062 /* ./../lib/standard//collection//array.nit:357 */
2063 REGB4 = TAG_Bool(false);
2064 REGB5 = REGB4;
2065 }
2066 if (UNTAG_Bool(REGB5)) {
2067 REGB5 = TAG_Int(1);
2068 /* ./../lib/standard//kernel.nit:215 */
2069 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
2070 /* ./../lib/standard//collection//array.nit:357 */
2071 REGB2 = REGB5;
2072 } else {
2073 goto label4;
2074 }
2075 }
2076 label4: while(0);
2077 /* ./../lib/standard//collection//array.nit:358 */
2078 while(1) {
2079 /* ./../lib/standard//kernel.nit:214 */
2080 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2081 /* ./../lib/standard//collection//array.nit:358 */
2082 if (UNTAG_Bool(REGB5)) {
2083 /* ./../lib/standard//collection//array.nit:243 */
2084 fra.me.REG[2] = fra.me.REG[0];
2085 REGB5 = REGB3;
2086 /* ./../lib/standard//collection//array.nit:245 */
2087 REGB4 = TAG_Int(0);
2088 /* ./../lib/standard//kernel.nit:213 */
2089 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2090 /* ./../lib/standard//collection//array.nit:245 */
2091 if (UNTAG_Bool(REGB4)) {
2092 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2093 if (UNTAG_Bool(REGB4)) {
2094 } else {
2095 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2096 }
2097 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2098 /* ./../lib/standard//kernel.nit:212 */
2099 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
2100 } else {
2101 /* ./../lib/standard//collection//array.nit:245 */
2102 REGB6 = TAG_Bool(false);
2103 REGB4 = REGB6;
2104 }
2105 if (UNTAG_Bool(REGB4)) {
2106 } else {
2107 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2108 }
2109 /* ./../lib/standard//collection//array.nit:246 */
2110 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2111 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2112 if (UNTAG_Bool(REGB4)) {
2113 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2114 }
2115 /* ./../lib/standard//collection//array.nit:654 */
2116 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
2117 /* ./../lib/standard//collection//array.nit:246 */
2118 goto label5;
2119 label5: while(0);
2120 /* ./../lib/standard//collection//array.nit:358 */
2121 REGB5 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
2122 if (closctx_param->has_broke) {
2123 goto label1;
2124 }
2125 REGB4 = TAG_Int(0);
2126 /* ./../lib/standard//kernel.nit:213 */
2127 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2128 } else {
2129 /* ./../lib/standard//collection//array.nit:358 */
2130 REGB5 = TAG_Bool(false);
2131 REGB4 = REGB5;
2132 }
2133 if (UNTAG_Bool(REGB4)) {
2134 REGB4 = TAG_Int(1);
2135 /* ./../lib/standard//kernel.nit:217 */
2136 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
2137 /* ./../lib/standard//collection//array.nit:358 */
2138 REGB3 = REGB4;
2139 } else {
2140 goto label6;
2141 }
2142 }
2143 label6: while(0);
2144 /* ./../lib/standard//kernel.nit:214 */
2145 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2146 /* ./../lib/standard//collection//array.nit:359 */
2147 if (UNTAG_Bool(REGB4)) {
2148 /* ./../lib/standard//collection//array.nit:243 */
2149 fra.me.REG[2] = fra.me.REG[0];
2150 REGB4 = REGB2;
2151 /* ./../lib/standard//collection//array.nit:245 */
2152 REGB5 = TAG_Int(0);
2153 /* ./../lib/standard//kernel.nit:213 */
2154 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2155 /* ./../lib/standard//collection//array.nit:245 */
2156 if (UNTAG_Bool(REGB5)) {
2157 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2158 if (UNTAG_Bool(REGB5)) {
2159 } else {
2160 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2161 }
2162 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2163 /* ./../lib/standard//kernel.nit:212 */
2164 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2165 } else {
2166 /* ./../lib/standard//collection//array.nit:245 */
2167 REGB6 = TAG_Bool(false);
2168 REGB5 = REGB6;
2169 }
2170 if (UNTAG_Bool(REGB5)) {
2171 } else {
2172 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2173 }
2174 /* ./../lib/standard//collection//array.nit:246 */
2175 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2176 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2177 if (UNTAG_Bool(REGB5)) {
2178 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2179 }
2180 /* ./../lib/standard//collection//array.nit:654 */
2181 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2182 /* ./../lib/standard//collection//array.nit:246 */
2183 goto label7;
2184 label7: while(0);
2185 /* ./../lib/standard//collection//array.nit:243 */
2186 fra.me.REG[3] = fra.me.REG[0];
2187 REGB4 = REGB3;
2188 /* ./../lib/standard//collection//array.nit:245 */
2189 REGB5 = TAG_Int(0);
2190 /* ./../lib/standard//kernel.nit:213 */
2191 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2192 /* ./../lib/standard//collection//array.nit:245 */
2193 if (UNTAG_Bool(REGB5)) {
2194 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2195 if (UNTAG_Bool(REGB5)) {
2196 } else {
2197 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2198 }
2199 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
2200 /* ./../lib/standard//kernel.nit:212 */
2201 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2202 } else {
2203 /* ./../lib/standard//collection//array.nit:245 */
2204 REGB6 = TAG_Bool(false);
2205 REGB5 = REGB6;
2206 }
2207 if (UNTAG_Bool(REGB5)) {
2208 } else {
2209 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2210 }
2211 /* ./../lib/standard//collection//array.nit:246 */
2212 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
2213 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2214 if (UNTAG_Bool(REGB5)) {
2215 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2216 }
2217 /* ./../lib/standard//collection//array.nit:654 */
2218 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
2219 /* ./../lib/standard//collection//array.nit:246 */
2220 goto label8;
2221 label8: while(0);
2222 /* ./../lib/standard//collection//array.nit:361 */
2223 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[3]);
2224 /* ./../lib/standard//collection//array.nit:362 */
2225 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[2]);
2226 }
2227 } else {
2228 /* ./../lib/standard//collection//array.nit:356 */
2229 goto label9;
2230 }
2231 }
2232 label9: while(0);
2233 /* ./../lib/standard//collection//array.nit:365 */
2234 REGB3 = TAG_Int(1);
2235 /* ./../lib/standard//kernel.nit:217 */
2236 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2237 /* ./../lib/standard//collection//array.nit:243 */
2238 fra.me.REG[2] = fra.me.REG[0];
2239 /* ./../lib/standard//collection//array.nit:245 */
2240 REGB4 = TAG_Int(0);
2241 /* ./../lib/standard//kernel.nit:213 */
2242 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2243 /* ./../lib/standard//collection//array.nit:245 */
2244 if (UNTAG_Bool(REGB4)) {
2245 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2246 if (UNTAG_Bool(REGB4)) {
2247 } else {
2248 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2249 }
2250 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2251 /* ./../lib/standard//kernel.nit:212 */
2252 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2253 } else {
2254 /* ./../lib/standard//collection//array.nit:245 */
2255 REGB5 = TAG_Bool(false);
2256 REGB4 = REGB5;
2257 }
2258 if (UNTAG_Bool(REGB4)) {
2259 } else {
2260 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2261 }
2262 /* ./../lib/standard//collection//array.nit:246 */
2263 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2264 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2265 if (UNTAG_Bool(REGB4)) {
2266 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2267 }
2268 /* ./../lib/standard//collection//array.nit:654 */
2269 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
2270 /* ./../lib/standard//collection//array.nit:246 */
2271 goto label10;
2272 label10: while(0);
2273 /* ./../lib/standard//collection//array.nit:365 */
2274 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
2275 /* ./../lib/standard//collection//array.nit:366 */
2276 REGB3 = TAG_Int(1);
2277 /* ./../lib/standard//kernel.nit:217 */
2278 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2279 /* ./../lib/standard//collection//array.nit:366 */
2280 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[1]);
2281 /* ./../lib/standard//collection//array.nit:367 */
2282 REGB3 = TAG_Int(2);
2283 /* ./../lib/standard//kernel.nit:217 */
2284 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2285 CALL_array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB3, (&(fra.me)), ((fun_t)OC_array___Array___sub_sort_11));
2286 switch ((&(fra.me))->has_broke) {
2287 case 0: break;
2288 case 1: (&(fra.me))->has_broke = 0; goto label1;
2289 }
2290 CALL_array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB2, REGB1, (&(fra.me)), ((fun_t)OC_array___Array___sub_sort_13));
2291 switch ((&(fra.me))->has_broke) {
2292 case 0: break;
2293 case 1: (&(fra.me))->has_broke = 0; goto label1;
2294 }
2295 } else {
2296 /* ./../lib/standard//collection//array.nit:371 */
2297 while(1) {
2298 /* ./../lib/standard//kernel.nit:212 */
2299 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2300 /* ./../lib/standard//collection//array.nit:371 */
2301 if (UNTAG_Bool(REGB2)) {
2302 /* ./../lib/standard//collection//array.nit:372 */
2303 REGB2 = REGB0;
2304 /* ./../lib/standard//collection//array.nit:243 */
2305 fra.me.REG[1] = fra.me.REG[0];
2306 REGB3 = REGB0;
2307 /* ./../lib/standard//collection//array.nit:245 */
2308 REGB4 = TAG_Int(0);
2309 /* ./../lib/standard//kernel.nit:213 */
2310 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2311 /* ./../lib/standard//collection//array.nit:245 */
2312 if (UNTAG_Bool(REGB4)) {
2313 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2314 if (UNTAG_Bool(REGB4)) {
2315 } else {
2316 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2317 }
2318 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
2319 /* ./../lib/standard//kernel.nit:212 */
2320 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2321 } else {
2322 /* ./../lib/standard//collection//array.nit:245 */
2323 REGB5 = TAG_Bool(false);
2324 REGB4 = REGB5;
2325 }
2326 if (UNTAG_Bool(REGB4)) {
2327 } else {
2328 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2329 }
2330 /* ./../lib/standard//collection//array.nit:246 */
2331 fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[1]);
2332 REGB4 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2333 if (UNTAG_Bool(REGB4)) {
2334 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2335 }
2336 /* ./../lib/standard//collection//array.nit:654 */
2337 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB3)];
2338 /* ./../lib/standard//collection//array.nit:246 */
2339 goto label15;
2340 label15: while(0);
2341 /* ./../lib/standard//collection//array.nit:374 */
2342 REGB3 = REGB0;
2343 /* ./../lib/standard//collection//array.nit:375 */
2344 while(1) {
2345 /* ./../lib/standard//kernel.nit:211 */
2346 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
2347 /* ./../lib/standard//collection//array.nit:375 */
2348 if (UNTAG_Bool(REGB4)) {
2349 /* ./../lib/standard//collection//array.nit:243 */
2350 fra.me.REG[2] = fra.me.REG[0];
2351 REGB4 = REGB3;
2352 /* ./../lib/standard//collection//array.nit:245 */
2353 REGB5 = TAG_Int(0);
2354 /* ./../lib/standard//kernel.nit:213 */
2355 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2356 /* ./../lib/standard//collection//array.nit:245 */
2357 if (UNTAG_Bool(REGB5)) {
2358 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2359 if (UNTAG_Bool(REGB5)) {
2360 } else {
2361 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2362 }
2363 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2364 /* ./../lib/standard//kernel.nit:212 */
2365 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2366 } else {
2367 /* ./../lib/standard//collection//array.nit:245 */
2368 REGB6 = TAG_Bool(false);
2369 REGB5 = REGB6;
2370 }
2371 if (UNTAG_Bool(REGB5)) {
2372 } else {
2373 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2374 }
2375 /* ./../lib/standard//collection//array.nit:246 */
2376 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2377 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2378 if (UNTAG_Bool(REGB5)) {
2379 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2380 }
2381 /* ./../lib/standard//collection//array.nit:654 */
2382 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2383 /* ./../lib/standard//collection//array.nit:246 */
2384 goto label16;
2385 label16: while(0);
2386 /* ./../lib/standard//collection//array.nit:376 */
2387 REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[1], fra.me.REG[2]);
2388 if (closctx_param->has_broke) {
2389 goto label1;
2390 }
2391 REGB5 = TAG_Int(0);
2392 /* ./../lib/standard//kernel.nit:214 */
2393 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
2394 /* ./../lib/standard//collection//array.nit:376 */
2395 if (UNTAG_Bool(REGB5)) {
2396 /* ./../lib/standard//collection//array.nit:377 */
2397 REGB2 = REGB3;
2398 /* ./../lib/standard//collection//array.nit:243 */
2399 fra.me.REG[2] = fra.me.REG[0];
2400 REGB5 = REGB3;
2401 /* ./../lib/standard//collection//array.nit:245 */
2402 REGB4 = TAG_Int(0);
2403 /* ./../lib/standard//kernel.nit:213 */
2404 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2405 /* ./../lib/standard//collection//array.nit:245 */
2406 if (UNTAG_Bool(REGB4)) {
2407 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2408 if (UNTAG_Bool(REGB4)) {
2409 } else {
2410 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2411 }
2412 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2413 /* ./../lib/standard//kernel.nit:212 */
2414 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
2415 } else {
2416 /* ./../lib/standard//collection//array.nit:245 */
2417 REGB6 = TAG_Bool(false);
2418 REGB4 = REGB6;
2419 }
2420 if (UNTAG_Bool(REGB4)) {
2421 } else {
2422 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2423 }
2424 /* ./../lib/standard//collection//array.nit:246 */
2425 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2426 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2427 if (UNTAG_Bool(REGB4)) {
2428 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2429 }
2430 /* ./../lib/standard//collection//array.nit:654 */
2431 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
2432 /* ./../lib/standard//collection//array.nit:246 */
2433 goto label17;
2434 label17: while(0);
2435 /* ./../lib/standard//collection//array.nit:378 */
2436 fra.me.REG[1] = fra.me.REG[2];
2437 }
2438 /* ./../lib/standard//collection//array.nit:380 */
2439 REGB5 = TAG_Int(1);
2440 /* ./../lib/standard//kernel.nit:215 */
2441 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
2442 /* ./../lib/standard//collection//array.nit:380 */
2443 REGB3 = REGB5;
2444 } else {
2445 /* ./../lib/standard//collection//array.nit:375 */
2446 goto label18;
2447 }
2448 }
2449 label18: while(0);
2450 /* ./../lib/standard//collection//array.nit:382 */
2451 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
2452 if (UNTAG_Bool(REGB3)) {
2453 } else {
2454 /* ./../lib/standard//kernel.nit:207 */
2455 REGB5 = TAG_Bool((REGB2)==(REGB0));
2456 /* ./../lib/standard//collection//array.nit:382 */
2457 REGB3 = REGB5;
2458 }
2459 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2460 if (UNTAG_Bool(REGB3)) {
2461 /* ./../lib/standard//collection//array.nit:243 */
2462 fra.me.REG[2] = fra.me.REG[0];
2463 REGB3 = REGB0;
2464 /* ./../lib/standard//collection//array.nit:245 */
2465 REGB5 = TAG_Int(0);
2466 /* ./../lib/standard//kernel.nit:213 */
2467 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
2468 /* ./../lib/standard//collection//array.nit:245 */
2469 if (UNTAG_Bool(REGB5)) {
2470 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2471 if (UNTAG_Bool(REGB5)) {
2472 } else {
2473 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2474 }
2475 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2476 /* ./../lib/standard//kernel.nit:212 */
2477 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
2478 } else {
2479 /* ./../lib/standard//collection//array.nit:245 */
2480 REGB4 = TAG_Bool(false);
2481 REGB5 = REGB4;
2482 }
2483 if (UNTAG_Bool(REGB5)) {
2484 } else {
2485 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2486 }
2487 /* ./../lib/standard//collection//array.nit:246 */
2488 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2489 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2490 if (UNTAG_Bool(REGB5)) {
2491 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2492 }
2493 /* ./../lib/standard//collection//array.nit:654 */
2494 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
2495 /* ./../lib/standard//collection//array.nit:246 */
2496 goto label19;
2497 label19: while(0);
2498 /* ./../lib/standard//collection//array.nit:383 */
2499 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[2]);
2500 /* ./../lib/standard//collection//array.nit:384 */
2501 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2502 }
2503 /* ./../lib/standard//collection//array.nit:386 */
2504 REGB2 = TAG_Int(1);
2505 /* ./../lib/standard//kernel.nit:215 */
2506 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2507 /* ./../lib/standard//collection//array.nit:386 */
2508 REGB0 = REGB2;
2509 } else {
2510 /* ./../lib/standard//collection//array.nit:371 */
2511 goto label20;
2512 }
2513 }
2514 label20: while(0);
2515 }
2516 }
2517 label1: while(0);
2518 stack_frame_head = fra.me.prev;
2519 return;
2520 }
2521 val_t OC_array___Array___sub_sort_11(struct stack_frame_t *closctx, val_t p0, val_t p1){
2522 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2523 val_t REGB0;
2524 val_t tmp;
2525 /* ./../lib/standard//collection//array.nit:367 */
2526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2527 fra.me.file = LOCATE_array;
2528 fra.me.line = 367;
2529 fra.me.meth = LOCATE_array___Array___sub_sort;
2530 fra.me.has_broke = 0;
2531 fra.me.REG_size = 2;
2532 fra.me.REG[0] = NIT_NULL;
2533 fra.me.REG[1] = NIT_NULL;
2534 fra.me.REG[0] = p0;
2535 fra.me.REG[1] = p1;
2536 REGB0 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0], fra.me.REG[1]);
2537 if (closctx->closure_ctx->has_broke) {
2538 closctx->has_broke = 1;
2539 goto label12;
2540 }
2541 goto label12;
2542 label12: while(0);
2543 stack_frame_head = fra.me.prev;
2544 return REGB0;
2545 }
2546 val_t OC_array___Array___sub_sort_13(struct stack_frame_t *closctx, val_t p0, val_t p1){
2547 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2548 val_t REGB0;
2549 val_t tmp;
2550 /* ./../lib/standard//collection//array.nit:368 */
2551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2552 fra.me.file = LOCATE_array;
2553 fra.me.line = 368;
2554 fra.me.meth = LOCATE_array___Array___sub_sort;
2555 fra.me.has_broke = 0;
2556 fra.me.REG_size = 2;
2557 fra.me.REG[0] = NIT_NULL;
2558 fra.me.REG[1] = NIT_NULL;
2559 fra.me.REG[0] = p0;
2560 fra.me.REG[1] = p1;
2561 REGB0 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0], fra.me.REG[1]);
2562 if (closctx->closure_ctx->has_broke) {
2563 closctx->has_broke = 1;
2564 goto label14;
2565 }
2566 goto label14;
2567 label14: while(0);
2568 stack_frame_head = fra.me.prev;
2569 return REGB0;
2570 }
2571 val_t array___ArrayIterator___item(val_t p0){
2572 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2573 val_t REGB0;
2574 val_t tmp;
2575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2576 fra.me.file = LOCATE_array;
2577 fra.me.line = 395;
2578 fra.me.meth = LOCATE_array___ArrayIterator___item;
2579 fra.me.has_broke = 0;
2580 fra.me.REG_size = 2;
2581 fra.me.REG[0] = NIT_NULL;
2582 fra.me.REG[1] = NIT_NULL;
2583 fra.me.REG[0] = p0;
2584 /* ./../lib/standard//collection//array.nit:395 */
2585 REGB0 = TAG_Bool(ATTR_array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
2586 if (UNTAG_Bool(REGB0)) {
2587 } else {
2588 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 395);
2589 }
2590 fra.me.REG[1] = ATTR_array___ArrayIterator____array(fra.me.REG[0]);
2591 REGB0 = TAG_Bool(ATTR_array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
2592 if (UNTAG_Bool(REGB0)) {
2593 } else {
2594 nit_abort("Uninitialized attribute %s", "_index", LOCATE_array, 395);
2595 }
2596 REGB0 = ATTR_array___ArrayIterator____index(fra.me.REG[0]);
2597 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
2598 goto label1;
2599 label1: while(0);
2600 stack_frame_head = fra.me.prev;
2601 return fra.me.REG[1];
2602 }
2603 val_t array___ArrayIterator___is_ok(val_t p0){
2604 struct {struct stack_frame_t me;} fra;
2605 val_t REGB0;
2606 val_t REGB1;
2607 val_t tmp;
2608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2609 fra.me.file = LOCATE_array;
2610 fra.me.line = 399;
2611 fra.me.meth = LOCATE_array___ArrayIterator___is_ok;
2612 fra.me.has_broke = 0;
2613 fra.me.REG_size = 1;
2614 fra.me.REG[0] = NIT_NULL;
2615 fra.me.REG[0] = p0;
2616 /* ./../lib/standard//collection//array.nit:399 */
2617 REGB0 = TAG_Bool(ATTR_array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
2618 if (UNTAG_Bool(REGB0)) {
2619 } else {
2620 nit_abort("Uninitialized attribute %s", "_index", LOCATE_array, 399);
2621 }
2622 REGB0 = ATTR_array___ArrayIterator____index(fra.me.REG[0]);
2623 REGB1 = TAG_Bool(ATTR_array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
2624 if (UNTAG_Bool(REGB1)) {
2625 } else {
2626 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 399);
2627 }
2628 fra.me.REG[0] = ATTR_array___ArrayIterator____array(fra.me.REG[0]);
2629 /* ./../lib/standard//collection//array.nit:23 */
2630 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2631 if (UNTAG_Bool(REGB1)) {
2632 } else {
2633 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2634 }
2635 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
2636 /* ./../lib/standard//kernel.nit:212 */
2637 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2638 /* ./../lib/standard//collection//array.nit:399 */
2639 goto label1;
2640 label1: while(0);
2641 stack_frame_head = fra.me.prev;
2642 return REGB1;
2643 }
2644 void array___ArrayIterator___next(val_t p0){
2645 struct {struct stack_frame_t me;} fra;
2646 val_t REGB0;
2647 val_t REGB1;
2648 val_t tmp;
2649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2650 fra.me.file = LOCATE_array;
2651 fra.me.line = 401;
2652 fra.me.meth = LOCATE_array___ArrayIterator___next;
2653 fra.me.has_broke = 0;
2654 fra.me.REG_size = 1;
2655 fra.me.REG[0] = NIT_NULL;
2656 fra.me.REG[0] = p0;
2657 /* ./../lib/standard//collection//array.nit:401 */
2658 REGB0 = ATTR_array___ArrayIterator____index(fra.me.REG[0]);
2659 REGB1 = TAG_Int(1);
2660 /* ./../lib/standard//kernel.nit:215 */
2661 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2662 /* ./../lib/standard//collection//array.nit:401 */
2663 ATTR_array___ArrayIterator____index(fra.me.REG[0]) = REGB1;
2664 stack_frame_head = fra.me.prev;
2665 return;
2666 }
2667 void array___ArrayIterator___init(val_t p0, val_t p1, int* init_table){
2668 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ArrayIterator].i;
2669 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2670 val_t REGB0;
2671 val_t tmp;
2672 if (init_table[itpos6]) return;
2673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2674 fra.me.file = LOCATE_array;
2675 fra.me.line = 403;
2676 fra.me.meth = LOCATE_array___ArrayIterator___init;
2677 fra.me.has_broke = 0;
2678 fra.me.REG_size = 2;
2679 fra.me.REG[0] = NIT_NULL;
2680 fra.me.REG[1] = NIT_NULL;
2681 fra.me.REG[0] = p0;
2682 fra.me.REG[1] = p1;
2683 /* ./../lib/standard//collection//array.nit:405 */
2684 ATTR_array___ArrayIterator____array(fra.me.REG[0]) = fra.me.REG[1];
2685 /* ./../lib/standard//collection//array.nit:406 */
2686 REGB0 = TAG_Int(0);
2687 ATTR_array___ArrayIterator____index(fra.me.REG[0]) = REGB0;
2688 stack_frame_head = fra.me.prev;
2689 init_table[itpos6] = 1;
2690 return;
2691 }
2692 val_t array___ArrayIterator___index(val_t p0){
2693 struct {struct stack_frame_t me;} fra;
2694 val_t REGB0;
2695 val_t tmp;
2696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2697 fra.me.file = LOCATE_array;
2698 fra.me.line = 409;
2699 fra.me.meth = LOCATE_array___ArrayIterator___index;
2700 fra.me.has_broke = 0;
2701 fra.me.REG_size = 1;
2702 fra.me.REG[0] = NIT_NULL;
2703 fra.me.REG[0] = p0;
2704 /* ./../lib/standard//collection//array.nit:409 */
2705 REGB0 = TAG_Bool(ATTR_array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
2706 if (UNTAG_Bool(REGB0)) {
2707 } else {
2708 nit_abort("Uninitialized attribute %s", "_index", LOCATE_array, 409);
2709 }
2710 REGB0 = ATTR_array___ArrayIterator____index(fra.me.REG[0]);
2711 stack_frame_head = fra.me.prev;
2712 return REGB0;
2713 }
2714 val_t array___ArraySet___has(val_t p0, val_t p1){
2715 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2716 val_t REGB0;
2717 val_t tmp;
2718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2719 fra.me.file = LOCATE_array;
2720 fra.me.line = 421;
2721 fra.me.meth = LOCATE_array___ArraySet___has;
2722 fra.me.has_broke = 0;
2723 fra.me.REG_size = 2;
2724 fra.me.REG[0] = NIT_NULL;
2725 fra.me.REG[1] = NIT_NULL;
2726 fra.me.REG[0] = p0;
2727 fra.me.REG[1] = p1;
2728 /* ./../lib/standard//collection//array.nit:421 */
2729 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2730 if (UNTAG_Bool(REGB0)) {
2731 } else {
2732 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 421);
2733 }
2734 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2735 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2736 goto label1;
2737 label1: while(0);
2738 stack_frame_head = fra.me.prev;
2739 return REGB0;
2740 }
2741 void array___ArraySet___add(val_t p0, val_t p1){
2742 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2743 val_t REGB0;
2744 val_t tmp;
2745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2746 fra.me.file = LOCATE_array;
2747 fra.me.line = 423;
2748 fra.me.meth = LOCATE_array___ArraySet___add;
2749 fra.me.has_broke = 0;
2750 fra.me.REG_size = 3;
2751 fra.me.REG[0] = NIT_NULL;
2752 fra.me.REG[1] = NIT_NULL;
2753 fra.me.REG[2] = NIT_NULL;
2754 fra.me.REG[0] = p0;
2755 fra.me.REG[1] = p1;
2756 /* ./../lib/standard//collection//array.nit:423 */
2757 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2758 if (UNTAG_Bool(REGB0)) {
2759 } else {
2760 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 423);
2761 }
2762 fra.me.REG[2] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2763 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2764 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2765 if (UNTAG_Bool(REGB0)) {
2766 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2767 if (UNTAG_Bool(REGB0)) {
2768 } else {
2769 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 423);
2770 }
2771 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2772 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2773 }
2774 stack_frame_head = fra.me.prev;
2775 return;
2776 }
2777 val_t array___ArraySet___is_empty(val_t p0){
2778 struct {struct stack_frame_t me;} fra;
2779 val_t REGB0;
2780 val_t tmp;
2781 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2782 fra.me.file = LOCATE_array;
2783 fra.me.line = 425;
2784 fra.me.meth = LOCATE_array___ArraySet___is_empty;
2785 fra.me.has_broke = 0;
2786 fra.me.REG_size = 1;
2787 fra.me.REG[0] = NIT_NULL;
2788 fra.me.REG[0] = p0;
2789 /* ./../lib/standard//collection//array.nit:425 */
2790 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2791 if (UNTAG_Bool(REGB0)) {
2792 } else {
2793 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 425);
2794 }
2795 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2796 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
2797 goto label1;
2798 label1: while(0);
2799 stack_frame_head = fra.me.prev;
2800 return REGB0;
2801 }
2802 val_t array___ArraySet___length(val_t p0){
2803 struct {struct stack_frame_t me;} fra;
2804 val_t REGB0;
2805 val_t tmp;
2806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2807 fra.me.file = LOCATE_array;
2808 fra.me.line = 427;
2809 fra.me.meth = LOCATE_array___ArraySet___length;
2810 fra.me.has_broke = 0;
2811 fra.me.REG_size = 1;
2812 fra.me.REG[0] = NIT_NULL;
2813 fra.me.REG[0] = p0;
2814 /* ./../lib/standard//collection//array.nit:427 */
2815 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2816 if (UNTAG_Bool(REGB0)) {
2817 } else {
2818 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 427);
2819 }
2820 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2821 /* ./../lib/standard//collection//array.nit:23 */
2822 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2823 if (UNTAG_Bool(REGB0)) {
2824 } else {
2825 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2826 }
2827 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
2828 /* ./../lib/standard//collection//array.nit:427 */
2829 goto label1;
2830 label1: while(0);
2831 stack_frame_head = fra.me.prev;
2832 return REGB0;
2833 }
2834 val_t array___ArraySet___first(val_t p0){
2835 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2836 val_t REGB0;
2837 val_t REGB1;
2838 val_t tmp;
2839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2840 fra.me.file = LOCATE_array;
2841 fra.me.line = 429;
2842 fra.me.meth = LOCATE_array___ArraySet___first;
2843 fra.me.has_broke = 0;
2844 fra.me.REG_size = 2;
2845 fra.me.REG[0] = NIT_NULL;
2846 fra.me.REG[1] = NIT_NULL;
2847 fra.me.REG[0] = p0;
2848 /* ./../lib/standard//collection//array.nit:431 */
2849 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2850 if (UNTAG_Bool(REGB0)) {
2851 } else {
2852 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 431);
2853 }
2854 fra.me.REG[1] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2855 /* ./../lib/standard//collection//array.nit:23 */
2856 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2857 if (UNTAG_Bool(REGB0)) {
2858 } else {
2859 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2860 }
2861 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
2862 /* ./../lib/standard//collection//array.nit:431 */
2863 REGB1 = TAG_Int(0);
2864 /* ./../lib/standard//kernel.nit:214 */
2865 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
2866 /* ./../lib/standard//collection//array.nit:431 */
2867 if (UNTAG_Bool(REGB1)) {
2868 } else {
2869 nit_abort("Assert failed", NULL, LOCATE_array, 431);
2870 }
2871 /* ./../lib/standard//collection//array.nit:432 */
2872 REGB1 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2873 if (UNTAG_Bool(REGB1)) {
2874 } else {
2875 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 432);
2876 }
2877 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2878 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
2879 goto label1;
2880 label1: while(0);
2881 stack_frame_head = fra.me.prev;
2882 return fra.me.REG[0];
2883 }
2884 void array___ArraySet___remove(val_t p0, val_t p1){
2885 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2886 val_t REGB0;
2887 val_t REGB1;
2888 val_t tmp;
2889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2890 fra.me.file = LOCATE_array;
2891 fra.me.line = 435;
2892 fra.me.meth = LOCATE_array___ArraySet___remove;
2893 fra.me.has_broke = 0;
2894 fra.me.REG_size = 3;
2895 fra.me.REG[0] = NIT_NULL;
2896 fra.me.REG[1] = NIT_NULL;
2897 fra.me.REG[2] = NIT_NULL;
2898 fra.me.REG[0] = p0;
2899 fra.me.REG[1] = p1;
2900 /* ./../lib/standard//collection//array.nit:437 */
2901 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2902 if (UNTAG_Bool(REGB0)) {
2903 } else {
2904 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 437);
2905 }
2906 fra.me.REG[2] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2907 REGB0 = CALL_abstract_collection___SequenceRead___index_of(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2908 /* ./../lib/standard//collection//array.nit:438 */
2909 REGB1 = TAG_Int(0);
2910 /* ./../lib/standard//kernel.nit:213 */
2911 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2912 /* ./../lib/standard//collection//array.nit:438 */
2913 if (UNTAG_Bool(REGB1)) {
2914 CALL_array___ArraySet___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
2915 }
2916 stack_frame_head = fra.me.prev;
2917 return;
2918 }
2919 void array___ArraySet___remove_all(val_t p0, val_t p1){
2920 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2921 val_t tmp;
2922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2923 fra.me.file = LOCATE_array;
2924 fra.me.line = 441;
2925 fra.me.meth = LOCATE_array___ArraySet___remove_all;
2926 fra.me.has_broke = 0;
2927 fra.me.REG_size = 2;
2928 fra.me.REG[0] = NIT_NULL;
2929 fra.me.REG[1] = NIT_NULL;
2930 fra.me.REG[0] = p0;
2931 fra.me.REG[1] = p1;
2932 /* ./../lib/standard//collection//array.nit:441 */
2933 CALL_abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2934 stack_frame_head = fra.me.prev;
2935 return;
2936 }
2937 void array___ArraySet___clear(val_t p0){
2938 struct {struct stack_frame_t me;} fra;
2939 val_t REGB0;
2940 val_t tmp;
2941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2942 fra.me.file = LOCATE_array;
2943 fra.me.line = 443;
2944 fra.me.meth = LOCATE_array___ArraySet___clear;
2945 fra.me.has_broke = 0;
2946 fra.me.REG_size = 1;
2947 fra.me.REG[0] = NIT_NULL;
2948 fra.me.REG[0] = p0;
2949 /* ./../lib/standard//collection//array.nit:443 */
2950 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2951 if (UNTAG_Bool(REGB0)) {
2952 } else {
2953 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 443);
2954 }
2955 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2956 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
2957 stack_frame_head = fra.me.prev;
2958 return;
2959 }
2960 val_t array___ArraySet___iterator(val_t p0){
2961 struct {struct stack_frame_t me;} fra;
2962 val_t REGB0;
2963 val_t tmp;
2964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2965 fra.me.file = LOCATE_array;
2966 fra.me.line = 445;
2967 fra.me.meth = LOCATE_array___ArraySet___iterator;
2968 fra.me.has_broke = 0;
2969 fra.me.REG_size = 1;
2970 fra.me.REG[0] = NIT_NULL;
2971 fra.me.REG[0] = p0;
2972 /* ./../lib/standard//collection//array.nit:445 */
2973 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
2974 if (UNTAG_Bool(REGB0)) {
2975 } else {
2976 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 445);
2977 }
2978 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
2979 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
2980 fra.me.REG[0] = NEW_ArraySetIterator_array___ArraySetIterator___init(fra.me.REG[0]);
2981 goto label1;
2982 label1: while(0);
2983 stack_frame_head = fra.me.prev;
2984 return fra.me.REG[0];
2985 }
2986 void array___ArraySet___enlarge(val_t p0, val_t p1){
2987 struct {struct stack_frame_t me;} fra;
2988 val_t REGB0;
2989 val_t REGB1;
2990 val_t tmp;
2991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2992 fra.me.file = LOCATE_array;
2993 fra.me.line = 447;
2994 fra.me.meth = LOCATE_array___ArraySet___enlarge;
2995 fra.me.has_broke = 0;
2996 fra.me.REG_size = 1;
2997 fra.me.REG[0] = NIT_NULL;
2998 fra.me.REG[0] = p0;
2999 REGB0 = p1;
3000 /* ./../lib/standard//collection//array.nit:448 */
3001 REGB1 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3002 if (UNTAG_Bool(REGB1)) {
3003 } else {
3004 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 448);
3005 }
3006 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
3007 CALL_array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB0);
3008 stack_frame_head = fra.me.prev;
3009 return;
3010 }
3011 void array___ArraySet___remove_at(val_t p0, val_t p1){
3012 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3013 val_t REGB0;
3014 val_t REGB1;
3015 val_t tmp;
3016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3017 fra.me.file = LOCATE_array;
3018 fra.me.line = 450;
3019 fra.me.meth = LOCATE_array___ArraySet___remove_at;
3020 fra.me.has_broke = 0;
3021 fra.me.REG_size = 3;
3022 fra.me.REG[0] = NIT_NULL;
3023 fra.me.REG[1] = NIT_NULL;
3024 fra.me.REG[2] = NIT_NULL;
3025 fra.me.REG[0] = p0;
3026 REGB0 = p1;
3027 /* ./../lib/standard//collection//array.nit:452 */
3028 REGB1 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3029 if (UNTAG_Bool(REGB1)) {
3030 } else {
3031 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 452);
3032 }
3033 fra.me.REG[1] = ATTR_array___ArraySet____array(fra.me.REG[0]);
3034 REGB1 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3035 if (UNTAG_Bool(REGB1)) {
3036 } else {
3037 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 452);
3038 }
3039 fra.me.REG[2] = ATTR_array___ArraySet____array(fra.me.REG[0]);
3040 fra.me.REG[2] = CALL_abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
3041 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
3042 /* ./../lib/standard//collection//array.nit:453 */
3043 REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3044 if (UNTAG_Bool(REGB0)) {
3045 } else {
3046 nit_abort("Uninitialized attribute %s", "_array", LOCATE_array, 453);
3047 }
3048 fra.me.REG[0] = ATTR_array___ArraySet____array(fra.me.REG[0]);
3049 CALL_abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
3050 stack_frame_head = fra.me.prev;
3051 return;
3052 }
3053 void array___ArraySet___init(val_t p0, int* init_table){
3054 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ArraySet].i;
3055 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3056 val_t tmp;
3057 if (init_table[itpos7]) return;
3058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3059 fra.me.file = LOCATE_array;
3060 fra.me.line = 456;
3061 fra.me.meth = LOCATE_array___ArraySet___init;
3062 fra.me.has_broke = 0;
3063 fra.me.REG_size = 2;
3064 fra.me.REG[0] = NIT_NULL;
3065 fra.me.REG[1] = NIT_NULL;
3066 fra.me.REG[0] = p0;
3067 /* ./../lib/standard//collection//array.nit:457 */
3068 fra.me.REG[1] = NEW_Array_array___Array___init();
3069 ATTR_array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
3070 stack_frame_head = fra.me.prev;
3071 init_table[itpos7] = 1;
3072 return;
3073 }
3074 void array___ArraySet___with_capacity(val_t p0, val_t p1, int* init_table){
3075 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ArraySet].i;
3076 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3077 val_t REGB0;
3078 val_t tmp;
3079 if (init_table[itpos8]) return;
3080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3081 fra.me.file = LOCATE_array;
3082 fra.me.line = 459;
3083 fra.me.meth = LOCATE_array___ArraySet___with_capacity;
3084 fra.me.has_broke = 0;
3085 fra.me.REG_size = 2;
3086 fra.me.REG[0] = NIT_NULL;
3087 fra.me.REG[1] = NIT_NULL;
3088 fra.me.REG[0] = p0;
3089 REGB0 = p1;
3090 /* ./../lib/standard//collection//array.nit:460 */
3091 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
3092 ATTR_array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
3093 stack_frame_head = fra.me.prev;
3094 init_table[itpos8] = 1;
3095 return;
3096 }
3097 val_t array___ArraySetIterator___is_ok(val_t p0){
3098 struct {struct stack_frame_t me;} fra;
3099 val_t REGB0;
3100 val_t tmp;
3101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3102 fra.me.file = LOCATE_array;
3103 fra.me.line = 467;
3104 fra.me.meth = LOCATE_array___ArraySetIterator___is_ok;
3105 fra.me.has_broke = 0;
3106 fra.me.REG_size = 1;
3107 fra.me.REG[0] = NIT_NULL;
3108 fra.me.REG[0] = p0;
3109 /* ./../lib/standard//collection//array.nit:467 */
3110 REGB0 = TAG_Bool(ATTR_array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3111 if (UNTAG_Bool(REGB0)) {
3112 } else {
3113 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_array, 467);
3114 }
3115 fra.me.REG[0] = ATTR_array___ArraySetIterator____iter(fra.me.REG[0]);
3116 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
3117 goto label1;
3118 label1: while(0);
3119 stack_frame_head = fra.me.prev;
3120 return REGB0;
3121 }
3122 void array___ArraySetIterator___next(val_t p0){
3123 struct {struct stack_frame_t me;} fra;
3124 val_t REGB0;
3125 val_t tmp;
3126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3127 fra.me.file = LOCATE_array;
3128 fra.me.line = 469;
3129 fra.me.meth = LOCATE_array___ArraySetIterator___next;
3130 fra.me.has_broke = 0;
3131 fra.me.REG_size = 1;
3132 fra.me.REG[0] = NIT_NULL;
3133 fra.me.REG[0] = p0;
3134 /* ./../lib/standard//collection//array.nit:469 */
3135 REGB0 = TAG_Bool(ATTR_array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3136 if (UNTAG_Bool(REGB0)) {
3137 } else {
3138 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_array, 469);
3139 }
3140 fra.me.REG[0] = ATTR_array___ArraySetIterator____iter(fra.me.REG[0]);
3141 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
3142 stack_frame_head = fra.me.prev;
3143 return;
3144 }
3145 val_t array___ArraySetIterator___item(val_t p0){
3146 struct {struct stack_frame_t me;} fra;
3147 val_t REGB0;
3148 val_t tmp;
3149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3150 fra.me.file = LOCATE_array;
3151 fra.me.line = 471;
3152 fra.me.meth = LOCATE_array___ArraySetIterator___item;
3153 fra.me.has_broke = 0;
3154 fra.me.REG_size = 1;
3155 fra.me.REG[0] = NIT_NULL;
3156 fra.me.REG[0] = p0;
3157 /* ./../lib/standard//collection//array.nit:471 */
3158 REGB0 = TAG_Bool(ATTR_array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3159 if (UNTAG_Bool(REGB0)) {
3160 } else {
3161 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_array, 471);
3162 }
3163 fra.me.REG[0] = ATTR_array___ArraySetIterator____iter(fra.me.REG[0]);
3164 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
3165 goto label1;
3166 label1: while(0);
3167 stack_frame_head = fra.me.prev;
3168 return fra.me.REG[0];
3169 }
3170 void array___ArraySetIterator___init(val_t p0, val_t p1, int* init_table){
3171 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ArraySetIterator].i;
3172 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3173 val_t tmp;
3174 if (init_table[itpos9]) return;
3175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3176 fra.me.file = LOCATE_array;
3177 fra.me.line = 473;
3178 fra.me.meth = LOCATE_array___ArraySetIterator___init;
3179 fra.me.has_broke = 0;
3180 fra.me.REG_size = 2;
3181 fra.me.REG[0] = NIT_NULL;
3182 fra.me.REG[1] = NIT_NULL;
3183 fra.me.REG[0] = p0;
3184 fra.me.REG[1] = p1;
3185 /* ./../lib/standard//collection//array.nit:473 */
3186 ATTR_array___ArraySetIterator____iter(fra.me.REG[0]) = fra.me.REG[1];
3187 stack_frame_head = fra.me.prev;
3188 init_table[itpos9] = 1;
3189 return;
3190 }
3191 val_t array___ArrayMap_____bra(val_t p0, val_t p1){
3192 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3193 val_t REGB0;
3194 val_t REGB1;
3195 val_t REGB2;
3196 val_t tmp;
3197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3198 fra.me.file = LOCATE_array;
3199 fra.me.line = 483;
3200 fra.me.meth = LOCATE_array___ArrayMap_____bra;
3201 fra.me.has_broke = 0;
3202 fra.me.REG_size = 2;
3203 fra.me.REG[0] = NIT_NULL;
3204 fra.me.REG[1] = NIT_NULL;
3205 fra.me.REG[0] = p0;
3206 fra.me.REG[1] = p1;
3207 /* ./../lib/standard//collection//array.nit:486 */
3208 REGB0 = CALL_array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3209 /* ./../lib/standard//collection//array.nit:487 */
3210 REGB1 = TAG_Int(0);
3211 /* ./../lib/standard//kernel.nit:213 */
3212 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3213 /* ./../lib/standard//collection//array.nit:487 */
3214 if (UNTAG_Bool(REGB1)) {
3215 /* ./../lib/standard//collection//array.nit:488 */
3216 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3217 if (UNTAG_Bool(REGB1)) {
3218 } else {
3219 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 488);
3220 }
3221 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3222 /* ./../lib/standard//collection//array.nit:245 */
3223 REGB1 = TAG_Int(0);
3224 /* ./../lib/standard//kernel.nit:213 */
3225 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3226 /* ./../lib/standard//collection//array.nit:245 */
3227 if (UNTAG_Bool(REGB1)) {
3228 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3229 if (UNTAG_Bool(REGB1)) {
3230 } else {
3231 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
3232 }
3233 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3234 /* ./../lib/standard//kernel.nit:212 */
3235 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3236 } else {
3237 /* ./../lib/standard//collection//array.nit:245 */
3238 REGB2 = TAG_Bool(false);
3239 REGB1 = REGB2;
3240 }
3241 if (UNTAG_Bool(REGB1)) {
3242 } else {
3243 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
3244 }
3245 /* ./../lib/standard//collection//array.nit:246 */
3246 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
3247 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3248 if (UNTAG_Bool(REGB1)) {
3249 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
3250 }
3251 /* ./../lib/standard//collection//array.nit:654 */
3252 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
3253 /* ./../lib/standard//collection//array.nit:246 */
3254 goto label1;
3255 label1: while(0);
3256 /* ./../lib/standard//collection//array.nit:488 */
3257 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3258 if (UNTAG_Bool(REGB0)) {
3259 nit_abort("Reciever is null", NULL, LOCATE_array, 488);
3260 }
3261 fra.me.REG[0] = CALL_abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
3262 goto label2;
3263 } else {
3264 /* ./../lib/standard//collection//array.nit:490 */
3265 nit_abort("Aborted", NULL, LOCATE_array, 490);
3266 }
3267 label2: while(0);
3268 stack_frame_head = fra.me.prev;
3269 return fra.me.REG[0];
3270 }
3271 void array___ArrayMap_____braeq(val_t p0, val_t p1, val_t p2){
3272 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3273 val_t REGB0;
3274 val_t REGB1;
3275 val_t REGB2;
3276 val_t tmp;
3277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3278 fra.me.file = LOCATE_array;
3279 fra.me.line = 494;
3280 fra.me.meth = LOCATE_array___ArrayMap_____braeq;
3281 fra.me.has_broke = 0;
3282 fra.me.REG_size = 4;
3283 fra.me.REG[0] = NIT_NULL;
3284 fra.me.REG[1] = NIT_NULL;
3285 fra.me.REG[2] = NIT_NULL;
3286 fra.me.REG[3] = NIT_NULL;
3287 fra.me.REG[0] = p0;
3288 fra.me.REG[1] = p1;
3289 fra.me.REG[2] = p2;
3290 /* ./../lib/standard//collection//array.nit:497 */
3291 REGB0 = CALL_array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3292 /* ./../lib/standard//collection//array.nit:498 */
3293 REGB1 = TAG_Int(0);
3294 /* ./../lib/standard//kernel.nit:213 */
3295 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3296 /* ./../lib/standard//collection//array.nit:498 */
3297 if (UNTAG_Bool(REGB1)) {
3298 /* ./../lib/standard//collection//array.nit:499 */
3299 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3300 if (UNTAG_Bool(REGB1)) {
3301 } else {
3302 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 499);
3303 }
3304 fra.me.REG[3] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3305 /* ./../lib/standard//collection//array.nit:245 */
3306 REGB1 = TAG_Int(0);
3307 /* ./../lib/standard//kernel.nit:213 */
3308 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3309 /* ./../lib/standard//collection//array.nit:245 */
3310 if (UNTAG_Bool(REGB1)) {
3311 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
3312 if (UNTAG_Bool(REGB1)) {
3313 } else {
3314 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
3315 }
3316 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
3317 /* ./../lib/standard//kernel.nit:212 */
3318 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3319 } else {
3320 /* ./../lib/standard//collection//array.nit:245 */
3321 REGB2 = TAG_Bool(false);
3322 REGB1 = REGB2;
3323 }
3324 if (UNTAG_Bool(REGB1)) {
3325 } else {
3326 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
3327 }
3328 /* ./../lib/standard//collection//array.nit:246 */
3329 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
3330 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3331 if (UNTAG_Bool(REGB1)) {
3332 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
3333 }
3334 /* ./../lib/standard//collection//array.nit:654 */
3335 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
3336 /* ./../lib/standard//collection//array.nit:246 */
3337 goto label1;
3338 label1: while(0);
3339 /* ./../lib/standard//collection//array.nit:499 */
3340 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3341 if (UNTAG_Bool(REGB0)) {
3342 nit_abort("Reciever is null", NULL, LOCATE_array, 499);
3343 }
3344 CALL_abstract_collection___Couple___second__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3345 } else {
3346 /* ./../lib/standard//collection//array.nit:501 */
3347 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3348 if (UNTAG_Bool(REGB0)) {
3349 } else {
3350 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 501);
3351 }
3352 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3353 fra.me.REG[2] = NEW_Couple_abstract_collection___Couple___init(fra.me.REG[1], fra.me.REG[2]);
3354 CALL_abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
3355 }
3356 stack_frame_head = fra.me.prev;
3357 return;
3358 }
3359 val_t array___ArrayMap___has_key(val_t p0, val_t p1){
3360 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3361 val_t REGB0;
3362 val_t REGB1;
3363 val_t tmp;
3364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3365 fra.me.file = LOCATE_array;
3366 fra.me.line = 505;
3367 fra.me.meth = LOCATE_array___ArrayMap___has_key;
3368 fra.me.has_broke = 0;
3369 fra.me.REG_size = 2;
3370 fra.me.REG[0] = NIT_NULL;
3371 fra.me.REG[1] = NIT_NULL;
3372 fra.me.REG[0] = p0;
3373 fra.me.REG[1] = p1;
3374 /* ./../lib/standard//collection//array.nit:506 */
3375 REGB0 = CALL_array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3376 REGB1 = TAG_Int(0);
3377 /* ./../lib/standard//kernel.nit:213 */
3378 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3379 /* ./../lib/standard//collection//array.nit:506 */
3380 goto label1;
3381 label1: while(0);
3382 stack_frame_head = fra.me.prev;
3383 return REGB1;
3384 }
3385 val_t array___ArrayMap___has(val_t p0, val_t p1){
3386 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3387 val_t REGB0;
3388 val_t REGB1;
3389 val_t REGB2;
3390 val_t tmp;
3391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3392 fra.me.file = LOCATE_array;
3393 fra.me.line = 508;
3394 fra.me.meth = LOCATE_array___ArrayMap___has;
3395 fra.me.has_broke = 0;
3396 fra.me.REG_size = 4;
3397 fra.me.REG[0] = NIT_NULL;
3398 fra.me.REG[1] = NIT_NULL;
3399 fra.me.REG[2] = NIT_NULL;
3400 fra.me.REG[3] = NIT_NULL;
3401 fra.me.REG[0] = p0;
3402 fra.me.REG[1] = p1;
3403 /* ./../lib/standard//collection//array.nit:511 */
3404 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3405 if (UNTAG_Bool(REGB0)) {
3406 } else {
3407 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 511);
3408 }
3409 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3410 /* ./../lib/standard//collection//array.nit:234 */
3411 REGB0 = TAG_Int(0);
3412 /* ./../lib/standard//collection//array.nit:235 */
3413 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3414 if (UNTAG_Bool(REGB1)) {
3415 } else {
3416 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
3417 }
3418 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3419 /* ./../lib/standard//collection//array.nit:236 */
3420 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
3421 /* ./../lib/standard//collection//array.nit:237 */
3422 while(1) {
3423 /* ./../lib/standard//collection//array.nit:23 */
3424 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3425 if (UNTAG_Bool(REGB1)) {
3426 } else {
3427 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3428 }
3429 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3430 /* ./../lib/standard//kernel.nit:212 */
3431 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3432 /* ./../lib/standard//collection//array.nit:237 */
3433 if (UNTAG_Bool(REGB1)) {
3434 /* ./../lib/standard//collection//array.nit:238 */
3435 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3436 if (UNTAG_Bool(REGB1)) {
3437 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
3438 }
3439 /* ./../lib/standard//collection//array.nit:654 */
3440 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
3441 /* ./../lib/standard//collection//array.nit:511 */
3442 fra.me.REG[3] = CALL_abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
3443 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
3444 if (UNTAG_Bool(REGB1)) {
3445 } else {
3446 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3447 if (UNTAG_Bool(REGB2)) {
3448 REGB2 = TAG_Bool(false);
3449 REGB1 = REGB2;
3450 } else {
3451 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3452 REGB1 = REGB2;
3453 }
3454 }
3455 if (UNTAG_Bool(REGB1)) {
3456 REGB1 = TAG_Bool(true);
3457 goto label1;
3458 }
3459 /* ./../lib/standard//collection//array.nit:239 */
3460 REGB2 = TAG_Int(1);
3461 /* ./../lib/standard//kernel.nit:215 */
3462 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3463 /* ./../lib/standard//collection//array.nit:239 */
3464 REGB0 = REGB2;
3465 } else {
3466 /* ./../lib/standard//collection//array.nit:237 */
3467 goto label2;
3468 }
3469 }
3470 label2: while(0);
3471 /* ./../lib/standard//collection//array.nit:512 */
3472 REGB0 = TAG_Bool(false);
3473 REGB1 = REGB0;
3474 goto label1;
3475 label1: while(0);
3476 stack_frame_head = fra.me.prev;
3477 return REGB1;
3478 }
3479 val_t array___ArrayMap___has_only(val_t p0, val_t p1){
3480 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3481 val_t REGB0;
3482 val_t REGB1;
3483 val_t REGB2;
3484 val_t tmp;
3485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3486 fra.me.file = LOCATE_array;
3487 fra.me.line = 515;
3488 fra.me.meth = LOCATE_array___ArrayMap___has_only;
3489 fra.me.has_broke = 0;
3490 fra.me.REG_size = 4;
3491 fra.me.REG[0] = NIT_NULL;
3492 fra.me.REG[1] = NIT_NULL;
3493 fra.me.REG[2] = NIT_NULL;
3494 fra.me.REG[3] = NIT_NULL;
3495 fra.me.REG[0] = p0;
3496 fra.me.REG[1] = p1;
3497 /* ./../lib/standard//collection//array.nit:518 */
3498 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3499 if (UNTAG_Bool(REGB0)) {
3500 } else {
3501 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 518);
3502 }
3503 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3504 /* ./../lib/standard//collection//array.nit:234 */
3505 REGB0 = TAG_Int(0);
3506 /* ./../lib/standard//collection//array.nit:235 */
3507 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3508 if (UNTAG_Bool(REGB1)) {
3509 } else {
3510 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
3511 }
3512 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3513 /* ./../lib/standard//collection//array.nit:236 */
3514 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
3515 /* ./../lib/standard//collection//array.nit:237 */
3516 while(1) {
3517 /* ./../lib/standard//collection//array.nit:23 */
3518 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3519 if (UNTAG_Bool(REGB1)) {
3520 } else {
3521 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3522 }
3523 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3524 /* ./../lib/standard//kernel.nit:212 */
3525 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3526 /* ./../lib/standard//collection//array.nit:237 */
3527 if (UNTAG_Bool(REGB1)) {
3528 /* ./../lib/standard//collection//array.nit:238 */
3529 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3530 if (UNTAG_Bool(REGB1)) {
3531 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
3532 }
3533 /* ./../lib/standard//collection//array.nit:654 */
3534 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
3535 /* ./../lib/standard//collection//array.nit:518 */
3536 fra.me.REG[3] = CALL_abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
3537 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
3538 if (UNTAG_Bool(REGB1)) {
3539 } else {
3540 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3541 if (UNTAG_Bool(REGB2)) {
3542 REGB2 = TAG_Bool(false);
3543 REGB1 = REGB2;
3544 } else {
3545 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3546 REGB1 = REGB2;
3547 }
3548 }
3549 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3550 if (UNTAG_Bool(REGB1)) {
3551 REGB1 = TAG_Bool(false);
3552 goto label1;
3553 }
3554 /* ./../lib/standard//collection//array.nit:239 */
3555 REGB2 = TAG_Int(1);
3556 /* ./../lib/standard//kernel.nit:215 */
3557 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3558 /* ./../lib/standard//collection//array.nit:239 */
3559 REGB0 = REGB2;
3560 } else {
3561 /* ./../lib/standard//collection//array.nit:237 */
3562 goto label2;
3563 }
3564 }
3565 label2: while(0);
3566 /* ./../lib/standard//collection//array.nit:519 */
3567 REGB0 = TAG_Bool(true);
3568 REGB1 = REGB0;
3569 goto label1;
3570 label1: while(0);
3571 stack_frame_head = fra.me.prev;
3572 return REGB1;
3573 }
3574 val_t array___ArrayMap___length(val_t p0){
3575 struct {struct stack_frame_t me;} fra;
3576 val_t REGB0;
3577 val_t tmp;
3578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3579 fra.me.file = LOCATE_array;
3580 fra.me.line = 522;
3581 fra.me.meth = LOCATE_array___ArrayMap___length;
3582 fra.me.has_broke = 0;
3583 fra.me.REG_size = 1;
3584 fra.me.REG[0] = NIT_NULL;
3585 fra.me.REG[0] = p0;
3586 /* ./../lib/standard//collection//array.nit:523 */
3587 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3588 if (UNTAG_Bool(REGB0)) {
3589 } else {
3590 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 523);
3591 }
3592 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3593 /* ./../lib/standard//collection//array.nit:23 */
3594 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3595 if (UNTAG_Bool(REGB0)) {
3596 } else {
3597 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3598 }
3599 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3600 /* ./../lib/standard//collection//array.nit:523 */
3601 goto label1;
3602 label1: while(0);
3603 stack_frame_head = fra.me.prev;
3604 return REGB0;
3605 }
3606 val_t array___ArrayMap___first(val_t p0){
3607 struct {struct stack_frame_t me;} fra;
3608 val_t REGB0;
3609 val_t tmp;
3610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3611 fra.me.file = LOCATE_array;
3612 fra.me.line = 525;
3613 fra.me.meth = LOCATE_array___ArrayMap___first;
3614 fra.me.has_broke = 0;
3615 fra.me.REG_size = 1;
3616 fra.me.REG[0] = NIT_NULL;
3617 fra.me.REG[0] = p0;
3618 /* ./../lib/standard//collection//array.nit:525 */
3619 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3620 if (UNTAG_Bool(REGB0)) {
3621 } else {
3622 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 525);
3623 }
3624 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3625 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
3626 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3627 if (UNTAG_Bool(REGB0)) {
3628 nit_abort("Reciever is null", NULL, LOCATE_array, 525);
3629 }
3630 fra.me.REG[0] = CALL_abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
3631 goto label1;
3632 label1: while(0);
3633 stack_frame_head = fra.me.prev;
3634 return fra.me.REG[0];
3635 }
3636 val_t array___ArrayMap___count(val_t p0, val_t p1){
3637 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3638 val_t REGB0;
3639 val_t REGB1;
3640 val_t REGB2;
3641 val_t REGB3;
3642 val_t tmp;
3643 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3644 fra.me.file = LOCATE_array;
3645 fra.me.line = 527;
3646 fra.me.meth = LOCATE_array___ArrayMap___count;
3647 fra.me.has_broke = 0;
3648 fra.me.REG_size = 4;
3649 fra.me.REG[0] = NIT_NULL;
3650 fra.me.REG[1] = NIT_NULL;
3651 fra.me.REG[2] = NIT_NULL;
3652 fra.me.REG[3] = NIT_NULL;
3653 fra.me.REG[0] = p0;
3654 fra.me.REG[1] = p1;
3655 /* ./../lib/standard//collection//array.nit:530 */
3656 REGB0 = TAG_Int(0);
3657 /* ./../lib/standard//collection//array.nit:531 */
3658 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3659 if (UNTAG_Bool(REGB1)) {
3660 } else {
3661 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 531);
3662 }
3663 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3664 /* ./../lib/standard//collection//array.nit:234 */
3665 REGB1 = TAG_Int(0);
3666 /* ./../lib/standard//collection//array.nit:235 */
3667 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3668 if (UNTAG_Bool(REGB2)) {
3669 } else {
3670 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
3671 }
3672 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3673 /* ./../lib/standard//collection//array.nit:236 */
3674 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
3675 /* ./../lib/standard//collection//array.nit:237 */
3676 while(1) {
3677 /* ./../lib/standard//collection//array.nit:23 */
3678 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3679 if (UNTAG_Bool(REGB2)) {
3680 } else {
3681 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3682 }
3683 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
3684 /* ./../lib/standard//kernel.nit:212 */
3685 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
3686 /* ./../lib/standard//collection//array.nit:237 */
3687 if (UNTAG_Bool(REGB2)) {
3688 /* ./../lib/standard//collection//array.nit:238 */
3689 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3690 if (UNTAG_Bool(REGB2)) {
3691 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
3692 }
3693 /* ./../lib/standard//collection//array.nit:654 */
3694 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
3695 /* ./../lib/standard//collection//array.nit:531 */
3696 fra.me.REG[3] = CALL_abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
3697 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
3698 if (UNTAG_Bool(REGB2)) {
3699 } else {
3700 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3701 if (UNTAG_Bool(REGB3)) {
3702 REGB3 = TAG_Bool(false);
3703 REGB2 = REGB3;
3704 } else {
3705 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3706 REGB2 = REGB3;
3707 }
3708 }
3709 if (UNTAG_Bool(REGB2)) {
3710 REGB2 = TAG_Int(1);
3711 /* ./../lib/standard//kernel.nit:215 */
3712 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3713 /* ./../lib/standard//collection//array.nit:531 */
3714 REGB0 = REGB2;
3715 }
3716 /* ./../lib/standard//collection//array.nit:239 */
3717 REGB2 = TAG_Int(1);
3718 /* ./../lib/standard//kernel.nit:215 */
3719 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
3720 /* ./../lib/standard//collection//array.nit:239 */
3721 REGB1 = REGB2;
3722 } else {
3723 /* ./../lib/standard//collection//array.nit:237 */
3724 goto label1;
3725 }
3726 }
3727 label1: while(0);
3728 /* ./../lib/standard//collection//array.nit:532 */
3729 goto label2;
3730 label2: while(0);
3731 stack_frame_head = fra.me.prev;
3732 return REGB0;
3733 }
3734 val_t array___ArrayMap___iterator(val_t p0){
3735 struct {struct stack_frame_t me;} fra;
3736 val_t REGB0;
3737 val_t tmp;
3738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3739 fra.me.file = LOCATE_array;
3740 fra.me.line = 535;
3741 fra.me.meth = LOCATE_array___ArrayMap___iterator;
3742 fra.me.has_broke = 0;
3743 fra.me.REG_size = 1;
3744 fra.me.REG[0] = NIT_NULL;
3745 fra.me.REG[0] = p0;
3746 /* ./../lib/standard//collection//array.nit:535 */
3747 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3748 if (UNTAG_Bool(REGB0)) {
3749 } else {
3750 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 535);
3751 }
3752 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3753 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
3754 fra.me.REG[0] = NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init(fra.me.REG[0]);
3755 goto label1;
3756 label1: while(0);
3757 stack_frame_head = fra.me.prev;
3758 return fra.me.REG[0];
3759 }
3760 val_t array___ArrayMap___is_empty(val_t p0){
3761 struct {struct stack_frame_t me;} fra;
3762 val_t REGB0;
3763 val_t tmp;
3764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3765 fra.me.file = LOCATE_array;
3766 fra.me.line = 537;
3767 fra.me.meth = LOCATE_array___ArrayMap___is_empty;
3768 fra.me.has_broke = 0;
3769 fra.me.REG_size = 1;
3770 fra.me.REG[0] = NIT_NULL;
3771 fra.me.REG[0] = p0;
3772 /* ./../lib/standard//collection//array.nit:537 */
3773 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3774 if (UNTAG_Bool(REGB0)) {
3775 } else {
3776 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 537);
3777 }
3778 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3779 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
3780 goto label1;
3781 label1: while(0);
3782 stack_frame_head = fra.me.prev;
3783 return REGB0;
3784 }
3785 void array___ArrayMap___remove(val_t p0, val_t p1){
3786 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3787 val_t REGB0;
3788 val_t REGB1;
3789 val_t REGB2;
3790 val_t REGB3;
3791 val_t tmp;
3792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3793 fra.me.file = LOCATE_array;
3794 fra.me.line = 539;
3795 fra.me.meth = LOCATE_array___ArrayMap___remove;
3796 fra.me.has_broke = 0;
3797 fra.me.REG_size = 3;
3798 fra.me.REG[0] = NIT_NULL;
3799 fra.me.REG[1] = NIT_NULL;
3800 fra.me.REG[2] = NIT_NULL;
3801 fra.me.REG[0] = p0;
3802 fra.me.REG[1] = p1;
3803 /* ./../lib/standard//collection//array.nit:541 */
3804 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3805 if (UNTAG_Bool(REGB0)) {
3806 } else {
3807 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 541);
3808 }
3809 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3810 /* ./../lib/standard//collection//array.nit:23 */
3811 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3812 if (UNTAG_Bool(REGB0)) {
3813 } else {
3814 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3815 }
3816 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3817 /* ./../lib/standard//collection//array.nit:541 */
3818 REGB1 = TAG_Int(1);
3819 /* ./../lib/standard//kernel.nit:217 */
3820 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
3821 /* ./../lib/standard//collection//array.nit:542 */
3822 while(1) {
3823 REGB0 = TAG_Int(0);
3824 /* ./../lib/standard//kernel.nit:213 */
3825 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
3826 /* ./../lib/standard//collection//array.nit:542 */
3827 if (UNTAG_Bool(REGB0)) {
3828 /* ./../lib/standard//collection//array.nit:543 */
3829 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3830 if (UNTAG_Bool(REGB0)) {
3831 } else {
3832 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 543);
3833 }
3834 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3835 /* ./../lib/standard//collection//array.nit:243 */
3836 REGB0 = REGB1;
3837 /* ./../lib/standard//collection//array.nit:245 */
3838 REGB2 = TAG_Int(0);
3839 /* ./../lib/standard//kernel.nit:213 */
3840 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
3841 /* ./../lib/standard//collection//array.nit:245 */
3842 if (UNTAG_Bool(REGB2)) {
3843 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3844 if (UNTAG_Bool(REGB2)) {
3845 } else {
3846 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
3847 }
3848 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3849 /* ./../lib/standard//kernel.nit:212 */
3850 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
3851 } else {
3852 /* ./../lib/standard//collection//array.nit:245 */
3853 REGB3 = TAG_Bool(false);
3854 REGB2 = REGB3;
3855 }
3856 if (UNTAG_Bool(REGB2)) {
3857 } else {
3858 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
3859 }
3860 /* ./../lib/standard//collection//array.nit:246 */
3861 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
3862 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3863 if (UNTAG_Bool(REGB2)) {
3864 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
3865 }
3866 /* ./../lib/standard//collection//array.nit:654 */
3867 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
3868 /* ./../lib/standard//collection//array.nit:246 */
3869 goto label1;
3870 label1: while(0);
3871 /* ./../lib/standard//collection//array.nit:543 */
3872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3873 if (UNTAG_Bool(REGB0)) {
3874 nit_abort("Reciever is null", NULL, LOCATE_array, 543);
3875 }
3876 fra.me.REG[2] = CALL_abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
3877 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
3878 if (UNTAG_Bool(REGB0)) {
3879 } else {
3880 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3881 if (UNTAG_Bool(REGB2)) {
3882 REGB2 = TAG_Bool(false);
3883 REGB0 = REGB2;
3884 } else {
3885 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3886 REGB0 = REGB2;
3887 }
3888 }
3889 if (UNTAG_Bool(REGB0)) {
3890 /* ./../lib/standard//collection//array.nit:544 */
3891 CALL_array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
3892 /* ./../lib/standard//collection//array.nit:545 */
3893 goto label2;
3894 }
3895 /* ./../lib/standard//collection//array.nit:547 */
3896 REGB0 = TAG_Int(1);
3897 /* ./../lib/standard//kernel.nit:217 */
3898 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
3899 /* ./../lib/standard//collection//array.nit:547 */
3900 REGB1 = REGB0;
3901 } else {
3902 /* ./../lib/standard//collection//array.nit:542 */
3903 goto label3;
3904 }
3905 }
3906 label3: while(0);
3907 label2: while(0);
3908 stack_frame_head = fra.me.prev;
3909 return;
3910 }
3911 void array___ArrayMap___remove_all(val_t p0, val_t p1){
3912 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3913 val_t REGB0;
3914 val_t REGB1;
3915 val_t REGB2;
3916 val_t REGB3;
3917 val_t tmp;
3918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3919 fra.me.file = LOCATE_array;
3920 fra.me.line = 551;
3921 fra.me.meth = LOCATE_array___ArrayMap___remove_all;
3922 fra.me.has_broke = 0;
3923 fra.me.REG_size = 3;
3924 fra.me.REG[0] = NIT_NULL;
3925 fra.me.REG[1] = NIT_NULL;
3926 fra.me.REG[2] = NIT_NULL;
3927 fra.me.REG[0] = p0;
3928 fra.me.REG[1] = p1;
3929 /* ./../lib/standard//collection//array.nit:553 */
3930 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3931 if (UNTAG_Bool(REGB0)) {
3932 } else {
3933 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 553);
3934 }
3935 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3936 /* ./../lib/standard//collection//array.nit:23 */
3937 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3938 if (UNTAG_Bool(REGB0)) {
3939 } else {
3940 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3941 }
3942 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3943 /* ./../lib/standard//collection//array.nit:553 */
3944 REGB1 = TAG_Int(1);
3945 /* ./../lib/standard//kernel.nit:217 */
3946 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
3947 /* ./../lib/standard//collection//array.nit:554 */
3948 while(1) {
3949 REGB0 = TAG_Int(0);
3950 /* ./../lib/standard//kernel.nit:213 */
3951 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
3952 /* ./../lib/standard//collection//array.nit:554 */
3953 if (UNTAG_Bool(REGB0)) {
3954 /* ./../lib/standard//collection//array.nit:555 */
3955 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3956 if (UNTAG_Bool(REGB0)) {
3957 } else {
3958 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 555);
3959 }
3960 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
3961 /* ./../lib/standard//collection//array.nit:243 */
3962 REGB0 = REGB1;
3963 /* ./../lib/standard//collection//array.nit:245 */
3964 REGB2 = TAG_Int(0);
3965 /* ./../lib/standard//kernel.nit:213 */
3966 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
3967 /* ./../lib/standard//collection//array.nit:245 */
3968 if (UNTAG_Bool(REGB2)) {
3969 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3970 if (UNTAG_Bool(REGB2)) {
3971 } else {
3972 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
3973 }
3974 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3975 /* ./../lib/standard//kernel.nit:212 */
3976 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
3977 } else {
3978 /* ./../lib/standard//collection//array.nit:245 */
3979 REGB3 = TAG_Bool(false);
3980 REGB2 = REGB3;
3981 }
3982 if (UNTAG_Bool(REGB2)) {
3983 } else {
3984 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
3985 }
3986 /* ./../lib/standard//collection//array.nit:246 */
3987 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
3988 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3989 if (UNTAG_Bool(REGB2)) {
3990 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
3991 }
3992 /* ./../lib/standard//collection//array.nit:654 */
3993 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
3994 /* ./../lib/standard//collection//array.nit:246 */
3995 goto label1;
3996 label1: while(0);
3997 /* ./../lib/standard//collection//array.nit:555 */
3998 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3999 if (UNTAG_Bool(REGB0)) {
4000 nit_abort("Reciever is null", NULL, LOCATE_array, 555);
4001 }
4002 fra.me.REG[2] = CALL_abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
4003 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
4004 if (UNTAG_Bool(REGB0)) {
4005 } else {
4006 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4007 if (UNTAG_Bool(REGB2)) {
4008 REGB2 = TAG_Bool(false);
4009 REGB0 = REGB2;
4010 } else {
4011 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4012 REGB0 = REGB2;
4013 }
4014 }
4015 if (UNTAG_Bool(REGB0)) {
4016 /* ./../lib/standard//collection//array.nit:556 */
4017 CALL_array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
4018 }
4019 /* ./../lib/standard//collection//array.nit:558 */
4020 REGB0 = TAG_Int(1);
4021 /* ./../lib/standard//kernel.nit:217 */
4022 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
4023 /* ./../lib/standard//collection//array.nit:558 */
4024 REGB1 = REGB0;
4025 } else {
4026 /* ./../lib/standard//collection//array.nit:554 */
4027 goto label2;
4028 }
4029 }
4030 label2: while(0);
4031 stack_frame_head = fra.me.prev;
4032 return;
4033 }
4034 void array___ArrayMap___remove_at(val_t p0, val_t p1){
4035 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4036 val_t REGB0;
4037 val_t REGB1;
4038 val_t tmp;
4039 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4040 fra.me.file = LOCATE_array;
4041 fra.me.line = 562;
4042 fra.me.meth = LOCATE_array___ArrayMap___remove_at;
4043 fra.me.has_broke = 0;
4044 fra.me.REG_size = 2;
4045 fra.me.REG[0] = NIT_NULL;
4046 fra.me.REG[1] = NIT_NULL;
4047 fra.me.REG[0] = p0;
4048 fra.me.REG[1] = p1;
4049 /* ./../lib/standard//collection//array.nit:564 */
4050 REGB0 = CALL_array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4051 /* ./../lib/standard//collection//array.nit:565 */
4052 REGB1 = TAG_Int(0);
4053 /* ./../lib/standard//kernel.nit:213 */
4054 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4055 /* ./../lib/standard//collection//array.nit:565 */
4056 if (UNTAG_Bool(REGB1)) {
4057 CALL_array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
4058 }
4059 stack_frame_head = fra.me.prev;
4060 return;
4061 }
4062 void array___ArrayMap___clear(val_t p0){
4063 struct {struct stack_frame_t me;} fra;
4064 val_t REGB0;
4065 val_t tmp;
4066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4067 fra.me.file = LOCATE_array;
4068 fra.me.line = 568;
4069 fra.me.meth = LOCATE_array___ArrayMap___clear;
4070 fra.me.has_broke = 0;
4071 fra.me.REG_size = 1;
4072 fra.me.REG[0] = NIT_NULL;
4073 fra.me.REG[0] = p0;
4074 /* ./../lib/standard//collection//array.nit:568 */
4075 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4076 if (UNTAG_Bool(REGB0)) {
4077 } else {
4078 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 568);
4079 }
4080 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4081 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
4082 stack_frame_head = fra.me.prev;
4083 return;
4084 }
4085 void array___ArrayMap___enlarge(val_t p0, val_t p1){
4086 struct {struct stack_frame_t me;} fra;
4087 val_t REGB0;
4088 val_t REGB1;
4089 val_t tmp;
4090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4091 fra.me.file = LOCATE_array;
4092 fra.me.line = 570;
4093 fra.me.meth = LOCATE_array___ArrayMap___enlarge;
4094 fra.me.has_broke = 0;
4095 fra.me.REG_size = 1;
4096 fra.me.REG[0] = NIT_NULL;
4097 fra.me.REG[0] = p0;
4098 REGB0 = p1;
4099 /* ./../lib/standard//collection//array.nit:571 */
4100 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4101 if (UNTAG_Bool(REGB1)) {
4102 } else {
4103 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 571);
4104 }
4105 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4106 CALL_array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB0);
4107 stack_frame_head = fra.me.prev;
4108 return;
4109 }
4110 val_t array___ArrayMap___couple_at(val_t p0, val_t p1){
4111 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4112 val_t REGB0;
4113 val_t REGB1;
4114 val_t REGB2;
4115 val_t tmp;
4116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4117 fra.me.file = LOCATE_array;
4118 fra.me.line = 573;
4119 fra.me.meth = LOCATE_array___ArrayMap___couple_at;
4120 fra.me.has_broke = 0;
4121 fra.me.REG_size = 2;
4122 fra.me.REG[0] = NIT_NULL;
4123 fra.me.REG[1] = NIT_NULL;
4124 fra.me.REG[0] = p0;
4125 fra.me.REG[1] = p1;
4126 /* ./../lib/standard//collection//array.nit:575 */
4127 REGB0 = CALL_array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4128 /* ./../lib/standard//collection//array.nit:576 */
4129 REGB1 = TAG_Int(0);
4130 /* ./../lib/standard//kernel.nit:213 */
4131 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4132 /* ./../lib/standard//collection//array.nit:576 */
4133 if (UNTAG_Bool(REGB1)) {
4134 /* ./../lib/standard//collection//array.nit:577 */
4135 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4136 if (UNTAG_Bool(REGB1)) {
4137 } else {
4138 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 577);
4139 }
4140 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4141 /* ./../lib/standard//collection//array.nit:245 */
4142 REGB1 = TAG_Int(0);
4143 /* ./../lib/standard//kernel.nit:213 */
4144 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4145 /* ./../lib/standard//collection//array.nit:245 */
4146 if (UNTAG_Bool(REGB1)) {
4147 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
4148 if (UNTAG_Bool(REGB1)) {
4149 } else {
4150 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
4151 }
4152 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
4153 /* ./../lib/standard//kernel.nit:212 */
4154 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4155 } else {
4156 /* ./../lib/standard//collection//array.nit:245 */
4157 REGB2 = TAG_Bool(false);
4158 REGB1 = REGB2;
4159 }
4160 if (UNTAG_Bool(REGB1)) {
4161 } else {
4162 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
4163 }
4164 /* ./../lib/standard//collection//array.nit:246 */
4165 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
4166 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4167 if (UNTAG_Bool(REGB1)) {
4168 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
4169 }
4170 /* ./../lib/standard//collection//array.nit:654 */
4171 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4172 /* ./../lib/standard//collection//array.nit:246 */
4173 goto label1;
4174 label1: while(0);
4175 /* ./../lib/standard//collection//array.nit:577 */
4176 goto label2;
4177 } else {
4178 /* ./../lib/standard//collection//array.nit:579 */
4179 fra.me.REG[0] = NIT_NULL;
4180 goto label2;
4181 }
4182 label2: while(0);
4183 stack_frame_head = fra.me.prev;
4184 return fra.me.REG[0];
4185 }
4186 void array___ArrayMap___remove_at_index(val_t p0, val_t p1){
4187 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4188 val_t REGB0;
4189 val_t REGB1;
4190 val_t tmp;
4191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4192 fra.me.file = LOCATE_array;
4193 fra.me.line = 586;
4194 fra.me.meth = LOCATE_array___ArrayMap___remove_at_index;
4195 fra.me.has_broke = 0;
4196 fra.me.REG_size = 3;
4197 fra.me.REG[0] = NIT_NULL;
4198 fra.me.REG[1] = NIT_NULL;
4199 fra.me.REG[2] = NIT_NULL;
4200 fra.me.REG[0] = p0;
4201 REGB0 = p1;
4202 /* ./../lib/standard//collection//array.nit:589 */
4203 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4204 if (UNTAG_Bool(REGB1)) {
4205 } else {
4206 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 589);
4207 }
4208 fra.me.REG[1] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4209 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4210 if (UNTAG_Bool(REGB1)) {
4211 } else {
4212 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 589);
4213 }
4214 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4215 fra.me.REG[2] = CALL_abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
4216 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
4217 /* ./../lib/standard//collection//array.nit:590 */
4218 REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4219 if (UNTAG_Bool(REGB0)) {
4220 } else {
4221 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 590);
4222 }
4223 fra.me.REG[0] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4224 CALL_abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
4225 stack_frame_head = fra.me.prev;
4226 return;
4227 }
4228 val_t array___ArrayMap___index(val_t p0, val_t p1){
4229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4230 val_t REGB0;
4231 val_t REGB1;
4232 val_t REGB2;
4233 val_t REGB3;
4234 val_t REGB4;
4235 val_t tmp;
4236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4237 fra.me.file = LOCATE_array;
4238 fra.me.line = 596;
4239 fra.me.meth = LOCATE_array___ArrayMap___index;
4240 fra.me.has_broke = 0;
4241 fra.me.REG_size = 3;
4242 fra.me.REG[0] = NIT_NULL;
4243 fra.me.REG[1] = NIT_NULL;
4244 fra.me.REG[2] = NIT_NULL;
4245 fra.me.REG[0] = p0;
4246 fra.me.REG[1] = p1;
4247 /* ./../lib/standard//collection//array.nit:600 */
4248 REGB0 = TAG_Bool(ATTR_array___ArrayMap____last_index(fra.me.REG[0])!=NIT_NULL);
4249 if (UNTAG_Bool(REGB0)) {
4250 } else {
4251 nit_abort("Uninitialized attribute %s", "_last_index", LOCATE_array, 600);
4252 }
4253 REGB0 = ATTR_array___ArrayMap____last_index(fra.me.REG[0]);
4254 /* ./../lib/standard//collection//array.nit:601 */
4255 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4256 if (UNTAG_Bool(REGB1)) {
4257 } else {
4258 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 601);
4259 }
4260 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4261 /* ./../lib/standard//collection//array.nit:23 */
4262 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4263 if (UNTAG_Bool(REGB1)) {
4264 } else {
4265 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4266 }
4267 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4268 /* ./../lib/standard//kernel.nit:212 */
4269 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4270 /* ./../lib/standard//collection//array.nit:601 */
4271 if (UNTAG_Bool(REGB1)) {
4272 REGB1 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4273 if (UNTAG_Bool(REGB1)) {
4274 } else {
4275 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 601);
4276 }
4277 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4278 /* ./../lib/standard//collection//array.nit:243 */
4279 REGB1 = REGB0;
4280 /* ./../lib/standard//collection//array.nit:245 */
4281 REGB2 = TAG_Int(0);
4282 /* ./../lib/standard//kernel.nit:213 */
4283 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4284 /* ./../lib/standard//collection//array.nit:245 */
4285 if (UNTAG_Bool(REGB2)) {
4286 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4287 if (UNTAG_Bool(REGB2)) {
4288 } else {
4289 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
4290 }
4291 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4292 /* ./../lib/standard//kernel.nit:212 */
4293 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4294 } else {
4295 /* ./../lib/standard//collection//array.nit:245 */
4296 REGB3 = TAG_Bool(false);
4297 REGB2 = REGB3;
4298 }
4299 if (UNTAG_Bool(REGB2)) {
4300 } else {
4301 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
4302 }
4303 /* ./../lib/standard//collection//array.nit:246 */
4304 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
4305 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4306 if (UNTAG_Bool(REGB2)) {
4307 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
4308 }
4309 /* ./../lib/standard//collection//array.nit:654 */
4310 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
4311 /* ./../lib/standard//collection//array.nit:246 */
4312 goto label1;
4313 label1: while(0);
4314 /* ./../lib/standard//collection//array.nit:601 */
4315 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4316 if (UNTAG_Bool(REGB1)) {
4317 nit_abort("Reciever is null", NULL, LOCATE_array, 601);
4318 }
4319 fra.me.REG[2] = CALL_abstract_collection___Couple___first(fra.me.REG[2])(fra.me.REG[2]);
4320 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
4321 if (UNTAG_Bool(REGB1)) {
4322 } else {
4323 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4324 if (UNTAG_Bool(REGB2)) {
4325 REGB2 = TAG_Bool(false);
4326 REGB1 = REGB2;
4327 } else {
4328 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4329 REGB1 = REGB2;
4330 }
4331 }
4332 } else {
4333 REGB2 = TAG_Bool(false);
4334 REGB1 = REGB2;
4335 }
4336 if (UNTAG_Bool(REGB1)) {
4337 goto label2;
4338 }
4339 /* ./../lib/standard//collection//array.nit:603 */
4340 REGB1 = TAG_Int(0);
4341 /* ./../lib/standard//collection//array.nit:604 */
4342 while(1) {
4343 REGB2 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4344 if (UNTAG_Bool(REGB2)) {
4345 } else {
4346 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 604);
4347 }
4348 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4349 /* ./../lib/standard//collection//array.nit:23 */
4350 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4351 if (UNTAG_Bool(REGB2)) {
4352 } else {
4353 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4354 }
4355 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4356 /* ./../lib/standard//kernel.nit:212 */
4357 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4358 /* ./../lib/standard//collection//array.nit:604 */
4359 if (UNTAG_Bool(REGB2)) {
4360 /* ./../lib/standard//collection//array.nit:605 */
4361 REGB2 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4362 if (UNTAG_Bool(REGB2)) {
4363 } else {
4364 nit_abort("Uninitialized attribute %s", "_items", LOCATE_array, 605);
4365 }
4366 fra.me.REG[2] = ATTR_array___ArrayMap____items(fra.me.REG[0]);
4367 /* ./../lib/standard//collection//array.nit:243 */
4368 REGB2 = REGB1;
4369 /* ./../lib/standard//collection//array.nit:245 */
4370 REGB3 = TAG_Int(0);
4371 /* ./../lib/standard//kernel.nit:213 */
4372 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
4373 /* ./../lib/standard//collection//array.nit:245 */
4374 if (UNTAG_Bool(REGB3)) {
4375 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4376 if (UNTAG_Bool(REGB3)) {
4377 } else {
4378 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
4379 }
4380 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4381 /* ./../lib/standard//kernel.nit:212 */
4382 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
4383 } else {
4384 /* ./../lib/standard//collection//array.nit:245 */
4385 REGB4 = TAG_Bool(false);
4386 REGB3 = REGB4;
4387 }
4388 if (UNTAG_Bool(REGB3)) {
4389 } else {
4390 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
4391 }
4392 /* ./../lib/standard//collection//array.nit:246 */
4393 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
4394 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4395 if (UNTAG_Bool(REGB3)) {
4396 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
4397 }
4398 /* ./../lib/standard//collection//array.nit:654 */
4399 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
4400 /* ./../lib/standard//collection//array.nit:246 */
4401 goto label3;
4402 label3: while(0);
4403 /* ./../lib/standard//collection//array.nit:605 */
4404 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4405 if (UNTAG_Bool(REGB2)) {
4406 nit_abort("Reciever is null", NULL, LOCATE_array, 605);
4407 }
4408 fra.me.REG[2] = CALL_abstract_collection___Couple___first(fra.me.REG[2])(fra.me.REG[2]);
4409 REGB2 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
4410 if (UNTAG_Bool(REGB2)) {
4411 } else {
4412 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4413 if (UNTAG_Bool(REGB3)) {
4414 REGB3 = TAG_Bool(false);
4415 REGB2 = REGB3;
4416 } else {
4417 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4418 REGB2 = REGB3;
4419 }
4420 }
4421 if (UNTAG_Bool(REGB2)) {
4422 /* ./../lib/standard//collection//array.nit:606 */
4423 ATTR_array___ArrayMap____last_index(fra.me.REG[0]) = REGB1;
4424 /* ./../lib/standard//collection//array.nit:607 */
4425 REGB0 = REGB1;
4426 goto label2;
4427 }
4428 /* ./../lib/standard//collection//array.nit:609 */
4429 REGB2 = TAG_Int(1);
4430 /* ./../lib/standard//kernel.nit:215 */
4431 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4432 /* ./../lib/standard//collection//array.nit:609 */
4433 REGB1 = REGB2;
4434 } else {
4435 /* ./../lib/standard//collection//array.nit:604 */
4436 goto label4;
4437 }
4438 }
4439 label4: while(0);
4440 /* ./../lib/standard//collection//array.nit:611 */
4441 REGB1 = TAG_Int(1);
4442 /* ./../lib/standard//kernel.nit:216 */
4443 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
4444 /* ./../lib/standard//collection//array.nit:611 */
4445 REGB0 = REGB1;
4446 goto label2;
4447 label2: while(0);
4448 stack_frame_head = fra.me.prev;
4449 return REGB0;
4450 }
4451 void array___ArrayMap___init(val_t p0, int* init_table){
4452 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ArrayMap].i;
4453 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4454 val_t tmp;
4455 if (init_table[itpos10]) return;
4456 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4457 fra.me.file = LOCATE_array;
4458 fra.me.line = 614;
4459 fra.me.meth = LOCATE_array___ArrayMap___init;
4460 fra.me.has_broke = 0;
4461 fra.me.REG_size = 2;
4462 fra.me.REG[0] = NIT_NULL;
4463 fra.me.REG[1] = NIT_NULL;
4464 fra.me.REG[0] = p0;
4465 /* ./../lib/standard//collection//array.nit:617 */
4466 fra.me.REG[1] = NEW_Array_array___Array___init();
4467 ATTR_array___ArrayMap____items(fra.me.REG[0]) = fra.me.REG[1];
4468 stack_frame_head = fra.me.prev;
4469 init_table[itpos10] = 1;
4470 return;
4471 }
4472 val_t array___Iterator___to_a(val_t p0){
4473 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4474 val_t REGB0;
4475 val_t tmp;
4476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4477 fra.me.file = LOCATE_array;
4478 fra.me.line = 624;
4479 fra.me.meth = LOCATE_array___Iterator___to_a;
4480 fra.me.has_broke = 0;
4481 fra.me.REG_size = 3;
4482 fra.me.REG[0] = NIT_NULL;
4483 fra.me.REG[1] = NIT_NULL;
4484 fra.me.REG[2] = NIT_NULL;
4485 fra.me.REG[0] = p0;
4486 /* ./../lib/standard//collection//array.nit:627 */
4487 fra.me.REG[1] = NEW_Array_array___Array___init();
4488 /* ./../lib/standard//collection//array.nit:628 */
4489 while(1) {
4490 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
4491 if (UNTAG_Bool(REGB0)) {
4492 /* ./../lib/standard//collection//array.nit:629 */
4493 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
4494 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4495 /* ./../lib/standard//collection//array.nit:630 */
4496 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
4497 } else {
4498 /* ./../lib/standard//collection//array.nit:628 */
4499 goto label1;
4500 }
4501 }
4502 label1: while(0);
4503 /* ./../lib/standard//collection//array.nit:632 */
4504 goto label2;
4505 label2: while(0);
4506 stack_frame_head = fra.me.prev;
4507 return fra.me.REG[1];
4508 }
4509 val_t array___Collection___to_a(val_t p0){
4510 struct {struct stack_frame_t me;} fra;
4511 val_t tmp;
4512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4513 fra.me.file = LOCATE_array;
4514 fra.me.line = 637;
4515 fra.me.meth = LOCATE_array___Collection___to_a;
4516 fra.me.has_broke = 0;
4517 fra.me.REG_size = 1;
4518 fra.me.REG[0] = NIT_NULL;
4519 fra.me.REG[0] = p0;
4520 /* ./../lib/standard//collection//array.nit:640 */
4521 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
4522 fra.me.REG[0] = CALL_array___Iterator___to_a(fra.me.REG[0])(fra.me.REG[0]);
4523 goto label1;
4524 label1: while(0);
4525 stack_frame_head = fra.me.prev;
4526 return fra.me.REG[0];
4527 }
4528 val_t array___ArrayCapable___calloc_array(val_t p0, val_t p1){
4529 struct {struct stack_frame_t me;} fra;
4530 val_t REGB0;
4531 val_t tmp;
4532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4533 fra.me.file = LOCATE_array;
4534 fra.me.line = 648;
4535 fra.me.meth = LOCATE_array___ArrayCapable___calloc_array;
4536 fra.me.has_broke = 0;
4537 fra.me.REG_size = 1;
4538 fra.me.REG[0] = NIT_NULL;
4539 fra.me.REG[0] = p0;
4540 REGB0 = p1;
4541 /* ./../lib/standard//collection//array.nit:648 */
4542 fra.me.REG[0] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
4543 stack_frame_head = fra.me.prev;
4544 return fra.me.REG[0];
4545 }
4546 val_t array___NativeArray_____bra(val_t p0, val_t p1){
4547 struct {struct stack_frame_t me;} fra;
4548 val_t REGB0;
4549 val_t tmp;
4550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4551 fra.me.file = LOCATE_array;
4552 fra.me.line = 654;
4553 fra.me.meth = LOCATE_array___NativeArray_____bra;
4554 fra.me.has_broke = 0;
4555 fra.me.REG_size = 1;
4556 fra.me.REG[0] = NIT_NULL;
4557 fra.me.REG[0] = p0;
4558 REGB0 = p1;
4559 /* ./../lib/standard//collection//array.nit:654 */
4560 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4561 stack_frame_head = fra.me.prev;
4562 return fra.me.REG[0];
4563 }
4564 void array___NativeArray_____braeq(val_t p0, val_t p1, val_t p2){
4565 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4566 val_t REGB0;
4567 val_t tmp;
4568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4569 fra.me.file = LOCATE_array;
4570 fra.me.line = 655;
4571 fra.me.meth = LOCATE_array___NativeArray_____braeq;
4572 fra.me.has_broke = 0;
4573 fra.me.REG_size = 2;
4574 fra.me.REG[0] = NIT_NULL;
4575 fra.me.REG[1] = NIT_NULL;
4576 fra.me.REG[0] = p0;
4577 REGB0 = p1;
4578 fra.me.REG[1] = p2;
4579 /* ./../lib/standard//collection//array.nit:655 */
4580 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
4581 stack_frame_head = fra.me.prev;
4582 return;
4583 }
4584 void array___NativeArray___copy_to(val_t p0, val_t p1, val_t p2){
4585 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4586 val_t REGB0;
4587 val_t tmp;
4588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4589 fra.me.file = LOCATE_array;
4590 fra.me.line = 656;
4591 fra.me.meth = LOCATE_array___NativeArray___copy_to;
4592 fra.me.has_broke = 0;
4593 fra.me.REG_size = 2;
4594 fra.me.REG[0] = NIT_NULL;
4595 fra.me.REG[1] = NIT_NULL;
4596 fra.me.REG[0] = p0;
4597 fra.me.REG[1] = p1;
4598 REGB0 = p2;
4599 /* ./../lib/standard//collection//array.nit:656 */
4600 (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[0])->val, UNTAG_Int(REGB0)*sizeof(val_t));
4601 stack_frame_head = fra.me.prev;
4602 return;
4603 }