gc: show default GC on warnings
[nit.git] / c_src / list._sep.c
1 /* This C file is generated by NIT to compile module list. */
2 #include "list._sep.h"
3 val_t list___List___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_list;
8 fra.me.line = 173;
9 fra.me.meth = LOCATE_list___List___iterator;
10 fra.me.has_broke = 0;
11 fra.me.REG_size = 1;
12 fra.me.REG[0] = NIT_NULL;
13 fra.me.REG[0] = p0;
14 fra.me.REG[0] = NEW_ListIterator_list___ListIterator___init(fra.me.REG[0]);
15 /* ./../lib/standard//collection//list.nit:173 */
16 goto label1;
17 label1: while(0);
18 stack_frame_head = fra.me.prev;
19 return fra.me.REG[0];
20 }
21 val_t list___List___is_empty(val_t p0){
22 struct {struct stack_frame_t me;} fra;
23 val_t REGB0;
24 val_t REGB1;
25 val_t tmp;
26 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27 fra.me.file = LOCATE_list;
28 fra.me.line = 40;
29 fra.me.meth = LOCATE_list___List___is_empty;
30 fra.me.has_broke = 0;
31 fra.me.REG_size = 1;
32 fra.me.REG[0] = NIT_NULL;
33 fra.me.REG[0] = p0;
34 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
35 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
36 /* ./../lib/standard//collection//list.nit:41 */
37 if (UNTAG_Bool(REGB0)) {
38 } else {
39 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
40 if (UNTAG_Bool(REGB1)) {
41 REGB1 = TAG_Bool(false);
42 REGB0 = REGB1;
43 } else {
44 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
45 REGB0 = REGB1;
46 }
47 }
48 goto label1;
49 label1: while(0);
50 stack_frame_head = fra.me.prev;
51 return REGB0;
52 }
53 val_t list___List___length(val_t p0){
54 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
55 val_t REGB0;
56 val_t REGB1;
57 val_t REGB2;
58 val_t tmp;
59 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
60 fra.me.file = LOCATE_list;
61 fra.me.line = 43;
62 fra.me.meth = LOCATE_list___List___length;
63 fra.me.has_broke = 0;
64 fra.me.REG_size = 2;
65 fra.me.REG[0] = NIT_NULL;
66 fra.me.REG[1] = NIT_NULL;
67 fra.me.REG[0] = p0;
68 REGB0 = TAG_Int(0);
69 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
70 /* ./../lib/standard//collection//list.nit:48 */
71 while(1) {
72 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
73 if (UNTAG_Bool(REGB1)) {
74 } else {
75 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
76 if (UNTAG_Bool(REGB2)) {
77 REGB2 = TAG_Bool(false);
78 REGB1 = REGB2;
79 } else {
80 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
81 REGB1 = REGB2;
82 }
83 }
84 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
85 if (UNTAG_Bool(REGB1)) {
86 REGB1 = TAG_Int(1);
87 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
88 REGB0 = REGB1;
89 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
90 /* ./../lib/standard//collection//list.nit:50 */
91 if (UNTAG_Bool(REGB1)) {
92 fprintf(stderr, "Reciever is null");
93 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 50);
94 nit_exit(1);
95 }
96 fra.me.REG[1] = CALL_list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
97 fra.me.REG[0] = fra.me.REG[1];
98 } else {
99 /* ./../lib/standard//collection//list.nit:48 */
100 goto label1;
101 }
102 }
103 label1: while(0);
104 /* ./../lib/standard//collection//list.nit:52 */
105 goto label2;
106 label2: while(0);
107 stack_frame_head = fra.me.prev;
108 return REGB0;
109 }
110 val_t list___List___has(val_t p0, val_t p1){
111 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
112 val_t REGB0;
113 val_t REGB1;
114 val_t tmp;
115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
116 fra.me.file = LOCATE_list;
117 fra.me.line = 55;
118 fra.me.meth = LOCATE_list___List___has;
119 fra.me.has_broke = 0;
120 fra.me.REG_size = 3;
121 fra.me.REG[0] = NIT_NULL;
122 fra.me.REG[1] = NIT_NULL;
123 fra.me.REG[2] = NIT_NULL;
124 fra.me.REG[0] = p0;
125 fra.me.REG[1] = p1;
126 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[0]);
127 fra.me.REG[2] = CALL_list___List___search_node_after(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
128 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
129 /* ./../lib/standard//collection//list.nit:56 */
130 if (UNTAG_Bool(REGB0)) {
131 } else {
132 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
133 if (UNTAG_Bool(REGB1)) {
134 REGB1 = TAG_Bool(false);
135 REGB0 = REGB1;
136 } else {
137 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
138 REGB0 = REGB1;
139 }
140 }
141 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
142 goto label1;
143 label1: while(0);
144 stack_frame_head = fra.me.prev;
145 return REGB0;
146 }
147 val_t list___List___has_only(val_t p0, val_t p1){
148 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
149 val_t REGB0;
150 val_t REGB1;
151 val_t tmp;
152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
153 fra.me.file = LOCATE_list;
154 fra.me.line = 58;
155 fra.me.meth = LOCATE_list___List___has_only;
156 fra.me.has_broke = 0;
157 fra.me.REG_size = 3;
158 fra.me.REG[0] = NIT_NULL;
159 fra.me.REG[1] = NIT_NULL;
160 fra.me.REG[2] = NIT_NULL;
161 fra.me.REG[0] = p0;
162 fra.me.REG[1] = p1;
163 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
164 /* ./../lib/standard//collection//list.nit:61 */
165 while(1) {
166 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
167 if (UNTAG_Bool(REGB0)) {
168 } else {
169 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
170 if (UNTAG_Bool(REGB1)) {
171 REGB1 = TAG_Bool(false);
172 REGB0 = REGB1;
173 } else {
174 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
175 REGB0 = REGB1;
176 }
177 }
178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
179 if (UNTAG_Bool(REGB0)) {
180 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
181 /* ./../lib/standard//collection//list.nit:62 */
182 if (UNTAG_Bool(REGB0)) {
183 fprintf(stderr, "Reciever is null");
184 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 62);
185 nit_exit(1);
186 }
187 fra.me.REG[2] = CALL_abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
188 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
189 if (UNTAG_Bool(REGB0)) {
190 } else {
191 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
192 if (UNTAG_Bool(REGB1)) {
193 REGB1 = TAG_Bool(false);
194 REGB0 = REGB1;
195 } else {
196 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
197 REGB0 = REGB1;
198 }
199 }
200 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
201 if (UNTAG_Bool(REGB0)) {
202 REGB0 = TAG_Bool(false);
203 goto label1;
204 }
205 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
206 /* ./../lib/standard//collection//list.nit:63 */
207 if (UNTAG_Bool(REGB1)) {
208 fprintf(stderr, "Reciever is null");
209 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 63);
210 nit_exit(1);
211 }
212 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
213 fra.me.REG[0] = fra.me.REG[2];
214 } else {
215 /* ./../lib/standard//collection//list.nit:61 */
216 goto label2;
217 }
218 }
219 label2: while(0);
220 REGB1 = TAG_Bool(true);
221 REGB0 = REGB1;
222 /* ./../lib/standard//collection//list.nit:65 */
223 goto label1;
224 label1: while(0);
225 stack_frame_head = fra.me.prev;
226 return REGB0;
227 }
228 val_t list___List___count(val_t p0, val_t p1){
229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
230 val_t REGB0;
231 val_t REGB1;
232 val_t REGB2;
233 val_t tmp;
234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
235 fra.me.file = LOCATE_list;
236 fra.me.line = 68;
237 fra.me.meth = LOCATE_list___List___count;
238 fra.me.has_broke = 0;
239 fra.me.REG_size = 3;
240 fra.me.REG[0] = NIT_NULL;
241 fra.me.REG[1] = NIT_NULL;
242 fra.me.REG[2] = NIT_NULL;
243 fra.me.REG[0] = p0;
244 fra.me.REG[1] = p1;
245 REGB0 = TAG_Int(0);
246 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
247 /* ./../lib/standard//collection//list.nit:72 */
248 while(1) {
249 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
250 if (UNTAG_Bool(REGB1)) {
251 } else {
252 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
253 if (UNTAG_Bool(REGB2)) {
254 REGB2 = TAG_Bool(false);
255 REGB1 = REGB2;
256 } else {
257 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
258 REGB1 = REGB2;
259 }
260 }
261 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
262 if (UNTAG_Bool(REGB1)) {
263 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
264 /* ./../lib/standard//collection//list.nit:73 */
265 if (UNTAG_Bool(REGB1)) {
266 fprintf(stderr, "Reciever is null");
267 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 73);
268 nit_exit(1);
269 }
270 fra.me.REG[2] = CALL_abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
271 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
272 if (UNTAG_Bool(REGB1)) {
273 } else {
274 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
275 if (UNTAG_Bool(REGB2)) {
276 REGB2 = TAG_Bool(false);
277 REGB1 = REGB2;
278 } else {
279 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
280 REGB1 = REGB2;
281 }
282 }
283 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
284 if (UNTAG_Bool(REGB1)) {
285 REGB1 = TAG_Int(1);
286 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
287 REGB0 = REGB1;
288 /* ./../lib/standard//collection//list.nit:73 */
289 }
290 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
291 /* ./../lib/standard//collection//list.nit:74 */
292 if (UNTAG_Bool(REGB1)) {
293 fprintf(stderr, "Reciever is null");
294 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 74);
295 nit_exit(1);
296 }
297 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
298 fra.me.REG[0] = fra.me.REG[2];
299 } else {
300 /* ./../lib/standard//collection//list.nit:72 */
301 goto label1;
302 }
303 }
304 label1: while(0);
305 /* ./../lib/standard//collection//list.nit:76 */
306 goto label2;
307 label2: while(0);
308 stack_frame_head = fra.me.prev;
309 return REGB0;
310 }
311 val_t list___List___first(val_t p0){
312 struct {struct stack_frame_t me;} fra;
313 val_t REGB0;
314 val_t tmp;
315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
316 fra.me.file = LOCATE_list;
317 fra.me.line = 26;
318 fra.me.meth = LOCATE_list___List___first;
319 fra.me.has_broke = 0;
320 fra.me.REG_size = 1;
321 fra.me.REG[0] = NIT_NULL;
322 fra.me.REG[0] = p0;
323 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
324 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
325 /* ./../lib/standard//collection//list.nit:27 */
326 if (UNTAG_Bool(REGB0)) {
327 fprintf(stderr, "Reciever is null");
328 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 27);
329 nit_exit(1);
330 }
331 fra.me.REG[0] = CALL_abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
332 goto label1;
333 label1: while(0);
334 stack_frame_head = fra.me.prev;
335 return fra.me.REG[0];
336 }
337 val_t list___List_____bra(val_t p0, val_t p1){
338 struct {struct stack_frame_t me;} fra;
339 val_t REGB0;
340 val_t tmp;
341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
342 fra.me.file = LOCATE_list;
343 fra.me.line = 21;
344 fra.me.meth = LOCATE_list___List_____bra;
345 fra.me.has_broke = 0;
346 fra.me.REG_size = 1;
347 fra.me.REG[0] = NIT_NULL;
348 fra.me.REG[0] = p0;
349 REGB0 = p1;
350 fra.me.REG[0] = CALL_list___List___get_node(fra.me.REG[0])(fra.me.REG[0], REGB0);
351 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
352 /* ./../lib/standard//collection//list.nit:22 */
353 if (UNTAG_Bool(REGB0)) {
354 fprintf(stderr, "Reciever is null");
355 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 22);
356 nit_exit(1);
357 }
358 fra.me.REG[0] = CALL_abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
359 goto label1;
360 label1: while(0);
361 stack_frame_head = fra.me.prev;
362 return fra.me.REG[0];
363 }
364 val_t list___List___has_key(val_t p0, val_t p1){
365 struct {struct stack_frame_t me;} fra;
366 val_t REGB0;
367 val_t REGB1;
368 val_t tmp;
369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
370 fra.me.file = LOCATE_list;
371 fra.me.line = 79;
372 fra.me.meth = LOCATE_list___List___has_key;
373 fra.me.has_broke = 0;
374 fra.me.REG_size = 1;
375 fra.me.REG[0] = NIT_NULL;
376 fra.me.REG[0] = p0;
377 REGB0 = p1;
378 fra.me.REG[0] = CALL_list___List___get_node(fra.me.REG[0])(fra.me.REG[0], REGB0);
379 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
380 /* ./../lib/standard//collection//list.nit:79 */
381 if (UNTAG_Bool(REGB0)) {
382 } else {
383 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
384 if (UNTAG_Bool(REGB1)) {
385 REGB1 = TAG_Bool(false);
386 REGB0 = REGB1;
387 } else {
388 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
389 REGB0 = REGB1;
390 }
391 }
392 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
393 goto label1;
394 label1: while(0);
395 stack_frame_head = fra.me.prev;
396 return REGB0;
397 }
398 val_t list___List___last(val_t p0){
399 struct {struct stack_frame_t me;} fra;
400 val_t REGB0;
401 val_t tmp;
402 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
403 fra.me.file = LOCATE_list;
404 fra.me.line = 32;
405 fra.me.meth = LOCATE_list___List___last;
406 fra.me.has_broke = 0;
407 fra.me.REG_size = 1;
408 fra.me.REG[0] = NIT_NULL;
409 fra.me.REG[0] = p0;
410 fra.me.REG[0] = ATTR_list___List____tail(fra.me.REG[0]);
411 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
412 /* ./../lib/standard//collection//list.nit:33 */
413 if (UNTAG_Bool(REGB0)) {
414 fprintf(stderr, "Reciever is null");
415 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 33);
416 nit_exit(1);
417 }
418 fra.me.REG[0] = CALL_abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
419 goto label1;
420 label1: while(0);
421 stack_frame_head = fra.me.prev;
422 return fra.me.REG[0];
423 }
424 void list___List___clear(val_t p0){
425 struct {struct stack_frame_t me;} fra;
426 val_t tmp;
427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
428 fra.me.file = LOCATE_list;
429 fra.me.line = 166;
430 fra.me.meth = LOCATE_list___List___clear;
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//list.nit:168 */
436 ATTR_list___List____head(fra.me.REG[0]) = NIT_NULL;
437 /* ./../lib/standard//collection//list.nit:169 */
438 ATTR_list___List____tail(fra.me.REG[0]) = NIT_NULL;
439 stack_frame_head = fra.me.prev;
440 return;
441 }
442 void list___List___remove(val_t p0, val_t p1){
443 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
444 val_t REGB0;
445 val_t REGB1;
446 val_t tmp;
447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
448 fra.me.file = LOCATE_list;
449 fra.me.line = 154;
450 fra.me.meth = LOCATE_list___List___remove;
451 fra.me.has_broke = 0;
452 fra.me.REG_size = 3;
453 fra.me.REG[0] = NIT_NULL;
454 fra.me.REG[1] = NIT_NULL;
455 fra.me.REG[2] = NIT_NULL;
456 fra.me.REG[0] = p0;
457 fra.me.REG[1] = p1;
458 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[0]);
459 fra.me.REG[2] = CALL_list___List___search_node_after(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
460 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
461 /* ./../lib/standard//collection//list.nit:157 */
462 if (UNTAG_Bool(REGB0)) {
463 } else {
464 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
465 if (UNTAG_Bool(REGB1)) {
466 REGB1 = TAG_Bool(false);
467 REGB0 = REGB1;
468 } else {
469 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
470 REGB0 = REGB1;
471 }
472 }
473 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
474 if (UNTAG_Bool(REGB0)) {
475 CALL_list___List___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
476 }
477 stack_frame_head = fra.me.prev;
478 return;
479 }
480 void list___List_____braeq(val_t p0, val_t p1, val_t p2){
481 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
482 val_t REGB0;
483 val_t tmp;
484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
485 fra.me.file = LOCATE_list;
486 fra.me.line = 24;
487 fra.me.meth = LOCATE_list___List_____braeq;
488 fra.me.has_broke = 0;
489 fra.me.REG_size = 2;
490 fra.me.REG[0] = NIT_NULL;
491 fra.me.REG[1] = NIT_NULL;
492 fra.me.REG[0] = p0;
493 REGB0 = p1;
494 fra.me.REG[1] = p2;
495 fra.me.REG[0] = CALL_list___List___get_node(fra.me.REG[0])(fra.me.REG[0], REGB0);
496 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
497 /* ./../lib/standard//collection//list.nit:24 */
498 if (UNTAG_Bool(REGB0)) {
499 fprintf(stderr, "Reciever is null");
500 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 24);
501 nit_exit(1);
502 }
503 CALL_abstract_collection___Container___item__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
504 stack_frame_head = fra.me.prev;
505 return;
506 }
507 void list___List___remove_at(val_t p0, val_t p1){
508 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
509 val_t REGB0;
510 val_t REGB1;
511 val_t tmp;
512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
513 fra.me.file = LOCATE_list;
514 fra.me.line = 160;
515 fra.me.meth = LOCATE_list___List___remove_at;
516 fra.me.has_broke = 0;
517 fra.me.REG_size = 2;
518 fra.me.REG[0] = NIT_NULL;
519 fra.me.REG[1] = NIT_NULL;
520 fra.me.REG[0] = p0;
521 REGB0 = p1;
522 fra.me.REG[1] = CALL_list___List___get_node(fra.me.REG[0])(fra.me.REG[0], REGB0);
523 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
524 /* ./../lib/standard//collection//list.nit:163 */
525 if (UNTAG_Bool(REGB0)) {
526 } else {
527 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
528 if (UNTAG_Bool(REGB1)) {
529 REGB1 = TAG_Bool(false);
530 REGB0 = REGB1;
531 } else {
532 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
533 REGB0 = REGB1;
534 }
535 }
536 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
537 if (UNTAG_Bool(REGB0)) {
538 CALL_list___List___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
539 }
540 stack_frame_head = fra.me.prev;
541 return;
542 }
543 void list___List___first__eq(val_t p0, val_t p1){
544 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
545 val_t REGB0;
546 val_t tmp;
547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
548 fra.me.file = LOCATE_list;
549 fra.me.line = 29;
550 fra.me.meth = LOCATE_list___List___first__eq;
551 fra.me.has_broke = 0;
552 fra.me.REG_size = 2;
553 fra.me.REG[0] = NIT_NULL;
554 fra.me.REG[1] = NIT_NULL;
555 fra.me.REG[0] = p0;
556 fra.me.REG[1] = p1;
557 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
558 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
559 /* ./../lib/standard//collection//list.nit:30 */
560 if (UNTAG_Bool(REGB0)) {
561 fprintf(stderr, "Reciever is null");
562 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 30);
563 nit_exit(1);
564 }
565 CALL_abstract_collection___Container___item__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
566 stack_frame_head = fra.me.prev;
567 return;
568 }
569 void list___List___last__eq(val_t p0, val_t p1){
570 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
571 val_t REGB0;
572 val_t tmp;
573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
574 fra.me.file = LOCATE_list;
575 fra.me.line = 35;
576 fra.me.meth = LOCATE_list___List___last__eq;
577 fra.me.has_broke = 0;
578 fra.me.REG_size = 2;
579 fra.me.REG[0] = NIT_NULL;
580 fra.me.REG[1] = NIT_NULL;
581 fra.me.REG[0] = p0;
582 fra.me.REG[1] = p1;
583 fra.me.REG[0] = ATTR_list___List____tail(fra.me.REG[0]);
584 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
585 /* ./../lib/standard//collection//list.nit:36 */
586 if (UNTAG_Bool(REGB0)) {
587 fprintf(stderr, "Reciever is null");
588 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 36);
589 nit_exit(1);
590 }
591 CALL_abstract_collection___Container___item__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
592 stack_frame_head = fra.me.prev;
593 return;
594 }
595 void list___List___push(val_t p0, val_t p1){
596 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
597 val_t REGB0;
598 val_t REGB1;
599 val_t tmp;
600 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
601 fra.me.file = LOCATE_list;
602 fra.me.line = 83;
603 fra.me.meth = LOCATE_list___List___push;
604 fra.me.has_broke = 0;
605 fra.me.REG_size = 3;
606 fra.me.REG[0] = NIT_NULL;
607 fra.me.REG[1] = NIT_NULL;
608 fra.me.REG[2] = NIT_NULL;
609 fra.me.REG[0] = p0;
610 fra.me.REG[1] = p1;
611 fra.me.REG[1] = NEW_ListNode_list___ListNode___init(fra.me.REG[1]);
612 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[0]);
613 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
614 /* ./../lib/standard//collection//list.nit:87 */
615 if (UNTAG_Bool(REGB0)) {
616 } else {
617 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
618 if (UNTAG_Bool(REGB1)) {
619 REGB1 = TAG_Bool(false);
620 REGB0 = REGB1;
621 } else {
622 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
623 REGB0 = REGB1;
624 }
625 }
626 if (UNTAG_Bool(REGB0)) {
627 /* ./../lib/standard//collection//list.nit:88 */
628 ATTR_list___List____head(fra.me.REG[0]) = fra.me.REG[1];
629 } else {
630 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[0]);
631 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
632 /* ./../lib/standard//collection//list.nit:90 */
633 if (UNTAG_Bool(REGB0)) {
634 fprintf(stderr, "Reciever is null");
635 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 90);
636 nit_exit(1);
637 }
638 CALL_list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
639 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[0]);
640 /* ./../lib/standard//collection//list.nit:91 */
641 CALL_list___ListNode___prev__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
642 }
643 /* ./../lib/standard//collection//list.nit:93 */
644 ATTR_list___List____tail(fra.me.REG[0]) = fra.me.REG[1];
645 stack_frame_head = fra.me.prev;
646 return;
647 }
648 val_t list___List___pop(val_t p0){
649 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
650 val_t REGB0;
651 val_t REGB1;
652 val_t tmp;
653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
654 fra.me.file = LOCATE_list;
655 fra.me.line = 126;
656 fra.me.meth = LOCATE_list___List___pop;
657 fra.me.has_broke = 0;
658 fra.me.REG_size = 3;
659 fra.me.REG[0] = NIT_NULL;
660 fra.me.REG[1] = NIT_NULL;
661 fra.me.REG[2] = NIT_NULL;
662 fra.me.REG[0] = p0;
663 fra.me.REG[1] = ATTR_list___List____tail(fra.me.REG[0]);
664 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
665 /* ./../lib/standard//collection//list.nit:130 */
666 if (UNTAG_Bool(REGB0)) {
667 fprintf(stderr, "Reciever is null");
668 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 130);
669 nit_exit(1);
670 }
671 fra.me.REG[2] = CALL_list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
672 ATTR_list___List____tail(fra.me.REG[0]) = fra.me.REG[2];
673 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
674 /* ./../lib/standard//collection//list.nit:131 */
675 if (UNTAG_Bool(REGB0)) {
676 fprintf(stderr, "Reciever is null");
677 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 131);
678 nit_exit(1);
679 }
680 CALL_list___ListNode___prev__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
681 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[0]);
682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
683 /* ./../lib/standard//collection//list.nit:132 */
684 if (UNTAG_Bool(REGB0)) {
685 } else {
686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
687 if (UNTAG_Bool(REGB1)) {
688 REGB1 = TAG_Bool(false);
689 REGB0 = REGB1;
690 } else {
691 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
692 REGB0 = REGB1;
693 }
694 }
695 if (UNTAG_Bool(REGB0)) {
696 /* ./../lib/standard//collection//list.nit:133 */
697 ATTR_list___List____head(fra.me.REG[0]) = NIT_NULL;
698 } else {
699 fra.me.REG[0] = ATTR_list___List____tail(fra.me.REG[0]);
700 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
701 /* ./../lib/standard//collection//list.nit:135 */
702 if (UNTAG_Bool(REGB0)) {
703 fprintf(stderr, "Reciever is null");
704 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 135);
705 nit_exit(1);
706 }
707 CALL_list___ListNode___next__eq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
708 }
709 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
710 /* ./../lib/standard//collection//list.nit:137 */
711 if (UNTAG_Bool(REGB0)) {
712 fprintf(stderr, "Reciever is null");
713 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 137);
714 nit_exit(1);
715 }
716 fra.me.REG[1] = CALL_abstract_collection___Container___item(fra.me.REG[1])(fra.me.REG[1]);
717 goto label1;
718 label1: while(0);
719 stack_frame_head = fra.me.prev;
720 return fra.me.REG[1];
721 }
722 void list___List___unshift(val_t p0, val_t p1){
723 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
724 val_t REGB0;
725 val_t REGB1;
726 val_t tmp;
727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
728 fra.me.file = LOCATE_list;
729 fra.me.line = 96;
730 fra.me.meth = LOCATE_list___List___unshift;
731 fra.me.has_broke = 0;
732 fra.me.REG_size = 3;
733 fra.me.REG[0] = NIT_NULL;
734 fra.me.REG[1] = NIT_NULL;
735 fra.me.REG[2] = NIT_NULL;
736 fra.me.REG[0] = p0;
737 fra.me.REG[1] = p1;
738 fra.me.REG[1] = NEW_ListNode_list___ListNode___init(fra.me.REG[1]);
739 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[0]);
740 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
741 /* ./../lib/standard//collection//list.nit:100 */
742 if (UNTAG_Bool(REGB0)) {
743 } else {
744 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
745 if (UNTAG_Bool(REGB1)) {
746 REGB1 = TAG_Bool(false);
747 REGB0 = REGB1;
748 } else {
749 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
750 REGB0 = REGB1;
751 }
752 }
753 if (UNTAG_Bool(REGB0)) {
754 /* ./../lib/standard//collection//list.nit:101 */
755 ATTR_list___List____tail(fra.me.REG[0]) = fra.me.REG[1];
756 } else {
757 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[0]);
758 /* ./../lib/standard//collection//list.nit:103 */
759 CALL_list___ListNode___next__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
760 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[0]);
761 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
762 /* ./../lib/standard//collection//list.nit:104 */
763 if (UNTAG_Bool(REGB0)) {
764 fprintf(stderr, "Reciever is null");
765 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 104);
766 nit_exit(1);
767 }
768 CALL_list___ListNode___prev__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
769 }
770 /* ./../lib/standard//collection//list.nit:106 */
771 ATTR_list___List____head(fra.me.REG[0]) = fra.me.REG[1];
772 stack_frame_head = fra.me.prev;
773 return;
774 }
775 val_t list___List___shift(val_t p0){
776 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
777 val_t REGB0;
778 val_t REGB1;
779 val_t tmp;
780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
781 fra.me.file = LOCATE_list;
782 fra.me.line = 140;
783 fra.me.meth = LOCATE_list___List___shift;
784 fra.me.has_broke = 0;
785 fra.me.REG_size = 3;
786 fra.me.REG[0] = NIT_NULL;
787 fra.me.REG[1] = NIT_NULL;
788 fra.me.REG[2] = NIT_NULL;
789 fra.me.REG[0] = p0;
790 fra.me.REG[1] = ATTR_list___List____head(fra.me.REG[0]);
791 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
792 /* ./../lib/standard//collection//list.nit:144 */
793 if (UNTAG_Bool(REGB0)) {
794 fprintf(stderr, "Reciever is null");
795 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 144);
796 nit_exit(1);
797 }
798 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
799 ATTR_list___List____head(fra.me.REG[0]) = fra.me.REG[2];
800 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
801 /* ./../lib/standard//collection//list.nit:145 */
802 if (UNTAG_Bool(REGB0)) {
803 fprintf(stderr, "Reciever is null");
804 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 145);
805 nit_exit(1);
806 }
807 CALL_list___ListNode___next__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
808 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[0]);
809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
810 /* ./../lib/standard//collection//list.nit:146 */
811 if (UNTAG_Bool(REGB0)) {
812 } else {
813 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
814 if (UNTAG_Bool(REGB1)) {
815 REGB1 = TAG_Bool(false);
816 REGB0 = REGB1;
817 } else {
818 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
819 REGB0 = REGB1;
820 }
821 }
822 if (UNTAG_Bool(REGB0)) {
823 /* ./../lib/standard//collection//list.nit:147 */
824 ATTR_list___List____tail(fra.me.REG[0]) = NIT_NULL;
825 } else {
826 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
827 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
828 /* ./../lib/standard//collection//list.nit:149 */
829 if (UNTAG_Bool(REGB0)) {
830 fprintf(stderr, "Reciever is null");
831 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 149);
832 nit_exit(1);
833 }
834 CALL_list___ListNode___prev__eq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
835 }
836 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
837 /* ./../lib/standard//collection//list.nit:151 */
838 if (UNTAG_Bool(REGB0)) {
839 fprintf(stderr, "Reciever is null");
840 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 151);
841 nit_exit(1);
842 }
843 fra.me.REG[1] = CALL_abstract_collection___Container___item(fra.me.REG[1])(fra.me.REG[1]);
844 goto label1;
845 label1: while(0);
846 stack_frame_head = fra.me.prev;
847 return fra.me.REG[1];
848 }
849 void list___List___link(val_t p0, val_t p1){
850 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
851 val_t REGB0;
852 val_t REGB1;
853 val_t tmp;
854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
855 fra.me.file = LOCATE_list;
856 fra.me.line = 109;
857 fra.me.meth = LOCATE_list___List___link;
858 fra.me.has_broke = 0;
859 fra.me.REG_size = 4;
860 fra.me.REG[0] = NIT_NULL;
861 fra.me.REG[1] = NIT_NULL;
862 fra.me.REG[2] = NIT_NULL;
863 fra.me.REG[3] = NIT_NULL;
864 fra.me.REG[0] = p0;
865 fra.me.REG[1] = p1;
866 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[0]);
867 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
868 /* ./../lib/standard//collection//list.nit:114 */
869 if (UNTAG_Bool(REGB0)) {
870 } else {
871 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
872 if (UNTAG_Bool(REGB1)) {
873 REGB1 = TAG_Bool(false);
874 REGB0 = REGB1;
875 } else {
876 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
877 REGB0 = REGB1;
878 }
879 }
880 if (UNTAG_Bool(REGB0)) {
881 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[1]);
882 /* ./../lib/standard//collection//list.nit:115 */
883 ATTR_list___List____head(fra.me.REG[0]) = fra.me.REG[2];
884 } else {
885 fra.me.REG[2] = ATTR_list___List____head(fra.me.REG[1]);
886 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
887 /* ./../lib/standard//collection//list.nit:116 */
888 if (UNTAG_Bool(REGB0)) {
889 } else {
890 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
891 if (UNTAG_Bool(REGB1)) {
892 REGB1 = TAG_Bool(false);
893 REGB0 = REGB1;
894 } else {
895 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
896 REGB0 = REGB1;
897 }
898 }
899 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
900 if (UNTAG_Bool(REGB0)) {
901 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[0]);
902 fra.me.REG[3] = ATTR_list___List____head(fra.me.REG[1]);
903 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
904 /* ./../lib/standard//collection//list.nit:117 */
905 if (UNTAG_Bool(REGB0)) {
906 fprintf(stderr, "Reciever is null");
907 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 117);
908 nit_exit(1);
909 }
910 CALL_list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
911 fra.me.REG[3] = ATTR_list___List____tail(fra.me.REG[0]);
912 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
913 /* ./../lib/standard//collection//list.nit:118 */
914 if (UNTAG_Bool(REGB0)) {
915 fprintf(stderr, "Reciever is null");
916 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 118);
917 nit_exit(1);
918 }
919 fra.me.REG[3] = CALL_list___ListNode___next(fra.me.REG[3])(fra.me.REG[3]);
920 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[0]);
921 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
922 if (UNTAG_Bool(REGB0)) {
923 fprintf(stderr, "Reciever is null");
924 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 118);
925 nit_exit(1);
926 }
927 CALL_list___ListNode___prev__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
928 }
929 }
930 fra.me.REG[2] = ATTR_list___List____tail(fra.me.REG[1]);
931 /* ./../lib/standard//collection//list.nit:120 */
932 ATTR_list___List____tail(fra.me.REG[0]) = fra.me.REG[2];
933 /* ./../lib/standard//collection//list.nit:121 */
934 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[1])(fra.me.REG[1]);
935 stack_frame_head = fra.me.prev;
936 return;
937 }
938 void list___List___init(val_t p0, int* init_table){
939 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_List].i;
940 struct {struct stack_frame_t me;} fra;
941 val_t tmp;
942 if (init_table[itpos0]) return;
943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
944 fra.me.file = LOCATE_list;
945 fra.me.line = 175;
946 fra.me.meth = LOCATE_list___List___init;
947 fra.me.has_broke = 0;
948 fra.me.REG_size = 1;
949 fra.me.REG[0] = NIT_NULL;
950 fra.me.REG[0] = p0;
951 /* ./../lib/standard//collection//list.nit:175 */
952 stack_frame_head = fra.me.prev;
953 init_table[itpos0] = 1;
954 return;
955 }
956 void list___List___from(val_t p0, val_t p1, int* init_table){
957 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_List].i;
958 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
959 val_t tmp;
960 if (init_table[itpos1]) return;
961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
962 fra.me.file = LOCATE_list;
963 fra.me.line = 178;
964 fra.me.meth = LOCATE_list___List___from;
965 fra.me.has_broke = 0;
966 fra.me.REG_size = 2;
967 fra.me.REG[0] = NIT_NULL;
968 fra.me.REG[1] = NIT_NULL;
969 fra.me.REG[0] = p0;
970 fra.me.REG[1] = p1;
971 /* ./../lib/standard//collection//list.nit:179 */
972 CALL_abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
973 stack_frame_head = fra.me.prev;
974 init_table[itpos1] = 1;
975 return;
976 }
977 val_t list___List___get_node(val_t p0, val_t p1){
978 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
979 val_t REGB0;
980 val_t REGB1;
981 val_t REGB2;
982 val_t tmp;
983 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
984 fra.me.file = LOCATE_list;
985 fra.me.line = 187;
986 fra.me.meth = LOCATE_list___List___get_node;
987 fra.me.has_broke = 0;
988 fra.me.REG_size = 3;
989 fra.me.REG[0] = NIT_NULL;
990 fra.me.REG[1] = NIT_NULL;
991 fra.me.REG[2] = NIT_NULL;
992 fra.me.REG[0] = p0;
993 REGB0 = p1;
994 fra.me.REG[0] = ATTR_list___List____head(fra.me.REG[0]);
995 REGB1 = TAG_Int(0);
996 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
997 /* ./../lib/standard//collection//list.nit:191 */
998 if (UNTAG_Bool(REGB1)) {
999 fra.me.REG[1] = NIT_NULL;
1000 /* ./../lib/standard//collection//list.nit:192 */
1001 goto label1;
1002 }
1003 /* ./../lib/standard//collection//list.nit:194 */
1004 while(1) {
1005 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1006 if (UNTAG_Bool(REGB1)) {
1007 } else {
1008 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1009 if (UNTAG_Bool(REGB2)) {
1010 REGB2 = TAG_Bool(false);
1011 REGB1 = REGB2;
1012 } else {
1013 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1014 REGB1 = REGB2;
1015 }
1016 }
1017 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1018 if (UNTAG_Bool(REGB1)) {
1019 REGB1 = TAG_Int(0);
1020 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1021 /* ./../lib/standard//collection//list.nit:194 */
1022 } else {
1023 REGB2 = TAG_Bool(false);
1024 REGB1 = REGB2;
1025 }
1026 if (UNTAG_Bool(REGB1)) {
1027 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1028 /* ./../lib/standard//collection//list.nit:195 */
1029 if (UNTAG_Bool(REGB1)) {
1030 fprintf(stderr, "Reciever is null");
1031 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 195);
1032 nit_exit(1);
1033 }
1034 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
1035 fra.me.REG[0] = fra.me.REG[2];
1036 REGB1 = TAG_Int(1);
1037 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1038 REGB0 = REGB1;
1039 /* ./../lib/standard//collection//list.nit:196 */
1040 } else {
1041 /* ./../lib/standard//collection//list.nit:194 */
1042 goto label2;
1043 }
1044 }
1045 label2: while(0);
1046 fra.me.REG[1] = fra.me.REG[0];
1047 /* ./../lib/standard//collection//list.nit:198 */
1048 goto label1;
1049 label1: while(0);
1050 stack_frame_head = fra.me.prev;
1051 return fra.me.REG[1];
1052 }
1053 val_t list___List___search_node_after(val_t p0, val_t p1, val_t p2){
1054 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1055 val_t REGB0;
1056 val_t REGB1;
1057 val_t tmp;
1058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1059 fra.me.file = LOCATE_list;
1060 fra.me.line = 201;
1061 fra.me.meth = LOCATE_list___List___search_node_after;
1062 fra.me.has_broke = 0;
1063 fra.me.REG_size = 3;
1064 fra.me.REG[0] = NIT_NULL;
1065 fra.me.REG[1] = NIT_NULL;
1066 fra.me.REG[2] = NIT_NULL;
1067 fra.me.REG[0] = p0;
1068 fra.me.REG[1] = p1;
1069 fra.me.REG[2] = p2;
1070 /* ./../lib/standard//collection//list.nit:205 */
1071 while(1) {
1072 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1073 if (UNTAG_Bool(REGB0)) {
1074 } else {
1075 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1076 if (UNTAG_Bool(REGB1)) {
1077 REGB1 = TAG_Bool(false);
1078 REGB0 = REGB1;
1079 } else {
1080 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1081 REGB0 = REGB1;
1082 }
1083 }
1084 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1085 if (UNTAG_Bool(REGB0)) {
1086 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1087 if (UNTAG_Bool(REGB0)) {
1088 fprintf(stderr, "Reciever is null");
1089 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 205);
1090 nit_exit(1);
1091 }
1092 fra.me.REG[0] = CALL_abstract_collection___Container___item(fra.me.REG[2])(fra.me.REG[2]);
1093 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],fra.me.REG[1]));
1094 if (UNTAG_Bool(REGB0)) {
1095 } else {
1096 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1097 if (UNTAG_Bool(REGB1)) {
1098 REGB1 = TAG_Bool(false);
1099 REGB0 = REGB1;
1100 } else {
1101 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1102 REGB0 = REGB1;
1103 }
1104 }
1105 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1106 } else {
1107 REGB1 = TAG_Bool(false);
1108 REGB0 = REGB1;
1109 }
1110 if (UNTAG_Bool(REGB0)) {
1111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1112 if (UNTAG_Bool(REGB0)) {
1113 fprintf(stderr, "Reciever is null");
1114 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 205);
1115 nit_exit(1);
1116 }
1117 fra.me.REG[0] = CALL_list___ListNode___next(fra.me.REG[2])(fra.me.REG[2]);
1118 fra.me.REG[2] = fra.me.REG[0];
1119 } else {
1120 goto label1;
1121 }
1122 }
1123 label1: while(0);
1124 /* ./../lib/standard//collection//list.nit:206 */
1125 goto label2;
1126 label2: while(0);
1127 stack_frame_head = fra.me.prev;
1128 return fra.me.REG[2];
1129 }
1130 void list___List___remove_node(val_t p0, val_t p1){
1131 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1132 val_t REGB0;
1133 val_t REGB1;
1134 val_t tmp;
1135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1136 fra.me.file = LOCATE_list;
1137 fra.me.line = 209;
1138 fra.me.meth = LOCATE_list___List___remove_node;
1139 fra.me.has_broke = 0;
1140 fra.me.REG_size = 3;
1141 fra.me.REG[0] = NIT_NULL;
1142 fra.me.REG[1] = NIT_NULL;
1143 fra.me.REG[2] = NIT_NULL;
1144 fra.me.REG[0] = p0;
1145 fra.me.REG[1] = p1;
1146 fra.me.REG[2] = CALL_list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
1147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1148 /* ./../lib/standard//collection//list.nit:212 */
1149 if (UNTAG_Bool(REGB0)) {
1150 } else {
1151 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1152 if (UNTAG_Bool(REGB1)) {
1153 REGB1 = TAG_Bool(false);
1154 REGB0 = REGB1;
1155 } else {
1156 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1157 REGB0 = REGB1;
1158 }
1159 }
1160 if (UNTAG_Bool(REGB0)) {
1161 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
1162 /* ./../lib/standard//collection//list.nit:213 */
1163 ATTR_list___List____head(fra.me.REG[0]) = fra.me.REG[2];
1164 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
1165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1166 /* ./../lib/standard//collection//list.nit:214 */
1167 if (UNTAG_Bool(REGB0)) {
1168 } else {
1169 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1170 if (UNTAG_Bool(REGB1)) {
1171 REGB1 = TAG_Bool(false);
1172 REGB0 = REGB1;
1173 } else {
1174 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1175 REGB0 = REGB1;
1176 }
1177 }
1178 if (UNTAG_Bool(REGB0)) {
1179 /* ./../lib/standard//collection//list.nit:215 */
1180 ATTR_list___List____tail(fra.me.REG[0]) = NIT_NULL;
1181 } else {
1182 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
1183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1184 /* ./../lib/standard//collection//list.nit:217 */
1185 if (UNTAG_Bool(REGB0)) {
1186 fprintf(stderr, "Reciever is null");
1187 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 217);
1188 nit_exit(1);
1189 }
1190 CALL_list___ListNode___prev__eq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1191 }
1192 } else {
1193 fra.me.REG[2] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
1194 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1195 /* ./../lib/standard//collection//list.nit:219 */
1196 if (UNTAG_Bool(REGB0)) {
1197 } else {
1198 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1199 if (UNTAG_Bool(REGB1)) {
1200 REGB1 = TAG_Bool(false);
1201 REGB0 = REGB1;
1202 } else {
1203 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1204 REGB0 = REGB1;
1205 }
1206 }
1207 if (UNTAG_Bool(REGB0)) {
1208 fra.me.REG[2] = CALL_list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
1209 /* ./../lib/standard//collection//list.nit:220 */
1210 ATTR_list___List____tail(fra.me.REG[0]) = fra.me.REG[2];
1211 fra.me.REG[2] = CALL_list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
1212 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1213 /* ./../lib/standard//collection//list.nit:221 */
1214 if (UNTAG_Bool(REGB0)) {
1215 fprintf(stderr, "Reciever is null");
1216 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 221);
1217 nit_exit(1);
1218 }
1219 CALL_list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1220 } else {
1221 fra.me.REG[2] = CALL_list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
1222 fra.me.REG[0] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
1223 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1224 /* ./../lib/standard//collection//list.nit:223 */
1225 if (UNTAG_Bool(REGB0)) {
1226 fprintf(stderr, "Reciever is null");
1227 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 223);
1228 nit_exit(1);
1229 }
1230 CALL_list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1231 fra.me.REG[0] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
1232 fra.me.REG[1] = CALL_list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
1233 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1234 /* ./../lib/standard//collection//list.nit:224 */
1235 if (UNTAG_Bool(REGB0)) {
1236 fprintf(stderr, "Reciever is null");
1237 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 224);
1238 nit_exit(1);
1239 }
1240 CALL_list___ListNode___prev__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1241 }
1242 }
1243 stack_frame_head = fra.me.prev;
1244 return;
1245 }
1246 void list___List___insert_before(val_t p0, val_t p1, val_t p2){
1247 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1248 val_t REGB0;
1249 val_t REGB1;
1250 val_t tmp;
1251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1252 fra.me.file = LOCATE_list;
1253 fra.me.line = 228;
1254 fra.me.meth = LOCATE_list___List___insert_before;
1255 fra.me.has_broke = 0;
1256 fra.me.REG_size = 4;
1257 fra.me.REG[0] = NIT_NULL;
1258 fra.me.REG[1] = NIT_NULL;
1259 fra.me.REG[2] = NIT_NULL;
1260 fra.me.REG[3] = NIT_NULL;
1261 fra.me.REG[0] = p0;
1262 fra.me.REG[1] = p1;
1263 fra.me.REG[2] = p2;
1264 fra.me.REG[1] = NEW_ListNode_list___ListNode___init(fra.me.REG[1]);
1265 fra.me.REG[3] = CALL_list___ListNode___prev(fra.me.REG[2])(fra.me.REG[2]);
1266 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1267 /* ./../lib/standard//collection//list.nit:232 */
1268 if (UNTAG_Bool(REGB0)) {
1269 } else {
1270 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1271 if (UNTAG_Bool(REGB1)) {
1272 REGB1 = TAG_Bool(false);
1273 REGB0 = REGB1;
1274 } else {
1275 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1276 REGB0 = REGB1;
1277 }
1278 }
1279 if (UNTAG_Bool(REGB0)) {
1280 /* ./../lib/standard//collection//list.nit:233 */
1281 ATTR_list___List____head(fra.me.REG[0]) = fra.me.REG[1];
1282 } else {
1283 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1284 /* ./../lib/standard//collection//list.nit:235 */
1285 if (UNTAG_Bool(REGB0)) {
1286 fprintf(stderr, "Reciever is null");
1287 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 235);
1288 nit_exit(1);
1289 }
1290 CALL_list___ListNode___next__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1291 }
1292 /* ./../lib/standard//collection//list.nit:237 */
1293 CALL_list___ListNode___prev__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1294 /* ./../lib/standard//collection//list.nit:238 */
1295 CALL_list___ListNode___next__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1296 /* ./../lib/standard//collection//list.nit:239 */
1297 CALL_list___ListNode___prev__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1298 stack_frame_head = fra.me.prev;
1299 return;
1300 }
1301 val_t list___ListIterator___item(val_t p0){
1302 struct {struct stack_frame_t me;} fra;
1303 val_t REGB0;
1304 val_t tmp;
1305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1306 fra.me.file = LOCATE_list;
1307 fra.me.line = 246;
1308 fra.me.meth = LOCATE_list___ListIterator___item;
1309 fra.me.has_broke = 0;
1310 fra.me.REG_size = 1;
1311 fra.me.REG[0] = NIT_NULL;
1312 fra.me.REG[0] = p0;
1313 fra.me.REG[0] = ATTR_list___ListIterator____node(fra.me.REG[0]);
1314 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1315 /* ./../lib/standard//collection//list.nit:246 */
1316 if (UNTAG_Bool(REGB0)) {
1317 fprintf(stderr, "Reciever is null");
1318 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 246);
1319 nit_exit(1);
1320 }
1321 fra.me.REG[0] = CALL_abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
1322 goto label1;
1323 label1: while(0);
1324 stack_frame_head = fra.me.prev;
1325 return fra.me.REG[0];
1326 }
1327 void list___ListIterator___next(val_t p0){
1328 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1329 val_t REGB0;
1330 val_t REGB1;
1331 val_t tmp;
1332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1333 fra.me.file = LOCATE_list;
1334 fra.me.line = 252;
1335 fra.me.meth = LOCATE_list___ListIterator___next;
1336 fra.me.has_broke = 0;
1337 fra.me.REG_size = 2;
1338 fra.me.REG[0] = NIT_NULL;
1339 fra.me.REG[1] = NIT_NULL;
1340 fra.me.REG[0] = p0;
1341 fra.me.REG[1] = ATTR_list___ListIterator____node(fra.me.REG[0]);
1342 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1343 /* ./../lib/standard//collection//list.nit:254 */
1344 if (UNTAG_Bool(REGB0)) {
1345 fprintf(stderr, "Reciever is null");
1346 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 254);
1347 nit_exit(1);
1348 }
1349 fra.me.REG[1] = CALL_list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
1350 ATTR_list___ListIterator____node(fra.me.REG[0]) = fra.me.REG[1];
1351 REGB0 = ATTR_list___ListIterator____index(fra.me.REG[0]);
1352 REGB1 = TAG_Int(1);
1353 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1354 /* ./../lib/standard//collection//list.nit:255 */
1355 ATTR_list___ListIterator____index(fra.me.REG[0]) = REGB1;
1356 stack_frame_head = fra.me.prev;
1357 return;
1358 }
1359 val_t list___ListIterator___is_ok(val_t p0){
1360 struct {struct stack_frame_t me;} fra;
1361 val_t REGB0;
1362 val_t REGB1;
1363 val_t tmp;
1364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1365 fra.me.file = LOCATE_list;
1366 fra.me.line = 250;
1367 fra.me.meth = LOCATE_list___ListIterator___is_ok;
1368 fra.me.has_broke = 0;
1369 fra.me.REG_size = 1;
1370 fra.me.REG[0] = NIT_NULL;
1371 fra.me.REG[0] = p0;
1372 fra.me.REG[0] = ATTR_list___ListIterator____node(fra.me.REG[0]);
1373 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1374 /* ./../lib/standard//collection//list.nit:250 */
1375 if (UNTAG_Bool(REGB0)) {
1376 } else {
1377 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1378 if (UNTAG_Bool(REGB1)) {
1379 REGB1 = TAG_Bool(false);
1380 REGB0 = REGB1;
1381 } else {
1382 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1383 REGB0 = REGB1;
1384 }
1385 }
1386 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1387 goto label1;
1388 label1: while(0);
1389 stack_frame_head = fra.me.prev;
1390 return REGB0;
1391 }
1392 val_t list___ListIterator___index(val_t p0){
1393 struct {struct stack_frame_t me;} fra;
1394 val_t REGB0;
1395 val_t tmp;
1396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1397 fra.me.file = LOCATE_list;
1398 fra.me.line = 272;
1399 fra.me.meth = LOCATE_list___ListIterator___index;
1400 fra.me.has_broke = 0;
1401 fra.me.REG_size = 1;
1402 fra.me.REG[0] = NIT_NULL;
1403 fra.me.REG[0] = p0;
1404 REGB0 = TAG_Bool(ATTR_list___ListIterator____index(fra.me.REG[0])!=NIT_NULL);
1405 /* ./../lib/standard//collection//list.nit:272 */
1406 if (UNTAG_Bool(REGB0)) {
1407 } else {
1408 fprintf(stderr, "Uninitialized attribute %s", "_index");
1409 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 272);
1410 nit_exit(1);
1411 }
1412 REGB0 = ATTR_list___ListIterator____index(fra.me.REG[0]);
1413 stack_frame_head = fra.me.prev;
1414 return REGB0;
1415 }
1416 void list___ListIterator___item__eq(val_t p0, val_t p1){
1417 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1418 val_t REGB0;
1419 val_t tmp;
1420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1421 fra.me.file = LOCATE_list;
1422 fra.me.line = 248;
1423 fra.me.meth = LOCATE_list___ListIterator___item__eq;
1424 fra.me.has_broke = 0;
1425 fra.me.REG_size = 2;
1426 fra.me.REG[0] = NIT_NULL;
1427 fra.me.REG[1] = NIT_NULL;
1428 fra.me.REG[0] = p0;
1429 fra.me.REG[1] = p1;
1430 fra.me.REG[0] = ATTR_list___ListIterator____node(fra.me.REG[0]);
1431 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1432 /* ./../lib/standard//collection//list.nit:248 */
1433 if (UNTAG_Bool(REGB0)) {
1434 fprintf(stderr, "Reciever is null");
1435 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 248);
1436 nit_exit(1);
1437 }
1438 CALL_abstract_collection___Container___item__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1439 stack_frame_head = fra.me.prev;
1440 return;
1441 }
1442 void list___ListIterator___init(val_t p0, val_t p1, int* init_table){
1443 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ListIterator].i;
1444 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1445 val_t REGB0;
1446 val_t tmp;
1447 if (init_table[itpos2]) return;
1448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1449 fra.me.file = LOCATE_list;
1450 fra.me.line = 258;
1451 fra.me.meth = LOCATE_list___ListIterator___init;
1452 fra.me.has_broke = 0;
1453 fra.me.REG_size = 2;
1454 fra.me.REG[0] = NIT_NULL;
1455 fra.me.REG[1] = NIT_NULL;
1456 fra.me.REG[0] = p0;
1457 fra.me.REG[1] = p1;
1458 /* ./../lib/standard//collection//list.nit:261 */
1459 ATTR_list___ListIterator____list(fra.me.REG[0]) = fra.me.REG[1];
1460 fra.me.REG[1] = ATTR_list___List____head(fra.me.REG[1]);
1461 /* ./../lib/standard//collection//list.nit:262 */
1462 ATTR_list___ListIterator____node(fra.me.REG[0]) = fra.me.REG[1];
1463 REGB0 = TAG_Int(0);
1464 /* ./../lib/standard//collection//list.nit:263 */
1465 ATTR_list___ListIterator____index(fra.me.REG[0]) = REGB0;
1466 stack_frame_head = fra.me.prev;
1467 init_table[itpos2] = 1;
1468 return;
1469 }
1470 void list___ListIterator___delete(val_t p0){
1471 struct {struct stack_frame_t me; val_t MORE_REG[1];} 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_list;
1476 fra.me.line = 275;
1477 fra.me.meth = LOCATE_list___ListIterator___delete;
1478 fra.me.has_broke = 0;
1479 fra.me.REG_size = 2;
1480 fra.me.REG[0] = NIT_NULL;
1481 fra.me.REG[1] = NIT_NULL;
1482 fra.me.REG[0] = p0;
1483 REGB0 = TAG_Bool(ATTR_list___ListIterator____list(fra.me.REG[0])!=NIT_NULL);
1484 /* ./../lib/standard//collection//list.nit:278 */
1485 if (UNTAG_Bool(REGB0)) {
1486 } else {
1487 fprintf(stderr, "Uninitialized attribute %s", "_list");
1488 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 278);
1489 nit_exit(1);
1490 }
1491 fra.me.REG[1] = ATTR_list___ListIterator____list(fra.me.REG[0]);
1492 fra.me.REG[0] = ATTR_list___ListIterator____node(fra.me.REG[0]);
1493 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1494 if (UNTAG_Bool(REGB0)) {
1495 } else {
1496 fprintf(stderr, "Cast failed");
1497 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 278);
1498 nit_exit(1);
1499 }
1500 CALL_list___List___remove_node(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1501 stack_frame_head = fra.me.prev;
1502 return;
1503 }
1504 void list___ListIterator___insert_before(val_t p0, val_t p1){
1505 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1506 val_t REGB0;
1507 val_t tmp;
1508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1509 fra.me.file = LOCATE_list;
1510 fra.me.line = 281;
1511 fra.me.meth = LOCATE_list___ListIterator___insert_before;
1512 fra.me.has_broke = 0;
1513 fra.me.REG_size = 3;
1514 fra.me.REG[0] = NIT_NULL;
1515 fra.me.REG[1] = NIT_NULL;
1516 fra.me.REG[2] = NIT_NULL;
1517 fra.me.REG[0] = p0;
1518 fra.me.REG[1] = p1;
1519 REGB0 = TAG_Bool(ATTR_list___ListIterator____list(fra.me.REG[0])!=NIT_NULL);
1520 /* ./../lib/standard//collection//list.nit:284 */
1521 if (UNTAG_Bool(REGB0)) {
1522 } else {
1523 fprintf(stderr, "Uninitialized attribute %s", "_list");
1524 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 284);
1525 nit_exit(1);
1526 }
1527 fra.me.REG[2] = ATTR_list___ListIterator____list(fra.me.REG[0]);
1528 fra.me.REG[0] = ATTR_list___ListIterator____node(fra.me.REG[0]);
1529 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1530 if (UNTAG_Bool(REGB0)) {
1531 } else {
1532 fprintf(stderr, "Cast failed");
1533 fprintf(stderr, " (%s:%d)\n", LOCATE_list, 284);
1534 nit_exit(1);
1535 }
1536 CALL_list___List___insert_before(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0]);
1537 stack_frame_head = fra.me.prev;
1538 return;
1539 }
1540 void list___ListNode___init(val_t p0, val_t p1, int* init_table){
1541 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ListNode].i;
1542 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1543 val_t tmp;
1544 if (init_table[itpos3]) return;
1545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1546 fra.me.file = LOCATE_list;
1547 fra.me.line = 291;
1548 fra.me.meth = LOCATE_list___ListNode___init;
1549 fra.me.has_broke = 0;
1550 fra.me.REG_size = 4;
1551 fra.me.REG[0] = NIT_NULL;
1552 fra.me.REG[1] = NIT_NULL;
1553 fra.me.REG[2] = NIT_NULL;
1554 fra.me.REG[3] = NIT_NULL;
1555 fra.me.REG[0] = p0;
1556 fra.me.REG[1] = p1;
1557 fra.me.REG[2] = fra.me.REG[0];
1558 fra.me.REG[3] = fra.me.REG[1];
1559 /* ./../lib/standard//collection//list.nit:291 */
1560 CALL_abstract_collection___Container___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
1561 /* ./../lib/standard//collection//list.nit:293 */
1562 CALL_abstract_collection___Container___item__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1563 stack_frame_head = fra.me.prev;
1564 init_table[itpos3] = 1;
1565 return;
1566 }
1567 val_t list___ListNode___next(val_t p0){
1568 struct {struct stack_frame_t me;} fra;
1569 val_t tmp;
1570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1571 fra.me.file = LOCATE_list;
1572 fra.me.line = 296;
1573 fra.me.meth = LOCATE_list___ListNode___next;
1574 fra.me.has_broke = 0;
1575 fra.me.REG_size = 1;
1576 fra.me.REG[0] = NIT_NULL;
1577 fra.me.REG[0] = p0;
1578 fra.me.REG[0] = ATTR_list___ListNode____next(fra.me.REG[0]);
1579 /* ./../lib/standard//collection//list.nit:296 */
1580 stack_frame_head = fra.me.prev;
1581 return fra.me.REG[0];
1582 }
1583 void list___ListNode___next__eq(val_t p0, val_t p1){
1584 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1585 val_t tmp;
1586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1587 fra.me.file = LOCATE_list;
1588 fra.me.line = 296;
1589 fra.me.meth = LOCATE_list___ListNode___next__eq;
1590 fra.me.has_broke = 0;
1591 fra.me.REG_size = 2;
1592 fra.me.REG[0] = NIT_NULL;
1593 fra.me.REG[1] = NIT_NULL;
1594 fra.me.REG[0] = p0;
1595 fra.me.REG[1] = p1;
1596 /* ./../lib/standard//collection//list.nit:296 */
1597 ATTR_list___ListNode____next(fra.me.REG[0]) = fra.me.REG[1];
1598 stack_frame_head = fra.me.prev;
1599 return;
1600 }
1601 val_t list___ListNode___prev(val_t p0){
1602 struct {struct stack_frame_t me;} fra;
1603 val_t tmp;
1604 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1605 fra.me.file = LOCATE_list;
1606 fra.me.line = 299;
1607 fra.me.meth = LOCATE_list___ListNode___prev;
1608 fra.me.has_broke = 0;
1609 fra.me.REG_size = 1;
1610 fra.me.REG[0] = NIT_NULL;
1611 fra.me.REG[0] = p0;
1612 fra.me.REG[0] = ATTR_list___ListNode____prev(fra.me.REG[0]);
1613 /* ./../lib/standard//collection//list.nit:299 */
1614 stack_frame_head = fra.me.prev;
1615 return fra.me.REG[0];
1616 }
1617 void list___ListNode___prev__eq(val_t p0, val_t p1){
1618 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1619 val_t tmp;
1620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1621 fra.me.file = LOCATE_list;
1622 fra.me.line = 299;
1623 fra.me.meth = LOCATE_list___ListNode___prev__eq;
1624 fra.me.has_broke = 0;
1625 fra.me.REG_size = 2;
1626 fra.me.REG[0] = NIT_NULL;
1627 fra.me.REG[1] = NIT_NULL;
1628 fra.me.REG[0] = p0;
1629 fra.me.REG[1] = p1;
1630 /* ./../lib/standard//collection//list.nit:299 */
1631 ATTR_list___ListNode____prev(fra.me.REG[0]) = fra.me.REG[1];
1632 stack_frame_head = fra.me.prev;
1633 return;
1634 }