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