1 /* This C file is generated by NIT to compile module list. */
3 val_t
list___List___iterator(val_t self
) {
4 struct trace_t trace
= {NULL
, NULL
, 173, LOCATE_list___List___iterator
};
6 void **closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_list
;
10 variable
[2] = variable
[0];
11 variable
[2] = ATTR_list___List____head(variable
[2]) /*List::_head*/;
12 variable
[3] = NEW_ListIterator_list___ListIterator___init(variable
[2]); /*new ListIterator[E]*/
13 variable
[2] = variable
[3];
14 variable
[1] = variable
[2];
16 return_label0
: while(false);
17 tracehead
= trace
.prev
;
20 val_t
list___List___is_empty(val_t self
) {
21 struct trace_t trace
= {NULL
, NULL
, 40, LOCATE_list___List___is_empty
};
23 void **closurevariable
= NULL
;
24 trace
.prev
= tracehead
; tracehead
= &trace
;
25 trace
.file
= LOCATE_list
;
27 variable
[2] = variable
[0];
28 variable
[2] = ATTR_list___List____head(variable
[2]) /*List::_head*/;
29 variable
[2] = TAG_Bool((variable
[2] == NIT_NULL
/*null*/) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], NIT_NULL
/*null*/) /*Object::==*/)))));
30 variable
[1] = variable
[2];
32 return_label1
: while(false);
33 tracehead
= trace
.prev
;
36 val_t
list___List___length(val_t self
) {
37 struct trace_t trace
= {NULL
, NULL
, 43, LOCATE_list___List___length
};
39 void **closurevariable
= NULL
;
40 trace
.prev
= tracehead
; tracehead
= &trace
;
41 trace
.file
= LOCATE_list
;
43 variable
[2] = TAG_Int(0);
44 variable
[4] = variable
[0];
45 variable
[4] = ATTR_list___List____head(variable
[4]) /*List::_head*/;
46 variable
[3] = variable
[4];
47 while (true) { /*while*/
48 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
49 if (!UNTAG_Bool(variable
[4])) break; /* while*/
50 variable
[2] = TAG_Int(UNTAG_Int(variable
[2])+UNTAG_Int( TAG_Int(1))) /*l*/;
51 variable
[4] = CALL_list___ListNode___next( variable
[3] /*t*/)( variable
[3] /*t*/) /*ListNode::next*/;
52 variable
[3] = variable
[4] /*t=*/;
56 variable
[1] = variable
[2] /*l*/;
58 return_label2
: while(false);
59 tracehead
= trace
.prev
;
62 val_t
list___List___has(val_t self
, val_t param0
) {
63 struct trace_t trace
= {NULL
, NULL
, 55, LOCATE_list___List___has
};
65 void **closurevariable
= NULL
;
66 trace
.prev
= tracehead
; tracehead
= &trace
;
67 trace
.file
= LOCATE_list
;
70 variable
[3] = variable
[0];
71 variable
[4] = variable
[0];
72 variable
[4] = ATTR_list___List____head(variable
[4]) /*List::_head*/;
73 variable
[3] = CALL_list___List___search_node_after(variable
[3])(variable
[3], variable
[1] /*e*/, variable
[4]) /*List::search_node_after*/;
74 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
75 variable
[2] = variable
[3];
77 return_label4
: while(false);
78 tracehead
= trace
.prev
;
81 val_t
list___List___has_only(val_t self
, val_t param0
) {
82 struct trace_t trace
= {NULL
, NULL
, 58, LOCATE_list___List___has_only
};
84 void **closurevariable
= NULL
;
85 trace
.prev
= tracehead
; tracehead
= &trace
;
86 trace
.file
= LOCATE_list
;
89 variable
[4] = variable
[0];
90 variable
[4] = ATTR_list___List____head(variable
[4]) /*List::_head*/;
91 variable
[3] = variable
[4];
92 while (true) { /*while*/
93 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*node*/ == NIT_NULL
/*null*/) || (( variable
[3] /*node*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*node*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*node*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*node*/)( variable
[3] /*node*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
94 if (!UNTAG_Bool(variable
[4])) break; /* while*/
95 variable
[4] = CALL_abstract_collection___Container___item( variable
[3] /*node*/)( variable
[3] /*node*/) /*Container::item*/;
96 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == variable
[1] /*e*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], variable
[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], variable
[1] /*e*/) /*Object::==*/)))))));
97 if (UNTAG_Bool(variable
[4])) { /*if*/
98 variable
[2] = TAG_Bool(false);
101 variable
[4] = CALL_list___ListNode___next( variable
[3] /*node*/)( variable
[3] /*node*/) /*ListNode::next*/;
102 variable
[3] = variable
[4] /*node=*/;
103 continue_6
: while(0);
106 variable
[2] = TAG_Bool(true);
108 return_label5
: while(false);
109 tracehead
= trace
.prev
;
112 val_t
list___List___count(val_t self
, val_t param0
) {
113 struct trace_t trace
= {NULL
, NULL
, 68, LOCATE_list___List___count
};
115 void **closurevariable
= NULL
;
116 trace
.prev
= tracehead
; tracehead
= &trace
;
117 trace
.file
= LOCATE_list
;
119 variable
[1] = param0
;
120 variable
[3] = TAG_Int(0);
121 variable
[5] = variable
[0];
122 variable
[5] = ATTR_list___List____head(variable
[5]) /*List::_head*/;
123 variable
[4] = variable
[5];
124 while (true) { /*while*/
125 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*node*/ == NIT_NULL
/*null*/) || (( variable
[4] /*node*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*node*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*node*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*node*/)( variable
[4] /*node*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
126 if (!UNTAG_Bool(variable
[5])) break; /* while*/
127 variable
[5] = CALL_abstract_collection___Container___item( variable
[4] /*node*/)( variable
[4] /*node*/) /*Container::item*/;
128 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == variable
[1] /*e*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], variable
[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], variable
[1] /*e*/) /*Object::==*/)))))));
129 if (UNTAG_Bool(variable
[5])) { /*if*/
130 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*nb*/;
132 variable
[5] = CALL_list___ListNode___next( variable
[4] /*node*/)( variable
[4] /*node*/) /*ListNode::next*/;
133 variable
[4] = variable
[5] /*node=*/;
134 continue_8
: while(0);
137 variable
[2] = variable
[3] /*nb*/;
139 return_label7
: while(false);
140 tracehead
= trace
.prev
;
143 val_t
list___List___first(val_t self
) {
144 struct trace_t trace
= {NULL
, NULL
, 26, LOCATE_list___List___first
};
146 void **closurevariable
= NULL
;
147 trace
.prev
= tracehead
; tracehead
= &trace
;
148 trace
.file
= LOCATE_list
;
150 variable
[2] = variable
[0];
151 variable
[2] = ATTR_list___List____head(variable
[2]) /*List::_head*/;
152 variable
[2] = CALL_abstract_collection___Container___item(variable
[2])(variable
[2]) /*Container::item*/;
153 variable
[1] = variable
[2];
155 return_label9
: while(false);
156 tracehead
= trace
.prev
;
159 void list___List___clear(val_t self
) {
160 struct trace_t trace
= {NULL
, NULL
, 166, LOCATE_list___List___clear
};
162 void **closurevariable
= NULL
;
163 trace
.prev
= tracehead
; tracehead
= &trace
;
164 trace
.file
= LOCATE_list
;
166 variable
[2] = variable
[0];
167 ATTR_list___List____head(variable
[2]) /*List::_head*/ = NIT_NULL
/*null*/;
168 variable
[2] = variable
[0];
169 ATTR_list___List____tail(variable
[2]) /*List::_tail*/ = NIT_NULL
/*null*/;
170 return_label10
: while(false);
171 tracehead
= trace
.prev
;
174 void list___List___remove(val_t self
, val_t param0
) {
175 struct trace_t trace
= {NULL
, NULL
, 154, LOCATE_list___List___remove
};
177 void **closurevariable
= NULL
;
178 trace
.prev
= tracehead
; tracehead
= &trace
;
179 trace
.file
= LOCATE_list
;
181 variable
[1] = param0
;
182 variable
[4] = variable
[0];
183 variable
[5] = variable
[0];
184 variable
[5] = ATTR_list___List____head(variable
[5]) /*List::_head*/;
185 variable
[4] = CALL_list___List___search_node_after(variable
[4])(variable
[4], variable
[1] /*e*/, variable
[5]) /*List::search_node_after*/;
186 variable
[3] = variable
[4];
187 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*node*/ == NIT_NULL
/*null*/) || (( variable
[3] /*node*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*node*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*node*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*node*/)( variable
[3] /*node*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
188 if (UNTAG_Bool(variable
[4])) { /*if*/
189 variable
[4] = variable
[0];
190 CALL_list___List___remove_node(variable
[4])(variable
[4], variable
[3] /*node*/) /*List::remove_node*/;
192 return_label11
: while(false);
193 tracehead
= trace
.prev
;
196 val_t
list___List_____bra(val_t self
, val_t param0
) {
197 struct trace_t trace
= {NULL
, NULL
, 21, LOCATE_list___List_____bra
};
199 void **closurevariable
= NULL
;
200 trace
.prev
= tracehead
; tracehead
= &trace
;
201 trace
.file
= LOCATE_list
;
203 variable
[1] = param0
;
204 variable
[3] = variable
[0];
205 variable
[3] = CALL_list___List___get_node(variable
[3])(variable
[3], variable
[1] /*index*/) /*List::get_node*/;
206 variable
[3] = CALL_abstract_collection___Container___item(variable
[3])(variable
[3]) /*Container::item*/;
207 variable
[2] = variable
[3];
209 return_label12
: while(false);
210 tracehead
= trace
.prev
;
213 void list___List_____braeq(val_t self
, val_t param0
, val_t param1
) {
214 struct trace_t trace
= {NULL
, NULL
, 24, LOCATE_list___List_____braeq
};
216 void **closurevariable
= NULL
;
217 trace
.prev
= tracehead
; tracehead
= &trace
;
218 trace
.file
= LOCATE_list
;
220 variable
[1] = param0
;
221 variable
[2] = param1
;
222 variable
[4] = variable
[0];
223 variable
[4] = CALL_list___List___get_node(variable
[4])(variable
[4], variable
[1] /*index*/) /*List::get_node*/;
224 CALL_abstract_collection___Container___item__eq(variable
[4])(variable
[4], variable
[2] /*item*/) /*Container::item=*/;
225 return_label13
: while(false);
226 tracehead
= trace
.prev
;
229 val_t
list___List___has_key(val_t self
, val_t param0
) {
230 struct trace_t trace
= {NULL
, NULL
, 79, LOCATE_list___List___has_key
};
232 void **closurevariable
= NULL
;
233 trace
.prev
= tracehead
; tracehead
= &trace
;
234 trace
.file
= LOCATE_list
;
236 variable
[1] = param0
;
237 variable
[3] = variable
[0];
238 variable
[3] = CALL_list___List___get_node(variable
[3])(variable
[3], variable
[1] /*index*/) /*List::get_node*/;
239 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
240 variable
[2] = variable
[3];
242 return_label14
: while(false);
243 tracehead
= trace
.prev
;
246 void list___List___remove_at(val_t self
, val_t param0
) {
247 struct trace_t trace
= {NULL
, NULL
, 160, LOCATE_list___List___remove_at
};
249 void **closurevariable
= NULL
;
250 trace
.prev
= tracehead
; tracehead
= &trace
;
251 trace
.file
= LOCATE_list
;
253 variable
[1] = param0
;
254 variable
[4] = variable
[0];
255 variable
[4] = CALL_list___List___get_node(variable
[4])(variable
[4], variable
[1] /*i*/) /*List::get_node*/;
256 variable
[3] = variable
[4];
257 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*node*/ == NIT_NULL
/*null*/) || (( variable
[3] /*node*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*node*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*node*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*node*/)( variable
[3] /*node*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
258 if (UNTAG_Bool(variable
[4])) { /*if*/
259 variable
[4] = variable
[0];
260 CALL_list___List___remove_node(variable
[4])(variable
[4], variable
[3] /*node*/) /*List::remove_node*/;
262 return_label15
: while(false);
263 tracehead
= trace
.prev
;
266 void list___List___first__eq(val_t self
, val_t param0
) {
267 struct trace_t trace
= {NULL
, NULL
, 29, LOCATE_list___List___first__eq
};
269 void **closurevariable
= NULL
;
270 trace
.prev
= tracehead
; tracehead
= &trace
;
271 trace
.file
= LOCATE_list
;
273 variable
[1] = param0
;
274 variable
[3] = variable
[0];
275 variable
[3] = ATTR_list___List____head(variable
[3]) /*List::_head*/;
276 CALL_abstract_collection___Container___item__eq(variable
[3])(variable
[3], variable
[1] /*e*/) /*Container::item=*/;
277 return_label16
: while(false);
278 tracehead
= trace
.prev
;
281 val_t
list___List___last(val_t self
) {
282 struct trace_t trace
= {NULL
, NULL
, 32, LOCATE_list___List___last
};
284 void **closurevariable
= NULL
;
285 trace
.prev
= tracehead
; tracehead
= &trace
;
286 trace
.file
= LOCATE_list
;
288 variable
[2] = variable
[0];
289 variable
[2] = ATTR_list___List____tail(variable
[2]) /*List::_tail*/;
290 variable
[2] = CALL_abstract_collection___Container___item(variable
[2])(variable
[2]) /*Container::item*/;
291 variable
[1] = variable
[2];
293 return_label17
: while(false);
294 tracehead
= trace
.prev
;
297 void list___List___last__eq(val_t self
, val_t param0
) {
298 struct trace_t trace
= {NULL
, NULL
, 35, LOCATE_list___List___last__eq
};
300 void **closurevariable
= NULL
;
301 trace
.prev
= tracehead
; tracehead
= &trace
;
302 trace
.file
= LOCATE_list
;
304 variable
[1] = param0
;
305 variable
[3] = variable
[0];
306 variable
[3] = ATTR_list___List____tail(variable
[3]) /*List::_tail*/;
307 CALL_abstract_collection___Container___item__eq(variable
[3])(variable
[3], variable
[1] /*e*/) /*Container::item=*/;
308 return_label18
: while(false);
309 tracehead
= trace
.prev
;
312 void list___List___push(val_t self
, val_t param0
) {
313 struct trace_t trace
= {NULL
, NULL
, 83, LOCATE_list___List___push
};
315 void **closurevariable
= NULL
;
316 trace
.prev
= tracehead
; tracehead
= &trace
;
317 trace
.file
= LOCATE_list
;
319 variable
[1] = param0
;
320 variable
[4] = NEW_ListNode_list___ListNode___init( variable
[1] /*e*/); /*new ListNode[E]*/
321 variable
[3] = variable
[4];
322 variable
[4] = variable
[0];
323 variable
[4] = ATTR_list___List____tail(variable
[4]) /*List::_tail*/;
324 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
325 if (UNTAG_Bool(variable
[4])) { /*if*/
326 variable
[4] = variable
[0];
327 ATTR_list___List____head(variable
[4]) /*List::_head*/ = variable
[3] /*node*/;
329 variable
[4] = variable
[0];
330 variable
[4] = ATTR_list___List____tail(variable
[4]) /*List::_tail*/;
331 CALL_list___ListNode___next__eq(variable
[4])(variable
[4], variable
[3] /*node*/) /*ListNode::next=*/;
332 variable
[4] = variable
[0];
333 variable
[4] = ATTR_list___List____tail(variable
[4]) /*List::_tail*/;
334 CALL_list___ListNode___prev__eq( variable
[3] /*node*/)( variable
[3] /*node*/, variable
[4]) /*ListNode::prev=*/;
336 variable
[4] = variable
[0];
337 ATTR_list___List____tail(variable
[4]) /*List::_tail*/ = variable
[3] /*node*/;
338 return_label19
: while(false);
339 tracehead
= trace
.prev
;
342 val_t
list___List___pop(val_t self
) {
343 struct trace_t trace
= {NULL
, NULL
, 126, LOCATE_list___List___pop
};
345 void **closurevariable
= NULL
;
346 trace
.prev
= tracehead
; tracehead
= &trace
;
347 trace
.file
= LOCATE_list
;
349 variable
[3] = variable
[0];
350 variable
[3] = ATTR_list___List____tail(variable
[3]) /*List::_tail*/;
351 variable
[2] = variable
[3];
352 variable
[3] = variable
[0];
353 variable
[4] = CALL_list___ListNode___prev( variable
[2] /*node*/)( variable
[2] /*node*/) /*ListNode::prev*/;
354 ATTR_list___List____tail(variable
[3]) /*List::_tail*/ = variable
[4];
355 CALL_list___ListNode___prev__eq( variable
[2] /*node*/)( variable
[2] /*node*/, NIT_NULL
/*null*/) /*ListNode::prev=*/;
356 variable
[3] = variable
[0];
357 variable
[3] = ATTR_list___List____tail(variable
[3]) /*List::_tail*/;
358 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
359 if (UNTAG_Bool(variable
[3])) { /*if*/
360 variable
[3] = variable
[0];
361 ATTR_list___List____head(variable
[3]) /*List::_head*/ = NIT_NULL
/*null*/;
363 variable
[3] = variable
[0];
364 variable
[3] = ATTR_list___List____tail(variable
[3]) /*List::_tail*/;
365 CALL_list___ListNode___next__eq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*ListNode::next=*/;
367 variable
[3] = CALL_abstract_collection___Container___item( variable
[2] /*node*/)( variable
[2] /*node*/) /*Container::item*/;
368 variable
[1] = variable
[3];
370 return_label20
: while(false);
371 tracehead
= trace
.prev
;
374 void list___List___unshift(val_t self
, val_t param0
) {
375 struct trace_t trace
= {NULL
, NULL
, 96, LOCATE_list___List___unshift
};
377 void **closurevariable
= NULL
;
378 trace
.prev
= tracehead
; tracehead
= &trace
;
379 trace
.file
= LOCATE_list
;
381 variable
[1] = param0
;
382 variable
[4] = NEW_ListNode_list___ListNode___init( variable
[1] /*e*/); /*new ListNode[E]*/
383 variable
[3] = variable
[4];
384 variable
[4] = variable
[0];
385 variable
[4] = ATTR_list___List____head(variable
[4]) /*List::_head*/;
386 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
387 if (UNTAG_Bool(variable
[4])) { /*if*/
388 variable
[4] = variable
[0];
389 ATTR_list___List____tail(variable
[4]) /*List::_tail*/ = variable
[3] /*node*/;
391 variable
[4] = variable
[0];
392 variable
[4] = ATTR_list___List____head(variable
[4]) /*List::_head*/;
393 CALL_list___ListNode___next__eq( variable
[3] /*node*/)( variable
[3] /*node*/, variable
[4]) /*ListNode::next=*/;
394 variable
[4] = variable
[0];
395 variable
[4] = ATTR_list___List____head(variable
[4]) /*List::_head*/;
396 CALL_list___ListNode___prev__eq(variable
[4])(variable
[4], variable
[3] /*node*/) /*ListNode::prev=*/;
398 variable
[4] = variable
[0];
399 ATTR_list___List____head(variable
[4]) /*List::_head*/ = variable
[3] /*node*/;
400 return_label21
: while(false);
401 tracehead
= trace
.prev
;
404 val_t
list___List___shift(val_t self
) {
405 struct trace_t trace
= {NULL
, NULL
, 140, LOCATE_list___List___shift
};
407 void **closurevariable
= NULL
;
408 trace
.prev
= tracehead
; tracehead
= &trace
;
409 trace
.file
= LOCATE_list
;
411 variable
[3] = variable
[0];
412 variable
[3] = ATTR_list___List____head(variable
[3]) /*List::_head*/;
413 variable
[2] = variable
[3];
414 variable
[3] = variable
[0];
415 variable
[4] = CALL_list___ListNode___next( variable
[2] /*node*/)( variable
[2] /*node*/) /*ListNode::next*/;
416 ATTR_list___List____head(variable
[3]) /*List::_head*/ = variable
[4];
417 CALL_list___ListNode___next__eq( variable
[2] /*node*/)( variable
[2] /*node*/, NIT_NULL
/*null*/) /*ListNode::next=*/;
418 variable
[3] = variable
[0];
419 variable
[3] = ATTR_list___List____head(variable
[3]) /*List::_head*/;
420 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
421 if (UNTAG_Bool(variable
[3])) { /*if*/
422 variable
[3] = variable
[0];
423 ATTR_list___List____tail(variable
[3]) /*List::_tail*/ = NIT_NULL
/*null*/;
425 variable
[3] = variable
[0];
426 variable
[3] = ATTR_list___List____head(variable
[3]) /*List::_head*/;
427 CALL_list___ListNode___prev__eq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*ListNode::prev=*/;
429 variable
[3] = CALL_abstract_collection___Container___item( variable
[2] /*node*/)( variable
[2] /*node*/) /*Container::item*/;
430 variable
[1] = variable
[3];
432 return_label22
: while(false);
433 tracehead
= trace
.prev
;
436 void list___List___link(val_t self
, val_t param0
) {
437 struct trace_t trace
= {NULL
, NULL
, 109, LOCATE_list___List___link
};
439 void **closurevariable
= NULL
;
440 trace
.prev
= tracehead
; tracehead
= &trace
;
441 trace
.file
= LOCATE_list
;
443 variable
[1] = param0
;
444 variable
[3] = variable
[0];
445 variable
[3] = ATTR_list___List____tail(variable
[3]) /*List::_tail*/;
446 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
447 if (UNTAG_Bool(variable
[3])) { /*if*/
448 variable
[3] = variable
[0];
449 variable
[4] = ATTR_list___List____head( variable
[1] /*l*/) /*List::_head*/;
450 ATTR_list___List____head(variable
[3]) /*List::_head*/ = variable
[4];
452 variable
[3] = ATTR_list___List____head( variable
[1] /*l*/) /*List::_head*/;
453 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
454 if (UNTAG_Bool(variable
[3])) { /*if*/
455 variable
[3] = variable
[0];
456 variable
[3] = ATTR_list___List____tail(variable
[3]) /*List::_tail*/;
457 variable
[4] = ATTR_list___List____head( variable
[1] /*l*/) /*List::_head*/;
458 CALL_list___ListNode___next__eq(variable
[3])(variable
[3], variable
[4]) /*ListNode::next=*/;
459 variable
[3] = variable
[0];
460 variable
[3] = ATTR_list___List____tail(variable
[3]) /*List::_tail*/;
461 variable
[3] = CALL_list___ListNode___next(variable
[3])(variable
[3]) /*ListNode::next*/;
462 variable
[4] = variable
[0];
463 variable
[4] = ATTR_list___List____tail(variable
[4]) /*List::_tail*/;
464 CALL_list___ListNode___prev__eq(variable
[3])(variable
[3], variable
[4]) /*ListNode::prev=*/;
467 variable
[3] = variable
[0];
468 variable
[4] = ATTR_list___List____tail( variable
[1] /*l*/) /*List::_tail*/;
469 ATTR_list___List____tail(variable
[3]) /*List::_tail*/ = variable
[4];
470 CALL_abstract_collection___RemovableCollection___clear( variable
[1] /*l*/)( variable
[1] /*l*/) /*List::clear*/;
471 return_label23
: while(false);
472 tracehead
= trace
.prev
;
475 void list___List___init(val_t self
, int* init_table
) {
476 struct trace_t trace
= {NULL
, NULL
, 175, LOCATE_list___List___init
};
478 void **closurevariable
= NULL
;
479 trace
.prev
= tracehead
; tracehead
= &trace
;
480 trace
.file
= LOCATE_list
;
482 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_List
].i
]) return;
483 return_label24
: while(false);
484 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_List
].i
] = 1;
485 tracehead
= trace
.prev
;
488 void list___List___from(val_t self
, val_t param0
, int* init_table
) {
489 struct trace_t trace
= {NULL
, NULL
, 178, LOCATE_list___List___from
};
491 void **closurevariable
= NULL
;
492 trace
.prev
= tracehead
; tracehead
= &trace
;
493 trace
.file
= LOCATE_list
;
495 variable
[1] = param0
;
496 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_List
].i
]) return;
497 variable
[3] = variable
[0];
498 CALL_abstract_collection___IndexedCollection___append(variable
[3])(variable
[3], variable
[1] /*coll*/) /*IndexedCollection::append*/;
499 return_label25
: while(false);
500 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_List
].i
] = 1;
501 tracehead
= trace
.prev
;
504 val_t
list___List___get_node(val_t self
, val_t param0
) {
505 struct trace_t trace
= {NULL
, NULL
, 187, LOCATE_list___List___get_node
};
507 void **closurevariable
= NULL
;
508 trace
.prev
= tracehead
; tracehead
= &trace
;
509 trace
.file
= LOCATE_list
;
511 variable
[1] = param0
;
512 variable
[4] = variable
[0];
513 variable
[4] = ATTR_list___List____head(variable
[4]) /*List::_head*/;
514 variable
[3] = variable
[4];
515 variable
[4] = TAG_Bool(UNTAG_Int( variable
[1] /*i*/)<UNTAG_Int( TAG_Int(0)));
516 if (UNTAG_Bool(variable
[4])) { /*if*/
517 variable
[2] = NIT_NULL
/*null*/;
520 while (true) { /*while*/
521 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*n*/ == NIT_NULL
/*null*/) || (( variable
[3] /*n*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*n*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*n*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*n*/)( variable
[3] /*n*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
522 variable
[5] = variable
[4];
523 if (UNTAG_Bool(variable
[5])) { /* and */
524 variable
[5] = TAG_Bool(UNTAG_Int( variable
[1] /*i*/)>UNTAG_Int( TAG_Int(0)));
526 variable
[4] = variable
[5];
527 if (!UNTAG_Bool(variable
[4])) break; /* while*/
528 variable
[4] = CALL_list___ListNode___next( variable
[3] /*n*/)( variable
[3] /*n*/) /*ListNode::next*/;
529 variable
[3] = variable
[4] /*n=*/;
530 variable
[1] = TAG_Int(UNTAG_Int(variable
[1])-UNTAG_Int( TAG_Int(1))) /*i*/;
531 continue_27
: while(0);
534 variable
[2] = variable
[3] /*n*/;
536 return_label26
: while(false);
537 tracehead
= trace
.prev
;
540 val_t
list___List___search_node_after(val_t self
, val_t param0
, val_t param1
) {
541 struct trace_t trace
= {NULL
, NULL
, 201, LOCATE_list___List___search_node_after
};
543 void **closurevariable
= NULL
;
544 trace
.prev
= tracehead
; tracehead
= &trace
;
545 trace
.file
= LOCATE_list
;
547 variable
[1] = param0
;
548 variable
[2] = param1
;
549 variable
[4] = variable
[2] /*after*/;
550 while (true) { /*while*/
551 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*n*/ == NIT_NULL
/*null*/) || (( variable
[4] /*n*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*n*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*n*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*n*/)( variable
[4] /*n*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
552 variable
[6] = variable
[5];
553 if (UNTAG_Bool(variable
[6])) { /* and */
554 variable
[6] = CALL_abstract_collection___Container___item( variable
[4] /*n*/)( variable
[4] /*n*/) /*Container::item*/;
555 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[6] == variable
[1] /*e*/) || ((variable
[6] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[6])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], variable
[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[6])(variable
[6], variable
[1] /*e*/) /*Object::==*/)))))));
557 variable
[5] = variable
[6];
558 if (!UNTAG_Bool(variable
[5])) break; /* while*/
559 variable
[5] = CALL_list___ListNode___next( variable
[4] /*n*/)( variable
[4] /*n*/) /*ListNode::next*/;
560 variable
[4] = variable
[5] /*n=*/;
561 continue_29
: while(0);
564 variable
[3] = variable
[4] /*n*/;
566 return_label28
: while(false);
567 tracehead
= trace
.prev
;
570 void list___List___remove_node(val_t self
, val_t param0
) {
571 struct trace_t trace
= {NULL
, NULL
, 209, LOCATE_list___List___remove_node
};
573 void **closurevariable
= NULL
;
574 trace
.prev
= tracehead
; tracehead
= &trace
;
575 trace
.file
= LOCATE_list
;
577 variable
[1] = param0
;
578 variable
[3] = CALL_list___ListNode___prev( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::prev*/;
579 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
580 if (UNTAG_Bool(variable
[3])) { /*if*/
581 variable
[3] = variable
[0];
582 variable
[4] = CALL_list___ListNode___next( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::next*/;
583 ATTR_list___List____head(variable
[3]) /*List::_head*/ = variable
[4];
584 variable
[3] = CALL_list___ListNode___next( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::next*/;
585 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
586 if (UNTAG_Bool(variable
[3])) { /*if*/
587 variable
[3] = variable
[0];
588 ATTR_list___List____tail(variable
[3]) /*List::_tail*/ = NIT_NULL
/*null*/;
590 variable
[3] = CALL_list___ListNode___next( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::next*/;
591 CALL_list___ListNode___prev__eq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*ListNode::prev=*/;
594 variable
[3] = CALL_list___ListNode___next( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::next*/;
595 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
596 if (UNTAG_Bool(variable
[3])) { /*if*/
597 variable
[3] = variable
[0];
598 variable
[4] = CALL_list___ListNode___prev( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::prev*/;
599 ATTR_list___List____tail(variable
[3]) /*List::_tail*/ = variable
[4];
600 variable
[3] = CALL_list___ListNode___prev( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::prev*/;
601 CALL_list___ListNode___next__eq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*ListNode::next=*/;
603 variable
[3] = CALL_list___ListNode___prev( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::prev*/;
604 variable
[4] = CALL_list___ListNode___next( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::next*/;
605 CALL_list___ListNode___next__eq(variable
[3])(variable
[3], variable
[4]) /*ListNode::next=*/;
606 variable
[3] = CALL_list___ListNode___next( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::next*/;
607 variable
[4] = CALL_list___ListNode___prev( variable
[1] /*node*/)( variable
[1] /*node*/) /*ListNode::prev*/;
608 CALL_list___ListNode___prev__eq(variable
[3])(variable
[3], variable
[4]) /*ListNode::prev=*/;
611 return_label30
: while(false);
612 tracehead
= trace
.prev
;
615 void list___List___insert_before(val_t self
, val_t param0
, val_t param1
) {
616 struct trace_t trace
= {NULL
, NULL
, 228, LOCATE_list___List___insert_before
};
618 void **closurevariable
= NULL
;
619 trace
.prev
= tracehead
; tracehead
= &trace
;
620 trace
.file
= LOCATE_list
;
622 variable
[1] = param0
;
623 variable
[2] = param1
;
624 variable
[5] = NEW_ListNode_list___ListNode___init( variable
[1] /*element*/); /*new ListNode[E]*/
625 variable
[4] = variable
[5];
626 variable
[6] = CALL_list___ListNode___prev( variable
[2] /*node*/)( variable
[2] /*node*/) /*ListNode::prev*/;
627 variable
[5] = variable
[6];
628 variable
[6] = TAG_Bool(( variable
[5] /*prev*/ == NIT_NULL
/*null*/) || (( variable
[5] /*prev*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*prev*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*prev*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*prev*/)( variable
[5] /*prev*/, NIT_NULL
/*null*/) /*Object::==*/)))));
629 if (UNTAG_Bool(variable
[6])) { /*if*/
630 variable
[6] = variable
[0];
631 ATTR_list___List____head(variable
[6]) /*List::_head*/ = variable
[4] /*nnode*/;
633 CALL_list___ListNode___next__eq( variable
[5] /*prev*/)( variable
[5] /*prev*/, variable
[4] /*nnode*/) /*ListNode::next=*/;
635 CALL_list___ListNode___prev__eq( variable
[4] /*nnode*/)( variable
[4] /*nnode*/, variable
[5] /*prev*/) /*ListNode::prev=*/;
636 CALL_list___ListNode___next__eq( variable
[4] /*nnode*/)( variable
[4] /*nnode*/, variable
[2] /*node*/) /*ListNode::next=*/;
637 CALL_list___ListNode___prev__eq( variable
[2] /*node*/)( variable
[2] /*node*/, variable
[4] /*nnode*/) /*ListNode::prev=*/;
638 return_label31
: while(false);
639 tracehead
= trace
.prev
;
642 val_t
list___ListIterator___item(val_t self
) {
643 struct trace_t trace
= {NULL
, NULL
, 246, LOCATE_list___ListIterator___item
};
645 void **closurevariable
= NULL
;
646 trace
.prev
= tracehead
; tracehead
= &trace
;
647 trace
.file
= LOCATE_list
;
649 variable
[2] = variable
[0];
650 variable
[2] = ATTR_list___ListIterator____node(variable
[2]) /*ListIterator::_node*/;
651 variable
[2] = CALL_abstract_collection___Container___item(variable
[2])(variable
[2]) /*Container::item*/;
652 variable
[1] = variable
[2];
654 return_label32
: while(false);
655 tracehead
= trace
.prev
;
658 void list___ListIterator___next(val_t self
) {
659 struct trace_t trace
= {NULL
, NULL
, 252, LOCATE_list___ListIterator___next
};
661 void **closurevariable
= NULL
;
662 trace
.prev
= tracehead
; tracehead
= &trace
;
663 trace
.file
= LOCATE_list
;
665 variable
[2] = variable
[0];
666 variable
[3] = variable
[0];
667 variable
[3] = ATTR_list___ListIterator____node(variable
[3]) /*ListIterator::_node*/;
668 variable
[3] = CALL_list___ListNode___next(variable
[3])(variable
[3]) /*ListNode::next*/;
669 ATTR_list___ListIterator____node(variable
[2]) /*ListIterator::_node*/ = variable
[3];
670 variable
[2] = variable
[0];
671 ATTR_list___ListIterator____index(variable
[2]) /*ListIterator::_index*/ = TAG_Int(UNTAG_Int(ATTR_list___ListIterator____index(variable
[2]) /*ListIterator::_index*/)+UNTAG_Int( TAG_Int(1)));
672 return_label33
: while(false);
673 tracehead
= trace
.prev
;
676 val_t
list___ListIterator___is_ok(val_t self
) {
677 struct trace_t trace
= {NULL
, NULL
, 250, LOCATE_list___ListIterator___is_ok
};
679 void **closurevariable
= NULL
;
680 trace
.prev
= tracehead
; tracehead
= &trace
;
681 trace
.file
= LOCATE_list
;
683 variable
[2] = variable
[0];
684 variable
[2] = ATTR_list___ListIterator____node(variable
[2]) /*ListIterator::_node*/;
685 variable
[2] = TAG_Bool((variable
[2] == NIT_NULL
/*null*/) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], NIT_NULL
/*null*/) /*Object::==*/)))));
686 variable
[1] = TAG_Bool(!UNTAG_Bool(variable
[2]));
688 return_label34
: while(false);
689 tracehead
= trace
.prev
;
692 void list___ListIterator___item__eq(val_t self
, val_t param0
) {
693 struct trace_t trace
= {NULL
, NULL
, 248, LOCATE_list___ListIterator___item__eq
};
695 void **closurevariable
= NULL
;
696 trace
.prev
= tracehead
; tracehead
= &trace
;
697 trace
.file
= LOCATE_list
;
699 variable
[1] = param0
;
700 variable
[3] = variable
[0];
701 variable
[3] = ATTR_list___ListIterator____node(variable
[3]) /*ListIterator::_node*/;
702 CALL_abstract_collection___Container___item__eq(variable
[3])(variable
[3], variable
[1] /*e*/) /*Container::item=*/;
703 return_label35
: while(false);
704 tracehead
= trace
.prev
;
707 val_t
list___ListIterator___index(val_t self
) {
708 struct trace_t trace
= {NULL
, NULL
, 268, LOCATE_list___ListIterator___index
};
709 val_t
*variable
= NULL
;
710 void **closurevariable
= NULL
;
711 trace
.prev
= tracehead
; tracehead
= &trace
;
712 trace
.file
= LOCATE_list
;
713 tracehead
= trace
.prev
;
714 return ATTR_list___ListIterator____index( self
) /*ListIterator::_index*/;
716 void list___ListIterator___init(val_t self
, val_t param0
, int* init_table
) {
717 struct trace_t trace
= {NULL
, NULL
, 258, LOCATE_list___ListIterator___init
};
719 void **closurevariable
= NULL
;
720 trace
.prev
= tracehead
; tracehead
= &trace
;
721 trace
.file
= LOCATE_list
;
723 variable
[1] = param0
;
724 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ListIterator
].i
]) return;
725 variable
[3] = variable
[0];
726 ATTR_list___ListIterator____node(variable
[3]) /*ListIterator::_node*/ = variable
[1] /*node*/;
727 variable
[3] = variable
[0];
728 ATTR_list___ListIterator____index(variable
[3]) /*ListIterator::_index*/ = TAG_Int(0);
729 return_label36
: while(false);
730 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ListIterator
].i
] = 1;
731 tracehead
= trace
.prev
;
734 void list___ListNode___init(val_t self
, val_t param0
, int* init_table
) {
735 struct trace_t trace
= {NULL
, NULL
, 275, LOCATE_list___ListNode___init
};
737 void **closurevariable
= NULL
;
738 trace
.prev
= tracehead
; tracehead
= &trace
;
739 trace
.file
= LOCATE_list
;
741 variable
[1] = param0
;
742 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ListNode
].i
]) return;
743 CALL_abstract_collection___Container___init(variable
[0])(variable
[0], variable
[1], init_table
/*YYY*/) /*Container::init*/;
744 variable
[3] = variable
[0];
745 CALL_abstract_collection___Container___item__eq(variable
[3])(variable
[3], variable
[1] /*i*/) /*Container::item=*/;
746 return_label37
: while(false);
747 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ListNode
].i
] = 1;
748 tracehead
= trace
.prev
;
751 val_t
list___ListNode___next(val_t self
) {
752 struct trace_t trace
= {NULL
, NULL
, 280, LOCATE_list___ListNode___next
};
753 val_t
*variable
= NULL
;
754 void **closurevariable
= NULL
;
755 trace
.prev
= tracehead
; tracehead
= &trace
;
756 trace
.file
= LOCATE_list
;
757 tracehead
= trace
.prev
;
758 return ATTR_list___ListNode____next( self
) /*ListNode::_next*/;
760 void list___ListNode___next__eq(val_t self
, val_t param0
) {
761 struct trace_t trace
= {NULL
, NULL
, 280, LOCATE_list___ListNode___next__eq
};
762 val_t
*variable
= NULL
;
763 void **closurevariable
= NULL
;
764 trace
.prev
= tracehead
; tracehead
= &trace
;
765 trace
.file
= LOCATE_list
;
766 ATTR_list___ListNode____next( self
) /*ListNode::_next*/ = param0
;
767 tracehead
= trace
.prev
;
770 val_t
list___ListNode___prev(val_t self
) {
771 struct trace_t trace
= {NULL
, NULL
, 283, LOCATE_list___ListNode___prev
};
772 val_t
*variable
= NULL
;
773 void **closurevariable
= NULL
;
774 trace
.prev
= tracehead
; tracehead
= &trace
;
775 trace
.file
= LOCATE_list
;
776 tracehead
= trace
.prev
;
777 return ATTR_list___ListNode____prev( self
) /*ListNode::_prev*/;
779 void list___ListNode___prev__eq(val_t self
, val_t param0
) {
780 struct trace_t trace
= {NULL
, NULL
, 283, LOCATE_list___ListNode___prev__eq
};
781 val_t
*variable
= NULL
;
782 void **closurevariable
= NULL
;
783 trace
.prev
= tracehead
; tracehead
= &trace
;
784 trace
.file
= LOCATE_list
;
785 ATTR_list___ListNode____prev( self
) /*ListNode::_prev*/ = param0
;
786 tracehead
= trace
.prev
;