c_src: update
[nit.git] / c_src / abstract_collection._sep.c
1 /* This C file is generated by NIT to compile module abstract_collection. */
2 #include "abstract_collection._sep.h"
3 val_t abstract_collection___Collection___iterator(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t tmp;
6 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7 fra.me.file = LOCATE_abstract_collection;
8 fra.me.line = 42;
9 fra.me.meth = LOCATE_abstract_collection___Collection___iterator;
10 fra.me.has_broke = 0;
11 fra.me.REG_size = 0;
12 /* ./../lib/standard//collection//abstract_collection.nit:42 */
13 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 42);
14 stack_frame_head = fra.me.prev;
15 return NIT_NULL;
16 }
17 void abstract_collection___Collection___iterate(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
18 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19 val_t REGB0;
20 fun_t CREG[1];
21 val_t tmp;
22 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23 fra.me.file = LOCATE_abstract_collection;
24 fra.me.line = 45;
25 fra.me.meth = LOCATE_abstract_collection___Collection___iterate;
26 fra.me.has_broke = 0;
27 fra.me.REG_size = 2;
28 fra.me.REG[0] = NIT_NULL;
29 fra.me.REG[1] = NIT_NULL;
30 fra.me.closure_ctx = closctx_param;
31 fra.me.closure_funs = CREG;
32 fra.me.REG[0] = p0;
33 CREG[0] = clos_fun0;
34 /* ./../lib/standard//collection//abstract_collection.nit:49 */
35 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
36 /* ./../lib/standard//collection//abstract_collection.nit:50 */
37 while(1) {
38 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
39 if (UNTAG_Bool(REGB0)) {
40 /* ./../lib/standard//collection//abstract_collection.nit:51 */
41 fra.me.REG[1] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
42 ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[1]);
43 if (closctx_param->has_broke) {
44 goto label1;
45 }
46 /* ./../lib/standard//collection//abstract_collection.nit:52 */
47 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
48 } else {
49 /* ./../lib/standard//collection//abstract_collection.nit:50 */
50 goto label2;
51 }
52 }
53 label2: while(0);
54 label1: while(0);
55 stack_frame_head = fra.me.prev;
56 return;
57 }
58 val_t abstract_collection___Collection___is_empty(val_t p0){
59 struct {struct stack_frame_t me;} fra;
60 val_t tmp;
61 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
62 fra.me.file = LOCATE_abstract_collection;
63 fra.me.line = 56;
64 fra.me.meth = LOCATE_abstract_collection___Collection___is_empty;
65 fra.me.has_broke = 0;
66 fra.me.REG_size = 0;
67 /* ./../lib/standard//collection//abstract_collection.nit:56 */
68 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 56);
69 stack_frame_head = fra.me.prev;
70 return NIT_NULL;
71 }
72 val_t abstract_collection___Collection___length(val_t p0){
73 struct {struct stack_frame_t me;} fra;
74 val_t tmp;
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_abstract_collection;
77 fra.me.line = 59;
78 fra.me.meth = LOCATE_abstract_collection___Collection___length;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 0;
81 /* ./../lib/standard//collection//abstract_collection.nit:59 */
82 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 59);
83 stack_frame_head = fra.me.prev;
84 return NIT_NULL;
85 }
86 val_t abstract_collection___Collection___has(val_t p0, val_t p1){
87 struct {struct stack_frame_t me;} fra;
88 val_t tmp;
89 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
90 fra.me.file = LOCATE_abstract_collection;
91 fra.me.line = 62;
92 fra.me.meth = LOCATE_abstract_collection___Collection___has;
93 fra.me.has_broke = 0;
94 fra.me.REG_size = 0;
95 /* ./../lib/standard//collection//abstract_collection.nit:62 */
96 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 62);
97 stack_frame_head = fra.me.prev;
98 return NIT_NULL;
99 }
100 val_t abstract_collection___Collection___has_only(val_t p0, val_t p1){
101 struct {struct stack_frame_t me;} fra;
102 val_t tmp;
103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
104 fra.me.file = LOCATE_abstract_collection;
105 fra.me.line = 66;
106 fra.me.meth = LOCATE_abstract_collection___Collection___has_only;
107 fra.me.has_broke = 0;
108 fra.me.REG_size = 0;
109 /* ./../lib/standard//collection//abstract_collection.nit:66 */
110 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 66);
111 stack_frame_head = fra.me.prev;
112 return NIT_NULL;
113 }
114 val_t abstract_collection___Collection___count(val_t p0, val_t p1){
115 struct {struct stack_frame_t me;} fra;
116 val_t tmp;
117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
118 fra.me.file = LOCATE_abstract_collection;
119 fra.me.line = 71;
120 fra.me.meth = LOCATE_abstract_collection___Collection___count;
121 fra.me.has_broke = 0;
122 fra.me.REG_size = 0;
123 /* ./../lib/standard//collection//abstract_collection.nit:71 */
124 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 71);
125 stack_frame_head = fra.me.prev;
126 return NIT_NULL;
127 }
128 val_t abstract_collection___Collection___first(val_t p0){
129 struct {struct stack_frame_t me;} fra;
130 val_t tmp;
131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
132 fra.me.file = LOCATE_abstract_collection;
133 fra.me.line = 75;
134 fra.me.meth = LOCATE_abstract_collection___Collection___first;
135 fra.me.has_broke = 0;
136 fra.me.REG_size = 0;
137 /* ./../lib/standard//collection//abstract_collection.nit:75 */
138 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 75);
139 stack_frame_head = fra.me.prev;
140 return NIT_NULL;
141 }
142 val_t abstract_collection___NaiveCollection___is_empty(val_t p0){
143 struct {struct stack_frame_t me;} fra;
144 val_t REGB0;
145 val_t REGB1;
146 val_t REGB2;
147 val_t tmp;
148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
149 fra.me.file = LOCATE_abstract_collection;
150 fra.me.line = 83;
151 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___is_empty;
152 fra.me.has_broke = 0;
153 fra.me.REG_size = 1;
154 fra.me.REG[0] = NIT_NULL;
155 fra.me.REG[0] = p0;
156 /* ./../lib/standard//collection//abstract_collection.nit:83 */
157 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
158 REGB1 = TAG_Int(0);
159 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
160 if (UNTAG_Bool(REGB2)) {
161 } else {
162 /* ./../lib/standard//kernel.nit:207 */
163 REGB1 = TAG_Bool((REGB0)==(REGB1));
164 /* ./../lib/standard//collection//abstract_collection.nit:83 */
165 REGB2 = REGB1;
166 }
167 goto label1;
168 label1: while(0);
169 stack_frame_head = fra.me.prev;
170 return REGB2;
171 }
172 val_t abstract_collection___NaiveCollection___length(val_t p0){
173 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
174 val_t REGB0;
175 val_t tmp;
176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
177 fra.me.file = LOCATE_abstract_collection;
178 fra.me.line = 85;
179 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___length;
180 fra.me.has_broke = 0;
181 fra.me.REG_size = 2;
182 fra.me.REG[0] = NIT_NULL;
183 fra.me.REG[1] = NIT_NULL;
184 fra.me.REG[0] = p0;
185 /* ./../lib/standard//collection//abstract_collection.nit:87 */
186 REGB0 = TAG_Int(0);
187 fra.me.REG[1] = REGB0;
188 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_abstract_collection___NaiveCollection___length_1));
189 /* ./../lib/standard//collection//abstract_collection.nit:89 */
190 REGB0 = fra.me.REG[1];
191 goto label2;
192 label2: while(0);
193 stack_frame_head = fra.me.prev;
194 return REGB0;
195 }
196 void OC_abstract_collection___NaiveCollection___length_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
197 struct {struct stack_frame_t me;} fra;
198 val_t REGB0;
199 fun_t CREG[1];
200 val_t tmp;
201 /* ./../lib/standard//collection//abstract_collection.nit:88 */
202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
203 fra.me.file = LOCATE_abstract_collection;
204 fra.me.line = 0;
205 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___length;
206 fra.me.has_broke = 0;
207 fra.me.REG_size = 1;
208 fra.me.REG[0] = NIT_NULL;
209 fra.me.closure_ctx = closctx_param;
210 fra.me.closure_funs = CREG;
211 fra.me.REG[0] = p0;
212 CREG[0] = clos_fun0;
213 /* ./../lib/standard//kernel.nit:215 */
214 REGB0 = TAG_Int(UNTAG_Int(closctx->REG[1])+UNTAG_Int(closctx->REG[1]));
215 /* ./../lib/standard//collection//abstract_collection.nit:88 */
216 closctx->REG[1] = REGB0;
217 stack_frame_head = fra.me.prev;
218 return;
219 }
220 val_t abstract_collection___NaiveCollection___has(val_t p0, val_t p1){
221 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
222 val_t REGB0;
223 val_t tmp;
224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
225 fra.me.file = LOCATE_abstract_collection;
226 fra.me.line = 92;
227 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___has;
228 fra.me.has_broke = 0;
229 fra.me.REG_size = 2;
230 fra.me.REG[0] = NIT_NULL;
231 fra.me.REG[1] = NIT_NULL;
232 fra.me.REG[0] = p0;
233 fra.me.REG[1] = p1;
234 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_abstract_collection___NaiveCollection___has_1));
235 switch ((&(fra.me))->has_broke) {
236 case 0: break;
237 case 1: (&(fra.me))->has_broke = 0; goto label3;
238 }
239 /* ./../lib/standard//collection//abstract_collection.nit:95 */
240 REGB0 = TAG_Bool(false);
241 fra.me.REG[0] = REGB0;
242 goto label3;
243 label3: while(0);
244 stack_frame_head = fra.me.prev;
245 return fra.me.REG[0];
246 }
247 void OC_abstract_collection___NaiveCollection___has_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
248 struct {struct stack_frame_t me;} fra;
249 val_t REGB0;
250 val_t REGB1;
251 fun_t CREG[1];
252 val_t tmp;
253 /* ./../lib/standard//collection//abstract_collection.nit:94 */
254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
255 fra.me.file = LOCATE_abstract_collection;
256 fra.me.line = 0;
257 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___has;
258 fra.me.has_broke = 0;
259 fra.me.REG_size = 1;
260 fra.me.REG[0] = NIT_NULL;
261 fra.me.closure_ctx = closctx_param;
262 fra.me.closure_funs = CREG;
263 fra.me.REG[0] = p0;
264 CREG[0] = clos_fun0;
265 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],closctx->REG[1]));
266 if (UNTAG_Bool(REGB0)) {
267 } else {
268 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
269 if (UNTAG_Bool(REGB1)) {
270 REGB1 = TAG_Bool(false);
271 REGB0 = REGB1;
272 } else {
273 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
274 REGB0 = REGB1;
275 }
276 }
277 if (UNTAG_Bool(REGB0)) {
278 REGB0 = TAG_Bool(true);
279 closctx->REG[0] = REGB0;
280 closctx->has_broke = 1;
281 goto label2;
282 }
283 label2: while(0);
284 stack_frame_head = fra.me.prev;
285 return;
286 }
287 val_t abstract_collection___NaiveCollection___has_only(val_t p0, val_t p1){
288 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
289 val_t REGB0;
290 val_t tmp;
291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
292 fra.me.file = LOCATE_abstract_collection;
293 fra.me.line = 98;
294 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___has_only;
295 fra.me.has_broke = 0;
296 fra.me.REG_size = 2;
297 fra.me.REG[0] = NIT_NULL;
298 fra.me.REG[1] = NIT_NULL;
299 fra.me.REG[0] = p0;
300 fra.me.REG[1] = p1;
301 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_abstract_collection___NaiveCollection___has_only_1));
302 switch ((&(fra.me))->has_broke) {
303 case 0: break;
304 case 1: (&(fra.me))->has_broke = 0; goto label3;
305 }
306 /* ./../lib/standard//collection//abstract_collection.nit:101 */
307 REGB0 = TAG_Bool(true);
308 fra.me.REG[0] = REGB0;
309 goto label3;
310 label3: while(0);
311 stack_frame_head = fra.me.prev;
312 return fra.me.REG[0];
313 }
314 void OC_abstract_collection___NaiveCollection___has_only_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
315 struct {struct stack_frame_t me;} fra;
316 val_t REGB0;
317 val_t REGB1;
318 fun_t CREG[1];
319 val_t tmp;
320 /* ./../lib/standard//collection//abstract_collection.nit:100 */
321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
322 fra.me.file = LOCATE_abstract_collection;
323 fra.me.line = 0;
324 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___has_only;
325 fra.me.has_broke = 0;
326 fra.me.REG_size = 1;
327 fra.me.REG[0] = NIT_NULL;
328 fra.me.closure_ctx = closctx_param;
329 fra.me.closure_funs = CREG;
330 fra.me.REG[0] = p0;
331 CREG[0] = clos_fun0;
332 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],closctx->REG[1]));
333 if (UNTAG_Bool(REGB0)) {
334 } else {
335 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
336 if (UNTAG_Bool(REGB1)) {
337 REGB1 = TAG_Bool(false);
338 REGB0 = REGB1;
339 } else {
340 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
341 REGB0 = REGB1;
342 }
343 }
344 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
345 if (UNTAG_Bool(REGB0)) {
346 REGB0 = TAG_Bool(false);
347 closctx->REG[0] = REGB0;
348 closctx->has_broke = 1;
349 goto label2;
350 }
351 label2: while(0);
352 stack_frame_head = fra.me.prev;
353 return;
354 }
355 val_t abstract_collection___NaiveCollection___count(val_t p0, val_t p1){
356 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
357 val_t REGB0;
358 val_t tmp;
359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
360 fra.me.file = LOCATE_abstract_collection;
361 fra.me.line = 104;
362 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___count;
363 fra.me.has_broke = 0;
364 fra.me.REG_size = 3;
365 fra.me.REG[0] = NIT_NULL;
366 fra.me.REG[1] = NIT_NULL;
367 fra.me.REG[2] = NIT_NULL;
368 fra.me.REG[0] = p0;
369 fra.me.REG[1] = p1;
370 /* ./../lib/standard//collection//abstract_collection.nit:106 */
371 REGB0 = TAG_Int(0);
372 fra.me.REG[2] = REGB0;
373 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_abstract_collection___NaiveCollection___count_1));
374 /* ./../lib/standard//collection//abstract_collection.nit:108 */
375 REGB0 = fra.me.REG[2];
376 goto label2;
377 label2: while(0);
378 stack_frame_head = fra.me.prev;
379 return REGB0;
380 }
381 void OC_abstract_collection___NaiveCollection___count_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
382 struct {struct stack_frame_t me;} fra;
383 val_t REGB0;
384 val_t REGB1;
385 fun_t CREG[1];
386 val_t tmp;
387 /* ./../lib/standard//collection//abstract_collection.nit:107 */
388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
389 fra.me.file = LOCATE_abstract_collection;
390 fra.me.line = 0;
391 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___count;
392 fra.me.has_broke = 0;
393 fra.me.REG_size = 1;
394 fra.me.REG[0] = NIT_NULL;
395 fra.me.closure_ctx = closctx_param;
396 fra.me.closure_funs = CREG;
397 fra.me.REG[0] = p0;
398 CREG[0] = clos_fun0;
399 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],closctx->REG[1]));
400 if (UNTAG_Bool(REGB0)) {
401 } else {
402 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
403 if (UNTAG_Bool(REGB1)) {
404 REGB1 = TAG_Bool(false);
405 REGB0 = REGB1;
406 } else {
407 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
408 REGB0 = REGB1;
409 }
410 }
411 if (UNTAG_Bool(REGB0)) {
412 REGB0 = TAG_Int(1);
413 /* ./../lib/standard//kernel.nit:215 */
414 REGB0 = TAG_Int(UNTAG_Int(closctx->REG[2])+UNTAG_Int(REGB0));
415 /* ./../lib/standard//collection//abstract_collection.nit:107 */
416 closctx->REG[2] = REGB0;
417 }
418 stack_frame_head = fra.me.prev;
419 return;
420 }
421 val_t abstract_collection___NaiveCollection___first(val_t p0){
422 struct {struct stack_frame_t me;} fra;
423 val_t REGB0;
424 val_t REGB1;
425 val_t tmp;
426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
427 fra.me.file = LOCATE_abstract_collection;
428 fra.me.line = 111;
429 fra.me.meth = LOCATE_abstract_collection___NaiveCollection___first;
430 fra.me.has_broke = 0;
431 fra.me.REG_size = 1;
432 fra.me.REG[0] = NIT_NULL;
433 fra.me.REG[0] = p0;
434 /* ./../lib/standard//collection//abstract_collection.nit:113 */
435 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
436 REGB1 = TAG_Int(0);
437 /* ./../lib/standard//kernel.nit:214 */
438 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
439 /* ./../lib/standard//collection//abstract_collection.nit:113 */
440 if (UNTAG_Bool(REGB1)) {
441 } else {
442 nit_abort("Assert failed", NULL, LOCATE_abstract_collection, 113);
443 }
444 /* ./../lib/standard//collection//abstract_collection.nit:114 */
445 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
446 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
447 goto label1;
448 label1: while(0);
449 stack_frame_head = fra.me.prev;
450 return fra.me.REG[0];
451 }
452 val_t abstract_collection___Iterator___item(val_t p0){
453 struct {struct stack_frame_t me;} fra;
454 val_t tmp;
455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
456 fra.me.file = LOCATE_abstract_collection;
457 fra.me.line = 121;
458 fra.me.meth = LOCATE_abstract_collection___Iterator___item;
459 fra.me.has_broke = 0;
460 fra.me.REG_size = 0;
461 /* ./../lib/standard//collection//abstract_collection.nit:121 */
462 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 121);
463 stack_frame_head = fra.me.prev;
464 return NIT_NULL;
465 }
466 void abstract_collection___Iterator___next(val_t p0){
467 struct {struct stack_frame_t me;} fra;
468 val_t tmp;
469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
470 fra.me.file = LOCATE_abstract_collection;
471 fra.me.line = 125;
472 fra.me.meth = LOCATE_abstract_collection___Iterator___next;
473 fra.me.has_broke = 0;
474 fra.me.REG_size = 0;
475 /* ./../lib/standard//collection//abstract_collection.nit:125 */
476 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 125);
477 stack_frame_head = fra.me.prev;
478 return;
479 }
480 val_t abstract_collection___Iterator___is_ok(val_t p0){
481 struct {struct stack_frame_t me;} fra;
482 val_t tmp;
483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
484 fra.me.file = LOCATE_abstract_collection;
485 fra.me.line = 129;
486 fra.me.meth = LOCATE_abstract_collection___Iterator___is_ok;
487 fra.me.has_broke = 0;
488 fra.me.REG_size = 0;
489 /* ./../lib/standard//collection//abstract_collection.nit:129 */
490 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 129);
491 stack_frame_head = fra.me.prev;
492 return NIT_NULL;
493 }
494 val_t abstract_collection___Container___first(val_t p0){
495 struct {struct stack_frame_t me;} fra;
496 val_t tmp;
497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
498 fra.me.file = LOCATE_abstract_collection;
499 fra.me.line = 137;
500 fra.me.meth = LOCATE_abstract_collection___Container___first;
501 fra.me.has_broke = 0;
502 fra.me.REG_size = 1;
503 fra.me.REG[0] = NIT_NULL;
504 fra.me.REG[0] = p0;
505 /* ./../lib/standard//collection//abstract_collection.nit:137 */
506 fra.me.REG[0] = ATTR_abstract_collection___Container____item(fra.me.REG[0]);
507 goto label1;
508 label1: while(0);
509 stack_frame_head = fra.me.prev;
510 return fra.me.REG[0];
511 }
512 val_t abstract_collection___Container___is_empty(val_t p0){
513 struct {struct stack_frame_t me;} fra;
514 val_t REGB0;
515 val_t tmp;
516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
517 fra.me.file = LOCATE_abstract_collection;
518 fra.me.line = 139;
519 fra.me.meth = LOCATE_abstract_collection___Container___is_empty;
520 fra.me.has_broke = 0;
521 fra.me.REG_size = 1;
522 fra.me.REG[0] = NIT_NULL;
523 fra.me.REG[0] = p0;
524 /* ./../lib/standard//collection//abstract_collection.nit:139 */
525 REGB0 = TAG_Bool(false);
526 goto label1;
527 label1: while(0);
528 stack_frame_head = fra.me.prev;
529 return REGB0;
530 }
531 val_t abstract_collection___Container___length(val_t p0){
532 struct {struct stack_frame_t me;} fra;
533 val_t REGB0;
534 val_t tmp;
535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
536 fra.me.file = LOCATE_abstract_collection;
537 fra.me.line = 141;
538 fra.me.meth = LOCATE_abstract_collection___Container___length;
539 fra.me.has_broke = 0;
540 fra.me.REG_size = 1;
541 fra.me.REG[0] = NIT_NULL;
542 fra.me.REG[0] = p0;
543 /* ./../lib/standard//collection//abstract_collection.nit:141 */
544 REGB0 = TAG_Int(1);
545 goto label1;
546 label1: while(0);
547 stack_frame_head = fra.me.prev;
548 return REGB0;
549 }
550 val_t abstract_collection___Container___has(val_t p0, val_t p1){
551 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
552 val_t REGB0;
553 val_t REGB1;
554 val_t tmp;
555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
556 fra.me.file = LOCATE_abstract_collection;
557 fra.me.line = 143;
558 fra.me.meth = LOCATE_abstract_collection___Container___has;
559 fra.me.has_broke = 0;
560 fra.me.REG_size = 2;
561 fra.me.REG[0] = NIT_NULL;
562 fra.me.REG[1] = NIT_NULL;
563 fra.me.REG[0] = p0;
564 fra.me.REG[1] = p1;
565 /* ./../lib/standard//collection//abstract_collection.nit:143 */
566 fra.me.REG[0] = ATTR_abstract_collection___Container____item(fra.me.REG[0]);
567 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],fra.me.REG[1]));
568 if (UNTAG_Bool(REGB0)) {
569 } else {
570 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
571 if (UNTAG_Bool(REGB1)) {
572 REGB1 = TAG_Bool(false);
573 REGB0 = REGB1;
574 } else {
575 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
576 REGB0 = REGB1;
577 }
578 }
579 goto label1;
580 label1: while(0);
581 stack_frame_head = fra.me.prev;
582 return REGB0;
583 }
584 val_t abstract_collection___Container___has_only(val_t p0, val_t p1){
585 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
586 val_t REGB0;
587 val_t REGB1;
588 val_t tmp;
589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
590 fra.me.file = LOCATE_abstract_collection;
591 fra.me.line = 145;
592 fra.me.meth = LOCATE_abstract_collection___Container___has_only;
593 fra.me.has_broke = 0;
594 fra.me.REG_size = 2;
595 fra.me.REG[0] = NIT_NULL;
596 fra.me.REG[1] = NIT_NULL;
597 fra.me.REG[0] = p0;
598 fra.me.REG[1] = p1;
599 /* ./../lib/standard//collection//abstract_collection.nit:145 */
600 fra.me.REG[0] = ATTR_abstract_collection___Container____item(fra.me.REG[0]);
601 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],fra.me.REG[1]));
602 if (UNTAG_Bool(REGB0)) {
603 } else {
604 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
605 if (UNTAG_Bool(REGB1)) {
606 REGB1 = TAG_Bool(false);
607 REGB0 = REGB1;
608 } else {
609 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
610 REGB0 = REGB1;
611 }
612 }
613 goto label1;
614 label1: while(0);
615 stack_frame_head = fra.me.prev;
616 return REGB0;
617 }
618 val_t abstract_collection___Container___count(val_t p0, val_t p1){
619 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
620 val_t REGB0;
621 val_t REGB1;
622 val_t tmp;
623 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
624 fra.me.file = LOCATE_abstract_collection;
625 fra.me.line = 147;
626 fra.me.meth = LOCATE_abstract_collection___Container___count;
627 fra.me.has_broke = 0;
628 fra.me.REG_size = 2;
629 fra.me.REG[0] = NIT_NULL;
630 fra.me.REG[1] = NIT_NULL;
631 fra.me.REG[0] = p0;
632 fra.me.REG[1] = p1;
633 /* ./../lib/standard//collection//abstract_collection.nit:149 */
634 fra.me.REG[0] = ATTR_abstract_collection___Container____item(fra.me.REG[0]);
635 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],fra.me.REG[1]));
636 if (UNTAG_Bool(REGB0)) {
637 } else {
638 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
639 if (UNTAG_Bool(REGB1)) {
640 REGB1 = TAG_Bool(false);
641 REGB0 = REGB1;
642 } else {
643 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
644 REGB0 = REGB1;
645 }
646 }
647 if (UNTAG_Bool(REGB0)) {
648 /* ./../lib/standard//collection//abstract_collection.nit:150 */
649 REGB0 = TAG_Int(1);
650 goto label1;
651 } else {
652 /* ./../lib/standard//collection//abstract_collection.nit:152 */
653 REGB1 = TAG_Int(0);
654 REGB0 = REGB1;
655 goto label1;
656 }
657 label1: while(0);
658 stack_frame_head = fra.me.prev;
659 return REGB0;
660 }
661 val_t abstract_collection___Container___iterator(val_t p0){
662 struct {struct stack_frame_t me;} fra;
663 val_t tmp;
664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
665 fra.me.file = LOCATE_abstract_collection;
666 fra.me.line = 156;
667 fra.me.meth = LOCATE_abstract_collection___Container___iterator;
668 fra.me.has_broke = 0;
669 fra.me.REG_size = 1;
670 fra.me.REG[0] = NIT_NULL;
671 fra.me.REG[0] = p0;
672 /* ./../lib/standard//collection//abstract_collection.nit:156 */
673 fra.me.REG[0] = NEW_ContainerIterator_abstract_collection___ContainerIterator___init(fra.me.REG[0]);
674 goto label1;
675 label1: while(0);
676 stack_frame_head = fra.me.prev;
677 return fra.me.REG[0];
678 }
679 void abstract_collection___Container___init(val_t p0, val_t p1, int* init_table){
680 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Container].i;
681 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
682 val_t tmp;
683 if (init_table[itpos0]) return;
684 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
685 fra.me.file = LOCATE_abstract_collection;
686 fra.me.line = 158;
687 fra.me.meth = LOCATE_abstract_collection___Container___init;
688 fra.me.has_broke = 0;
689 fra.me.REG_size = 2;
690 fra.me.REG[0] = NIT_NULL;
691 fra.me.REG[1] = NIT_NULL;
692 fra.me.REG[0] = p0;
693 fra.me.REG[1] = p1;
694 /* ./../lib/standard//collection//abstract_collection.nit:159 */
695 ATTR_abstract_collection___Container____item(fra.me.REG[0]) = fra.me.REG[1];
696 stack_frame_head = fra.me.prev;
697 init_table[itpos0] = 1;
698 return;
699 }
700 val_t abstract_collection___Container___item(val_t p0){
701 struct {struct stack_frame_t me;} fra;
702 val_t tmp;
703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
704 fra.me.file = LOCATE_abstract_collection;
705 fra.me.line = 161;
706 fra.me.meth = LOCATE_abstract_collection___Container___item;
707 fra.me.has_broke = 0;
708 fra.me.REG_size = 1;
709 fra.me.REG[0] = NIT_NULL;
710 fra.me.REG[0] = p0;
711 /* ./../lib/standard//collection//abstract_collection.nit:161 */
712 fra.me.REG[0] = ATTR_abstract_collection___Container____item(fra.me.REG[0]);
713 stack_frame_head = fra.me.prev;
714 return fra.me.REG[0];
715 }
716 void abstract_collection___Container___item__eq(val_t p0, val_t p1){
717 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
718 val_t tmp;
719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
720 fra.me.file = LOCATE_abstract_collection;
721 fra.me.line = 161;
722 fra.me.meth = LOCATE_abstract_collection___Container___item__eq;
723 fra.me.has_broke = 0;
724 fra.me.REG_size = 2;
725 fra.me.REG[0] = NIT_NULL;
726 fra.me.REG[1] = NIT_NULL;
727 fra.me.REG[0] = p0;
728 fra.me.REG[1] = p1;
729 /* ./../lib/standard//collection//abstract_collection.nit:161 */
730 ATTR_abstract_collection___Container____item(fra.me.REG[0]) = fra.me.REG[1];
731 stack_frame_head = fra.me.prev;
732 return;
733 }
734 val_t abstract_collection___ContainerIterator___item(val_t p0){
735 struct {struct stack_frame_t me;} fra;
736 val_t REGB0;
737 val_t tmp;
738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
739 fra.me.file = LOCATE_abstract_collection;
740 fra.me.line = 168;
741 fra.me.meth = LOCATE_abstract_collection___ContainerIterator___item;
742 fra.me.has_broke = 0;
743 fra.me.REG_size = 1;
744 fra.me.REG[0] = NIT_NULL;
745 fra.me.REG[0] = p0;
746 /* ./../lib/standard//collection//abstract_collection.nit:168 */
747 REGB0 = TAG_Bool(ATTR_abstract_collection___ContainerIterator____container(fra.me.REG[0])!=NIT_NULL);
748 if (UNTAG_Bool(REGB0)) {
749 } else {
750 nit_abort("Uninitialized attribute %s", "_container", LOCATE_abstract_collection, 168);
751 }
752 fra.me.REG[0] = ATTR_abstract_collection___ContainerIterator____container(fra.me.REG[0]);
753 fra.me.REG[0] = CALL_abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
754 goto label1;
755 label1: while(0);
756 stack_frame_head = fra.me.prev;
757 return fra.me.REG[0];
758 }
759 void abstract_collection___ContainerIterator___next(val_t p0){
760 struct {struct stack_frame_t me;} fra;
761 val_t REGB0;
762 val_t tmp;
763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
764 fra.me.file = LOCATE_abstract_collection;
765 fra.me.line = 170;
766 fra.me.meth = LOCATE_abstract_collection___ContainerIterator___next;
767 fra.me.has_broke = 0;
768 fra.me.REG_size = 1;
769 fra.me.REG[0] = NIT_NULL;
770 fra.me.REG[0] = p0;
771 /* ./../lib/standard//collection//abstract_collection.nit:170 */
772 REGB0 = TAG_Bool(false);
773 ATTR_abstract_collection___ContainerIterator____is_ok(fra.me.REG[0]) = REGB0;
774 stack_frame_head = fra.me.prev;
775 return;
776 }
777 void abstract_collection___ContainerIterator___init(val_t p0, val_t p1, int* init_table){
778 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ContainerIterator].i;
779 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
780 val_t tmp;
781 if (init_table[itpos1]) return;
782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
783 fra.me.file = LOCATE_abstract_collection;
784 fra.me.line = 172;
785 fra.me.meth = LOCATE_abstract_collection___ContainerIterator___init;
786 fra.me.has_broke = 0;
787 fra.me.REG_size = 2;
788 fra.me.REG[0] = NIT_NULL;
789 fra.me.REG[1] = NIT_NULL;
790 fra.me.REG[0] = p0;
791 fra.me.REG[1] = p1;
792 /* ./../lib/standard//collection//abstract_collection.nit:172 */
793 ATTR_abstract_collection___ContainerIterator____container(fra.me.REG[0]) = fra.me.REG[1];
794 stack_frame_head = fra.me.prev;
795 init_table[itpos1] = 1;
796 return;
797 }
798 val_t abstract_collection___ContainerIterator___is_ok(val_t p0){
799 struct {struct stack_frame_t me;} fra;
800 val_t REGB0;
801 val_t tmp;
802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
803 fra.me.file = LOCATE_abstract_collection;
804 fra.me.line = 174;
805 fra.me.meth = LOCATE_abstract_collection___ContainerIterator___is_ok;
806 fra.me.has_broke = 0;
807 fra.me.REG_size = 1;
808 fra.me.REG[0] = NIT_NULL;
809 fra.me.REG[0] = p0;
810 /* ./../lib/standard//collection//abstract_collection.nit:174 */
811 REGB0 = TAG_Bool(ATTR_abstract_collection___ContainerIterator____is_ok(fra.me.REG[0])!=NIT_NULL);
812 if (UNTAG_Bool(REGB0)) {
813 } else {
814 nit_abort("Uninitialized attribute %s", "_is_ok", LOCATE_abstract_collection, 174);
815 }
816 REGB0 = ATTR_abstract_collection___ContainerIterator____is_ok(fra.me.REG[0]);
817 stack_frame_head = fra.me.prev;
818 return REGB0;
819 }
820 void abstract_collection___RemovableCollection___clear(val_t p0){
821 struct {struct stack_frame_t me;} fra;
822 val_t tmp;
823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
824 fra.me.file = LOCATE_abstract_collection;
825 fra.me.line = 182;
826 fra.me.meth = LOCATE_abstract_collection___RemovableCollection___clear;
827 fra.me.has_broke = 0;
828 fra.me.REG_size = 0;
829 /* ./../lib/standard//collection//abstract_collection.nit:182 */
830 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 182);
831 stack_frame_head = fra.me.prev;
832 return;
833 }
834 void abstract_collection___RemovableCollection___remove(val_t p0, val_t p1){
835 struct {struct stack_frame_t me;} fra;
836 val_t tmp;
837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
838 fra.me.file = LOCATE_abstract_collection;
839 fra.me.line = 185;
840 fra.me.meth = LOCATE_abstract_collection___RemovableCollection___remove;
841 fra.me.has_broke = 0;
842 fra.me.REG_size = 0;
843 /* ./../lib/standard//collection//abstract_collection.nit:185 */
844 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 185);
845 stack_frame_head = fra.me.prev;
846 return;
847 }
848 void abstract_collection___RemovableCollection___remove_all(val_t p0, val_t p1){
849 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
850 val_t REGB0;
851 val_t tmp;
852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
853 fra.me.file = LOCATE_abstract_collection;
854 fra.me.line = 188;
855 fra.me.meth = LOCATE_abstract_collection___RemovableCollection___remove_all;
856 fra.me.has_broke = 0;
857 fra.me.REG_size = 2;
858 fra.me.REG[0] = NIT_NULL;
859 fra.me.REG[1] = NIT_NULL;
860 fra.me.REG[0] = p0;
861 fra.me.REG[1] = p1;
862 /* ./../lib/standard//collection//abstract_collection.nit:189 */
863 while(1) {
864 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
865 if (UNTAG_Bool(REGB0)) {
866 CALL_abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
867 } else {
868 goto label1;
869 }
870 }
871 label1: while(0);
872 stack_frame_head = fra.me.prev;
873 return;
874 }
875 void abstract_collection___SimpleCollection___add(val_t p0, val_t p1){
876 struct {struct stack_frame_t me;} fra;
877 val_t tmp;
878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
879 fra.me.file = LOCATE_abstract_collection;
880 fra.me.line = 195;
881 fra.me.meth = LOCATE_abstract_collection___SimpleCollection___add;
882 fra.me.has_broke = 0;
883 fra.me.REG_size = 0;
884 /* ./../lib/standard//collection//abstract_collection.nit:195 */
885 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 195);
886 stack_frame_head = fra.me.prev;
887 return;
888 }
889 void abstract_collection___SimpleCollection___add_all(val_t p0, val_t p1){
890 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
891 val_t tmp;
892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
893 fra.me.file = LOCATE_abstract_collection;
894 fra.me.line = 199;
895 fra.me.meth = LOCATE_abstract_collection___SimpleCollection___add_all;
896 fra.me.has_broke = 0;
897 fra.me.REG_size = 2;
898 fra.me.REG[0] = NIT_NULL;
899 fra.me.REG[1] = NIT_NULL;
900 fra.me.REG[0] = p0;
901 fra.me.REG[1] = p1;
902 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_abstract_collection___SimpleCollection___add_all_1));
903 stack_frame_head = fra.me.prev;
904 return;
905 }
906 void OC_abstract_collection___SimpleCollection___add_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
907 struct {struct stack_frame_t me;} fra;
908 fun_t CREG[1];
909 val_t tmp;
910 /* ./../lib/standard//collection//abstract_collection.nit:200 */
911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
912 fra.me.file = LOCATE_abstract_collection;
913 fra.me.line = 0;
914 fra.me.meth = LOCATE_abstract_collection___SimpleCollection___add_all;
915 fra.me.has_broke = 0;
916 fra.me.REG_size = 1;
917 fra.me.REG[0] = NIT_NULL;
918 fra.me.closure_ctx = closctx_param;
919 fra.me.closure_funs = CREG;
920 fra.me.REG[0] = p0;
921 CREG[0] = clos_fun0;
922 CALL_abstract_collection___SimpleCollection___add(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
923 stack_frame_head = fra.me.prev;
924 return;
925 }
926 val_t abstract_collection___Set___has_only(val_t p0, val_t p1){
927 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
928 val_t REGB0;
929 val_t REGB1;
930 val_t REGB2;
931 val_t REGB3;
932 val_t tmp;
933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
934 fra.me.file = LOCATE_abstract_collection;
935 fra.me.line = 215;
936 fra.me.meth = LOCATE_abstract_collection___Set___has_only;
937 fra.me.has_broke = 0;
938 fra.me.REG_size = 2;
939 fra.me.REG[0] = NIT_NULL;
940 fra.me.REG[1] = NIT_NULL;
941 fra.me.REG[0] = p0;
942 fra.me.REG[1] = p1;
943 /* ./../lib/standard//collection//abstract_collection.nit:217 */
944 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
945 /* ./../lib/standard//collection//abstract_collection.nit:218 */
946 REGB1 = TAG_Int(1);
947 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
948 if (UNTAG_Bool(REGB2)) {
949 } else {
950 /* ./../lib/standard//kernel.nit:207 */
951 REGB1 = TAG_Bool((REGB0)==(REGB1));
952 /* ./../lib/standard//collection//abstract_collection.nit:218 */
953 REGB2 = REGB1;
954 }
955 if (UNTAG_Bool(REGB2)) {
956 /* ./../lib/standard//collection//abstract_collection.nit:219 */
957 REGB2 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
958 goto label1;
959 } else {
960 /* ./../lib/standard//collection//abstract_collection.nit:220 */
961 REGB1 = TAG_Int(0);
962 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
963 if (UNTAG_Bool(REGB3)) {
964 } else {
965 /* ./../lib/standard//kernel.nit:207 */
966 REGB1 = TAG_Bool((REGB0)==(REGB1));
967 /* ./../lib/standard//collection//abstract_collection.nit:220 */
968 REGB3 = REGB1;
969 }
970 if (UNTAG_Bool(REGB3)) {
971 /* ./../lib/standard//collection//abstract_collection.nit:221 */
972 REGB3 = TAG_Bool(true);
973 REGB2 = REGB3;
974 goto label1;
975 } else {
976 /* ./../lib/standard//collection//abstract_collection.nit:223 */
977 REGB3 = TAG_Bool(false);
978 REGB2 = REGB3;
979 goto label1;
980 }
981 }
982 label1: while(0);
983 stack_frame_head = fra.me.prev;
984 return REGB2;
985 }
986 val_t abstract_collection___Set___count(val_t p0, val_t p1){
987 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
988 val_t REGB0;
989 val_t REGB1;
990 val_t tmp;
991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
992 fra.me.file = LOCATE_abstract_collection;
993 fra.me.line = 227;
994 fra.me.meth = LOCATE_abstract_collection___Set___count;
995 fra.me.has_broke = 0;
996 fra.me.REG_size = 2;
997 fra.me.REG[0] = NIT_NULL;
998 fra.me.REG[1] = NIT_NULL;
999 fra.me.REG[0] = p0;
1000 fra.me.REG[1] = p1;
1001 /* ./../lib/standard//collection//abstract_collection.nit:230 */
1002 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1003 if (UNTAG_Bool(REGB0)) {
1004 /* ./../lib/standard//collection//abstract_collection.nit:231 */
1005 REGB0 = TAG_Int(1);
1006 goto label1;
1007 } else {
1008 /* ./../lib/standard//collection//abstract_collection.nit:233 */
1009 REGB1 = TAG_Int(0);
1010 REGB0 = REGB1;
1011 goto label1;
1012 }
1013 label1: while(0);
1014 stack_frame_head = fra.me.prev;
1015 return REGB0;
1016 }
1017 void abstract_collection___Set___remove_all(val_t p0, val_t p1){
1018 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1019 val_t tmp;
1020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1021 fra.me.file = LOCATE_abstract_collection;
1022 fra.me.line = 237;
1023 fra.me.meth = LOCATE_abstract_collection___Set___remove_all;
1024 fra.me.has_broke = 0;
1025 fra.me.REG_size = 2;
1026 fra.me.REG[0] = NIT_NULL;
1027 fra.me.REG[1] = NIT_NULL;
1028 fra.me.REG[0] = p0;
1029 fra.me.REG[1] = p1;
1030 /* ./../lib/standard//collection//abstract_collection.nit:238 */
1031 CALL_abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1032 stack_frame_head = fra.me.prev;
1033 return;
1034 }
1035 val_t abstract_collection___MapRead_____bra(val_t p0, val_t p1){
1036 struct {struct stack_frame_t me;} fra;
1037 val_t tmp;
1038 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1039 fra.me.file = LOCATE_abstract_collection;
1040 fra.me.line = 243;
1041 fra.me.meth = LOCATE_abstract_collection___MapRead_____bra;
1042 fra.me.has_broke = 0;
1043 fra.me.REG_size = 0;
1044 /* ./../lib/standard//collection//abstract_collection.nit:243 */
1045 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 243);
1046 stack_frame_head = fra.me.prev;
1047 return NIT_NULL;
1048 }
1049 val_t abstract_collection___MapRead___has_key(val_t p0, val_t p1){
1050 struct {struct stack_frame_t me;} fra;
1051 val_t tmp;
1052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1053 fra.me.file = LOCATE_abstract_collection;
1054 fra.me.line = 246;
1055 fra.me.meth = LOCATE_abstract_collection___MapRead___has_key;
1056 fra.me.has_broke = 0;
1057 fra.me.REG_size = 0;
1058 /* ./../lib/standard//collection//abstract_collection.nit:246 */
1059 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 246);
1060 stack_frame_head = fra.me.prev;
1061 return NIT_NULL;
1062 }
1063 val_t abstract_collection___MapRead___iterator(val_t p0){
1064 struct {struct stack_frame_t me;} fra;
1065 val_t tmp;
1066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1067 fra.me.file = LOCATE_abstract_collection;
1068 fra.me.line = 249;
1069 fra.me.meth = LOCATE_abstract_collection___MapRead___iterator;
1070 fra.me.has_broke = 0;
1071 fra.me.REG_size = 0;
1072 /* ./../lib/standard//collection//abstract_collection.nit:249 */
1073 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 249);
1074 stack_frame_head = fra.me.prev;
1075 return NIT_NULL;
1076 }
1077 void abstract_collection___Map_____braeq(val_t p0, val_t p1, val_t p2){
1078 struct {struct stack_frame_t me;} fra;
1079 val_t tmp;
1080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1081 fra.me.file = LOCATE_abstract_collection;
1082 fra.me.line = 267;
1083 fra.me.meth = LOCATE_abstract_collection___Map_____braeq;
1084 fra.me.has_broke = 0;
1085 fra.me.REG_size = 0;
1086 /* ./../lib/standard//collection//abstract_collection.nit:267 */
1087 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 267);
1088 stack_frame_head = fra.me.prev;
1089 return;
1090 }
1091 void abstract_collection___Map___remove_at(val_t p0, val_t p1){
1092 struct {struct stack_frame_t me;} fra;
1093 val_t tmp;
1094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1095 fra.me.file = LOCATE_abstract_collection;
1096 fra.me.line = 270;
1097 fra.me.meth = LOCATE_abstract_collection___Map___remove_at;
1098 fra.me.has_broke = 0;
1099 fra.me.REG_size = 0;
1100 /* ./../lib/standard//collection//abstract_collection.nit:270 */
1101 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 270);
1102 stack_frame_head = fra.me.prev;
1103 return;
1104 }
1105 void abstract_collection___Map___recover_with(val_t p0, val_t p1){
1106 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1107 val_t REGB0;
1108 val_t tmp;
1109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1110 fra.me.file = LOCATE_abstract_collection;
1111 fra.me.line = 273;
1112 fra.me.meth = LOCATE_abstract_collection___Map___recover_with;
1113 fra.me.has_broke = 0;
1114 fra.me.REG_size = 4;
1115 fra.me.REG[0] = NIT_NULL;
1116 fra.me.REG[1] = NIT_NULL;
1117 fra.me.REG[2] = NIT_NULL;
1118 fra.me.REG[3] = NIT_NULL;
1119 fra.me.REG[0] = p0;
1120 fra.me.REG[1] = p1;
1121 /* ./../lib/standard//collection//abstract_collection.nit:277 */
1122 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1123 /* ./../lib/standard//collection//abstract_collection.nit:278 */
1124 while(1) {
1125 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1126 if (UNTAG_Bool(REGB0)) {
1127 /* ./../lib/standard//collection//abstract_collection.nit:279 */
1128 fra.me.REG[2] = CALL_abstract_collection___MapIterator___key(fra.me.REG[1])(fra.me.REG[1]);
1129 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1130 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
1131 /* ./../lib/standard//collection//abstract_collection.nit:280 */
1132 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1133 } else {
1134 /* ./../lib/standard//collection//abstract_collection.nit:278 */
1135 goto label1;
1136 }
1137 }
1138 label1: while(0);
1139 stack_frame_head = fra.me.prev;
1140 return;
1141 }
1142 val_t abstract_collection___MapIterator___key(val_t p0){
1143 struct {struct stack_frame_t me;} fra;
1144 val_t tmp;
1145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1146 fra.me.file = LOCATE_abstract_collection;
1147 fra.me.line = 288;
1148 fra.me.meth = LOCATE_abstract_collection___MapIterator___key;
1149 fra.me.has_broke = 0;
1150 fra.me.REG_size = 0;
1151 /* ./../lib/standard//collection//abstract_collection.nit:288 */
1152 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 288);
1153 stack_frame_head = fra.me.prev;
1154 return NIT_NULL;
1155 }
1156 val_t abstract_collection___SequenceRead___first(val_t p0){
1157 struct {struct stack_frame_t me;} fra;
1158 val_t REGB0;
1159 val_t tmp;
1160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1161 fra.me.file = LOCATE_abstract_collection;
1162 fra.me.line = 299;
1163 fra.me.meth = LOCATE_abstract_collection___SequenceRead___first;
1164 fra.me.has_broke = 0;
1165 fra.me.REG_size = 1;
1166 fra.me.REG[0] = NIT_NULL;
1167 fra.me.REG[0] = p0;
1168 /* ./../lib/standard//collection//abstract_collection.nit:303 */
1169 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1170 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1171 if (UNTAG_Bool(REGB0)) {
1172 } else {
1173 nit_abort("Assert %s failed", "'not_empty'", LOCATE_abstract_collection, 303);
1174 }
1175 /* ./../lib/standard//collection//abstract_collection.nit:304 */
1176 REGB0 = TAG_Int(0);
1177 fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
1178 goto label1;
1179 label1: while(0);
1180 stack_frame_head = fra.me.prev;
1181 return fra.me.REG[0];
1182 }
1183 val_t abstract_collection___SequenceRead___last(val_t p0){
1184 struct {struct stack_frame_t me;} fra;
1185 val_t REGB0;
1186 val_t REGB1;
1187 val_t tmp;
1188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1189 fra.me.file = LOCATE_abstract_collection;
1190 fra.me.line = 307;
1191 fra.me.meth = LOCATE_abstract_collection___SequenceRead___last;
1192 fra.me.has_broke = 0;
1193 fra.me.REG_size = 1;
1194 fra.me.REG[0] = NIT_NULL;
1195 fra.me.REG[0] = p0;
1196 /* ./../lib/standard//collection//abstract_collection.nit:311 */
1197 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1198 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1199 if (UNTAG_Bool(REGB0)) {
1200 } else {
1201 nit_abort("Assert %s failed", "'not_empty'", LOCATE_abstract_collection, 311);
1202 }
1203 /* ./../lib/standard//collection//abstract_collection.nit:312 */
1204 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
1205 REGB1 = TAG_Int(1);
1206 /* ./../lib/standard//kernel.nit:217 */
1207 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1208 /* ./../lib/standard//collection//abstract_collection.nit:312 */
1209 fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
1210 goto label1;
1211 label1: while(0);
1212 stack_frame_head = fra.me.prev;
1213 return fra.me.REG[0];
1214 }
1215 val_t abstract_collection___SequenceRead___index_of(val_t p0, val_t p1){
1216 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1217 val_t REGB0;
1218 val_t REGB1;
1219 val_t tmp;
1220 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1221 fra.me.file = LOCATE_abstract_collection;
1222 fra.me.line = 315;
1223 fra.me.meth = LOCATE_abstract_collection___SequenceRead___index_of;
1224 fra.me.has_broke = 0;
1225 fra.me.REG_size = 3;
1226 fra.me.REG[0] = NIT_NULL;
1227 fra.me.REG[1] = NIT_NULL;
1228 fra.me.REG[2] = NIT_NULL;
1229 fra.me.REG[0] = p0;
1230 fra.me.REG[1] = p1;
1231 /* ./../lib/standard//collection//abstract_collection.nit:319 */
1232 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
1233 /* ./../lib/standard//collection//abstract_collection.nit:320 */
1234 while(1) {
1235 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1236 if (UNTAG_Bool(REGB0)) {
1237 /* ./../lib/standard//collection//abstract_collection.nit:321 */
1238 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
1239 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1240 if (UNTAG_Bool(REGB0)) {
1241 } else {
1242 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1243 if (UNTAG_Bool(REGB1)) {
1244 REGB1 = TAG_Bool(false);
1245 REGB0 = REGB1;
1246 } else {
1247 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1248 REGB0 = REGB1;
1249 }
1250 }
1251 if (UNTAG_Bool(REGB0)) {
1252 REGB0 = CALL_abstract_collection___IndexedIterator___index(fra.me.REG[0])(fra.me.REG[0]);
1253 goto label1;
1254 }
1255 /* ./../lib/standard//collection//abstract_collection.nit:322 */
1256 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
1257 } else {
1258 /* ./../lib/standard//collection//abstract_collection.nit:320 */
1259 goto label2;
1260 }
1261 }
1262 label2: while(0);
1263 /* ./../lib/standard//collection//abstract_collection.nit:324 */
1264 REGB1 = TAG_Int(1);
1265 /* ./../lib/standard//kernel.nit:216 */
1266 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
1267 /* ./../lib/standard//collection//abstract_collection.nit:324 */
1268 REGB0 = REGB1;
1269 goto label1;
1270 label1: while(0);
1271 stack_frame_head = fra.me.prev;
1272 return REGB0;
1273 }
1274 val_t abstract_collection___SequenceRead___iterator(val_t p0){
1275 struct {struct stack_frame_t me;} fra;
1276 val_t tmp;
1277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1278 fra.me.file = LOCATE_abstract_collection;
1279 fra.me.line = 327;
1280 fra.me.meth = LOCATE_abstract_collection___SequenceRead___iterator;
1281 fra.me.has_broke = 0;
1282 fra.me.REG_size = 0;
1283 /* ./../lib/standard//collection//abstract_collection.nit:327 */
1284 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 327);
1285 stack_frame_head = fra.me.prev;
1286 return NIT_NULL;
1287 }
1288 void abstract_collection___Sequence___first__eq(val_t p0, val_t p1){
1289 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1290 val_t REGB0;
1291 val_t tmp;
1292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1293 fra.me.file = LOCATE_abstract_collection;
1294 fra.me.line = 336;
1295 fra.me.meth = LOCATE_abstract_collection___Sequence___first__eq;
1296 fra.me.has_broke = 0;
1297 fra.me.REG_size = 2;
1298 fra.me.REG[0] = NIT_NULL;
1299 fra.me.REG[1] = NIT_NULL;
1300 fra.me.REG[0] = p0;
1301 fra.me.REG[1] = p1;
1302 /* ./../lib/standard//collection//abstract_collection.nit:339 */
1303 REGB0 = TAG_Int(0);
1304 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1305 stack_frame_head = fra.me.prev;
1306 return;
1307 }
1308 void abstract_collection___Sequence___last__eq(val_t p0, val_t p1){
1309 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1310 val_t REGB0;
1311 val_t REGB1;
1312 val_t tmp;
1313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1314 fra.me.file = LOCATE_abstract_collection;
1315 fra.me.line = 341;
1316 fra.me.meth = LOCATE_abstract_collection___Sequence___last__eq;
1317 fra.me.has_broke = 0;
1318 fra.me.REG_size = 2;
1319 fra.me.REG[0] = NIT_NULL;
1320 fra.me.REG[1] = NIT_NULL;
1321 fra.me.REG[0] = p0;
1322 fra.me.REG[1] = p1;
1323 /* ./../lib/standard//collection//abstract_collection.nit:345 */
1324 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
1325 /* ./../lib/standard//collection//abstract_collection.nit:346 */
1326 REGB1 = TAG_Int(0);
1327 /* ./../lib/standard//kernel.nit:214 */
1328 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1329 /* ./../lib/standard//collection//abstract_collection.nit:346 */
1330 if (UNTAG_Bool(REGB1)) {
1331 /* ./../lib/standard//collection//abstract_collection.nit:347 */
1332 REGB1 = TAG_Int(1);
1333 /* ./../lib/standard//kernel.nit:217 */
1334 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1335 /* ./../lib/standard//collection//abstract_collection.nit:347 */
1336 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1337 } else {
1338 /* ./../lib/standard//collection//abstract_collection.nit:349 */
1339 REGB1 = TAG_Int(0);
1340 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1341 }
1342 stack_frame_head = fra.me.prev;
1343 return;
1344 }
1345 void abstract_collection___Sequence___add(val_t p0, val_t p1){
1346 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1347 val_t tmp;
1348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1349 fra.me.file = LOCATE_abstract_collection;
1350 fra.me.line = 353;
1351 fra.me.meth = LOCATE_abstract_collection___Sequence___add;
1352 fra.me.has_broke = 0;
1353 fra.me.REG_size = 2;
1354 fra.me.REG[0] = NIT_NULL;
1355 fra.me.REG[1] = NIT_NULL;
1356 fra.me.REG[0] = p0;
1357 fra.me.REG[1] = p1;
1358 /* ./../lib/standard//collection//abstract_collection.nit:354 */
1359 CALL_abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1360 stack_frame_head = fra.me.prev;
1361 return;
1362 }
1363 void abstract_collection___Sequence___push(val_t p0, val_t p1){
1364 struct {struct stack_frame_t me;} fra;
1365 val_t tmp;
1366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1367 fra.me.file = LOCATE_abstract_collection;
1368 fra.me.line = 356;
1369 fra.me.meth = LOCATE_abstract_collection___Sequence___push;
1370 fra.me.has_broke = 0;
1371 fra.me.REG_size = 0;
1372 /* ./../lib/standard//collection//abstract_collection.nit:356 */
1373 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 356);
1374 stack_frame_head = fra.me.prev;
1375 return;
1376 }
1377 void abstract_collection___Sequence___append(val_t p0, val_t p1){
1378 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1379 val_t tmp;
1380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1381 fra.me.file = LOCATE_abstract_collection;
1382 fra.me.line = 359;
1383 fra.me.meth = LOCATE_abstract_collection___Sequence___append;
1384 fra.me.has_broke = 0;
1385 fra.me.REG_size = 2;
1386 fra.me.REG[0] = NIT_NULL;
1387 fra.me.REG[1] = NIT_NULL;
1388 fra.me.REG[0] = p0;
1389 fra.me.REG[1] = p1;
1390 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_abstract_collection___Sequence___append_1));
1391 stack_frame_head = fra.me.prev;
1392 return;
1393 }
1394 void OC_abstract_collection___Sequence___append_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1395 struct {struct stack_frame_t me;} fra;
1396 fun_t CREG[1];
1397 val_t tmp;
1398 /* ./../lib/standard//collection//abstract_collection.nit:360 */
1399 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1400 fra.me.file = LOCATE_abstract_collection;
1401 fra.me.line = 0;
1402 fra.me.meth = LOCATE_abstract_collection___Sequence___append;
1403 fra.me.has_broke = 0;
1404 fra.me.REG_size = 1;
1405 fra.me.REG[0] = NIT_NULL;
1406 fra.me.closure_ctx = closctx_param;
1407 fra.me.closure_funs = CREG;
1408 fra.me.REG[0] = p0;
1409 CREG[0] = clos_fun0;
1410 CALL_abstract_collection___Sequence___push(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
1411 stack_frame_head = fra.me.prev;
1412 return;
1413 }
1414 val_t abstract_collection___Sequence___pop(val_t p0){
1415 struct {struct stack_frame_t me;} fra;
1416 val_t tmp;
1417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1418 fra.me.file = LOCATE_abstract_collection;
1419 fra.me.line = 362;
1420 fra.me.meth = LOCATE_abstract_collection___Sequence___pop;
1421 fra.me.has_broke = 0;
1422 fra.me.REG_size = 0;
1423 /* ./../lib/standard//collection//abstract_collection.nit:362 */
1424 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 362);
1425 stack_frame_head = fra.me.prev;
1426 return NIT_NULL;
1427 }
1428 void abstract_collection___Sequence___unshift(val_t p0, val_t p1){
1429 struct {struct stack_frame_t me;} fra;
1430 val_t tmp;
1431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1432 fra.me.file = LOCATE_abstract_collection;
1433 fra.me.line = 365;
1434 fra.me.meth = LOCATE_abstract_collection___Sequence___unshift;
1435 fra.me.has_broke = 0;
1436 fra.me.REG_size = 0;
1437 /* ./../lib/standard//collection//abstract_collection.nit:365 */
1438 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 365);
1439 stack_frame_head = fra.me.prev;
1440 return;
1441 }
1442 val_t abstract_collection___Sequence___shift(val_t p0){
1443 struct {struct stack_frame_t me;} fra;
1444 val_t tmp;
1445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1446 fra.me.file = LOCATE_abstract_collection;
1447 fra.me.line = 368;
1448 fra.me.meth = LOCATE_abstract_collection___Sequence___shift;
1449 fra.me.has_broke = 0;
1450 fra.me.REG_size = 0;
1451 /* ./../lib/standard//collection//abstract_collection.nit:368 */
1452 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 368);
1453 stack_frame_head = fra.me.prev;
1454 return NIT_NULL;
1455 }
1456 val_t abstract_collection___IndexedIterator___index(val_t p0){
1457 struct {struct stack_frame_t me;} fra;
1458 val_t tmp;
1459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1460 fra.me.file = LOCATE_abstract_collection;
1461 fra.me.line = 377;
1462 fra.me.meth = LOCATE_abstract_collection___IndexedIterator___index;
1463 fra.me.has_broke = 0;
1464 fra.me.REG_size = 0;
1465 /* ./../lib/standard//collection//abstract_collection.nit:377 */
1466 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 377);
1467 stack_frame_head = fra.me.prev;
1468 return NIT_NULL;
1469 }
1470 val_t abstract_collection___IndexedIterator___key(val_t p0){
1471 struct {struct stack_frame_t me;} fra;
1472 val_t REGB0;
1473 val_t tmp;
1474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1475 fra.me.file = LOCATE_abstract_collection;
1476 fra.me.line = 380;
1477 fra.me.meth = LOCATE_abstract_collection___IndexedIterator___key;
1478 fra.me.has_broke = 0;
1479 fra.me.REG_size = 1;
1480 fra.me.REG[0] = NIT_NULL;
1481 fra.me.REG[0] = p0;
1482 /* ./../lib/standard//collection//abstract_collection.nit:381 */
1483 REGB0 = CALL_abstract_collection___IndexedIterator___index(fra.me.REG[0])(fra.me.REG[0]);
1484 goto label1;
1485 label1: while(0);
1486 stack_frame_head = fra.me.prev;
1487 return REGB0;
1488 }
1489 val_t abstract_collection___CoupleMap___couple_at(val_t p0, val_t p1){
1490 struct {struct stack_frame_t me;} fra;
1491 val_t tmp;
1492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1493 fra.me.file = LOCATE_abstract_collection;
1494 fra.me.line = 387;
1495 fra.me.meth = LOCATE_abstract_collection___CoupleMap___couple_at;
1496 fra.me.has_broke = 0;
1497 fra.me.REG_size = 0;
1498 /* ./../lib/standard//collection//abstract_collection.nit:387 */
1499 nit_abort("Deferred method called", NULL, LOCATE_abstract_collection, 387);
1500 stack_frame_head = fra.me.prev;
1501 return NIT_NULL;
1502 }
1503 val_t abstract_collection___CoupleMap_____bra(val_t p0, val_t p1){
1504 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1505 val_t REGB0;
1506 val_t REGB1;
1507 val_t tmp;
1508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1509 fra.me.file = LOCATE_abstract_collection;
1510 fra.me.line = 391;
1511 fra.me.meth = LOCATE_abstract_collection___CoupleMap_____bra;
1512 fra.me.has_broke = 0;
1513 fra.me.REG_size = 2;
1514 fra.me.REG[0] = NIT_NULL;
1515 fra.me.REG[1] = NIT_NULL;
1516 fra.me.REG[0] = p0;
1517 fra.me.REG[1] = p1;
1518 /* ./../lib/standard//collection//abstract_collection.nit:393 */
1519 fra.me.REG[1] = CALL_abstract_collection___CoupleMap___couple_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1520 /* ./../lib/standard//collection//abstract_collection.nit:394 */
1521 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1522 if (UNTAG_Bool(REGB0)) {
1523 } else {
1524 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1525 if (UNTAG_Bool(REGB1)) {
1526 REGB1 = TAG_Bool(false);
1527 REGB0 = REGB1;
1528 } else {
1529 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1530 REGB0 = REGB1;
1531 }
1532 }
1533 if (UNTAG_Bool(REGB0)) {
1534 /* ./../lib/standard//collection//abstract_collection.nit:395 */
1535 nit_abort("Aborted", NULL, LOCATE_abstract_collection, 395);
1536 } else {
1537 /* ./../lib/standard//collection//abstract_collection.nit:397 */
1538 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1539 if (UNTAG_Bool(REGB0)) {
1540 nit_abort("Reciever is null", NULL, LOCATE_abstract_collection, 397);
1541 }
1542 fra.me.REG[1] = CALL_abstract_collection___Couple___second(fra.me.REG[1])(fra.me.REG[1]);
1543 goto label1;
1544 }
1545 label1: while(0);
1546 stack_frame_head = fra.me.prev;
1547 return fra.me.REG[1];
1548 }
1549 val_t abstract_collection___CoupleMap___has_key(val_t p0, val_t p1){
1550 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1551 val_t REGB0;
1552 val_t REGB1;
1553 val_t tmp;
1554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1555 fra.me.file = LOCATE_abstract_collection;
1556 fra.me.line = 401;
1557 fra.me.meth = LOCATE_abstract_collection___CoupleMap___has_key;
1558 fra.me.has_broke = 0;
1559 fra.me.REG_size = 2;
1560 fra.me.REG[0] = NIT_NULL;
1561 fra.me.REG[1] = NIT_NULL;
1562 fra.me.REG[0] = p0;
1563 fra.me.REG[1] = p1;
1564 /* ./../lib/standard//collection//abstract_collection.nit:401 */
1565 fra.me.REG[1] = CALL_abstract_collection___CoupleMap___couple_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1566 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1567 if (UNTAG_Bool(REGB0)) {
1568 } else {
1569 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1570 if (UNTAG_Bool(REGB1)) {
1571 REGB1 = TAG_Bool(false);
1572 REGB0 = REGB1;
1573 } else {
1574 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1575 REGB0 = REGB1;
1576 }
1577 }
1578 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1579 goto label1;
1580 label1: while(0);
1581 stack_frame_head = fra.me.prev;
1582 return REGB0;
1583 }
1584 val_t abstract_collection___CoupleMapIterator___item(val_t p0){
1585 struct {struct stack_frame_t me;} fra;
1586 val_t REGB0;
1587 val_t tmp;
1588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1589 fra.me.file = LOCATE_abstract_collection;
1590 fra.me.line = 409;
1591 fra.me.meth = LOCATE_abstract_collection___CoupleMapIterator___item;
1592 fra.me.has_broke = 0;
1593 fra.me.REG_size = 1;
1594 fra.me.REG[0] = NIT_NULL;
1595 fra.me.REG[0] = p0;
1596 /* ./../lib/standard//collection//abstract_collection.nit:409 */
1597 REGB0 = TAG_Bool(ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
1598 if (UNTAG_Bool(REGB0)) {
1599 } else {
1600 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_abstract_collection, 409);
1601 }
1602 fra.me.REG[0] = ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
1603 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
1604 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1605 if (UNTAG_Bool(REGB0)) {
1606 nit_abort("Reciever is null", NULL, LOCATE_abstract_collection, 409);
1607 }
1608 fra.me.REG[0] = CALL_abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
1609 goto label1;
1610 label1: while(0);
1611 stack_frame_head = fra.me.prev;
1612 return fra.me.REG[0];
1613 }
1614 val_t abstract_collection___CoupleMapIterator___key(val_t p0){
1615 struct {struct stack_frame_t me;} fra;
1616 val_t REGB0;
1617 val_t tmp;
1618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1619 fra.me.file = LOCATE_abstract_collection;
1620 fra.me.line = 413;
1621 fra.me.meth = LOCATE_abstract_collection___CoupleMapIterator___key;
1622 fra.me.has_broke = 0;
1623 fra.me.REG_size = 1;
1624 fra.me.REG[0] = NIT_NULL;
1625 fra.me.REG[0] = p0;
1626 /* ./../lib/standard//collection//abstract_collection.nit:413 */
1627 REGB0 = TAG_Bool(ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
1628 if (UNTAG_Bool(REGB0)) {
1629 } else {
1630 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_abstract_collection, 413);
1631 }
1632 fra.me.REG[0] = ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
1633 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
1634 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1635 if (UNTAG_Bool(REGB0)) {
1636 nit_abort("Reciever is null", NULL, LOCATE_abstract_collection, 413);
1637 }
1638 fra.me.REG[0] = CALL_abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
1639 goto label1;
1640 label1: while(0);
1641 stack_frame_head = fra.me.prev;
1642 return fra.me.REG[0];
1643 }
1644 val_t abstract_collection___CoupleMapIterator___is_ok(val_t p0){
1645 struct {struct stack_frame_t me;} fra;
1646 val_t REGB0;
1647 val_t tmp;
1648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1649 fra.me.file = LOCATE_abstract_collection;
1650 fra.me.line = 415;
1651 fra.me.meth = LOCATE_abstract_collection___CoupleMapIterator___is_ok;
1652 fra.me.has_broke = 0;
1653 fra.me.REG_size = 1;
1654 fra.me.REG[0] = NIT_NULL;
1655 fra.me.REG[0] = p0;
1656 /* ./../lib/standard//collection//abstract_collection.nit:415 */
1657 REGB0 = TAG_Bool(ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
1658 if (UNTAG_Bool(REGB0)) {
1659 } else {
1660 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_abstract_collection, 415);
1661 }
1662 fra.me.REG[0] = ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
1663 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1664 goto label1;
1665 label1: while(0);
1666 stack_frame_head = fra.me.prev;
1667 return REGB0;
1668 }
1669 void abstract_collection___CoupleMapIterator___next(val_t p0){
1670 struct {struct stack_frame_t me;} fra;
1671 val_t REGB0;
1672 val_t tmp;
1673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1674 fra.me.file = LOCATE_abstract_collection;
1675 fra.me.line = 417;
1676 fra.me.meth = LOCATE_abstract_collection___CoupleMapIterator___next;
1677 fra.me.has_broke = 0;
1678 fra.me.REG_size = 1;
1679 fra.me.REG[0] = NIT_NULL;
1680 fra.me.REG[0] = p0;
1681 /* ./../lib/standard//collection//abstract_collection.nit:419 */
1682 REGB0 = TAG_Bool(ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
1683 if (UNTAG_Bool(REGB0)) {
1684 } else {
1685 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_abstract_collection, 419);
1686 }
1687 fra.me.REG[0] = ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
1688 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
1689 stack_frame_head = fra.me.prev;
1690 return;
1691 }
1692 void abstract_collection___CoupleMapIterator___init(val_t p0, val_t p1, int* init_table){
1693 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_CoupleMapIterator].i;
1694 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1695 val_t tmp;
1696 if (init_table[itpos2]) return;
1697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1698 fra.me.file = LOCATE_abstract_collection;
1699 fra.me.line = 424;
1700 fra.me.meth = LOCATE_abstract_collection___CoupleMapIterator___init;
1701 fra.me.has_broke = 0;
1702 fra.me.REG_size = 2;
1703 fra.me.REG[0] = NIT_NULL;
1704 fra.me.REG[1] = NIT_NULL;
1705 fra.me.REG[0] = p0;
1706 fra.me.REG[1] = p1;
1707 /* ./../lib/standard//collection//abstract_collection.nit:424 */
1708 ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]) = fra.me.REG[1];
1709 stack_frame_head = fra.me.prev;
1710 init_table[itpos2] = 1;
1711 return;
1712 }
1713 val_t abstract_collection___Couple___first(val_t p0){
1714 struct {struct stack_frame_t me;} fra;
1715 val_t tmp;
1716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1717 fra.me.file = LOCATE_abstract_collection;
1718 fra.me.line = 432;
1719 fra.me.meth = LOCATE_abstract_collection___Couple___first;
1720 fra.me.has_broke = 0;
1721 fra.me.REG_size = 1;
1722 fra.me.REG[0] = NIT_NULL;
1723 fra.me.REG[0] = p0;
1724 /* ./../lib/standard//collection//abstract_collection.nit:432 */
1725 fra.me.REG[0] = ATTR_abstract_collection___Couple____first(fra.me.REG[0]);
1726 stack_frame_head = fra.me.prev;
1727 return fra.me.REG[0];
1728 }
1729 void abstract_collection___Couple___first__eq(val_t p0, val_t p1){
1730 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1731 val_t tmp;
1732 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1733 fra.me.file = LOCATE_abstract_collection;
1734 fra.me.line = 432;
1735 fra.me.meth = LOCATE_abstract_collection___Couple___first__eq;
1736 fra.me.has_broke = 0;
1737 fra.me.REG_size = 2;
1738 fra.me.REG[0] = NIT_NULL;
1739 fra.me.REG[1] = NIT_NULL;
1740 fra.me.REG[0] = p0;
1741 fra.me.REG[1] = p1;
1742 /* ./../lib/standard//collection//abstract_collection.nit:432 */
1743 ATTR_abstract_collection___Couple____first(fra.me.REG[0]) = fra.me.REG[1];
1744 stack_frame_head = fra.me.prev;
1745 return;
1746 }
1747 val_t abstract_collection___Couple___second(val_t p0){
1748 struct {struct stack_frame_t me;} fra;
1749 val_t tmp;
1750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1751 fra.me.file = LOCATE_abstract_collection;
1752 fra.me.line = 435;
1753 fra.me.meth = LOCATE_abstract_collection___Couple___second;
1754 fra.me.has_broke = 0;
1755 fra.me.REG_size = 1;
1756 fra.me.REG[0] = NIT_NULL;
1757 fra.me.REG[0] = p0;
1758 /* ./../lib/standard//collection//abstract_collection.nit:435 */
1759 fra.me.REG[0] = ATTR_abstract_collection___Couple____second(fra.me.REG[0]);
1760 stack_frame_head = fra.me.prev;
1761 return fra.me.REG[0];
1762 }
1763 void abstract_collection___Couple___second__eq(val_t p0, val_t p1){
1764 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1765 val_t tmp;
1766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1767 fra.me.file = LOCATE_abstract_collection;
1768 fra.me.line = 435;
1769 fra.me.meth = LOCATE_abstract_collection___Couple___second__eq;
1770 fra.me.has_broke = 0;
1771 fra.me.REG_size = 2;
1772 fra.me.REG[0] = NIT_NULL;
1773 fra.me.REG[1] = NIT_NULL;
1774 fra.me.REG[0] = p0;
1775 fra.me.REG[1] = p1;
1776 /* ./../lib/standard//collection//abstract_collection.nit:435 */
1777 ATTR_abstract_collection___Couple____second(fra.me.REG[0]) = fra.me.REG[1];
1778 stack_frame_head = fra.me.prev;
1779 return;
1780 }
1781 void abstract_collection___Couple___init(val_t p0, val_t p1, val_t p2, int* init_table){
1782 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Couple].i;
1783 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1784 val_t tmp;
1785 if (init_table[itpos3]) return;
1786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1787 fra.me.file = LOCATE_abstract_collection;
1788 fra.me.line = 438;
1789 fra.me.meth = LOCATE_abstract_collection___Couple___init;
1790 fra.me.has_broke = 0;
1791 fra.me.REG_size = 3;
1792 fra.me.REG[0] = NIT_NULL;
1793 fra.me.REG[1] = NIT_NULL;
1794 fra.me.REG[2] = NIT_NULL;
1795 fra.me.REG[0] = p0;
1796 fra.me.REG[1] = p1;
1797 fra.me.REG[2] = p2;
1798 /* ./../lib/standard//collection//abstract_collection.nit:441 */
1799 ATTR_abstract_collection___Couple____first(fra.me.REG[0]) = fra.me.REG[1];
1800 /* ./../lib/standard//collection//abstract_collection.nit:442 */
1801 ATTR_abstract_collection___Couple____second(fra.me.REG[0]) = fra.me.REG[2];
1802 stack_frame_head = fra.me.prev;
1803 init_table[itpos3] = 1;
1804 return;
1805 }