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