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