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
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_standard___collection___list
;
11 fra
.me
.meth
= LOCATE_standard___collection___list___List_____bra
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
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);
24 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Container___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
27 stack_frame_head
= fra
.me
.prev
;
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
;
35 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
36 fra
.me
.file
= LOCATE_standard___collection___list
;
38 fra
.me
.meth
= LOCATE_standard___collection___list___List_____braeq
;
41 fra
.me
.nitni_local_ref_head
= NULL
;
42 fra
.me
.REG
[0] = NIT_NULL
;
43 fra
.me
.REG
[1] = NIT_NULL
;
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);
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
;
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
;
62 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
63 fra
.me
.file
= LOCATE_standard___collection___list
;
65 fra
.me
.meth
= LOCATE_standard___collection___list___List___first
;
68 fra
.me
.nitni_local_ref_head
= NULL
;
69 fra
.me
.REG
[0] = NIT_NULL
;
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);
77 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Container___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
80 stack_frame_head
= fra
.me
.prev
;
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
;
88 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
89 fra
.me
.file
= LOCATE_standard___collection___list
;
91 fra
.me
.meth
= LOCATE_standard___collection___list___List___first__eq
;
94 fra
.me
.nitni_local_ref_head
= NULL
;
95 fra
.me
.REG
[0] = NIT_NULL
;
96 fra
.me
.REG
[1] = NIT_NULL
;
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);
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
;
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
;
114 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
115 fra
.me
.file
= LOCATE_standard___collection___list
;
117 fra
.me
.meth
= LOCATE_standard___collection___list___List___last
;
118 fra
.me
.has_broke
= 0;
120 fra
.me
.nitni_local_ref_head
= NULL
;
121 fra
.me
.REG
[0] = NIT_NULL
;
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);
129 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Container___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
132 stack_frame_head
= fra
.me
.prev
;
133 return fra
.me
.REG
[0];
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
;
140 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
141 fra
.me
.file
= LOCATE_standard___collection___list
;
143 fra
.me
.meth
= LOCATE_standard___collection___list___List___last__eq
;
144 fra
.me
.has_broke
= 0;
146 fra
.me
.nitni_local_ref_head
= NULL
;
147 fra
.me
.REG
[0] = NIT_NULL
;
148 fra
.me
.REG
[1] = NIT_NULL
;
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);
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
;
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
;
167 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
168 fra
.me
.file
= LOCATE_standard___collection___list
;
170 fra
.me
.meth
= LOCATE_standard___collection___list___List___is_empty
;
171 fra
.me
.has_broke
= 0;
173 fra
.me
.nitni_local_ref_head
= NULL
;
174 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
181 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
182 if (UNTAG_Bool(REGB1
)) {
186 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
192 stack_frame_head
= fra
.me
.prev
;
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
;
202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
203 fra
.me
.file
= LOCATE_standard___collection___list
;
205 fra
.me
.meth
= LOCATE_standard___collection___list___List___length
;
206 fra
.me
.has_broke
= 0;
208 fra
.me
.nitni_local_ref_head
= NULL
;
209 fra
.me
.REG
[0] = NIT_NULL
;
210 fra
.me
.REG
[1] = NIT_NULL
;
212 /* ../lib/standard/collection/list.nit:46 */
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 */
218 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
219 if (UNTAG_Bool(REGB1
)) {
221 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
222 if (UNTAG_Bool(REGB2
)) {
226 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
230 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
231 if (UNTAG_Bool(REGB1
)) {
232 /* ../lib/standard/collection/list.nit:49 */
234 /* ../lib/standard/kernel.nit:238 */
235 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
236 /* ../lib/standard/collection/list.nit:49 */
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);
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];
246 /* ../lib/standard/collection/list.nit:48 */
251 /* ../lib/standard/collection/list.nit:52 */
254 stack_frame_head
= fra
.me
.prev
;
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
;
263 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
264 fra
.me
.file
= LOCATE_standard___collection___list
;
266 fra
.me
.meth
= LOCATE_standard___collection___list___List___has
;
267 fra
.me
.has_broke
= 0;
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
;
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
)) {
281 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
282 if (UNTAG_Bool(REGB1
)) {
286 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
290 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
293 stack_frame_head
= fra
.me
.prev
;
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
;
302 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
303 fra
.me
.file
= LOCATE_standard___collection___list
;
305 fra
.me
.meth
= LOCATE_standard___collection___list___List___has_only
;
306 fra
.me
.has_broke
= 0;
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
;
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 */
318 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
319 if (UNTAG_Bool(REGB0
)) {
321 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
322 if (UNTAG_Bool(REGB1
)) {
326 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
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);
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
)) {
341 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
342 if (UNTAG_Bool(REGB1
)) {
346 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
350 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
351 if (UNTAG_Bool(REGB0
)) {
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);
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];
363 /* ../lib/standard/collection/list.nit:61 */
368 /* ../lib/standard/collection/list.nit:65 */
373 stack_frame_head
= fra
.me
.prev
;
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
;
383 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
384 fra
.me
.file
= LOCATE_standard___collection___list
;
386 fra
.me
.meth
= LOCATE_standard___collection___list___List___count
;
387 fra
.me
.has_broke
= 0;
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
;
395 /* ../lib/standard/collection/list.nit:70 */
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 */
401 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
402 if (UNTAG_Bool(REGB1
)) {
404 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
405 if (UNTAG_Bool(REGB2
)) {
409 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
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);
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
)) {
424 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
425 if (UNTAG_Bool(REGB2
)) {
429 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
433 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
434 if (UNTAG_Bool(REGB1
)) {
436 /* ../lib/standard/kernel.nit:238 */
437 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
438 /* ../lib/standard/collection/list.nit:73 */
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);
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];
449 /* ../lib/standard/collection/list.nit:72 */
454 /* ../lib/standard/collection/list.nit:76 */
457 stack_frame_head
= fra
.me
.prev
;
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
;
466 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
467 fra
.me
.file
= LOCATE_standard___collection___list
;
469 fra
.me
.meth
= LOCATE_standard___collection___list___List___push
;
470 fra
.me
.has_broke
= 0;
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
;
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
)) {
485 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
486 if (UNTAG_Bool(REGB1
)) {
490 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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];
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);
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]);
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
;
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
;
520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
521 fra
.me
.file
= LOCATE_standard___collection___list
;
523 fra
.me
.meth
= LOCATE_standard___collection___list___List___unshift
;
524 fra
.me
.has_broke
= 0;
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
;
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
)) {
539 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
540 if (UNTAG_Bool(REGB1
)) {
544 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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];
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);
561 CALL_standard___collection___list___ListNode___prev__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
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
;
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
;
574 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
575 fra
.me
.file
= LOCATE_standard___collection___list
;
577 fra
.me
.meth
= LOCATE_standard___collection___list___List___link
;
578 fra
.me
.has_broke
= 0;
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
;
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
)) {
592 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
593 if (UNTAG_Bool(REGB1
)) {
597 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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];
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
)) {
611 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
612 if (UNTAG_Bool(REGB1
)) {
616 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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);
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);
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);
642 CALL_standard___collection___list___ListNode___prev__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
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
;
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
;
659 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
660 fra
.me
.file
= LOCATE_standard___collection___list
;
662 fra
.me
.meth
= LOCATE_standard___collection___list___List___pop
;
663 fra
.me
.has_broke
= 0;
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
;
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);
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);
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
)) {
690 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
691 if (UNTAG_Bool(REGB1
)) {
695 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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
;
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);
709 CALL_standard___collection___list___ListNode___next__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
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);
716 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___Container___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
719 stack_frame_head
= fra
.me
.prev
;
720 return fra
.me
.REG
[1];
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
;
728 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
729 fra
.me
.file
= LOCATE_standard___collection___list
;
731 fra
.me
.meth
= LOCATE_standard___collection___list___List___shift
;
732 fra
.me
.has_broke
= 0;
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
;
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);
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);
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
)) {
759 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
760 if (UNTAG_Bool(REGB1
)) {
764 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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
;
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);
778 CALL_standard___collection___list___ListNode___prev__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
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);
785 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___Container___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
788 stack_frame_head
= fra
.me
.prev
;
789 return fra
.me
.REG
[1];
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
;
797 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
798 fra
.me
.file
= LOCATE_standard___collection___list
;
800 fra
.me
.meth
= LOCATE_standard___collection___list___List___remove
;
801 fra
.me
.has_broke
= 0;
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
;
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
)) {
816 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
817 if (UNTAG_Bool(REGB1
)) {
821 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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]);
829 stack_frame_head
= fra
.me
.prev
;
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
;
838 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
839 fra
.me
.file
= LOCATE_standard___collection___list
;
841 fra
.me
.meth
= LOCATE_standard___collection___list___List___remove_at
;
842 fra
.me
.has_broke
= 0;
844 fra
.me
.nitni_local_ref_head
= NULL
;
845 fra
.me
.REG
[0] = NIT_NULL
;
846 fra
.me
.REG
[1] = NIT_NULL
;
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
)) {
855 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
856 if (UNTAG_Bool(REGB1
)) {
860 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
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]);
868 stack_frame_head
= fra
.me
.prev
;
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
;
875 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
876 fra
.me
.file
= LOCATE_standard___collection___list
;
878 fra
.me
.meth
= LOCATE_standard___collection___list___List___clear
;
879 fra
.me
.has_broke
= 0;
881 fra
.me
.nitni_local_ref_head
= NULL
;
882 fra
.me
.REG
[0] = NIT_NULL
;
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
;
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
;
895 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
896 fra
.me
.file
= LOCATE_standard___collection___list
;
898 fra
.me
.meth
= LOCATE_standard___collection___list___List___iterator
;
899 fra
.me
.has_broke
= 0;
901 fra
.me
.nitni_local_ref_head
= NULL
;
902 fra
.me
.REG
[0] = NIT_NULL
;
904 /* ../lib/standard/collection/list.nit:171 */
905 fra
.me
.REG
[0] = NEW_ListIterator_standard___collection___list___ListIterator___init(fra
.me
.REG
[0]);
908 stack_frame_head
= fra
.me
.prev
;
909 return fra
.me
.REG
[0];
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
;
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
;
920 fra
.me
.meth
= LOCATE_standard___collection___list___List___init
;
921 fra
.me
.has_broke
= 0;
923 fra
.me
.nitni_local_ref_head
= NULL
;
924 fra
.me
.REG
[0] = NIT_NULL
;
926 stack_frame_head
= fra
.me
.prev
;
927 init_table
[itpos0
] = 1;
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
;
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
;
939 fra
.me
.meth
= LOCATE_standard___collection___list___List___from
;
940 fra
.me
.has_broke
= 0;
942 fra
.me
.nitni_local_ref_head
= NULL
;
943 fra
.me
.REG
[0] = NIT_NULL
;
944 fra
.me
.REG
[1] = NIT_NULL
;
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;
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
;
960 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
961 fra
.me
.file
= LOCATE_standard___collection___list
;
963 fra
.me
.meth
= LOCATE_standard___collection___list___List___get_node
;
964 fra
.me
.has_broke
= 0;
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
;
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 */
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
)) {
979 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
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
;
989 /* ../lib/standard/collection/list.nit:192 */
991 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
992 if (UNTAG_Bool(REGB1
)) {
994 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
995 if (UNTAG_Bool(REGB2
)) {
999 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1003 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1004 if (UNTAG_Bool(REGB1
)) {
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
)) {
1009 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1011 /* ../lib/standard/kernel.nit:237 */
1012 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
1014 /* ../lib/standard/collection/list.nit:192 */
1015 REGB2
= TAG_Bool(0);
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);
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 */
1028 /* ../lib/standard/kernel.nit:240 */
1029 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1030 /* ../lib/standard/collection/list.nit:194 */
1033 /* ../lib/standard/collection/list.nit:192 */
1038 /* ../lib/standard/collection/list.nit:196 */
1039 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1042 stack_frame_head
= fra
.me
.prev
;
1043 return fra
.me
.REG
[1];
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
;
1051 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1052 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
1064 /* ../lib/standard/collection/list.nit:203 */
1066 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1067 if (UNTAG_Bool(REGB0
)) {
1069 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1070 if (UNTAG_Bool(REGB1
)) {
1071 REGB1
= TAG_Bool(0);
1074 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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);
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
)) {
1088 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1089 if (UNTAG_Bool(REGB1
)) {
1090 REGB1
= TAG_Bool(0);
1093 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1097 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1099 REGB1
= TAG_Bool(0);
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);
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];
1114 /* ../lib/standard/collection/list.nit:204 */
1117 stack_frame_head
= fra
.me
.prev
;
1118 return fra
.me
.REG
[2];
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
;
1126 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1127 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
)) {
1143 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1144 if (UNTAG_Bool(REGB1
)) {
1145 REGB1
= TAG_Bool(0);
1148 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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
)) {
1161 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1162 if (UNTAG_Bool(REGB1
)) {
1163 REGB1
= TAG_Bool(0);
1166 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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
;
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);
1180 CALL_standard___collection___list___ListNode___prev__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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
)) {
1188 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1189 if (UNTAG_Bool(REGB1
)) {
1190 REGB1
= TAG_Bool(0);
1193 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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);
1207 CALL_standard___collection___list___ListNode___next__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
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);
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);
1224 CALL_standard___collection___list___ListNode___prev__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1227 stack_frame_head
= fra
.me
.prev
;
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
;
1236 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1237 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
)) {
1258 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1259 if (UNTAG_Bool(REGB1
)) {
1260 REGB1
= TAG_Bool(0);
1263 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
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];
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);
1276 CALL_standard___collection___list___ListNode___next__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
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
;
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
;
1292 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1293 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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);
1307 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Container___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1310 stack_frame_head
= fra
.me
.prev
;
1311 return fra
.me
.REG
[0];
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
;
1318 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1319 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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);
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
;
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
;
1345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1346 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
)) {
1359 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1360 if (UNTAG_Bool(REGB1
)) {
1361 REGB1
= TAG_Bool(0);
1364 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1368 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1371 stack_frame_head
= fra
.me
.prev
;
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
;
1380 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1381 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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);
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]);
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
;
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
;
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
;
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
;
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 */
1433 ATTR_standard___collection___list___ListIterator____index(fra
.me
.REG
[0]) = REGB0
;
1434 stack_frame_head
= fra
.me
.prev
;
1435 init_table
[itpos2
] = 1;
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
;
1443 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1444 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
)) {
1456 nit_abort("Uninitialized attribute %s", "_index", LOCATE_standard___collection___list
, 270);
1458 REGB0
= ATTR_standard___collection___list___ListIterator____index(fra
.me
.REG
[0]);
1459 stack_frame_head
= fra
.me
.prev
;
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
;
1467 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1468 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
)) {
1484 nit_abort("Uninitialized attribute %s", "_list", LOCATE_standard___collection___list
, 276);
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
)) {
1491 nit_abort("Cast failed", NULL
, LOCATE_standard___collection___list
, 276);
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
;
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
;
1502 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1503 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
)) {
1521 nit_abort("Uninitialized attribute %s", "_list", LOCATE_standard___collection___list
, 282);
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
)) {
1528 nit_abort("Cast failed", NULL
, LOCATE_standard___collection___list
, 282);
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
;
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
;
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
;
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
;
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;
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
;
1567 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1568 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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];
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
;
1585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1586 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
;
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
;
1605 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1606 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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];
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
;
1623 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1624 fra
.me
.file
= LOCATE_standard___collection___list
;
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
;
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
;