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