c_src: regenerate with soft nullable handling
[nit.git] / c_src / parser_prod._sep.c
1 /* This C file is generated by NIT to compile module parser_prod. */
2 #include "parser_prod._sep.h"
3 val_t parser_prod___PNode___parent(val_t self) {
4 struct trace_t trace = {NULL, NULL, 9, LOCATE_parser_prod___PNode___parent};
5 val_t *variable = NULL;
6 struct WBT_ **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_parser_prod;
9 tracehead = trace.prev;
10 return ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/;
11 }
12 void parser_prod___PNode___parent__eq(val_t self, val_t param0) {
13 struct trace_t trace = {NULL, NULL, 9, LOCATE_parser_prod___PNode___parent__eq};
14 val_t *variable = NULL;
15 struct WBT_ **closurevariable = NULL;
16 trace.prev = tracehead; tracehead = &trace;
17 trace.file = LOCATE_parser_prod;
18 ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/ = param0;
19 tracehead = trace.prev;
20 return;
21 }
22 void parser_prod___PNode___remove_child(val_t self, val_t param0) {
23 struct trace_t trace = {NULL, NULL, 12, LOCATE_parser_prod___PNode___remove_child};
24 val_t variable[3];
25 struct WBT_ **closurevariable = NULL;
26 trace.prev = tracehead; tracehead = &trace;
27 trace.file = LOCATE_parser_prod;
28 /* Register variable[0]: Local variable */
29 variable[0] = self;
30 /* Register variable[1]: Local variable */
31 variable[1] = param0;
32 /* Register variable[2]: Method return value and escape marker */
33 CALL_parser_prod___PNode___replace_child(variable[0])(variable[0], variable[1] /*child*/, NIT_NULL /*null*/) /*PNode::replace_child*/;
34 return_label0: while(false);
35 tracehead = trace.prev;
36 return;
37 }
38 void parser_prod___PNode___replace_child(val_t self, val_t param0, val_t param1) {
39 struct trace_t trace = {NULL, NULL, 18, LOCATE_parser_prod___PNode___replace_child};
40 val_t *variable = NULL;
41 struct WBT_ **closurevariable = NULL;
42 trace.prev = tracehead; tracehead = &trace;
43 trace.file = LOCATE_parser_prod;
44 fprintf(stderr, "Deferred method called");
45 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 18);
46 nit_exit(1);
47 tracehead = trace.prev;
48 return;
49 }
50 void parser_prod___PNode___replace_with(val_t self, val_t param0) {
51 struct trace_t trace = {NULL, NULL, 21, LOCATE_parser_prod___PNode___replace_with};
52 val_t variable[4];
53 struct WBT_ **closurevariable = NULL;
54 trace.prev = tracehead; tracehead = &trace;
55 trace.file = LOCATE_parser_prod;
56 /* Register variable[0]: Local variable */
57 variable[0] = self;
58 /* Register variable[1]: Local variable */
59 variable[1] = param0;
60 /* Register variable[2]: Method return value and escape marker */
61 /* Register variable[3]: Result */
62 variable[3] = ATTR_parser_prod___PNode____parent(variable[0]) /*PNode::_parent*/;
63 /* Register variable[3]: Result */
64 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::==*/)))))));
65 if (UNTAG_Bool(variable[3])) { /*if*/
66 /* Register variable[3]: Result */
67 variable[3] = ATTR_parser_prod___PNode____parent(variable[0]) /*PNode::_parent*/;
68 CALL_parser_prod___PNode___replace_child(variable[3])(variable[3], variable[0], variable[1] /*node*/) /*PNode::replace_child*/;
69 }
70 return_label1: while(false);
71 tracehead = trace.prev;
72 return;
73 }
74 void parser_prod___PNode___visit_all(val_t self, val_t param0) {
75 struct trace_t trace = {NULL, NULL, 29, LOCATE_parser_prod___PNode___visit_all};
76 val_t *variable = NULL;
77 struct WBT_ **closurevariable = NULL;
78 trace.prev = tracehead; tracehead = &trace;
79 trace.file = LOCATE_parser_prod;
80 fprintf(stderr, "Deferred method called");
81 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 29);
82 nit_exit(1);
83 tracehead = trace.prev;
84 return;
85 }
86 void parser_prod___PNode___visit_all_reverse(val_t self, val_t param0) {
87 struct trace_t trace = {NULL, NULL, 33, LOCATE_parser_prod___PNode___visit_all_reverse};
88 val_t *variable = NULL;
89 struct WBT_ **closurevariable = NULL;
90 trace.prev = tracehead; tracehead = &trace;
91 trace.file = LOCATE_parser_prod;
92 fprintf(stderr, "Deferred method called");
93 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 33);
94 nit_exit(1);
95 tracehead = trace.prev;
96 return;
97 }
98 val_t parser_prod___PNode___locate(val_t self) {
99 struct trace_t trace = {NULL, NULL, 37, LOCATE_parser_prod___PNode___locate};
100 val_t *variable = NULL;
101 struct WBT_ **closurevariable = NULL;
102 trace.prev = tracehead; tracehead = &trace;
103 trace.file = LOCATE_parser_prod;
104 fprintf(stderr, "Deferred method called");
105 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 37);
106 nit_exit(1);
107 tracehead = trace.prev;
108 return NIT_NULL;
109 }
110 val_t parser_prod___PNode___line_number(val_t self) {
111 struct trace_t trace = {NULL, NULL, 40, LOCATE_parser_prod___PNode___line_number};
112 val_t *variable = NULL;
113 struct WBT_ **closurevariable = NULL;
114 trace.prev = tracehead; tracehead = &trace;
115 trace.file = LOCATE_parser_prod;
116 fprintf(stderr, "Deferred method called");
117 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 40);
118 nit_exit(1);
119 tracehead = trace.prev;
120 return NIT_NULL;
121 }
122 void parser_prod___PNode___printl(val_t self, val_t param0) {
123 struct trace_t trace = {NULL, NULL, 43, LOCATE_parser_prod___PNode___printl};
124 static val_t once_value_3 = NIT_NULL; /* Once value for string variable[4]*/
125 static val_t once_value_4 = NIT_NULL; /* Once value for string variable[4]*/
126 static val_t once_value_5 = NIT_NULL; /* Once value for string variable[4]*/
127 val_t variable[5];
128 struct WBT_ **closurevariable = NULL;
129 trace.prev = tracehead; tracehead = &trace;
130 trace.file = LOCATE_parser_prod;
131 /* Register variable[0]: Local variable */
132 variable[0] = self;
133 /* Register variable[1]: Local variable */
134 variable[1] = param0;
135 /* Register variable[2]: Method return value and escape marker */
136 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
137 /* Register variable[4]: Once String constant */
138 if (once_value_3 != NIT_NULL) variable[4] = once_value_3;
139 else {
140 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
141 once_value_3 = variable[4];
142 }
143 /* Register variable[4]: Result */
144 /* Ensure var variable[4]: super-string element*/
145 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
146 /* Register variable[4]: Result */
147 variable[4] = CALL_parser_prod___PNode___locate(variable[0])(variable[0]) /*PNode::locate*/;
148 /* Ensure var variable[4]: super-string element*/
149 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
150 /* Register variable[4]: Once String constant */
151 if (once_value_4 != NIT_NULL) variable[4] = once_value_4;
152 else {
153 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
154 once_value_4 = variable[4];
155 }
156 /* Register variable[4]: Result */
157 /* Ensure var variable[4]: super-string element*/
158 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
159 variable[4] = variable[1] /*str*/ /* Ensure var: super-string element*/;
160 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
161 /* Register variable[4]: Once String constant */
162 if (once_value_5 != NIT_NULL) variable[4] = once_value_5;
163 else {
164 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)) /*new String*/;
165 once_value_5 = variable[4];
166 }
167 /* Register variable[4]: Result */
168 /* Ensure var variable[4]: super-string element*/
169 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
170 /* Register variable[3]: Result */
171 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
172 CALL_file___Object___print(variable[0])(variable[0], variable[3]) /*Object::print*/;
173 return_label2: while(false);
174 tracehead = trace.prev;
175 return;
176 }
177 void parser_prod___Token___replace_child(val_t self, val_t param0, val_t param1) {
178 struct trace_t trace = {NULL, NULL, 53, LOCATE_parser_prod___Token___replace_child};
179 val_t variable[4];
180 struct WBT_ **closurevariable = NULL;
181 trace.prev = tracehead; tracehead = &trace;
182 trace.file = LOCATE_parser_prod;
183 /* Register variable[0]: Local variable */
184 variable[0] = self;
185 /* Register variable[1]: Local variable */
186 variable[1] = param0;
187 /* Register variable[2]: Local variable */
188 variable[2] = param1;
189 /* Register variable[3]: Method return value and escape marker */
190 return_label6: while(false);
191 tracehead = trace.prev;
192 return;
193 }
194 void parser_prod___Token___visit_all(val_t self, val_t param0) {
195 struct trace_t trace = {NULL, NULL, 51, LOCATE_parser_prod___Token___visit_all};
196 val_t variable[3];
197 struct WBT_ **closurevariable = NULL;
198 trace.prev = tracehead; tracehead = &trace;
199 trace.file = LOCATE_parser_prod;
200 /* Register variable[0]: Local variable */
201 variable[0] = self;
202 /* Register variable[1]: Local variable */
203 variable[1] = param0;
204 /* Register variable[2]: Method return value and escape marker */
205 return_label7: while(false);
206 tracehead = trace.prev;
207 return;
208 }
209 void parser_prod___Token___visit_all_reverse(val_t self, val_t param0) {
210 struct trace_t trace = {NULL, NULL, 52, LOCATE_parser_prod___Token___visit_all_reverse};
211 val_t variable[3];
212 struct WBT_ **closurevariable = NULL;
213 trace.prev = tracehead; tracehead = &trace;
214 trace.file = LOCATE_parser_prod;
215 /* Register variable[0]: Local variable */
216 variable[0] = self;
217 /* Register variable[1]: Local variable */
218 variable[1] = param0;
219 /* Register variable[2]: Method return value and escape marker */
220 return_label8: while(false);
221 tracehead = trace.prev;
222 return;
223 }
224 val_t parser_prod___Token___locate(val_t self) {
225 struct trace_t trace = {NULL, NULL, 55, LOCATE_parser_prod___Token___locate};
226 static val_t once_value_10 = NIT_NULL; /* Once value for string variable[3]*/
227 static val_t once_value_11 = NIT_NULL; /* Once value for string variable[3]*/
228 static val_t once_value_12 = NIT_NULL; /* Once value for string variable[3]*/
229 static val_t once_value_13 = NIT_NULL; /* Once value for string variable[3]*/
230 val_t variable[4];
231 struct WBT_ **closurevariable = NULL;
232 trace.prev = tracehead; tracehead = &trace;
233 trace.file = LOCATE_parser_prod;
234 /* Register variable[0]: Local variable */
235 variable[0] = self;
236 /* Register variable[1]: Method return value and escape marker */
237 variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
238 /* Register variable[3]: Once String constant */
239 if (once_value_10 != NIT_NULL) variable[3] = once_value_10;
240 else {
241 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
242 once_value_10 = variable[3];
243 }
244 /* Register variable[3]: Result */
245 /* Ensure var variable[3]: super-string element*/
246 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
247 /* Register variable[3]: Result */
248 variable[3] = CALL_lexer___Token___filename(variable[0])(variable[0]) /*Token::filename*/;
249 /* Ensure var variable[3]: super-string element*/
250 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
251 /* Register variable[3]: Once String constant */
252 if (once_value_11 != NIT_NULL) variable[3] = once_value_11;
253 else {
254 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)) /*new String*/;
255 once_value_11 = variable[3];
256 }
257 /* Register variable[3]: Result */
258 /* Ensure var variable[3]: super-string element*/
259 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
260 /* Register variable[3]: Result */
261 variable[3] = CALL_lexer___Token___line(variable[0])(variable[0]) /*Token::line*/;
262 /* Ensure var variable[3]: super-string element*/
263 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/) /*AbstractArray::add*/;
264 /* Register variable[3]: Once String constant */
265 if (once_value_12 != NIT_NULL) variable[3] = once_value_12;
266 else {
267 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)) /*new String*/;
268 once_value_12 = variable[3];
269 }
270 /* Register variable[3]: Result */
271 /* Ensure var variable[3]: super-string element*/
272 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
273 /* Register variable[3]: Result */
274 variable[3] = CALL_lexer___Token___pos(variable[0])(variable[0]) /*Token::pos*/;
275 /* Ensure var variable[3]: super-string element*/
276 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/) /*AbstractArray::add*/;
277 /* Register variable[3]: Once String constant */
278 if (once_value_13 != NIT_NULL) variable[3] = once_value_13;
279 else {
280 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
281 once_value_13 = variable[3];
282 }
283 /* Register variable[3]: Result */
284 /* Ensure var variable[3]: super-string element*/
285 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
286 /* Register variable[2]: Result */
287 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
288 variable[1] = variable[2];
289 goto return_label9;
290 return_label9: while(false);
291 tracehead = trace.prev;
292 return variable[1];
293 }
294 val_t parser_prod___Token___line_number(val_t self) {
295 struct trace_t trace = {NULL, NULL, 60, LOCATE_parser_prod___Token___line_number};
296 val_t variable[3];
297 struct WBT_ **closurevariable = NULL;
298 trace.prev = tracehead; tracehead = &trace;
299 trace.file = LOCATE_parser_prod;
300 /* Register variable[0]: Local variable */
301 variable[0] = self;
302 /* Register variable[1]: Method return value and escape marker */
303 /* Register variable[2]: Result */
304 variable[2] = CALL_lexer___Token___line(variable[0])(variable[0]) /*Token::line*/;
305 variable[1] = variable[2];
306 goto return_label14;
307 return_label14: while(false);
308 tracehead = trace.prev;
309 return variable[1];
310 }
311 void parser_prod___Prod___replace_with(val_t self, val_t param0) {
312 struct trace_t trace = {NULL, NULL, 86, LOCATE_parser_prod___Prod___replace_with};
313 val_t variable[4];
314 struct WBT_ **closurevariable = NULL;
315 trace.prev = tracehead; tracehead = &trace;
316 trace.file = LOCATE_parser_prod;
317 /* Register variable[0]: Local variable */
318 variable[0] = self;
319 /* Register variable[1]: Local variable */
320 variable[1] = param0;
321 /* Register variable[2]: Method return value and escape marker */
322 CALL_SUPER_parser_prod___Prod___replace_with(variable[0])(variable[0], variable[1]) /*super Prod::replace_with*/;
323 /* Register variable[3]: Result */
324 variable[3] = TAG_Bool(( variable[1] /*n*/==NIT_NULL) || VAL_ISA( variable[1] /*n*/, COLOR_Prod, ID_Prod)) /*cast Prod*/;
325 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___Prod___replace_with, LOCATE_parser_prod, 89); nit_exit(1);}
326 /* Register variable[3]: Result */
327 variable[3] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
328 CALL_parser_prod___Prod___first_token__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*Prod::first_token=*/;
329 /* Register variable[3]: Result */
330 variable[3] = CALL_parser_prod___Prod___last_token(variable[0])(variable[0]) /*Prod::last_token*/;
331 CALL_parser_prod___Prod___last_token__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*Prod::last_token=*/;
332 return_label15: while(false);
333 tracehead = trace.prev;
334 return;
335 }
336 val_t parser_prod___Prod___locate(val_t self) {
337 struct trace_t trace = {NULL, NULL, 70, LOCATE_parser_prod___Prod___locate};
338 static val_t once_value_17 = NIT_NULL; /* Once value for string variable[2]*/
339 static val_t once_value_18 = NIT_NULL; /* Once value for string variable[3]*/
340 static val_t once_value_19 = NIT_NULL; /* Once value for string variable[3]*/
341 static val_t once_value_20 = NIT_NULL; /* Once value for string variable[4]*/
342 static val_t once_value_21 = NIT_NULL; /* Once value for string variable[4]*/
343 static val_t once_value_22 = NIT_NULL; /* Once value for string variable[4]*/
344 static val_t once_value_23 = NIT_NULL; /* Once value for string variable[4]*/
345 static val_t once_value_24 = NIT_NULL; /* Once value for string variable[4]*/
346 static val_t once_value_25 = NIT_NULL; /* Once value for string variable[4]*/
347 static val_t once_value_26 = NIT_NULL; /* Once value for string variable[4]*/
348 val_t variable[5];
349 struct WBT_ **closurevariable = NULL;
350 trace.prev = tracehead; tracehead = &trace;
351 trace.file = LOCATE_parser_prod;
352 /* Register variable[0]: Local variable */
353 variable[0] = self;
354 /* Register variable[1]: Method return value and escape marker */
355 /* Register variable[2]: Result */
356 variable[2] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
357 /* Register variable[2]: Result */
358 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::==*/)))));
359 if (UNTAG_Bool(variable[2])) { /*if*/
360 /* Register variable[2]: Once String constant */
361 if (once_value_17 != NIT_NULL) variable[2] = once_value_17;
362 else {
363 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("????"), TAG_Int(4)) /*new String*/;
364 once_value_17 = variable[2];
365 }
366 /* Register variable[2]: Result */
367 variable[1] = variable[2];
368 goto return_label16;
369 }
370 /* Register variable[2]: Result */
371 variable[2] = CALL_parser_prod___Prod___last_token(variable[0])(variable[0]) /*Prod::last_token*/;
372 /* Register variable[2]: Result */
373 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::==*/)))));
374 if (UNTAG_Bool(variable[2])) { /*if*/
375 variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
376 /* Register variable[3]: Once String constant */
377 if (once_value_18 != NIT_NULL) variable[3] = once_value_18;
378 else {
379 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
380 once_value_18 = variable[3];
381 }
382 /* Register variable[3]: Result */
383 /* Ensure var variable[3]: super-string element*/
384 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
385 /* Register variable[3]: Result */
386 variable[3] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
387 /* Register variable[3]: Result */
388 variable[3] = CALL_parser_prod___PNode___locate(variable[3])(variable[3]) /*Token::locate*/;
389 /* Ensure var variable[3]: super-string element*/
390 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
391 /* Register variable[3]: Once String constant */
392 if (once_value_19 != NIT_NULL) variable[3] = once_value_19;
393 else {
394 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("--????"), TAG_Int(6)) /*new String*/;
395 once_value_19 = variable[3];
396 }
397 /* Register variable[3]: Result */
398 /* Ensure var variable[3]: super-string element*/
399 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
400 /* Register variable[2]: Result */
401 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
402 variable[1] = variable[2];
403 goto return_label16;
404 }
405 /* Register variable[2]: Local variable */
406 /* Register variable[3]: Result */
407 variable[3] = CALL_parser_prod___Prod___last_token(variable[0])(variable[0]) /*Prod::last_token*/;
408 /* Register variable[3]: Result */
409 variable[3] = CALL_lexer___Token___pos(variable[3])(variable[3]) /*Token::pos*/;
410 /* Register variable[4]: Result */
411 variable[4] = CALL_parser_prod___Prod___last_token(variable[0])(variable[0]) /*Prod::last_token*/;
412 /* Register variable[4]: Result */
413 variable[4] = CALL_lexer___Token___text(variable[4])(variable[4]) /*Token::text*/;
414 /* Register variable[4]: Result */
415 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArrayRead::length*/;
416 /* Register variable[3]: Result */
417 variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int(variable[4]));
418 /* Register variable[3]: Result */
419 variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
420 variable[2] = variable[3];
421 /* Register variable[3]: Result */
422 variable[3] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
423 /* Register variable[3]: Result */
424 variable[3] = CALL_lexer___Token___line(variable[3])(variable[3]) /*Token::line*/;
425 /* Register variable[4]: Result */
426 variable[4] = CALL_parser_prod___Prod___last_token(variable[0])(variable[0]) /*Prod::last_token*/;
427 /* Register variable[4]: Result */
428 variable[4] = CALL_lexer___Token___line(variable[4])(variable[4]) /*Token::line*/;
429 /* Register variable[3]: Result */
430 variable[3] = TAG_Bool((variable[3])==(variable[4]));
431 if (UNTAG_Bool(variable[3])) { /*if*/
432 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
433 /* Register variable[4]: Once String constant */
434 if (once_value_20 != NIT_NULL) variable[4] = once_value_20;
435 else {
436 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
437 once_value_20 = variable[4];
438 }
439 /* Register variable[4]: Result */
440 /* Ensure var variable[4]: super-string element*/
441 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
442 /* Register variable[4]: Result */
443 variable[4] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
444 /* Register variable[4]: Result */
445 variable[4] = CALL_parser_prod___PNode___locate(variable[4])(variable[4]) /*Token::locate*/;
446 /* Ensure var variable[4]: super-string element*/
447 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
448 /* Register variable[4]: Once String constant */
449 if (once_value_21 != NIT_NULL) variable[4] = once_value_21;
450 else {
451 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)) /*new String*/;
452 once_value_21 = variable[4];
453 }
454 /* Register variable[4]: Result */
455 /* Ensure var variable[4]: super-string element*/
456 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
457 variable[4] = variable[2] /*lastpos*/ /* Ensure var: super-string element*/;
458 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
459 /* Register variable[4]: Once String constant */
460 if (once_value_22 != NIT_NULL) variable[4] = once_value_22;
461 else {
462 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
463 once_value_22 = variable[4];
464 }
465 /* Register variable[4]: Result */
466 /* Ensure var variable[4]: super-string element*/
467 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
468 /* Register variable[3]: Result */
469 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
470 variable[1] = variable[3];
471 goto return_label16;
472 } else { /*if*/
473 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
474 /* Register variable[4]: Once String constant */
475 if (once_value_23 != NIT_NULL) variable[4] = once_value_23;
476 else {
477 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
478 once_value_23 = variable[4];
479 }
480 /* Register variable[4]: Result */
481 /* Ensure var variable[4]: super-string element*/
482 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
483 /* Register variable[4]: Result */
484 variable[4] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
485 /* Register variable[4]: Result */
486 variable[4] = CALL_parser_prod___PNode___locate(variable[4])(variable[4]) /*Token::locate*/;
487 /* Ensure var variable[4]: super-string element*/
488 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
489 /* Register variable[4]: Once String constant */
490 if (once_value_24 != NIT_NULL) variable[4] = once_value_24;
491 else {
492 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)) /*new String*/;
493 once_value_24 = variable[4];
494 }
495 /* Register variable[4]: Result */
496 /* Ensure var variable[4]: super-string element*/
497 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
498 /* Register variable[4]: Result */
499 variable[4] = CALL_parser_prod___Prod___last_token(variable[0])(variable[0]) /*Prod::last_token*/;
500 /* Register variable[4]: Result */
501 variable[4] = CALL_lexer___Token___line(variable[4])(variable[4]) /*Token::line*/;
502 /* Ensure var variable[4]: super-string element*/
503 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
504 /* Register variable[4]: Once String constant */
505 if (once_value_25 != NIT_NULL) variable[4] = once_value_25;
506 else {
507 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)) /*new String*/;
508 once_value_25 = variable[4];
509 }
510 /* Register variable[4]: Result */
511 /* Ensure var variable[4]: super-string element*/
512 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
513 variable[4] = variable[2] /*lastpos*/ /* Ensure var: super-string element*/;
514 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
515 /* Register variable[4]: Once String constant */
516 if (once_value_26 != NIT_NULL) variable[4] = once_value_26;
517 else {
518 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
519 once_value_26 = variable[4];
520 }
521 /* Register variable[4]: Result */
522 /* Ensure var variable[4]: super-string element*/
523 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
524 /* Register variable[3]: Result */
525 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
526 variable[1] = variable[3];
527 goto return_label16;
528 }
529 return_label16: while(false);
530 tracehead = trace.prev;
531 return variable[1];
532 }
533 val_t parser_prod___Prod___line_number(val_t self) {
534 struct trace_t trace = {NULL, NULL, 94, LOCATE_parser_prod___Prod___line_number};
535 val_t variable[3];
536 struct WBT_ **closurevariable = NULL;
537 trace.prev = tracehead; tracehead = &trace;
538 trace.file = LOCATE_parser_prod;
539 /* Register variable[0]: Local variable */
540 variable[0] = self;
541 /* Register variable[1]: Method return value and escape marker */
542 /* Register variable[2]: Result */
543 variable[2] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
544 /* Register variable[2]: Result */
545 variable[2] = TAG_Bool(!UNTAG_Bool(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::==*/)))))));
546 if (UNTAG_Bool(variable[2])) { /*if*/
547 /* Register variable[2]: Result */
548 variable[2] = CALL_parser_prod___Prod___first_token(variable[0])(variable[0]) /*Prod::first_token*/;
549 /* Register variable[2]: Result */
550 variable[2] = CALL_lexer___Token___line(variable[2])(variable[2]) /*Token::line*/;
551 variable[1] = variable[2];
552 goto return_label27;
553 } else { /*if*/
554 variable[1] = TAG_Int(0);
555 goto return_label27;
556 }
557 return_label27: while(false);
558 tracehead = trace.prev;
559 return variable[1];
560 }
561 val_t parser_prod___Prod___first_token(val_t self) {
562 struct trace_t trace = {NULL, NULL, 64, LOCATE_parser_prod___Prod___first_token};
563 val_t *variable = NULL;
564 struct WBT_ **closurevariable = NULL;
565 trace.prev = tracehead; tracehead = &trace;
566 trace.file = LOCATE_parser_prod;
567 tracehead = trace.prev;
568 return ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/;
569 }
570 void parser_prod___Prod___first_token__eq(val_t self, val_t param0) {
571 struct trace_t trace = {NULL, NULL, 64, LOCATE_parser_prod___Prod___first_token__eq};
572 val_t *variable = NULL;
573 struct WBT_ **closurevariable = NULL;
574 trace.prev = tracehead; tracehead = &trace;
575 trace.file = LOCATE_parser_prod;
576 ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/ = param0;
577 tracehead = trace.prev;
578 return;
579 }
580 val_t parser_prod___Prod___last_token(val_t self) {
581 struct trace_t trace = {NULL, NULL, 67, LOCATE_parser_prod___Prod___last_token};
582 val_t *variable = NULL;
583 struct WBT_ **closurevariable = NULL;
584 trace.prev = tracehead; tracehead = &trace;
585 trace.file = LOCATE_parser_prod;
586 tracehead = trace.prev;
587 return ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/;
588 }
589 void parser_prod___Prod___last_token__eq(val_t self, val_t param0) {
590 struct trace_t trace = {NULL, NULL, 67, LOCATE_parser_prod___Prod___last_token__eq};
591 val_t *variable = NULL;
592 struct WBT_ **closurevariable = NULL;
593 trace.prev = tracehead; tracehead = &trace;
594 trace.file = LOCATE_parser_prod;
595 ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/ = param0;
596 tracehead = trace.prev;
597 return;
598 }
599 void parser_prod___Visitor___visit(val_t self, val_t param0) {
600 struct trace_t trace = {NULL, NULL, 106, LOCATE_parser_prod___Visitor___visit};
601 val_t *variable = NULL;
602 struct WBT_ **closurevariable = NULL;
603 trace.prev = tracehead; tracehead = &trace;
604 trace.file = LOCATE_parser_prod;
605 fprintf(stderr, "Deferred method called");
606 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 106);
607 nit_exit(1);
608 tracehead = trace.prev;
609 return;
610 }
611 void parser_prod___Visitor___init(val_t self, int* init_table) {
612 struct trace_t trace = {NULL, NULL, 0, LOCATE_parser_prod___Visitor___init};
613 val_t *variable = NULL;
614 struct WBT_ **closurevariable = NULL;
615 trace.prev = tracehead; tracehead = &trace;
616 trace.file = LOCATE_parser_prod;
617 tracehead = trace.prev;
618 return;
619 }
620 void parser_prod___AModule___n_packagedecl__eq(val_t self, val_t param0) {
621 struct trace_t trace = {NULL, NULL, 113, LOCATE_parser_prod___AModule___n_packagedecl__eq};
622 val_t variable[4];
623 struct WBT_ **closurevariable = NULL;
624 trace.prev = tracehead; tracehead = &trace;
625 trace.file = LOCATE_parser_prod;
626 /* Register variable[0]: Local variable */
627 variable[0] = self;
628 /* Register variable[1]: Local variable */
629 variable[1] = param0;
630 /* Register variable[2]: Method return value and escape marker */
631 ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/ = variable[1] /*n*/;
632 /* Register variable[3]: Result */
633 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
634 if (UNTAG_Bool(variable[3])) { /*if*/
635 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
636 }
637 return_label28: while(false);
638 tracehead = trace.prev;
639 return;
640 }
641 void parser_prod___AModule___replace_child(val_t self, val_t param0, val_t param1) {
642 struct trace_t trace = {NULL, NULL, 148, LOCATE_parser_prod___AModule___replace_child};
643 val_t variable[8];
644 struct WBT_ **closurevariable = NULL;
645 trace.prev = tracehead; tracehead = &trace;
646 trace.file = LOCATE_parser_prod;
647 /* Register variable[0]: Local variable */
648 variable[0] = self;
649 /* Register variable[1]: Local variable */
650 variable[1] = param0;
651 /* Register variable[2]: Local variable */
652 variable[2] = param1;
653 /* Register variable[3]: Method return value and escape marker */
654 /* Register variable[4]: Result */
655 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
656 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 150); nit_exit(1);}
657 /* Register variable[4]: Result */
658 variable[4] = ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/;
659 /* Register variable[4]: Result */
660 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
661 if (UNTAG_Bool(variable[4])) { /*if*/
662 /* Register variable[4]: Result */
663 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
664 if (UNTAG_Bool(variable[4])) { /*if*/
665 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
666 /* Register variable[4]: Result */
667 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
668 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 154); nit_exit(1);}
669 ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/ = variable[2] /*new_child*/;
670 } else { /*if*/
671 ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/ = NIT_NULL /*null*/;
672 }
673 goto return_label29;
674 }
675 /* Register variable[4]: Result */
676 variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
677 /* Register variable[4]: Result */
678 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
679 /* Register variable[4]: Result */
680 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
681 /* Register variable[4]: For iterator */
682 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
683 while (true) { /*for*/
684 /* Register variable[5]: For 'is_ok' result */
685 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
686 if (!UNTAG_Bool(variable[5])) break; /*for*/
687 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
688 /* Register variable[6]: Local variable */
689 variable[6] = variable[5];
690 /* Register variable[7]: Result */
691 variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
692 /* Register variable[7]: Result */
693 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
694 /* Register variable[7]: Result */
695 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
696 if (UNTAG_Bool(variable[7])) { /*if*/
697 /* Register variable[7]: Result */
698 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
699 if (UNTAG_Bool(variable[7])) { /*if*/
700 /* Register variable[7]: Result */
701 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
702 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 164); nit_exit(1);}
703 /* Register variable[7]: Result */
704 variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
705 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
706 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
707 } else { /*if*/
708 /* Register variable[7]: Result */
709 variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
710 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
711 }
712 goto return_label29;
713 }
714 continue_30: while(0);
715 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
716 }
717 break_30: while(0);
718 /* Register variable[4]: Result */
719 variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
720 /* Register variable[4]: Result */
721 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
722 /* Register variable[4]: Result */
723 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
724 /* Register variable[4]: For iterator */
725 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
726 while (true) { /*for*/
727 /* Register variable[5]: For 'is_ok' result */
728 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
729 if (!UNTAG_Bool(variable[5])) break; /*for*/
730 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
731 /* Register variable[6]: Local variable */
732 variable[6] = variable[5];
733 /* Register variable[7]: Result */
734 variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
735 /* Register variable[7]: Result */
736 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
737 /* Register variable[7]: Result */
738 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
739 if (UNTAG_Bool(variable[7])) { /*if*/
740 /* Register variable[7]: Result */
741 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
742 if (UNTAG_Bool(variable[7])) { /*if*/
743 /* Register variable[7]: Result */
744 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
745 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 176); nit_exit(1);}
746 /* Register variable[7]: Result */
747 variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
748 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
749 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
750 } else { /*if*/
751 /* Register variable[7]: Result */
752 variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
753 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
754 }
755 goto return_label29;
756 }
757 continue_31: while(0);
758 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
759 }
760 break_31: while(0);
761 return_label29: while(false);
762 tracehead = trace.prev;
763 return;
764 }
765 void parser_prod___AModule___visit_all(val_t self, val_t param0) {
766 struct trace_t trace = {NULL, NULL, 187, LOCATE_parser_prod___AModule___visit_all};
767 val_t variable[6];
768 struct WBT_ **closurevariable = NULL;
769 trace.prev = tracehead; tracehead = &trace;
770 trace.file = LOCATE_parser_prod;
771 /* Register variable[0]: Local variable */
772 variable[0] = self;
773 /* Register variable[1]: Local variable */
774 variable[1] = param0;
775 /* Register variable[2]: Method return value and escape marker */
776 /* Register variable[3]: Result */
777 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/;
778 /* Register variable[3]: Result */
779 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::==*/)))))));
780 if (UNTAG_Bool(variable[3])) { /*if*/
781 /* Register variable[3]: Result */
782 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/;
783 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
784 }
785 /* Register variable[3]: Result */
786 variable[3] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
787 /* Register variable[3]: For iterator */
788 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
789 while (true) { /*for*/
790 /* Register variable[4]: For 'is_ok' result */
791 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
792 if (!UNTAG_Bool(variable[4])) break; /*for*/
793 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
794 /* Register variable[5]: Local variable */
795 variable[5] = variable[4];
796 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
797 continue_33: while(0);
798 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
799 }
800 break_33: while(0);
801 /* Register variable[3]: Result */
802 variable[3] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
803 /* Register variable[3]: For iterator */
804 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
805 while (true) { /*for*/
806 /* Register variable[4]: For 'is_ok' result */
807 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
808 if (!UNTAG_Bool(variable[4])) break; /*for*/
809 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
810 /* Register variable[5]: Local variable */
811 variable[5] = variable[4];
812 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
813 continue_34: while(0);
814 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
815 }
816 break_34: while(0);
817 return_label32: while(false);
818 tracehead = trace.prev;
819 return;
820 }
821 void parser_prod___AModule___visit_all_reverse(val_t self, val_t param0) {
822 struct trace_t trace = {NULL, NULL, 200, LOCATE_parser_prod___AModule___visit_all_reverse};
823 val_t variable[5];
824 struct WBT_ **closurevariable = NULL;
825 trace.prev = tracehead; tracehead = &trace;
826 trace.file = LOCATE_parser_prod;
827 /* Register variable[0]: Local variable */
828 variable[0] = self;
829 /* Register variable[1]: Local variable */
830 variable[1] = param0;
831 /* Register variable[2]: Method return value and escape marker */
832 /* Register variable[3]: Result */
833 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/;
834 /* Register variable[3]: Result */
835 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::==*/)))))));
836 if (UNTAG_Bool(variable[3])) { /*if*/
837 /* Register variable[3]: Result */
838 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/;
839 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
840 }
841 /* Register variable[3]: Local variable */
842 /* Register variable[4]: Result */
843 variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
844 /* Register variable[4]: Result */
845 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
846 variable[3] = variable[4];
847 while (true) { /*while*/
848 /* Register variable[4]: Result */
849 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
850 if (!UNTAG_Bool(variable[4])) break; /* while*/
851 /* Register variable[4]: Result */
852 variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
853 /* Register variable[4]: Result */
854 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
855 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
856 /* Register variable[4]: Result */
857 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
858 variable[3] = variable[4] /*i=*/;
859 continue_36: while(0);
860 }
861 break_36: while(0);
862 /* Register variable[3]: Local variable */
863 /* Register variable[4]: Result */
864 variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
865 /* Register variable[4]: Result */
866 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
867 variable[3] = variable[4];
868 while (true) { /*while*/
869 /* Register variable[4]: Result */
870 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
871 if (!UNTAG_Bool(variable[4])) break; /* while*/
872 /* Register variable[4]: Result */
873 variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
874 /* Register variable[4]: Result */
875 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
876 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
877 /* Register variable[4]: Result */
878 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
879 variable[3] = variable[4] /*i=*/;
880 continue_37: while(0);
881 }
882 break_37: while(0);
883 return_label35: while(false);
884 tracehead = trace.prev;
885 return;
886 }
887 void parser_prod___AModule___empty_init(val_t self, int* init_table) {
888 struct trace_t trace = {NULL, NULL, 121, LOCATE_parser_prod___AModule___empty_init};
889 val_t variable[2];
890 struct WBT_ **closurevariable = NULL;
891 trace.prev = tracehead; tracehead = &trace;
892 trace.file = LOCATE_parser_prod;
893 /* Register variable[0]: Local variable */
894 variable[0] = self;
895 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i]) return;
896 /* Register variable[1]: Method return value and escape marker */
897 return_label38: while(false);
898 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i] = 1;
899 tracehead = trace.prev;
900 return;
901 }
902 void parser_prod___AModule___init_amodule(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
903 struct trace_t trace = {NULL, NULL, 123, LOCATE_parser_prod___AModule___init_amodule};
904 val_t variable[9];
905 struct WBT_ **closurevariable = NULL;
906 trace.prev = tracehead; tracehead = &trace;
907 trace.file = LOCATE_parser_prod;
908 /* Register variable[0]: Local variable */
909 variable[0] = self;
910 /* Register variable[1]: Local variable */
911 variable[1] = param0;
912 /* Register variable[2]: Local variable */
913 variable[2] = param1;
914 /* Register variable[3]: Local variable */
915 variable[3] = param2;
916 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i]) return;
917 /* Register variable[4]: Method return value and escape marker */
918 CALL_parser_prod___AModule___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AModule::empty_init*/;
919 ATTR_parser_nodes___AModule____n_packagedecl(variable[0]) /*AModule::_n_packagedecl*/ = variable[1] /*n_packagedecl*/;
920 /* Register variable[5]: Result */
921 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_packagedecl*/ == NIT_NULL /*null*/) || (( variable[1] /*n_packagedecl*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_packagedecl*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_packagedecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_packagedecl*/)( variable[1] /*n_packagedecl*/, NIT_NULL /*null*/) /*Object::==*/)))))));
922 if (UNTAG_Bool(variable[5])) { /*if*/
923 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_packagedecl*/)( variable[1] /*n_packagedecl*/, variable[0]) /*PNode::parent=*/;
924 }
925 /* Register variable[5]: Result */
926 variable[5] = NEW_List_list___List___init() /*new List[PImport]*/;
927 ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/ = variable[5];
928 /* Register variable[5]: For iterator */
929 variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_imports*/)( variable[2] /*n_imports*/) /*Collection::iterator*/;
930 while (true) { /*for*/
931 /* Register variable[6]: For 'is_ok' result */
932 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
933 if (!UNTAG_Bool(variable[6])) break; /*for*/
934 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
935 /* Register variable[7]: Local variable */
936 variable[7] = variable[6];
937 /* Register variable[8]: Result */
938 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
939 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___init_amodule, LOCATE_parser_prod, 136); nit_exit(1);}
940 /* Register variable[8]: Result */
941 variable[8] = ATTR_parser_nodes___AModule____n_imports(variable[0]) /*AModule::_n_imports*/;
942 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
943 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
944 continue_40: while(0);
945 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
946 }
947 break_40: while(0);
948 /* Register variable[5]: Result */
949 variable[5] = NEW_List_list___List___init() /*new List[PClassdef]*/;
950 ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/ = variable[5];
951 /* Register variable[5]: For iterator */
952 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_classdefs*/)( variable[3] /*n_classdefs*/) /*Collection::iterator*/;
953 while (true) { /*for*/
954 /* Register variable[6]: For 'is_ok' result */
955 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
956 if (!UNTAG_Bool(variable[6])) break; /*for*/
957 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
958 /* Register variable[7]: Local variable */
959 variable[7] = variable[6];
960 /* Register variable[8]: Result */
961 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
962 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___init_amodule, LOCATE_parser_prod, 142); nit_exit(1);}
963 /* Register variable[8]: Result */
964 variable[8] = ATTR_parser_nodes___AModule____n_classdefs(variable[0]) /*AModule::_n_classdefs*/;
965 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
966 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
967 continue_41: while(0);
968 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
969 }
970 break_41: while(0);
971 return_label39: while(false);
972 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i] = 1;
973 tracehead = trace.prev;
974 return;
975 }
976 void parser_prod___APackagedecl___n_doc__eq(val_t self, val_t param0) {
977 struct trace_t trace = {NULL, NULL, 222, LOCATE_parser_prod___APackagedecl___n_doc__eq};
978 val_t variable[4];
979 struct WBT_ **closurevariable = NULL;
980 trace.prev = tracehead; tracehead = &trace;
981 trace.file = LOCATE_parser_prod;
982 /* Register variable[0]: Local variable */
983 variable[0] = self;
984 /* Register variable[1]: Local variable */
985 variable[1] = param0;
986 /* Register variable[2]: Method return value and escape marker */
987 ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/ = variable[1] /*n*/;
988 /* Register variable[3]: Result */
989 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
990 if (UNTAG_Bool(variable[3])) { /*if*/
991 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
992 }
993 return_label42: while(false);
994 tracehead = trace.prev;
995 return;
996 }
997 void parser_prod___APackagedecl___n_kwpackage__eq(val_t self, val_t param0) {
998 struct trace_t trace = {NULL, NULL, 229, LOCATE_parser_prod___APackagedecl___n_kwpackage__eq};
999 val_t variable[4];
1000 struct WBT_ **closurevariable = NULL;
1001 trace.prev = tracehead; tracehead = &trace;
1002 trace.file = LOCATE_parser_prod;
1003 /* Register variable[0]: Local variable */
1004 variable[0] = self;
1005 /* Register variable[1]: Local variable */
1006 variable[1] = param0;
1007 /* Register variable[2]: Method return value and escape marker */
1008 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/ = variable[1] /*n*/;
1009 /* Register variable[3]: Result */
1010 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1011 if (UNTAG_Bool(variable[3])) { /*if*/
1012 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1013 }
1014 return_label43: while(false);
1015 tracehead = trace.prev;
1016 return;
1017 }
1018 void parser_prod___APackagedecl___n_id__eq(val_t self, val_t param0) {
1019 struct trace_t trace = {NULL, NULL, 236, LOCATE_parser_prod___APackagedecl___n_id__eq};
1020 val_t variable[4];
1021 struct WBT_ **closurevariable = NULL;
1022 trace.prev = tracehead; tracehead = &trace;
1023 trace.file = LOCATE_parser_prod;
1024 /* Register variable[0]: Local variable */
1025 variable[0] = self;
1026 /* Register variable[1]: Local variable */
1027 variable[1] = param0;
1028 /* Register variable[2]: Method return value and escape marker */
1029 ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/ = variable[1] /*n*/;
1030 /* Register variable[3]: Result */
1031 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1032 if (UNTAG_Bool(variable[3])) { /*if*/
1033 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1034 }
1035 return_label44: while(false);
1036 tracehead = trace.prev;
1037 return;
1038 }
1039 void parser_prod___APackagedecl___replace_child(val_t self, val_t param0, val_t param1) {
1040 struct trace_t trace = {NULL, NULL, 267, LOCATE_parser_prod___APackagedecl___replace_child};
1041 val_t variable[5];
1042 struct WBT_ **closurevariable = NULL;
1043 trace.prev = tracehead; tracehead = &trace;
1044 trace.file = LOCATE_parser_prod;
1045 /* Register variable[0]: Local variable */
1046 variable[0] = self;
1047 /* Register variable[1]: Local variable */
1048 variable[1] = param0;
1049 /* Register variable[2]: Local variable */
1050 variable[2] = param1;
1051 /* Register variable[3]: Method return value and escape marker */
1052 /* Register variable[4]: Result */
1053 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1054 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 269); nit_exit(1);}
1055 /* Register variable[4]: Result */
1056 variable[4] = ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/;
1057 /* Register variable[4]: Result */
1058 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1059 if (UNTAG_Bool(variable[4])) { /*if*/
1060 /* Register variable[4]: Result */
1061 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1062 if (UNTAG_Bool(variable[4])) { /*if*/
1063 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1064 /* Register variable[4]: Result */
1065 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
1066 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 273); nit_exit(1);}
1067 ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/ = variable[2] /*new_child*/;
1068 } else { /*if*/
1069 ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/ = NIT_NULL /*null*/;
1070 }
1071 goto return_label45;
1072 }
1073 /* Register variable[4]: Result */
1074 variable[4] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/;
1075 /* Register variable[4]: Result */
1076 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1077 if (UNTAG_Bool(variable[4])) { /*if*/
1078 /* Register variable[4]: Result */
1079 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1080 if (UNTAG_Bool(variable[4])) { /*if*/
1081 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1082 /* Register variable[4]: Result */
1083 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwpackage, ID_TKwpackage)) /*cast TKwpackage*/;
1084 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 283); nit_exit(1);}
1085 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/ = variable[2] /*new_child*/;
1086 } else { /*if*/
1087 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/ = NIT_NULL /*null*/;
1088 }
1089 goto return_label45;
1090 }
1091 /* Register variable[4]: Result */
1092 variable[4] = ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/;
1093 /* Register variable[4]: Result */
1094 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1095 if (UNTAG_Bool(variable[4])) { /*if*/
1096 /* Register variable[4]: Result */
1097 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1098 if (UNTAG_Bool(variable[4])) { /*if*/
1099 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1100 /* Register variable[4]: Result */
1101 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
1102 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 293); nit_exit(1);}
1103 ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/ = variable[2] /*new_child*/;
1104 } else { /*if*/
1105 ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/ = NIT_NULL /*null*/;
1106 }
1107 goto return_label45;
1108 }
1109 return_label45: while(false);
1110 tracehead = trace.prev;
1111 return;
1112 }
1113 void parser_prod___APackagedecl___visit_all(val_t self, val_t param0) {
1114 struct trace_t trace = {NULL, NULL, 302, LOCATE_parser_prod___APackagedecl___visit_all};
1115 val_t variable[4];
1116 struct WBT_ **closurevariable = NULL;
1117 trace.prev = tracehead; tracehead = &trace;
1118 trace.file = LOCATE_parser_prod;
1119 /* Register variable[0]: Local variable */
1120 variable[0] = self;
1121 /* Register variable[1]: Local variable */
1122 variable[1] = param0;
1123 /* Register variable[2]: Method return value and escape marker */
1124 /* Register variable[3]: Result */
1125 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/;
1126 /* Register variable[3]: Result */
1127 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::==*/)))))));
1128 if (UNTAG_Bool(variable[3])) { /*if*/
1129 /* Register variable[3]: Result */
1130 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/;
1131 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1132 }
1133 /* Register variable[3]: Result */
1134 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/;
1135 /* Register variable[3]: Result */
1136 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::==*/)))))));
1137 if (UNTAG_Bool(variable[3])) { /*if*/
1138 /* Register variable[3]: Result */
1139 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/;
1140 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1141 }
1142 /* Register variable[3]: Result */
1143 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/;
1144 /* Register variable[3]: Result */
1145 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::==*/)))))));
1146 if (UNTAG_Bool(variable[3])) { /*if*/
1147 /* Register variable[3]: Result */
1148 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/;
1149 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1150 }
1151 return_label46: while(false);
1152 tracehead = trace.prev;
1153 return;
1154 }
1155 void parser_prod___APackagedecl___visit_all_reverse(val_t self, val_t param0) {
1156 struct trace_t trace = {NULL, NULL, 315, LOCATE_parser_prod___APackagedecl___visit_all_reverse};
1157 val_t variable[4];
1158 struct WBT_ **closurevariable = NULL;
1159 trace.prev = tracehead; tracehead = &trace;
1160 trace.file = LOCATE_parser_prod;
1161 /* Register variable[0]: Local variable */
1162 variable[0] = self;
1163 /* Register variable[1]: Local variable */
1164 variable[1] = param0;
1165 /* Register variable[2]: Method return value and escape marker */
1166 /* Register variable[3]: Result */
1167 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/;
1168 /* Register variable[3]: Result */
1169 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::==*/)))))));
1170 if (UNTAG_Bool(variable[3])) { /*if*/
1171 /* Register variable[3]: Result */
1172 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/;
1173 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1174 }
1175 /* Register variable[3]: Result */
1176 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/;
1177 /* Register variable[3]: Result */
1178 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::==*/)))))));
1179 if (UNTAG_Bool(variable[3])) { /*if*/
1180 /* Register variable[3]: Result */
1181 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/;
1182 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1183 }
1184 /* Register variable[3]: Result */
1185 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/;
1186 /* Register variable[3]: Result */
1187 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::==*/)))))));
1188 if (UNTAG_Bool(variable[3])) { /*if*/
1189 /* Register variable[3]: Result */
1190 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/;
1191 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1192 }
1193 return_label47: while(false);
1194 tracehead = trace.prev;
1195 return;
1196 }
1197 void parser_prod___APackagedecl___empty_init(val_t self, int* init_table) {
1198 struct trace_t trace = {NULL, NULL, 244, LOCATE_parser_prod___APackagedecl___empty_init};
1199 val_t variable[2];
1200 struct WBT_ **closurevariable = NULL;
1201 trace.prev = tracehead; tracehead = &trace;
1202 trace.file = LOCATE_parser_prod;
1203 /* Register variable[0]: Local variable */
1204 variable[0] = self;
1205 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i]) return;
1206 /* Register variable[1]: Method return value and escape marker */
1207 return_label48: while(false);
1208 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
1209 tracehead = trace.prev;
1210 return;
1211 }
1212 void parser_prod___APackagedecl___init_apackagedecl(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1213 struct trace_t trace = {NULL, NULL, 246, LOCATE_parser_prod___APackagedecl___init_apackagedecl};
1214 val_t variable[6];
1215 struct WBT_ **closurevariable = NULL;
1216 trace.prev = tracehead; tracehead = &trace;
1217 trace.file = LOCATE_parser_prod;
1218 /* Register variable[0]: Local variable */
1219 variable[0] = self;
1220 /* Register variable[1]: Local variable */
1221 variable[1] = param0;
1222 /* Register variable[2]: Local variable */
1223 variable[2] = param1;
1224 /* Register variable[3]: Local variable */
1225 variable[3] = param2;
1226 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i]) return;
1227 /* Register variable[4]: Method return value and escape marker */
1228 CALL_parser_prod___APackagedecl___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APackagedecl::empty_init*/;
1229 ATTR_parser_nodes___APackagedecl____n_doc(variable[0]) /*APackagedecl::_n_doc*/ = variable[1] /*n_doc*/;
1230 /* Register variable[5]: Result */
1231 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1232 if (UNTAG_Bool(variable[5])) { /*if*/
1233 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
1234 }
1235 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[0]) /*APackagedecl::_n_kwpackage*/ = variable[2] /*n_kwpackage*/;
1236 /* Register variable[5]: Result */
1237 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwpackage*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwpackage*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwpackage*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwpackage*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwpackage*/)( variable[2] /*n_kwpackage*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1238 if (UNTAG_Bool(variable[5])) { /*if*/
1239 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwpackage*/)( variable[2] /*n_kwpackage*/, variable[0]) /*PNode::parent=*/;
1240 }
1241 ATTR_parser_nodes___APackagedecl____n_id(variable[0]) /*APackagedecl::_n_id*/ = variable[3] /*n_id*/;
1242 /* Register variable[5]: Result */
1243 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ == NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1244 if (UNTAG_Bool(variable[5])) { /*if*/
1245 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[0]) /*PNode::parent=*/;
1246 }
1247 return_label49: while(false);
1248 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
1249 tracehead = trace.prev;
1250 return;
1251 }
1252 void parser_prod___AImport___n_visibility__eq(val_t self, val_t param0) {
1253 struct trace_t trace = {NULL, NULL, 329, LOCATE_parser_prod___AImport___n_visibility__eq};
1254 val_t variable[4];
1255 struct WBT_ **closurevariable = NULL;
1256 trace.prev = tracehead; tracehead = &trace;
1257 trace.file = LOCATE_parser_prod;
1258 /* Register variable[0]: Local variable */
1259 variable[0] = self;
1260 /* Register variable[1]: Local variable */
1261 variable[1] = param0;
1262 /* Register variable[2]: Method return value and escape marker */
1263 ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/ = variable[1] /*n*/;
1264 /* Register variable[3]: Result */
1265 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1266 if (UNTAG_Bool(variable[3])) { /*if*/
1267 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1268 }
1269 return_label50: while(false);
1270 tracehead = trace.prev;
1271 return;
1272 }
1273 void parser_prod___AImport___n_kwimport__eq(val_t self, val_t param0) {
1274 struct trace_t trace = {NULL, NULL, 336, LOCATE_parser_prod___AImport___n_kwimport__eq};
1275 val_t variable[4];
1276 struct WBT_ **closurevariable = NULL;
1277 trace.prev = tracehead; tracehead = &trace;
1278 trace.file = LOCATE_parser_prod;
1279 /* Register variable[0]: Local variable */
1280 variable[0] = self;
1281 /* Register variable[1]: Local variable */
1282 variable[1] = param0;
1283 /* Register variable[2]: Method return value and escape marker */
1284 ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/ = variable[1] /*n*/;
1285 /* Register variable[3]: Result */
1286 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1287 if (UNTAG_Bool(variable[3])) { /*if*/
1288 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1289 }
1290 return_label51: while(false);
1291 tracehead = trace.prev;
1292 return;
1293 }
1294 void parser_prod___AImport___n_id__eq(val_t self, val_t param0) {
1295 struct trace_t trace = {NULL, NULL, 343, LOCATE_parser_prod___AImport___n_id__eq};
1296 val_t variable[4];
1297 struct WBT_ **closurevariable = NULL;
1298 trace.prev = tracehead; tracehead = &trace;
1299 trace.file = LOCATE_parser_prod;
1300 /* Register variable[0]: Local variable */
1301 variable[0] = self;
1302 /* Register variable[1]: Local variable */
1303 variable[1] = param0;
1304 /* Register variable[2]: Method return value and escape marker */
1305 ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/ = variable[1] /*n*/;
1306 /* Register variable[3]: Result */
1307 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1308 if (UNTAG_Bool(variable[3])) { /*if*/
1309 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1310 }
1311 return_label52: while(false);
1312 tracehead = trace.prev;
1313 return;
1314 }
1315 void parser_prod___AImport___replace_child(val_t self, val_t param0, val_t param1) {
1316 struct trace_t trace = {NULL, NULL, 374, LOCATE_parser_prod___AImport___replace_child};
1317 val_t variable[5];
1318 struct WBT_ **closurevariable = NULL;
1319 trace.prev = tracehead; tracehead = &trace;
1320 trace.file = LOCATE_parser_prod;
1321 /* Register variable[0]: Local variable */
1322 variable[0] = self;
1323 /* Register variable[1]: Local variable */
1324 variable[1] = param0;
1325 /* Register variable[2]: Local variable */
1326 variable[2] = param1;
1327 /* Register variable[3]: Method return value and escape marker */
1328 /* Register variable[4]: Result */
1329 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1330 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 376); nit_exit(1);}
1331 /* Register variable[4]: Result */
1332 variable[4] = ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/;
1333 /* Register variable[4]: Result */
1334 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1335 if (UNTAG_Bool(variable[4])) { /*if*/
1336 /* Register variable[4]: Result */
1337 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1338 if (UNTAG_Bool(variable[4])) { /*if*/
1339 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1340 /* Register variable[4]: Result */
1341 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
1342 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 380); nit_exit(1);}
1343 ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/ = variable[2] /*new_child*/;
1344 } else { /*if*/
1345 ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/ = NIT_NULL /*null*/;
1346 }
1347 goto return_label53;
1348 }
1349 /* Register variable[4]: Result */
1350 variable[4] = ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/;
1351 /* Register variable[4]: Result */
1352 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1353 if (UNTAG_Bool(variable[4])) { /*if*/
1354 /* Register variable[4]: Result */
1355 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1356 if (UNTAG_Bool(variable[4])) { /*if*/
1357 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1358 /* Register variable[4]: Result */
1359 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
1360 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 390); nit_exit(1);}
1361 ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/ = variable[2] /*new_child*/;
1362 } else { /*if*/
1363 ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/ = NIT_NULL /*null*/;
1364 }
1365 goto return_label53;
1366 }
1367 /* Register variable[4]: Result */
1368 variable[4] = ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/;
1369 /* Register variable[4]: Result */
1370 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1371 if (UNTAG_Bool(variable[4])) { /*if*/
1372 /* Register variable[4]: Result */
1373 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1374 if (UNTAG_Bool(variable[4])) { /*if*/
1375 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1376 /* Register variable[4]: Result */
1377 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
1378 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 400); nit_exit(1);}
1379 ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/ = variable[2] /*new_child*/;
1380 } else { /*if*/
1381 ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/ = NIT_NULL /*null*/;
1382 }
1383 goto return_label53;
1384 }
1385 return_label53: while(false);
1386 tracehead = trace.prev;
1387 return;
1388 }
1389 void parser_prod___AImport___visit_all(val_t self, val_t param0) {
1390 struct trace_t trace = {NULL, NULL, 409, LOCATE_parser_prod___AImport___visit_all};
1391 val_t variable[4];
1392 struct WBT_ **closurevariable = NULL;
1393 trace.prev = tracehead; tracehead = &trace;
1394 trace.file = LOCATE_parser_prod;
1395 /* Register variable[0]: Local variable */
1396 variable[0] = self;
1397 /* Register variable[1]: Local variable */
1398 variable[1] = param0;
1399 /* Register variable[2]: Method return value and escape marker */
1400 /* Register variable[3]: Result */
1401 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/;
1402 /* Register variable[3]: Result */
1403 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::==*/)))))));
1404 if (UNTAG_Bool(variable[3])) { /*if*/
1405 /* Register variable[3]: Result */
1406 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/;
1407 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1408 }
1409 /* Register variable[3]: Result */
1410 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/;
1411 /* Register variable[3]: Result */
1412 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::==*/)))))));
1413 if (UNTAG_Bool(variable[3])) { /*if*/
1414 /* Register variable[3]: Result */
1415 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/;
1416 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1417 }
1418 /* Register variable[3]: Result */
1419 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/;
1420 /* Register variable[3]: Result */
1421 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::==*/)))))));
1422 if (UNTAG_Bool(variable[3])) { /*if*/
1423 /* Register variable[3]: Result */
1424 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/;
1425 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1426 }
1427 return_label54: while(false);
1428 tracehead = trace.prev;
1429 return;
1430 }
1431 void parser_prod___AImport___visit_all_reverse(val_t self, val_t param0) {
1432 struct trace_t trace = {NULL, NULL, 422, LOCATE_parser_prod___AImport___visit_all_reverse};
1433 val_t variable[4];
1434 struct WBT_ **closurevariable = NULL;
1435 trace.prev = tracehead; tracehead = &trace;
1436 trace.file = LOCATE_parser_prod;
1437 /* Register variable[0]: Local variable */
1438 variable[0] = self;
1439 /* Register variable[1]: Local variable */
1440 variable[1] = param0;
1441 /* Register variable[2]: Method return value and escape marker */
1442 /* Register variable[3]: Result */
1443 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/;
1444 /* Register variable[3]: Result */
1445 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::==*/)))))));
1446 if (UNTAG_Bool(variable[3])) { /*if*/
1447 /* Register variable[3]: Result */
1448 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/;
1449 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1450 }
1451 /* Register variable[3]: Result */
1452 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/;
1453 /* Register variable[3]: Result */
1454 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::==*/)))))));
1455 if (UNTAG_Bool(variable[3])) { /*if*/
1456 /* Register variable[3]: Result */
1457 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/;
1458 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1459 }
1460 /* Register variable[3]: Result */
1461 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/;
1462 /* Register variable[3]: Result */
1463 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::==*/)))))));
1464 if (UNTAG_Bool(variable[3])) { /*if*/
1465 /* Register variable[3]: Result */
1466 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/;
1467 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1468 }
1469 return_label55: while(false);
1470 tracehead = trace.prev;
1471 return;
1472 }
1473 void parser_prod___AImport___empty_init(val_t self, int* init_table) {
1474 struct trace_t trace = {NULL, NULL, 351, LOCATE_parser_prod___AImport___empty_init};
1475 val_t variable[2];
1476 struct WBT_ **closurevariable = NULL;
1477 trace.prev = tracehead; tracehead = &trace;
1478 trace.file = LOCATE_parser_prod;
1479 /* Register variable[0]: Local variable */
1480 variable[0] = self;
1481 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i]) return;
1482 /* Register variable[1]: Method return value and escape marker */
1483 return_label56: while(false);
1484 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i] = 1;
1485 tracehead = trace.prev;
1486 return;
1487 }
1488 void parser_prod___AImport___init_aimport(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1489 struct trace_t trace = {NULL, NULL, 353, LOCATE_parser_prod___AImport___init_aimport};
1490 val_t variable[6];
1491 struct WBT_ **closurevariable = NULL;
1492 trace.prev = tracehead; tracehead = &trace;
1493 trace.file = LOCATE_parser_prod;
1494 /* Register variable[0]: Local variable */
1495 variable[0] = self;
1496 /* Register variable[1]: Local variable */
1497 variable[1] = param0;
1498 /* Register variable[2]: Local variable */
1499 variable[2] = param1;
1500 /* Register variable[3]: Local variable */
1501 variable[3] = param2;
1502 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i]) return;
1503 /* Register variable[4]: Method return value and escape marker */
1504 CALL_parser_prod___AImport___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AImport::empty_init*/;
1505 ATTR_parser_nodes___AImport____n_visibility(variable[0]) /*AImport::_n_visibility*/ = variable[1] /*n_visibility*/;
1506 /* Register variable[5]: Result */
1507 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[1] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1508 if (UNTAG_Bool(variable[5])) { /*if*/
1509 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
1510 }
1511 ATTR_parser_nodes___AImport____n_kwimport(variable[0]) /*AImport::_n_kwimport*/ = variable[2] /*n_kwimport*/;
1512 /* Register variable[5]: Result */
1513 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwimport*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwimport*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1514 if (UNTAG_Bool(variable[5])) { /*if*/
1515 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, variable[0]) /*PNode::parent=*/;
1516 }
1517 ATTR_parser_nodes___AImport____n_id(variable[0]) /*AImport::_n_id*/ = variable[3] /*n_id*/;
1518 /* Register variable[5]: Result */
1519 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ == NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1520 if (UNTAG_Bool(variable[5])) { /*if*/
1521 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[0]) /*PNode::parent=*/;
1522 }
1523 return_label57: while(false);
1524 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i] = 1;
1525 tracehead = trace.prev;
1526 return;
1527 }
1528 void parser_prod___ANoImport___n_visibility__eq(val_t self, val_t param0) {
1529 struct trace_t trace = {NULL, NULL, 436, LOCATE_parser_prod___ANoImport___n_visibility__eq};
1530 val_t variable[4];
1531 struct WBT_ **closurevariable = NULL;
1532 trace.prev = tracehead; tracehead = &trace;
1533 trace.file = LOCATE_parser_prod;
1534 /* Register variable[0]: Local variable */
1535 variable[0] = self;
1536 /* Register variable[1]: Local variable */
1537 variable[1] = param0;
1538 /* Register variable[2]: Method return value and escape marker */
1539 ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/ = variable[1] /*n*/;
1540 /* Register variable[3]: Result */
1541 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1542 if (UNTAG_Bool(variable[3])) { /*if*/
1543 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1544 }
1545 return_label58: while(false);
1546 tracehead = trace.prev;
1547 return;
1548 }
1549 void parser_prod___ANoImport___n_kwimport__eq(val_t self, val_t param0) {
1550 struct trace_t trace = {NULL, NULL, 443, LOCATE_parser_prod___ANoImport___n_kwimport__eq};
1551 val_t variable[4];
1552 struct WBT_ **closurevariable = NULL;
1553 trace.prev = tracehead; tracehead = &trace;
1554 trace.file = LOCATE_parser_prod;
1555 /* Register variable[0]: Local variable */
1556 variable[0] = self;
1557 /* Register variable[1]: Local variable */
1558 variable[1] = param0;
1559 /* Register variable[2]: Method return value and escape marker */
1560 ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/ = variable[1] /*n*/;
1561 /* Register variable[3]: Result */
1562 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1563 if (UNTAG_Bool(variable[3])) { /*if*/
1564 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1565 }
1566 return_label59: while(false);
1567 tracehead = trace.prev;
1568 return;
1569 }
1570 void parser_prod___ANoImport___n_kwend__eq(val_t self, val_t param0) {
1571 struct trace_t trace = {NULL, NULL, 450, LOCATE_parser_prod___ANoImport___n_kwend__eq};
1572 val_t variable[4];
1573 struct WBT_ **closurevariable = NULL;
1574 trace.prev = tracehead; tracehead = &trace;
1575 trace.file = LOCATE_parser_prod;
1576 /* Register variable[0]: Local variable */
1577 variable[0] = self;
1578 /* Register variable[1]: Local variable */
1579 variable[1] = param0;
1580 /* Register variable[2]: Method return value and escape marker */
1581 ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/ = variable[1] /*n*/;
1582 /* Register variable[3]: Result */
1583 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1584 if (UNTAG_Bool(variable[3])) { /*if*/
1585 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1586 }
1587 return_label60: while(false);
1588 tracehead = trace.prev;
1589 return;
1590 }
1591 void parser_prod___ANoImport___replace_child(val_t self, val_t param0, val_t param1) {
1592 struct trace_t trace = {NULL, NULL, 481, LOCATE_parser_prod___ANoImport___replace_child};
1593 val_t variable[5];
1594 struct WBT_ **closurevariable = NULL;
1595 trace.prev = tracehead; tracehead = &trace;
1596 trace.file = LOCATE_parser_prod;
1597 /* Register variable[0]: Local variable */
1598 variable[0] = self;
1599 /* Register variable[1]: Local variable */
1600 variable[1] = param0;
1601 /* Register variable[2]: Local variable */
1602 variable[2] = param1;
1603 /* Register variable[3]: Method return value and escape marker */
1604 /* Register variable[4]: Result */
1605 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1606 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 483); nit_exit(1);}
1607 /* Register variable[4]: Result */
1608 variable[4] = ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/;
1609 /* Register variable[4]: Result */
1610 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1611 if (UNTAG_Bool(variable[4])) { /*if*/
1612 /* Register variable[4]: Result */
1613 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1614 if (UNTAG_Bool(variable[4])) { /*if*/
1615 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1616 /* Register variable[4]: Result */
1617 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
1618 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 487); nit_exit(1);}
1619 ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/ = variable[2] /*new_child*/;
1620 } else { /*if*/
1621 ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/ = NIT_NULL /*null*/;
1622 }
1623 goto return_label61;
1624 }
1625 /* Register variable[4]: Result */
1626 variable[4] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/;
1627 /* Register variable[4]: Result */
1628 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1629 if (UNTAG_Bool(variable[4])) { /*if*/
1630 /* Register variable[4]: Result */
1631 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1632 if (UNTAG_Bool(variable[4])) { /*if*/
1633 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1634 /* Register variable[4]: Result */
1635 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
1636 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 497); nit_exit(1);}
1637 ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/ = variable[2] /*new_child*/;
1638 } else { /*if*/
1639 ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/ = NIT_NULL /*null*/;
1640 }
1641 goto return_label61;
1642 }
1643 /* Register variable[4]: Result */
1644 variable[4] = ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/;
1645 /* Register variable[4]: Result */
1646 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1647 if (UNTAG_Bool(variable[4])) { /*if*/
1648 /* Register variable[4]: Result */
1649 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1650 if (UNTAG_Bool(variable[4])) { /*if*/
1651 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1652 /* Register variable[4]: Result */
1653 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwend, ID_TKwend)) /*cast TKwend*/;
1654 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 507); nit_exit(1);}
1655 ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/ = variable[2] /*new_child*/;
1656 } else { /*if*/
1657 ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/ = NIT_NULL /*null*/;
1658 }
1659 goto return_label61;
1660 }
1661 return_label61: while(false);
1662 tracehead = trace.prev;
1663 return;
1664 }
1665 void parser_prod___ANoImport___visit_all(val_t self, val_t param0) {
1666 struct trace_t trace = {NULL, NULL, 516, LOCATE_parser_prod___ANoImport___visit_all};
1667 val_t variable[4];
1668 struct WBT_ **closurevariable = NULL;
1669 trace.prev = tracehead; tracehead = &trace;
1670 trace.file = LOCATE_parser_prod;
1671 /* Register variable[0]: Local variable */
1672 variable[0] = self;
1673 /* Register variable[1]: Local variable */
1674 variable[1] = param0;
1675 /* Register variable[2]: Method return value and escape marker */
1676 /* Register variable[3]: Result */
1677 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/;
1678 /* Register variable[3]: Result */
1679 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::==*/)))))));
1680 if (UNTAG_Bool(variable[3])) { /*if*/
1681 /* Register variable[3]: Result */
1682 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/;
1683 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1684 }
1685 /* Register variable[3]: Result */
1686 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/;
1687 /* Register variable[3]: Result */
1688 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::==*/)))))));
1689 if (UNTAG_Bool(variable[3])) { /*if*/
1690 /* Register variable[3]: Result */
1691 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/;
1692 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1693 }
1694 /* Register variable[3]: Result */
1695 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/;
1696 /* Register variable[3]: Result */
1697 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::==*/)))))));
1698 if (UNTAG_Bool(variable[3])) { /*if*/
1699 /* Register variable[3]: Result */
1700 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/;
1701 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1702 }
1703 return_label62: while(false);
1704 tracehead = trace.prev;
1705 return;
1706 }
1707 void parser_prod___ANoImport___visit_all_reverse(val_t self, val_t param0) {
1708 struct trace_t trace = {NULL, NULL, 529, LOCATE_parser_prod___ANoImport___visit_all_reverse};
1709 val_t variable[4];
1710 struct WBT_ **closurevariable = NULL;
1711 trace.prev = tracehead; tracehead = &trace;
1712 trace.file = LOCATE_parser_prod;
1713 /* Register variable[0]: Local variable */
1714 variable[0] = self;
1715 /* Register variable[1]: Local variable */
1716 variable[1] = param0;
1717 /* Register variable[2]: Method return value and escape marker */
1718 /* Register variable[3]: Result */
1719 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/;
1720 /* Register variable[3]: Result */
1721 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::==*/)))))));
1722 if (UNTAG_Bool(variable[3])) { /*if*/
1723 /* Register variable[3]: Result */
1724 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/;
1725 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1726 }
1727 /* Register variable[3]: Result */
1728 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/;
1729 /* Register variable[3]: Result */
1730 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::==*/)))))));
1731 if (UNTAG_Bool(variable[3])) { /*if*/
1732 /* Register variable[3]: Result */
1733 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/;
1734 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1735 }
1736 /* Register variable[3]: Result */
1737 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/;
1738 /* Register variable[3]: Result */
1739 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::==*/)))))));
1740 if (UNTAG_Bool(variable[3])) { /*if*/
1741 /* Register variable[3]: Result */
1742 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/;
1743 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1744 }
1745 return_label63: while(false);
1746 tracehead = trace.prev;
1747 return;
1748 }
1749 void parser_prod___ANoImport___empty_init(val_t self, int* init_table) {
1750 struct trace_t trace = {NULL, NULL, 458, LOCATE_parser_prod___ANoImport___empty_init};
1751 val_t variable[2];
1752 struct WBT_ **closurevariable = NULL;
1753 trace.prev = tracehead; tracehead = &trace;
1754 trace.file = LOCATE_parser_prod;
1755 /* Register variable[0]: Local variable */
1756 variable[0] = self;
1757 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i]) return;
1758 /* Register variable[1]: Method return value and escape marker */
1759 return_label64: while(false);
1760 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i] = 1;
1761 tracehead = trace.prev;
1762 return;
1763 }
1764 void parser_prod___ANoImport___init_anoimport(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1765 struct trace_t trace = {NULL, NULL, 460, LOCATE_parser_prod___ANoImport___init_anoimport};
1766 val_t variable[6];
1767 struct WBT_ **closurevariable = NULL;
1768 trace.prev = tracehead; tracehead = &trace;
1769 trace.file = LOCATE_parser_prod;
1770 /* Register variable[0]: Local variable */
1771 variable[0] = self;
1772 /* Register variable[1]: Local variable */
1773 variable[1] = param0;
1774 /* Register variable[2]: Local variable */
1775 variable[2] = param1;
1776 /* Register variable[3]: Local variable */
1777 variable[3] = param2;
1778 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i]) return;
1779 /* Register variable[4]: Method return value and escape marker */
1780 CALL_parser_prod___ANoImport___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ANoImport::empty_init*/;
1781 ATTR_parser_nodes___ANoImport____n_visibility(variable[0]) /*ANoImport::_n_visibility*/ = variable[1] /*n_visibility*/;
1782 /* Register variable[5]: Result */
1783 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[1] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1784 if (UNTAG_Bool(variable[5])) { /*if*/
1785 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
1786 }
1787 ATTR_parser_nodes___ANoImport____n_kwimport(variable[0]) /*ANoImport::_n_kwimport*/ = variable[2] /*n_kwimport*/;
1788 /* Register variable[5]: Result */
1789 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwimport*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwimport*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1790 if (UNTAG_Bool(variable[5])) { /*if*/
1791 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, variable[0]) /*PNode::parent=*/;
1792 }
1793 ATTR_parser_nodes___ANoImport____n_kwend(variable[0]) /*ANoImport::_n_kwend*/ = variable[3] /*n_kwend*/;
1794 /* Register variable[5]: Result */
1795 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwend*/ == NIT_NULL /*null*/) || (( variable[3] /*n_kwend*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwend*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwend*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwend*/)( variable[3] /*n_kwend*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1796 if (UNTAG_Bool(variable[5])) { /*if*/
1797 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwend*/)( variable[3] /*n_kwend*/, variable[0]) /*PNode::parent=*/;
1798 }
1799 return_label65: while(false);
1800 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i] = 1;
1801 tracehead = trace.prev;
1802 return;
1803 }
1804 void parser_prod___APublicVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1805 struct trace_t trace = {NULL, NULL, 551, LOCATE_parser_prod___APublicVisibility___replace_child};
1806 val_t variable[5];
1807 struct WBT_ **closurevariable = NULL;
1808 trace.prev = tracehead; tracehead = &trace;
1809 trace.file = LOCATE_parser_prod;
1810 /* Register variable[0]: Local variable */
1811 variable[0] = self;
1812 /* Register variable[1]: Local variable */
1813 variable[1] = param0;
1814 /* Register variable[2]: Local variable */
1815 variable[2] = param1;
1816 /* Register variable[3]: Method return value and escape marker */
1817 /* Register variable[4]: Result */
1818 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1819 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APublicVisibility___replace_child, LOCATE_parser_prod, 553); nit_exit(1);}
1820 return_label66: while(false);
1821 tracehead = trace.prev;
1822 return;
1823 }
1824 void parser_prod___APublicVisibility___visit_all(val_t self, val_t param0) {
1825 struct trace_t trace = {NULL, NULL, 556, LOCATE_parser_prod___APublicVisibility___visit_all};
1826 val_t variable[3];
1827 struct WBT_ **closurevariable = NULL;
1828 trace.prev = tracehead; tracehead = &trace;
1829 trace.file = LOCATE_parser_prod;
1830 /* Register variable[0]: Local variable */
1831 variable[0] = self;
1832 /* Register variable[1]: Local variable */
1833 variable[1] = param0;
1834 /* Register variable[2]: Method return value and escape marker */
1835 return_label67: while(false);
1836 tracehead = trace.prev;
1837 return;
1838 }
1839 void parser_prod___APublicVisibility___visit_all_reverse(val_t self, val_t param0) {
1840 struct trace_t trace = {NULL, NULL, 560, LOCATE_parser_prod___APublicVisibility___visit_all_reverse};
1841 val_t variable[3];
1842 struct WBT_ **closurevariable = NULL;
1843 trace.prev = tracehead; tracehead = &trace;
1844 trace.file = LOCATE_parser_prod;
1845 /* Register variable[0]: Local variable */
1846 variable[0] = self;
1847 /* Register variable[1]: Local variable */
1848 variable[1] = param0;
1849 /* Register variable[2]: Method return value and escape marker */
1850 return_label68: while(false);
1851 tracehead = trace.prev;
1852 return;
1853 }
1854 void parser_prod___APublicVisibility___empty_init(val_t self, int* init_table) {
1855 struct trace_t trace = {NULL, NULL, 544, LOCATE_parser_prod___APublicVisibility___empty_init};
1856 val_t variable[2];
1857 struct WBT_ **closurevariable = NULL;
1858 trace.prev = tracehead; tracehead = &trace;
1859 trace.file = LOCATE_parser_prod;
1860 /* Register variable[0]: Local variable */
1861 variable[0] = self;
1862 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
1863 /* Register variable[1]: Method return value and escape marker */
1864 return_label69: while(false);
1865 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
1866 tracehead = trace.prev;
1867 return;
1868 }
1869 void parser_prod___APublicVisibility___init_apublicvisibility(val_t self, int* init_table) {
1870 struct trace_t trace = {NULL, NULL, 546, LOCATE_parser_prod___APublicVisibility___init_apublicvisibility};
1871 val_t variable[2];
1872 struct WBT_ **closurevariable = NULL;
1873 trace.prev = tracehead; tracehead = &trace;
1874 trace.file = LOCATE_parser_prod;
1875 /* Register variable[0]: Local variable */
1876 variable[0] = self;
1877 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
1878 /* Register variable[1]: Method return value and escape marker */
1879 CALL_parser_prod___APublicVisibility___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APublicVisibility::empty_init*/;
1880 return_label70: while(false);
1881 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
1882 tracehead = trace.prev;
1883 return;
1884 }
1885 void parser_prod___APrivateVisibility___n_kwprivate__eq(val_t self, val_t param0) {
1886 struct trace_t trace = {NULL, NULL, 565, LOCATE_parser_prod___APrivateVisibility___n_kwprivate__eq};
1887 val_t variable[4];
1888 struct WBT_ **closurevariable = NULL;
1889 trace.prev = tracehead; tracehead = &trace;
1890 trace.file = LOCATE_parser_prod;
1891 /* Register variable[0]: Local variable */
1892 variable[0] = self;
1893 /* Register variable[1]: Local variable */
1894 variable[1] = param0;
1895 /* Register variable[2]: Method return value and escape marker */
1896 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/ = variable[1] /*n*/;
1897 /* Register variable[3]: Result */
1898 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1899 if (UNTAG_Bool(variable[3])) { /*if*/
1900 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
1901 }
1902 return_label71: while(false);
1903 tracehead = trace.prev;
1904 return;
1905 }
1906 void parser_prod___APrivateVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1907 struct trace_t trace = {NULL, NULL, 586, LOCATE_parser_prod___APrivateVisibility___replace_child};
1908 val_t variable[5];
1909 struct WBT_ **closurevariable = NULL;
1910 trace.prev = tracehead; tracehead = &trace;
1911 trace.file = LOCATE_parser_prod;
1912 /* Register variable[0]: Local variable */
1913 variable[0] = self;
1914 /* Register variable[1]: Local variable */
1915 variable[1] = param0;
1916 /* Register variable[2]: Local variable */
1917 variable[2] = param1;
1918 /* Register variable[3]: Method return value and escape marker */
1919 /* Register variable[4]: Result */
1920 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1921 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APrivateVisibility___replace_child, LOCATE_parser_prod, 588); nit_exit(1);}
1922 /* Register variable[4]: Result */
1923 variable[4] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/;
1924 /* Register variable[4]: Result */
1925 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1926 if (UNTAG_Bool(variable[4])) { /*if*/
1927 /* Register variable[4]: Result */
1928 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1929 if (UNTAG_Bool(variable[4])) { /*if*/
1930 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
1931 /* Register variable[4]: Result */
1932 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
1933 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APrivateVisibility___replace_child, LOCATE_parser_prod, 592); nit_exit(1);}
1934 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/ = variable[2] /*new_child*/;
1935 } else { /*if*/
1936 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/ = NIT_NULL /*null*/;
1937 }
1938 goto return_label72;
1939 }
1940 return_label72: while(false);
1941 tracehead = trace.prev;
1942 return;
1943 }
1944 void parser_prod___APrivateVisibility___visit_all(val_t self, val_t param0) {
1945 struct trace_t trace = {NULL, NULL, 601, LOCATE_parser_prod___APrivateVisibility___visit_all};
1946 val_t variable[4];
1947 struct WBT_ **closurevariable = NULL;
1948 trace.prev = tracehead; tracehead = &trace;
1949 trace.file = LOCATE_parser_prod;
1950 /* Register variable[0]: Local variable */
1951 variable[0] = self;
1952 /* Register variable[1]: Local variable */
1953 variable[1] = param0;
1954 /* Register variable[2]: Method return value and escape marker */
1955 /* Register variable[3]: Result */
1956 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/;
1957 /* Register variable[3]: Result */
1958 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::==*/)))))));
1959 if (UNTAG_Bool(variable[3])) { /*if*/
1960 /* Register variable[3]: Result */
1961 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/;
1962 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1963 }
1964 return_label73: while(false);
1965 tracehead = trace.prev;
1966 return;
1967 }
1968 void parser_prod___APrivateVisibility___visit_all_reverse(val_t self, val_t param0) {
1969 struct trace_t trace = {NULL, NULL, 608, LOCATE_parser_prod___APrivateVisibility___visit_all_reverse};
1970 val_t variable[4];
1971 struct WBT_ **closurevariable = NULL;
1972 trace.prev = tracehead; tracehead = &trace;
1973 trace.file = LOCATE_parser_prod;
1974 /* Register variable[0]: Local variable */
1975 variable[0] = self;
1976 /* Register variable[1]: Local variable */
1977 variable[1] = param0;
1978 /* Register variable[2]: Method return value and escape marker */
1979 /* Register variable[3]: Result */
1980 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/;
1981 /* Register variable[3]: Result */
1982 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::==*/)))))));
1983 if (UNTAG_Bool(variable[3])) { /*if*/
1984 /* Register variable[3]: Result */
1985 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/;
1986 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1987 }
1988 return_label74: while(false);
1989 tracehead = trace.prev;
1990 return;
1991 }
1992 void parser_prod___APrivateVisibility___empty_init(val_t self, int* init_table) {
1993 struct trace_t trace = {NULL, NULL, 573, LOCATE_parser_prod___APrivateVisibility___empty_init};
1994 val_t variable[2];
1995 struct WBT_ **closurevariable = NULL;
1996 trace.prev = tracehead; tracehead = &trace;
1997 trace.file = LOCATE_parser_prod;
1998 /* Register variable[0]: Local variable */
1999 variable[0] = self;
2000 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
2001 /* Register variable[1]: Method return value and escape marker */
2002 return_label75: while(false);
2003 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
2004 tracehead = trace.prev;
2005 return;
2006 }
2007 void parser_prod___APrivateVisibility___init_aprivatevisibility(val_t self, val_t param0, int* init_table) {
2008 struct trace_t trace = {NULL, NULL, 575, LOCATE_parser_prod___APrivateVisibility___init_aprivatevisibility};
2009 val_t variable[4];
2010 struct WBT_ **closurevariable = NULL;
2011 trace.prev = tracehead; tracehead = &trace;
2012 trace.file = LOCATE_parser_prod;
2013 /* Register variable[0]: Local variable */
2014 variable[0] = self;
2015 /* Register variable[1]: Local variable */
2016 variable[1] = param0;
2017 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
2018 /* Register variable[2]: Method return value and escape marker */
2019 CALL_parser_prod___APrivateVisibility___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APrivateVisibility::empty_init*/;
2020 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[0]) /*APrivateVisibility::_n_kwprivate*/ = variable[1] /*n_kwprivate*/;
2021 /* Register variable[3]: Result */
2022 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwprivate*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwprivate*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwprivate*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwprivate*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwprivate*/)( variable[1] /*n_kwprivate*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2023 if (UNTAG_Bool(variable[3])) { /*if*/
2024 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwprivate*/)( variable[1] /*n_kwprivate*/, variable[0]) /*PNode::parent=*/;
2025 }
2026 return_label76: while(false);
2027 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
2028 tracehead = trace.prev;
2029 return;
2030 }
2031 void parser_prod___AProtectedVisibility___n_kwprotected__eq(val_t self, val_t param0) {
2032 struct trace_t trace = {NULL, NULL, 616, LOCATE_parser_prod___AProtectedVisibility___n_kwprotected__eq};
2033 val_t variable[4];
2034 struct WBT_ **closurevariable = NULL;
2035 trace.prev = tracehead; tracehead = &trace;
2036 trace.file = LOCATE_parser_prod;
2037 /* Register variable[0]: Local variable */
2038 variable[0] = self;
2039 /* Register variable[1]: Local variable */
2040 variable[1] = param0;
2041 /* Register variable[2]: Method return value and escape marker */
2042 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/ = variable[1] /*n*/;
2043 /* Register variable[3]: Result */
2044 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2045 if (UNTAG_Bool(variable[3])) { /*if*/
2046 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
2047 }
2048 return_label77: while(false);
2049 tracehead = trace.prev;
2050 return;
2051 }
2052 void parser_prod___AProtectedVisibility___replace_child(val_t self, val_t param0, val_t param1) {
2053 struct trace_t trace = {NULL, NULL, 637, LOCATE_parser_prod___AProtectedVisibility___replace_child};
2054 val_t variable[5];
2055 struct WBT_ **closurevariable = NULL;
2056 trace.prev = tracehead; tracehead = &trace;
2057 trace.file = LOCATE_parser_prod;
2058 /* Register variable[0]: Local variable */
2059 variable[0] = self;
2060 /* Register variable[1]: Local variable */
2061 variable[1] = param0;
2062 /* Register variable[2]: Local variable */
2063 variable[2] = param1;
2064 /* Register variable[3]: Method return value and escape marker */
2065 /* Register variable[4]: Result */
2066 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2067 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AProtectedVisibility___replace_child, LOCATE_parser_prod, 639); nit_exit(1);}
2068 /* Register variable[4]: Result */
2069 variable[4] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/;
2070 /* Register variable[4]: Result */
2071 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2072 if (UNTAG_Bool(variable[4])) { /*if*/
2073 /* Register variable[4]: Result */
2074 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2075 if (UNTAG_Bool(variable[4])) { /*if*/
2076 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2077 /* Register variable[4]: Result */
2078 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
2079 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AProtectedVisibility___replace_child, LOCATE_parser_prod, 643); nit_exit(1);}
2080 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/ = variable[2] /*new_child*/;
2081 } else { /*if*/
2082 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/ = NIT_NULL /*null*/;
2083 }
2084 goto return_label78;
2085 }
2086 return_label78: while(false);
2087 tracehead = trace.prev;
2088 return;
2089 }
2090 void parser_prod___AProtectedVisibility___visit_all(val_t self, val_t param0) {
2091 struct trace_t trace = {NULL, NULL, 652, LOCATE_parser_prod___AProtectedVisibility___visit_all};
2092 val_t variable[4];
2093 struct WBT_ **closurevariable = NULL;
2094 trace.prev = tracehead; tracehead = &trace;
2095 trace.file = LOCATE_parser_prod;
2096 /* Register variable[0]: Local variable */
2097 variable[0] = self;
2098 /* Register variable[1]: Local variable */
2099 variable[1] = param0;
2100 /* Register variable[2]: Method return value and escape marker */
2101 /* Register variable[3]: Result */
2102 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/;
2103 /* Register variable[3]: Result */
2104 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::==*/)))))));
2105 if (UNTAG_Bool(variable[3])) { /*if*/
2106 /* Register variable[3]: Result */
2107 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/;
2108 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2109 }
2110 return_label79: while(false);
2111 tracehead = trace.prev;
2112 return;
2113 }
2114 void parser_prod___AProtectedVisibility___visit_all_reverse(val_t self, val_t param0) {
2115 struct trace_t trace = {NULL, NULL, 659, LOCATE_parser_prod___AProtectedVisibility___visit_all_reverse};
2116 val_t variable[4];
2117 struct WBT_ **closurevariable = NULL;
2118 trace.prev = tracehead; tracehead = &trace;
2119 trace.file = LOCATE_parser_prod;
2120 /* Register variable[0]: Local variable */
2121 variable[0] = self;
2122 /* Register variable[1]: Local variable */
2123 variable[1] = param0;
2124 /* Register variable[2]: Method return value and escape marker */
2125 /* Register variable[3]: Result */
2126 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/;
2127 /* Register variable[3]: Result */
2128 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::==*/)))))));
2129 if (UNTAG_Bool(variable[3])) { /*if*/
2130 /* Register variable[3]: Result */
2131 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/;
2132 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2133 }
2134 return_label80: while(false);
2135 tracehead = trace.prev;
2136 return;
2137 }
2138 void parser_prod___AProtectedVisibility___empty_init(val_t self, int* init_table) {
2139 struct trace_t trace = {NULL, NULL, 624, LOCATE_parser_prod___AProtectedVisibility___empty_init};
2140 val_t variable[2];
2141 struct WBT_ **closurevariable = NULL;
2142 trace.prev = tracehead; tracehead = &trace;
2143 trace.file = LOCATE_parser_prod;
2144 /* Register variable[0]: Local variable */
2145 variable[0] = self;
2146 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
2147 /* Register variable[1]: Method return value and escape marker */
2148 return_label81: while(false);
2149 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
2150 tracehead = trace.prev;
2151 return;
2152 }
2153 void parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t self, val_t param0, int* init_table) {
2154 struct trace_t trace = {NULL, NULL, 626, LOCATE_parser_prod___AProtectedVisibility___init_aprotectedvisibility};
2155 val_t variable[4];
2156 struct WBT_ **closurevariable = NULL;
2157 trace.prev = tracehead; tracehead = &trace;
2158 trace.file = LOCATE_parser_prod;
2159 /* Register variable[0]: Local variable */
2160 variable[0] = self;
2161 /* Register variable[1]: Local variable */
2162 variable[1] = param0;
2163 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
2164 /* Register variable[2]: Method return value and escape marker */
2165 CALL_parser_prod___AProtectedVisibility___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AProtectedVisibility::empty_init*/;
2166 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[0]) /*AProtectedVisibility::_n_kwprotected*/ = variable[1] /*n_kwprotected*/;
2167 /* Register variable[3]: Result */
2168 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwprotected*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwprotected*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwprotected*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwprotected*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwprotected*/)( variable[1] /*n_kwprotected*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2169 if (UNTAG_Bool(variable[3])) { /*if*/
2170 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwprotected*/)( variable[1] /*n_kwprotected*/, variable[0]) /*PNode::parent=*/;
2171 }
2172 return_label82: while(false);
2173 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
2174 tracehead = trace.prev;
2175 return;
2176 }
2177 void parser_prod___AIntrudeVisibility___n_kwintrude__eq(val_t self, val_t param0) {
2178 struct trace_t trace = {NULL, NULL, 667, LOCATE_parser_prod___AIntrudeVisibility___n_kwintrude__eq};
2179 val_t variable[4];
2180 struct WBT_ **closurevariable = NULL;
2181 trace.prev = tracehead; tracehead = &trace;
2182 trace.file = LOCATE_parser_prod;
2183 /* Register variable[0]: Local variable */
2184 variable[0] = self;
2185 /* Register variable[1]: Local variable */
2186 variable[1] = param0;
2187 /* Register variable[2]: Method return value and escape marker */
2188 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/ = variable[1] /*n*/;
2189 /* Register variable[3]: Result */
2190 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2191 if (UNTAG_Bool(variable[3])) { /*if*/
2192 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
2193 }
2194 return_label83: while(false);
2195 tracehead = trace.prev;
2196 return;
2197 }
2198 void parser_prod___AIntrudeVisibility___replace_child(val_t self, val_t param0, val_t param1) {
2199 struct trace_t trace = {NULL, NULL, 688, LOCATE_parser_prod___AIntrudeVisibility___replace_child};
2200 val_t variable[5];
2201 struct WBT_ **closurevariable = NULL;
2202 trace.prev = tracehead; tracehead = &trace;
2203 trace.file = LOCATE_parser_prod;
2204 /* Register variable[0]: Local variable */
2205 variable[0] = self;
2206 /* Register variable[1]: Local variable */
2207 variable[1] = param0;
2208 /* Register variable[2]: Local variable */
2209 variable[2] = param1;
2210 /* Register variable[3]: Method return value and escape marker */
2211 /* Register variable[4]: Result */
2212 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2213 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntrudeVisibility___replace_child, LOCATE_parser_prod, 690); nit_exit(1);}
2214 /* Register variable[4]: Result */
2215 variable[4] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/;
2216 /* Register variable[4]: Result */
2217 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2218 if (UNTAG_Bool(variable[4])) { /*if*/
2219 /* Register variable[4]: Result */
2220 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2221 if (UNTAG_Bool(variable[4])) { /*if*/
2222 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2223 /* Register variable[4]: Result */
2224 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
2225 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntrudeVisibility___replace_child, LOCATE_parser_prod, 694); nit_exit(1);}
2226 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/ = variable[2] /*new_child*/;
2227 } else { /*if*/
2228 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/ = NIT_NULL /*null*/;
2229 }
2230 goto return_label84;
2231 }
2232 return_label84: while(false);
2233 tracehead = trace.prev;
2234 return;
2235 }
2236 void parser_prod___AIntrudeVisibility___visit_all(val_t self, val_t param0) {
2237 struct trace_t trace = {NULL, NULL, 703, LOCATE_parser_prod___AIntrudeVisibility___visit_all};
2238 val_t variable[4];
2239 struct WBT_ **closurevariable = NULL;
2240 trace.prev = tracehead; tracehead = &trace;
2241 trace.file = LOCATE_parser_prod;
2242 /* Register variable[0]: Local variable */
2243 variable[0] = self;
2244 /* Register variable[1]: Local variable */
2245 variable[1] = param0;
2246 /* Register variable[2]: Method return value and escape marker */
2247 /* Register variable[3]: Result */
2248 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/;
2249 /* Register variable[3]: Result */
2250 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::==*/)))))));
2251 if (UNTAG_Bool(variable[3])) { /*if*/
2252 /* Register variable[3]: Result */
2253 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/;
2254 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2255 }
2256 return_label85: while(false);
2257 tracehead = trace.prev;
2258 return;
2259 }
2260 void parser_prod___AIntrudeVisibility___visit_all_reverse(val_t self, val_t param0) {
2261 struct trace_t trace = {NULL, NULL, 710, LOCATE_parser_prod___AIntrudeVisibility___visit_all_reverse};
2262 val_t variable[4];
2263 struct WBT_ **closurevariable = NULL;
2264 trace.prev = tracehead; tracehead = &trace;
2265 trace.file = LOCATE_parser_prod;
2266 /* Register variable[0]: Local variable */
2267 variable[0] = self;
2268 /* Register variable[1]: Local variable */
2269 variable[1] = param0;
2270 /* Register variable[2]: Method return value and escape marker */
2271 /* Register variable[3]: Result */
2272 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/;
2273 /* Register variable[3]: Result */
2274 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::==*/)))))));
2275 if (UNTAG_Bool(variable[3])) { /*if*/
2276 /* Register variable[3]: Result */
2277 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/;
2278 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2279 }
2280 return_label86: while(false);
2281 tracehead = trace.prev;
2282 return;
2283 }
2284 void parser_prod___AIntrudeVisibility___empty_init(val_t self, int* init_table) {
2285 struct trace_t trace = {NULL, NULL, 675, LOCATE_parser_prod___AIntrudeVisibility___empty_init};
2286 val_t variable[2];
2287 struct WBT_ **closurevariable = NULL;
2288 trace.prev = tracehead; tracehead = &trace;
2289 trace.file = LOCATE_parser_prod;
2290 /* Register variable[0]: Local variable */
2291 variable[0] = self;
2292 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
2293 /* Register variable[1]: Method return value and escape marker */
2294 return_label87: while(false);
2295 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
2296 tracehead = trace.prev;
2297 return;
2298 }
2299 void parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t self, val_t param0, int* init_table) {
2300 struct trace_t trace = {NULL, NULL, 677, LOCATE_parser_prod___AIntrudeVisibility___init_aintrudevisibility};
2301 val_t variable[4];
2302 struct WBT_ **closurevariable = NULL;
2303 trace.prev = tracehead; tracehead = &trace;
2304 trace.file = LOCATE_parser_prod;
2305 /* Register variable[0]: Local variable */
2306 variable[0] = self;
2307 /* Register variable[1]: Local variable */
2308 variable[1] = param0;
2309 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
2310 /* Register variable[2]: Method return value and escape marker */
2311 CALL_parser_prod___AIntrudeVisibility___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AIntrudeVisibility::empty_init*/;
2312 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[0]) /*AIntrudeVisibility::_n_kwintrude*/ = variable[1] /*n_kwintrude*/;
2313 /* Register variable[3]: Result */
2314 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwintrude*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwintrude*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwintrude*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwintrude*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwintrude*/)( variable[1] /*n_kwintrude*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2315 if (UNTAG_Bool(variable[3])) { /*if*/
2316 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwintrude*/)( variable[1] /*n_kwintrude*/, variable[0]) /*PNode::parent=*/;
2317 }
2318 return_label88: while(false);
2319 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
2320 tracehead = trace.prev;
2321 return;
2322 }
2323 void parser_prod___AClassdef___n_doc__eq(val_t self, val_t param0) {
2324 struct trace_t trace = {NULL, NULL, 718, LOCATE_parser_prod___AClassdef___n_doc__eq};
2325 val_t variable[4];
2326 struct WBT_ **closurevariable = NULL;
2327 trace.prev = tracehead; tracehead = &trace;
2328 trace.file = LOCATE_parser_prod;
2329 /* Register variable[0]: Local variable */
2330 variable[0] = self;
2331 /* Register variable[1]: Local variable */
2332 variable[1] = param0;
2333 /* Register variable[2]: Method return value and escape marker */
2334 ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/ = variable[1] /*n*/;
2335 /* Register variable[3]: Result */
2336 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2337 if (UNTAG_Bool(variable[3])) { /*if*/
2338 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
2339 }
2340 return_label89: while(false);
2341 tracehead = trace.prev;
2342 return;
2343 }
2344 void parser_prod___AClassdef___n_kwredef__eq(val_t self, val_t param0) {
2345 struct trace_t trace = {NULL, NULL, 725, LOCATE_parser_prod___AClassdef___n_kwredef__eq};
2346 val_t variable[4];
2347 struct WBT_ **closurevariable = NULL;
2348 trace.prev = tracehead; tracehead = &trace;
2349 trace.file = LOCATE_parser_prod;
2350 /* Register variable[0]: Local variable */
2351 variable[0] = self;
2352 /* Register variable[1]: Local variable */
2353 variable[1] = param0;
2354 /* Register variable[2]: Method return value and escape marker */
2355 ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/ = variable[1] /*n*/;
2356 /* Register variable[3]: Result */
2357 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2358 if (UNTAG_Bool(variable[3])) { /*if*/
2359 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
2360 }
2361 return_label90: while(false);
2362 tracehead = trace.prev;
2363 return;
2364 }
2365 void parser_prod___AClassdef___n_visibility__eq(val_t self, val_t param0) {
2366 struct trace_t trace = {NULL, NULL, 732, LOCATE_parser_prod___AClassdef___n_visibility__eq};
2367 val_t variable[4];
2368 struct WBT_ **closurevariable = NULL;
2369 trace.prev = tracehead; tracehead = &trace;
2370 trace.file = LOCATE_parser_prod;
2371 /* Register variable[0]: Local variable */
2372 variable[0] = self;
2373 /* Register variable[1]: Local variable */
2374 variable[1] = param0;
2375 /* Register variable[2]: Method return value and escape marker */
2376 ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/ = variable[1] /*n*/;
2377 /* Register variable[3]: Result */
2378 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2379 if (UNTAG_Bool(variable[3])) { /*if*/
2380 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
2381 }
2382 return_label91: while(false);
2383 tracehead = trace.prev;
2384 return;
2385 }
2386 void parser_prod___AClassdef___n_classkind__eq(val_t self, val_t param0) {
2387 struct trace_t trace = {NULL, NULL, 739, LOCATE_parser_prod___AClassdef___n_classkind__eq};
2388 val_t variable[4];
2389 struct WBT_ **closurevariable = NULL;
2390 trace.prev = tracehead; tracehead = &trace;
2391 trace.file = LOCATE_parser_prod;
2392 /* Register variable[0]: Local variable */
2393 variable[0] = self;
2394 /* Register variable[1]: Local variable */
2395 variable[1] = param0;
2396 /* Register variable[2]: Method return value and escape marker */
2397 ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/ = variable[1] /*n*/;
2398 /* Register variable[3]: Result */
2399 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2400 if (UNTAG_Bool(variable[3])) { /*if*/
2401 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
2402 }
2403 return_label92: while(false);
2404 tracehead = trace.prev;
2405 return;
2406 }
2407 void parser_prod___AClassdef___n_id__eq(val_t self, val_t param0) {
2408 struct trace_t trace = {NULL, NULL, 746, LOCATE_parser_prod___AClassdef___n_id__eq};
2409 val_t variable[4];
2410 struct WBT_ **closurevariable = NULL;
2411 trace.prev = tracehead; tracehead = &trace;
2412 trace.file = LOCATE_parser_prod;
2413 /* Register variable[0]: Local variable */
2414 variable[0] = self;
2415 /* Register variable[1]: Local variable */
2416 variable[1] = param0;
2417 /* Register variable[2]: Method return value and escape marker */
2418 ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/ = variable[1] /*n*/;
2419 /* Register variable[3]: Result */
2420 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2421 if (UNTAG_Bool(variable[3])) { /*if*/
2422 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
2423 }
2424 return_label93: while(false);
2425 tracehead = trace.prev;
2426 return;
2427 }
2428 void parser_prod___AClassdef___replace_child(val_t self, val_t param0, val_t param1) {
2429 struct trace_t trace = {NULL, NULL, 808, LOCATE_parser_prod___AClassdef___replace_child};
2430 val_t variable[8];
2431 struct WBT_ **closurevariable = NULL;
2432 trace.prev = tracehead; tracehead = &trace;
2433 trace.file = LOCATE_parser_prod;
2434 /* Register variable[0]: Local variable */
2435 variable[0] = self;
2436 /* Register variable[1]: Local variable */
2437 variable[1] = param0;
2438 /* Register variable[2]: Local variable */
2439 variable[2] = param1;
2440 /* Register variable[3]: Method return value and escape marker */
2441 /* Register variable[4]: Result */
2442 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2443 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 810); nit_exit(1);}
2444 /* Register variable[4]: Result */
2445 variable[4] = ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/;
2446 /* Register variable[4]: Result */
2447 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2448 if (UNTAG_Bool(variable[4])) { /*if*/
2449 /* Register variable[4]: Result */
2450 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2451 if (UNTAG_Bool(variable[4])) { /*if*/
2452 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2453 /* Register variable[4]: Result */
2454 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
2455 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 814); nit_exit(1);}
2456 ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/ = variable[2] /*new_child*/;
2457 } else { /*if*/
2458 ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/ = NIT_NULL /*null*/;
2459 }
2460 goto return_label94;
2461 }
2462 /* Register variable[4]: Result */
2463 variable[4] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/;
2464 /* Register variable[4]: Result */
2465 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2466 if (UNTAG_Bool(variable[4])) { /*if*/
2467 /* Register variable[4]: Result */
2468 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2469 if (UNTAG_Bool(variable[4])) { /*if*/
2470 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2471 /* Register variable[4]: Result */
2472 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
2473 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 824); nit_exit(1);}
2474 ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/ = variable[2] /*new_child*/;
2475 } else { /*if*/
2476 ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/ = NIT_NULL /*null*/;
2477 }
2478 goto return_label94;
2479 }
2480 /* Register variable[4]: Result */
2481 variable[4] = ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/;
2482 /* Register variable[4]: Result */
2483 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2484 if (UNTAG_Bool(variable[4])) { /*if*/
2485 /* Register variable[4]: Result */
2486 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2487 if (UNTAG_Bool(variable[4])) { /*if*/
2488 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2489 /* Register variable[4]: Result */
2490 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
2491 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 834); nit_exit(1);}
2492 ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/ = variable[2] /*new_child*/;
2493 } else { /*if*/
2494 ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/ = NIT_NULL /*null*/;
2495 }
2496 goto return_label94;
2497 }
2498 /* Register variable[4]: Result */
2499 variable[4] = ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/;
2500 /* Register variable[4]: Result */
2501 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2502 if (UNTAG_Bool(variable[4])) { /*if*/
2503 /* Register variable[4]: Result */
2504 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2505 if (UNTAG_Bool(variable[4])) { /*if*/
2506 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2507 /* Register variable[4]: Result */
2508 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
2509 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 844); nit_exit(1);}
2510 ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/ = variable[2] /*new_child*/;
2511 } else { /*if*/
2512 ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/ = NIT_NULL /*null*/;
2513 }
2514 goto return_label94;
2515 }
2516 /* Register variable[4]: Result */
2517 variable[4] = ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/;
2518 /* Register variable[4]: Result */
2519 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2520 if (UNTAG_Bool(variable[4])) { /*if*/
2521 /* Register variable[4]: Result */
2522 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2523 if (UNTAG_Bool(variable[4])) { /*if*/
2524 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2525 /* Register variable[4]: Result */
2526 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
2527 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 854); nit_exit(1);}
2528 ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/ = variable[2] /*new_child*/;
2529 } else { /*if*/
2530 ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/ = NIT_NULL /*null*/;
2531 }
2532 goto return_label94;
2533 }
2534 /* Register variable[4]: Result */
2535 variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2536 /* Register variable[4]: Result */
2537 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2538 /* Register variable[4]: Result */
2539 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
2540 /* Register variable[4]: For iterator */
2541 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2542 while (true) { /*for*/
2543 /* Register variable[5]: For 'is_ok' result */
2544 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2545 if (!UNTAG_Bool(variable[5])) break; /*for*/
2546 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
2547 /* Register variable[6]: Local variable */
2548 variable[6] = variable[5];
2549 /* Register variable[7]: Result */
2550 variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2551 /* Register variable[7]: Result */
2552 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2553 /* Register variable[7]: Result */
2554 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
2555 if (UNTAG_Bool(variable[7])) { /*if*/
2556 /* Register variable[7]: Result */
2557 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2558 if (UNTAG_Bool(variable[7])) { /*if*/
2559 /* Register variable[7]: Result */
2560 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
2561 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 864); nit_exit(1);}
2562 /* Register variable[7]: Result */
2563 variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2564 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2565 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2566 } else { /*if*/
2567 /* Register variable[7]: Result */
2568 variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2569 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2570 }
2571 goto return_label94;
2572 }
2573 continue_95: while(0);
2574 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2575 }
2576 break_95: while(0);
2577 /* Register variable[4]: Result */
2578 variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
2579 /* Register variable[4]: Result */
2580 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2581 /* Register variable[4]: Result */
2582 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
2583 /* Register variable[4]: For iterator */
2584 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2585 while (true) { /*for*/
2586 /* Register variable[5]: For 'is_ok' result */
2587 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2588 if (!UNTAG_Bool(variable[5])) break; /*for*/
2589 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
2590 /* Register variable[6]: Local variable */
2591 variable[6] = variable[5];
2592 /* Register variable[7]: Result */
2593 variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
2594 /* Register variable[7]: Result */
2595 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2596 /* Register variable[7]: Result */
2597 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
2598 if (UNTAG_Bool(variable[7])) { /*if*/
2599 /* Register variable[7]: Result */
2600 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2601 if (UNTAG_Bool(variable[7])) { /*if*/
2602 /* Register variable[7]: Result */
2603 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
2604 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 876); nit_exit(1);}
2605 /* Register variable[7]: Result */
2606 variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
2607 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2608 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2609 } else { /*if*/
2610 /* Register variable[7]: Result */
2611 variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
2612 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2613 }
2614 goto return_label94;
2615 }
2616 continue_96: while(0);
2617 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2618 }
2619 break_96: while(0);
2620 /* Register variable[4]: Result */
2621 variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
2622 /* Register variable[4]: Result */
2623 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2624 /* Register variable[4]: Result */
2625 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
2626 /* Register variable[4]: For iterator */
2627 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2628 while (true) { /*for*/
2629 /* Register variable[5]: For 'is_ok' result */
2630 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2631 if (!UNTAG_Bool(variable[5])) break; /*for*/
2632 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
2633 /* Register variable[6]: Local variable */
2634 variable[6] = variable[5];
2635 /* Register variable[7]: Result */
2636 variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
2637 /* Register variable[7]: Result */
2638 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2639 /* Register variable[7]: Result */
2640 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
2641 if (UNTAG_Bool(variable[7])) { /*if*/
2642 /* Register variable[7]: Result */
2643 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2644 if (UNTAG_Bool(variable[7])) { /*if*/
2645 /* Register variable[7]: Result */
2646 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2647 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 888); nit_exit(1);}
2648 /* Register variable[7]: Result */
2649 variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
2650 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2651 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
2652 } else { /*if*/
2653 /* Register variable[7]: Result */
2654 variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
2655 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2656 }
2657 goto return_label94;
2658 }
2659 continue_97: while(0);
2660 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2661 }
2662 break_97: while(0);
2663 return_label94: while(false);
2664 tracehead = trace.prev;
2665 return;
2666 }
2667 void parser_prod___AClassdef___visit_all(val_t self, val_t param0) {
2668 struct trace_t trace = {NULL, NULL, 899, LOCATE_parser_prod___AClassdef___visit_all};
2669 val_t variable[6];
2670 struct WBT_ **closurevariable = NULL;
2671 trace.prev = tracehead; tracehead = &trace;
2672 trace.file = LOCATE_parser_prod;
2673 /* Register variable[0]: Local variable */
2674 variable[0] = self;
2675 /* Register variable[1]: Local variable */
2676 variable[1] = param0;
2677 /* Register variable[2]: Method return value and escape marker */
2678 /* Register variable[3]: Result */
2679 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/;
2680 /* Register variable[3]: Result */
2681 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::==*/)))))));
2682 if (UNTAG_Bool(variable[3])) { /*if*/
2683 /* Register variable[3]: Result */
2684 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/;
2685 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2686 }
2687 /* Register variable[3]: Result */
2688 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/;
2689 /* Register variable[3]: Result */
2690 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::==*/)))))));
2691 if (UNTAG_Bool(variable[3])) { /*if*/
2692 /* Register variable[3]: Result */
2693 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/;
2694 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2695 }
2696 /* Register variable[3]: Result */
2697 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/;
2698 /* Register variable[3]: Result */
2699 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::==*/)))))));
2700 if (UNTAG_Bool(variable[3])) { /*if*/
2701 /* Register variable[3]: Result */
2702 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/;
2703 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2704 }
2705 /* Register variable[3]: Result */
2706 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/;
2707 /* Register variable[3]: Result */
2708 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::==*/)))))));
2709 if (UNTAG_Bool(variable[3])) { /*if*/
2710 /* Register variable[3]: Result */
2711 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/;
2712 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2713 }
2714 /* Register variable[3]: Result */
2715 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/;
2716 /* Register variable[3]: Result */
2717 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::==*/)))))));
2718 if (UNTAG_Bool(variable[3])) { /*if*/
2719 /* Register variable[3]: Result */
2720 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/;
2721 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2722 }
2723 /* Register variable[3]: Result */
2724 variable[3] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2725 /* Register variable[3]: For iterator */
2726 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2727 while (true) { /*for*/
2728 /* Register variable[4]: For 'is_ok' result */
2729 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2730 if (!UNTAG_Bool(variable[4])) break; /*for*/
2731 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
2732 /* Register variable[5]: Local variable */
2733 variable[5] = variable[4];
2734 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2735 continue_99: while(0);
2736 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2737 }
2738 break_99: while(0);
2739 /* Register variable[3]: Result */
2740 variable[3] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
2741 /* Register variable[3]: For iterator */
2742 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2743 while (true) { /*for*/
2744 /* Register variable[4]: For 'is_ok' result */
2745 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2746 if (!UNTAG_Bool(variable[4])) break; /*for*/
2747 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
2748 /* Register variable[5]: Local variable */
2749 variable[5] = variable[4];
2750 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2751 continue_100: while(0);
2752 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2753 }
2754 break_100: while(0);
2755 /* Register variable[3]: Result */
2756 variable[3] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
2757 /* Register variable[3]: For iterator */
2758 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2759 while (true) { /*for*/
2760 /* Register variable[4]: For 'is_ok' result */
2761 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2762 if (!UNTAG_Bool(variable[4])) break; /*for*/
2763 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
2764 /* Register variable[5]: Local variable */
2765 variable[5] = variable[4];
2766 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2767 continue_101: while(0);
2768 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2769 }
2770 break_101: while(0);
2771 return_label98: while(false);
2772 tracehead = trace.prev;
2773 return;
2774 }
2775 void parser_prod___AClassdef___visit_all_reverse(val_t self, val_t param0) {
2776 struct trace_t trace = {NULL, NULL, 927, LOCATE_parser_prod___AClassdef___visit_all_reverse};
2777 val_t variable[5];
2778 struct WBT_ **closurevariable = NULL;
2779 trace.prev = tracehead; tracehead = &trace;
2780 trace.file = LOCATE_parser_prod;
2781 /* Register variable[0]: Local variable */
2782 variable[0] = self;
2783 /* Register variable[1]: Local variable */
2784 variable[1] = param0;
2785 /* Register variable[2]: Method return value and escape marker */
2786 /* Register variable[3]: Result */
2787 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/;
2788 /* Register variable[3]: Result */
2789 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::==*/)))))));
2790 if (UNTAG_Bool(variable[3])) { /*if*/
2791 /* Register variable[3]: Result */
2792 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/;
2793 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2794 }
2795 /* Register variable[3]: Result */
2796 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/;
2797 /* Register variable[3]: Result */
2798 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::==*/)))))));
2799 if (UNTAG_Bool(variable[3])) { /*if*/
2800 /* Register variable[3]: Result */
2801 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/;
2802 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2803 }
2804 /* Register variable[3]: Result */
2805 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/;
2806 /* Register variable[3]: Result */
2807 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::==*/)))))));
2808 if (UNTAG_Bool(variable[3])) { /*if*/
2809 /* Register variable[3]: Result */
2810 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/;
2811 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2812 }
2813 /* Register variable[3]: Result */
2814 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/;
2815 /* Register variable[3]: Result */
2816 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::==*/)))))));
2817 if (UNTAG_Bool(variable[3])) { /*if*/
2818 /* Register variable[3]: Result */
2819 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/;
2820 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2821 }
2822 /* Register variable[3]: Result */
2823 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/;
2824 /* Register variable[3]: Result */
2825 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::==*/)))))));
2826 if (UNTAG_Bool(variable[3])) { /*if*/
2827 /* Register variable[3]: Result */
2828 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/;
2829 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2830 }
2831 /* Register variable[3]: Local variable */
2832 /* Register variable[4]: Result */
2833 variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2834 /* Register variable[4]: Result */
2835 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2836 variable[3] = variable[4];
2837 while (true) { /*while*/
2838 /* Register variable[4]: Result */
2839 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2840 if (!UNTAG_Bool(variable[4])) break; /* while*/
2841 /* Register variable[4]: Result */
2842 variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2843 /* Register variable[4]: Result */
2844 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2845 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2846 /* Register variable[4]: Result */
2847 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2848 variable[3] = variable[4] /*i=*/;
2849 continue_103: while(0);
2850 }
2851 break_103: while(0);
2852 /* Register variable[3]: Local variable */
2853 /* Register variable[4]: Result */
2854 variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
2855 /* Register variable[4]: Result */
2856 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2857 variable[3] = variable[4];
2858 while (true) { /*while*/
2859 /* Register variable[4]: Result */
2860 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2861 if (!UNTAG_Bool(variable[4])) break; /* while*/
2862 /* Register variable[4]: Result */
2863 variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
2864 /* Register variable[4]: Result */
2865 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2866 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2867 /* Register variable[4]: Result */
2868 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2869 variable[3] = variable[4] /*i=*/;
2870 continue_104: while(0);
2871 }
2872 break_104: while(0);
2873 /* Register variable[3]: Local variable */
2874 /* Register variable[4]: Result */
2875 variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
2876 /* Register variable[4]: Result */
2877 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2878 variable[3] = variable[4];
2879 while (true) { /*while*/
2880 /* Register variable[4]: Result */
2881 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2882 if (!UNTAG_Bool(variable[4])) break; /* while*/
2883 /* Register variable[4]: Result */
2884 variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
2885 /* Register variable[4]: Result */
2886 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2887 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2888 /* Register variable[4]: Result */
2889 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2890 variable[3] = variable[4] /*i=*/;
2891 continue_105: while(0);
2892 }
2893 break_105: while(0);
2894 return_label102: while(false);
2895 tracehead = trace.prev;
2896 return;
2897 }
2898 void parser_prod___AClassdef___empty_init(val_t self, int* init_table) {
2899 struct trace_t trace = {NULL, NULL, 754, LOCATE_parser_prod___AClassdef___empty_init};
2900 val_t variable[2];
2901 struct WBT_ **closurevariable = NULL;
2902 trace.prev = tracehead; tracehead = &trace;
2903 trace.file = LOCATE_parser_prod;
2904 /* Register variable[0]: Local variable */
2905 variable[0] = self;
2906 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i]) return;
2907 /* Register variable[1]: Method return value and escape marker */
2908 return_label106: while(false);
2909 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i] = 1;
2910 tracehead = trace.prev;
2911 return;
2912 }
2913 void parser_prod___AClassdef___init_aclassdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, val_t param6, val_t param7, int* init_table) {
2914 struct trace_t trace = {NULL, NULL, 756, LOCATE_parser_prod___AClassdef___init_aclassdef};
2915 val_t variable[14];
2916 struct WBT_ **closurevariable = NULL;
2917 trace.prev = tracehead; tracehead = &trace;
2918 trace.file = LOCATE_parser_prod;
2919 /* Register variable[0]: Local variable */
2920 variable[0] = self;
2921 /* Register variable[1]: Local variable */
2922 variable[1] = param0;
2923 /* Register variable[2]: Local variable */
2924 variable[2] = param1;
2925 /* Register variable[3]: Local variable */
2926 variable[3] = param2;
2927 /* Register variable[4]: Local variable */
2928 variable[4] = param3;
2929 /* Register variable[5]: Local variable */
2930 variable[5] = param4;
2931 /* Register variable[6]: Local variable */
2932 variable[6] = param5;
2933 /* Register variable[7]: Local variable */
2934 variable[7] = param6;
2935 /* Register variable[8]: Local variable */
2936 variable[8] = param7;
2937 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i]) return;
2938 /* Register variable[9]: Method return value and escape marker */
2939 CALL_parser_prod___AClassdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AClassdef::empty_init*/;
2940 ATTR_parser_nodes___AClassdef____n_doc(variable[0]) /*AClassdef::_n_doc*/ = variable[1] /*n_doc*/;
2941 /* Register variable[10]: Result */
2942 variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2943 if (UNTAG_Bool(variable[10])) { /*if*/
2944 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
2945 }
2946 ATTR_parser_nodes___AClassdef____n_kwredef(variable[0]) /*AClassdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
2947 /* Register variable[10]: Result */
2948 variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2949 if (UNTAG_Bool(variable[10])) { /*if*/
2950 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
2951 }
2952 ATTR_parser_nodes___AClassdef____n_visibility(variable[0]) /*AClassdef::_n_visibility*/ = variable[3] /*n_visibility*/;
2953 /* Register variable[10]: Result */
2954 variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2955 if (UNTAG_Bool(variable[10])) { /*if*/
2956 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
2957 }
2958 ATTR_parser_nodes___AClassdef____n_classkind(variable[0]) /*AClassdef::_n_classkind*/ = variable[4] /*n_classkind*/;
2959 /* Register variable[10]: Result */
2960 variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_classkind*/ == NIT_NULL /*null*/) || (( variable[4] /*n_classkind*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_classkind*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_classkind*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_classkind*/)( variable[4] /*n_classkind*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2961 if (UNTAG_Bool(variable[10])) { /*if*/
2962 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_classkind*/)( variable[4] /*n_classkind*/, variable[0]) /*PNode::parent=*/;
2963 }
2964 ATTR_parser_nodes___AClassdef____n_id(variable[0]) /*AClassdef::_n_id*/ = variable[5] /*n_id*/;
2965 /* Register variable[10]: Result */
2966 variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_id*/ == NIT_NULL /*null*/) || (( variable[5] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)( variable[5] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2967 if (UNTAG_Bool(variable[10])) { /*if*/
2968 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_id*/)( variable[5] /*n_id*/, variable[0]) /*PNode::parent=*/;
2969 }
2970 /* Register variable[10]: Result */
2971 variable[10] = NEW_List_list___List___init() /*new List[PFormaldef]*/;
2972 ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/ = variable[10];
2973 /* Register variable[10]: For iterator */
2974 variable[10] = CALL_abstract_collection___Collection___iterator( variable[6] /*n_formaldefs*/)( variable[6] /*n_formaldefs*/) /*Collection::iterator*/;
2975 while (true) { /*for*/
2976 /* Register variable[11]: For 'is_ok' result */
2977 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
2978 if (!UNTAG_Bool(variable[11])) break; /*for*/
2979 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/ /* Ensure var: For item*/;
2980 /* Register variable[12]: Local variable */
2981 variable[12] = variable[11];
2982 /* Register variable[13]: Result */
2983 variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
2984 if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___init_aclassdef, LOCATE_parser_prod, 790); nit_exit(1);}
2985 /* Register variable[13]: Result */
2986 variable[13] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[0]) /*AClassdef::_n_formaldefs*/;
2987 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[12] /*n*/) /*IndexedCollection::add*/;
2988 CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[0]) /*PNode::parent=*/;
2989 continue_108: while(0);
2990 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
2991 }
2992 break_108: while(0);
2993 /* Register variable[10]: Result */
2994 variable[10] = NEW_List_list___List___init() /*new List[PSuperclass]*/;
2995 ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/ = variable[10];
2996 /* Register variable[10]: For iterator */
2997 variable[10] = CALL_abstract_collection___Collection___iterator( variable[7] /*n_superclasses*/)( variable[7] /*n_superclasses*/) /*Collection::iterator*/;
2998 while (true) { /*for*/
2999 /* Register variable[11]: For 'is_ok' result */
3000 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
3001 if (!UNTAG_Bool(variable[11])) break; /*for*/
3002 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/ /* Ensure var: For item*/;
3003 /* Register variable[12]: Local variable */
3004 variable[12] = variable[11];
3005 /* Register variable[13]: Result */
3006 variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
3007 if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___init_aclassdef, LOCATE_parser_prod, 796); nit_exit(1);}
3008 /* Register variable[13]: Result */
3009 variable[13] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[0]) /*AClassdef::_n_superclasses*/;
3010 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[12] /*n*/) /*IndexedCollection::add*/;
3011 CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[0]) /*PNode::parent=*/;
3012 continue_109: while(0);
3013 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
3014 }
3015 break_109: while(0);
3016 /* Register variable[10]: Result */
3017 variable[10] = NEW_List_list___List___init() /*new List[PPropdef]*/;
3018 ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/ = variable[10];
3019 /* Register variable[10]: For iterator */
3020 variable[10] = CALL_abstract_collection___Collection___iterator( variable[8] /*n_propdefs*/)( variable[8] /*n_propdefs*/) /*Collection::iterator*/;
3021 while (true) { /*for*/
3022 /* Register variable[11]: For 'is_ok' result */
3023 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
3024 if (!UNTAG_Bool(variable[11])) break; /*for*/
3025 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/ /* Ensure var: For item*/;
3026 /* Register variable[12]: Local variable */
3027 variable[12] = variable[11];
3028 /* Register variable[13]: Result */
3029 variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
3030 if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___init_aclassdef, LOCATE_parser_prod, 802); nit_exit(1);}
3031 /* Register variable[13]: Result */
3032 variable[13] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[0]) /*AClassdef::_n_propdefs*/;
3033 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[12] /*n*/) /*IndexedCollection::add*/;
3034 CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[0]) /*PNode::parent=*/;
3035 continue_110: while(0);
3036 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
3037 }
3038 break_110: while(0);
3039 return_label107: while(false);
3040 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i] = 1;
3041 tracehead = trace.prev;
3042 return;
3043 }
3044 void parser_prod___ATopClassdef___replace_child(val_t self, val_t param0, val_t param1) {
3045 struct trace_t trace = {NULL, NULL, 984, LOCATE_parser_prod___ATopClassdef___replace_child};
3046 val_t variable[8];
3047 struct WBT_ **closurevariable = NULL;
3048 trace.prev = tracehead; tracehead = &trace;
3049 trace.file = LOCATE_parser_prod;
3050 /* Register variable[0]: Local variable */
3051 variable[0] = self;
3052 /* Register variable[1]: Local variable */
3053 variable[1] = param0;
3054 /* Register variable[2]: Local variable */
3055 variable[2] = param1;
3056 /* Register variable[3]: Method return value and escape marker */
3057 /* Register variable[4]: Result */
3058 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3059 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATopClassdef___replace_child, LOCATE_parser_prod, 986); nit_exit(1);}
3060 /* Register variable[4]: Result */
3061 variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3062 /* Register variable[4]: Result */
3063 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
3064 /* Register variable[4]: Result */
3065 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
3066 /* Register variable[4]: For iterator */
3067 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
3068 while (true) { /*for*/
3069 /* Register variable[5]: For 'is_ok' result */
3070 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
3071 if (!UNTAG_Bool(variable[5])) break; /*for*/
3072 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
3073 /* Register variable[6]: Local variable */
3074 variable[6] = variable[5];
3075 /* Register variable[7]: Result */
3076 variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3077 /* Register variable[7]: Result */
3078 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
3079 /* Register variable[7]: Result */
3080 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
3081 if (UNTAG_Bool(variable[7])) { /*if*/
3082 /* Register variable[7]: Result */
3083 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3084 if (UNTAG_Bool(variable[7])) { /*if*/
3085 /* Register variable[7]: Result */
3086 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
3087 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATopClassdef___replace_child, LOCATE_parser_prod, 990); nit_exit(1);}
3088 /* Register variable[7]: Result */
3089 variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3090 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
3091 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
3092 } else { /*if*/
3093 /* Register variable[7]: Result */
3094 variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3095 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
3096 }
3097 goto return_label111;
3098 }
3099 continue_112: while(0);
3100 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
3101 }
3102 break_112: while(0);
3103 return_label111: while(false);
3104 tracehead = trace.prev;
3105 return;
3106 }
3107 void parser_prod___ATopClassdef___visit_all(val_t self, val_t param0) {
3108 struct trace_t trace = {NULL, NULL, 1001, LOCATE_parser_prod___ATopClassdef___visit_all};
3109 val_t variable[6];
3110 struct WBT_ **closurevariable = NULL;
3111 trace.prev = tracehead; tracehead = &trace;
3112 trace.file = LOCATE_parser_prod;
3113 /* Register variable[0]: Local variable */
3114 variable[0] = self;
3115 /* Register variable[1]: Local variable */
3116 variable[1] = param0;
3117 /* Register variable[2]: Method return value and escape marker */
3118 /* Register variable[3]: Result */
3119 variable[3] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3120 /* Register variable[3]: For iterator */
3121 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
3122 while (true) { /*for*/
3123 /* Register variable[4]: For 'is_ok' result */
3124 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
3125 if (!UNTAG_Bool(variable[4])) break; /*for*/
3126 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
3127 /* Register variable[5]: Local variable */
3128 variable[5] = variable[4];
3129 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
3130 continue_114: while(0);
3131 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
3132 }
3133 break_114: while(0);
3134 return_label113: while(false);
3135 tracehead = trace.prev;
3136 return;
3137 }
3138 void parser_prod___ATopClassdef___visit_all_reverse(val_t self, val_t param0) {
3139 struct trace_t trace = {NULL, NULL, 1008, LOCATE_parser_prod___ATopClassdef___visit_all_reverse};
3140 val_t variable[5];
3141 struct WBT_ **closurevariable = NULL;
3142 trace.prev = tracehead; tracehead = &trace;
3143 trace.file = LOCATE_parser_prod;
3144 /* Register variable[0]: Local variable */
3145 variable[0] = self;
3146 /* Register variable[1]: Local variable */
3147 variable[1] = param0;
3148 /* Register variable[2]: Method return value and escape marker */
3149 /* Register variable[3]: Local variable */
3150 /* Register variable[4]: Result */
3151 variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3152 /* Register variable[4]: Result */
3153 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
3154 variable[3] = variable[4];
3155 while (true) { /*while*/
3156 /* Register variable[4]: Result */
3157 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
3158 if (!UNTAG_Bool(variable[4])) break; /* while*/
3159 /* Register variable[4]: Result */
3160 variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3161 /* Register variable[4]: Result */
3162 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
3163 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
3164 /* Register variable[4]: Result */
3165 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
3166 variable[3] = variable[4] /*i=*/;
3167 continue_116: while(0);
3168 }
3169 break_116: while(0);
3170 return_label115: while(false);
3171 tracehead = trace.prev;
3172 return;
3173 }
3174 void parser_prod___ATopClassdef___empty_init(val_t self, int* init_table) {
3175 struct trace_t trace = {NULL, NULL, 969, LOCATE_parser_prod___ATopClassdef___empty_init};
3176 val_t variable[2];
3177 struct WBT_ **closurevariable = NULL;
3178 trace.prev = tracehead; tracehead = &trace;
3179 trace.file = LOCATE_parser_prod;
3180 /* Register variable[0]: Local variable */
3181 variable[0] = self;
3182 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
3183 /* Register variable[1]: Method return value and escape marker */
3184 return_label117: while(false);
3185 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
3186 tracehead = trace.prev;
3187 return;
3188 }
3189 void parser_prod___ATopClassdef___init_atopclassdef(val_t self, val_t param0, int* init_table) {
3190 struct trace_t trace = {NULL, NULL, 971, LOCATE_parser_prod___ATopClassdef___init_atopclassdef};
3191 val_t variable[7];
3192 struct WBT_ **closurevariable = NULL;
3193 trace.prev = tracehead; tracehead = &trace;
3194 trace.file = LOCATE_parser_prod;
3195 /* Register variable[0]: Local variable */
3196 variable[0] = self;
3197 /* Register variable[1]: Local variable */
3198 variable[1] = param0;
3199 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
3200 /* Register variable[2]: Method return value and escape marker */
3201 CALL_parser_prod___ATopClassdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ATopClassdef::empty_init*/;
3202 /* Register variable[3]: Result */
3203 variable[3] = NEW_List_list___List___init() /*new List[PPropdef]*/;
3204 ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/ = variable[3];
3205 /* Register variable[3]: For iterator */
3206 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_propdefs*/)( variable[1] /*n_propdefs*/) /*Collection::iterator*/;
3207 while (true) { /*for*/
3208 /* Register variable[4]: For 'is_ok' result */
3209 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
3210 if (!UNTAG_Bool(variable[4])) break; /*for*/
3211 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
3212 /* Register variable[5]: Local variable */
3213 variable[5] = variable[4];
3214 /* Register variable[6]: Result */
3215 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
3216 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATopClassdef___init_atopclassdef, LOCATE_parser_prod, 978); nit_exit(1);}
3217 /* Register variable[6]: Result */
3218 variable[6] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[0]) /*ATopClassdef::_n_propdefs*/;
3219 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
3220 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[0]) /*PNode::parent=*/;
3221 continue_119: while(0);
3222 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
3223 }
3224 break_119: while(0);
3225 return_label118: while(false);
3226 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
3227 tracehead = trace.prev;
3228 return;
3229 }
3230 void parser_prod___AMainClassdef___replace_child(val_t self, val_t param0, val_t param1) {
3231 struct trace_t trace = {NULL, NULL, 1036, LOCATE_parser_prod___AMainClassdef___replace_child};
3232 val_t variable[8];
3233 struct WBT_ **closurevariable = NULL;
3234 trace.prev = tracehead; tracehead = &trace;
3235 trace.file = LOCATE_parser_prod;
3236 /* Register variable[0]: Local variable */
3237 variable[0] = self;
3238 /* Register variable[1]: Local variable */
3239 variable[1] = param0;
3240 /* Register variable[2]: Local variable */
3241 variable[2] = param1;
3242 /* Register variable[3]: Method return value and escape marker */
3243 /* Register variable[4]: Result */
3244 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3245 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainClassdef___replace_child, LOCATE_parser_prod, 1038); nit_exit(1);}
3246 /* Register variable[4]: Result */
3247 variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3248 /* Register variable[4]: Result */
3249 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
3250 /* Register variable[4]: Result */
3251 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
3252 /* Register variable[4]: For iterator */
3253 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
3254 while (true) { /*for*/
3255 /* Register variable[5]: For 'is_ok' result */
3256 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
3257 if (!UNTAG_Bool(variable[5])) break; /*for*/
3258 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
3259 /* Register variable[6]: Local variable */
3260 variable[6] = variable[5];
3261 /* Register variable[7]: Result */
3262 variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3263 /* Register variable[7]: Result */
3264 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
3265 /* Register variable[7]: Result */
3266 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
3267 if (UNTAG_Bool(variable[7])) { /*if*/
3268 /* Register variable[7]: Result */
3269 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3270 if (UNTAG_Bool(variable[7])) { /*if*/
3271 /* Register variable[7]: Result */
3272 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
3273 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainClassdef___replace_child, LOCATE_parser_prod, 1042); nit_exit(1);}
3274 /* Register variable[7]: Result */
3275 variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3276 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
3277 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
3278 } else { /*if*/
3279 /* Register variable[7]: Result */
3280 variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3281 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
3282 }
3283 goto return_label120;
3284 }
3285 continue_121: while(0);
3286 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
3287 }
3288 break_121: while(0);
3289 return_label120: while(false);
3290 tracehead = trace.prev;
3291 return;
3292 }
3293 void parser_prod___AMainClassdef___visit_all(val_t self, val_t param0) {
3294 struct trace_t trace = {NULL, NULL, 1053, LOCATE_parser_prod___AMainClassdef___visit_all};
3295 val_t variable[6];
3296 struct WBT_ **closurevariable = NULL;
3297 trace.prev = tracehead; tracehead = &trace;
3298 trace.file = LOCATE_parser_prod;
3299 /* Register variable[0]: Local variable */
3300 variable[0] = self;
3301 /* Register variable[1]: Local variable */
3302 variable[1] = param0;
3303 /* Register variable[2]: Method return value and escape marker */
3304 /* Register variable[3]: Result */
3305 variable[3] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3306 /* Register variable[3]: For iterator */
3307 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
3308 while (true) { /*for*/
3309 /* Register variable[4]: For 'is_ok' result */
3310 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
3311 if (!UNTAG_Bool(variable[4])) break; /*for*/
3312 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
3313 /* Register variable[5]: Local variable */
3314 variable[5] = variable[4];
3315 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
3316 continue_123: while(0);
3317 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
3318 }
3319 break_123: while(0);
3320 return_label122: while(false);
3321 tracehead = trace.prev;
3322 return;
3323 }
3324 void parser_prod___AMainClassdef___visit_all_reverse(val_t self, val_t param0) {
3325 struct trace_t trace = {NULL, NULL, 1060, LOCATE_parser_prod___AMainClassdef___visit_all_reverse};
3326 val_t variable[5];
3327 struct WBT_ **closurevariable = NULL;
3328 trace.prev = tracehead; tracehead = &trace;
3329 trace.file = LOCATE_parser_prod;
3330 /* Register variable[0]: Local variable */
3331 variable[0] = self;
3332 /* Register variable[1]: Local variable */
3333 variable[1] = param0;
3334 /* Register variable[2]: Method return value and escape marker */
3335 /* Register variable[3]: Local variable */
3336 /* Register variable[4]: Result */
3337 variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3338 /* Register variable[4]: Result */
3339 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
3340 variable[3] = variable[4];
3341 while (true) { /*while*/
3342 /* Register variable[4]: Result */
3343 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
3344 if (!UNTAG_Bool(variable[4])) break; /* while*/
3345 /* Register variable[4]: Result */
3346 variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3347 /* Register variable[4]: Result */
3348 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
3349 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
3350 /* Register variable[4]: Result */
3351 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
3352 variable[3] = variable[4] /*i=*/;
3353 continue_125: while(0);
3354 }
3355 break_125: while(0);
3356 return_label124: while(false);
3357 tracehead = trace.prev;
3358 return;
3359 }
3360 void parser_prod___AMainClassdef___empty_init(val_t self, int* init_table) {
3361 struct trace_t trace = {NULL, NULL, 1021, LOCATE_parser_prod___AMainClassdef___empty_init};
3362 val_t variable[2];
3363 struct WBT_ **closurevariable = NULL;
3364 trace.prev = tracehead; tracehead = &trace;
3365 trace.file = LOCATE_parser_prod;
3366 /* Register variable[0]: Local variable */
3367 variable[0] = self;
3368 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
3369 /* Register variable[1]: Method return value and escape marker */
3370 return_label126: while(false);
3371 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
3372 tracehead = trace.prev;
3373 return;
3374 }
3375 void parser_prod___AMainClassdef___init_amainclassdef(val_t self, val_t param0, int* init_table) {
3376 struct trace_t trace = {NULL, NULL, 1023, LOCATE_parser_prod___AMainClassdef___init_amainclassdef};
3377 val_t variable[7];
3378 struct WBT_ **closurevariable = NULL;
3379 trace.prev = tracehead; tracehead = &trace;
3380 trace.file = LOCATE_parser_prod;
3381 /* Register variable[0]: Local variable */
3382 variable[0] = self;
3383 /* Register variable[1]: Local variable */
3384 variable[1] = param0;
3385 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
3386 /* Register variable[2]: Method return value and escape marker */
3387 CALL_parser_prod___AMainClassdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AMainClassdef::empty_init*/;
3388 /* Register variable[3]: Result */
3389 variable[3] = NEW_List_list___List___init() /*new List[PPropdef]*/;
3390 ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/ = variable[3];
3391 /* Register variable[3]: For iterator */
3392 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_propdefs*/)( variable[1] /*n_propdefs*/) /*Collection::iterator*/;
3393 while (true) { /*for*/
3394 /* Register variable[4]: For 'is_ok' result */
3395 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
3396 if (!UNTAG_Bool(variable[4])) break; /*for*/
3397 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
3398 /* Register variable[5]: Local variable */
3399 variable[5] = variable[4];
3400 /* Register variable[6]: Result */
3401 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
3402 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainClassdef___init_amainclassdef, LOCATE_parser_prod, 1030); nit_exit(1);}
3403 /* Register variable[6]: Result */
3404 variable[6] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[0]) /*AMainClassdef::_n_propdefs*/;
3405 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
3406 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[0]) /*PNode::parent=*/;
3407 continue_128: while(0);
3408 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
3409 }
3410 break_128: while(0);
3411 return_label127: while(false);
3412 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
3413 tracehead = trace.prev;
3414 return;
3415 }
3416 void parser_prod___AConcreteClasskind___n_kwclass__eq(val_t self, val_t param0) {
3417 struct trace_t trace = {NULL, NULL, 1072, LOCATE_parser_prod___AConcreteClasskind___n_kwclass__eq};
3418 val_t variable[4];
3419 struct WBT_ **closurevariable = NULL;
3420 trace.prev = tracehead; tracehead = &trace;
3421 trace.file = LOCATE_parser_prod;
3422 /* Register variable[0]: Local variable */
3423 variable[0] = self;
3424 /* Register variable[1]: Local variable */
3425 variable[1] = param0;
3426 /* Register variable[2]: Method return value and escape marker */
3427 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/ = variable[1] /*n*/;
3428 /* Register variable[3]: Result */
3429 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3430 if (UNTAG_Bool(variable[3])) { /*if*/
3431 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
3432 }
3433 return_label129: while(false);
3434 tracehead = trace.prev;
3435 return;
3436 }
3437 void parser_prod___AConcreteClasskind___replace_child(val_t self, val_t param0, val_t param1) {
3438 struct trace_t trace = {NULL, NULL, 1093, LOCATE_parser_prod___AConcreteClasskind___replace_child};
3439 val_t variable[5];
3440 struct WBT_ **closurevariable = NULL;
3441 trace.prev = tracehead; tracehead = &trace;
3442 trace.file = LOCATE_parser_prod;
3443 /* Register variable[0]: Local variable */
3444 variable[0] = self;
3445 /* Register variable[1]: Local variable */
3446 variable[1] = param0;
3447 /* Register variable[2]: Local variable */
3448 variable[2] = param1;
3449 /* Register variable[3]: Method return value and escape marker */
3450 /* Register variable[4]: Result */
3451 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3452 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteClasskind___replace_child, LOCATE_parser_prod, 1095); nit_exit(1);}
3453 /* Register variable[4]: Result */
3454 variable[4] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/;
3455 /* Register variable[4]: Result */
3456 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3457 if (UNTAG_Bool(variable[4])) { /*if*/
3458 /* Register variable[4]: Result */
3459 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3460 if (UNTAG_Bool(variable[4])) { /*if*/
3461 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
3462 /* Register variable[4]: Result */
3463 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
3464 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteClasskind___replace_child, LOCATE_parser_prod, 1099); nit_exit(1);}
3465 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/ = variable[2] /*new_child*/;
3466 } else { /*if*/
3467 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/ = NIT_NULL /*null*/;
3468 }
3469 goto return_label130;
3470 }
3471 return_label130: while(false);
3472 tracehead = trace.prev;
3473 return;
3474 }
3475 void parser_prod___AConcreteClasskind___visit_all(val_t self, val_t param0) {
3476 struct trace_t trace = {NULL, NULL, 1108, LOCATE_parser_prod___AConcreteClasskind___visit_all};
3477 val_t variable[4];
3478 struct WBT_ **closurevariable = NULL;
3479 trace.prev = tracehead; tracehead = &trace;
3480 trace.file = LOCATE_parser_prod;
3481 /* Register variable[0]: Local variable */
3482 variable[0] = self;
3483 /* Register variable[1]: Local variable */
3484 variable[1] = param0;
3485 /* Register variable[2]: Method return value and escape marker */
3486 /* Register variable[3]: Result */
3487 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/;
3488 /* Register variable[3]: Result */
3489 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::==*/)))))));
3490 if (UNTAG_Bool(variable[3])) { /*if*/
3491 /* Register variable[3]: Result */
3492 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/;
3493 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3494 }
3495 return_label131: while(false);
3496 tracehead = trace.prev;
3497 return;
3498 }
3499 void parser_prod___AConcreteClasskind___visit_all_reverse(val_t self, val_t param0) {
3500 struct trace_t trace = {NULL, NULL, 1115, LOCATE_parser_prod___AConcreteClasskind___visit_all_reverse};
3501 val_t variable[4];
3502 struct WBT_ **closurevariable = NULL;
3503 trace.prev = tracehead; tracehead = &trace;
3504 trace.file = LOCATE_parser_prod;
3505 /* Register variable[0]: Local variable */
3506 variable[0] = self;
3507 /* Register variable[1]: Local variable */
3508 variable[1] = param0;
3509 /* Register variable[2]: Method return value and escape marker */
3510 /* Register variable[3]: Result */
3511 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/;
3512 /* Register variable[3]: Result */
3513 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::==*/)))))));
3514 if (UNTAG_Bool(variable[3])) { /*if*/
3515 /* Register variable[3]: Result */
3516 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/;
3517 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3518 }
3519 return_label132: while(false);
3520 tracehead = trace.prev;
3521 return;
3522 }
3523 void parser_prod___AConcreteClasskind___empty_init(val_t self, int* init_table) {
3524 struct trace_t trace = {NULL, NULL, 1080, LOCATE_parser_prod___AConcreteClasskind___empty_init};
3525 val_t variable[2];
3526 struct WBT_ **closurevariable = NULL;
3527 trace.prev = tracehead; tracehead = &trace;
3528 trace.file = LOCATE_parser_prod;
3529 /* Register variable[0]: Local variable */
3530 variable[0] = self;
3531 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
3532 /* Register variable[1]: Method return value and escape marker */
3533 return_label133: while(false);
3534 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
3535 tracehead = trace.prev;
3536 return;
3537 }
3538 void parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t self, val_t param0, int* init_table) {
3539 struct trace_t trace = {NULL, NULL, 1082, LOCATE_parser_prod___AConcreteClasskind___init_aconcreteclasskind};
3540 val_t variable[4];
3541 struct WBT_ **closurevariable = NULL;
3542 trace.prev = tracehead; tracehead = &trace;
3543 trace.file = LOCATE_parser_prod;
3544 /* Register variable[0]: Local variable */
3545 variable[0] = self;
3546 /* Register variable[1]: Local variable */
3547 variable[1] = param0;
3548 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
3549 /* Register variable[2]: Method return value and escape marker */
3550 CALL_parser_prod___AConcreteClasskind___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AConcreteClasskind::empty_init*/;
3551 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[0]) /*AConcreteClasskind::_n_kwclass*/ = variable[1] /*n_kwclass*/;
3552 /* Register variable[3]: Result */
3553 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwclass*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwclass*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwclass*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwclass*/)( variable[1] /*n_kwclass*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3554 if (UNTAG_Bool(variable[3])) { /*if*/
3555 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwclass*/)( variable[1] /*n_kwclass*/, variable[0]) /*PNode::parent=*/;
3556 }
3557 return_label134: while(false);
3558 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
3559 tracehead = trace.prev;
3560 return;
3561 }
3562 void parser_prod___AAbstractClasskind___n_kwabstract__eq(val_t self, val_t param0) {
3563 struct trace_t trace = {NULL, NULL, 1123, LOCATE_parser_prod___AAbstractClasskind___n_kwabstract__eq};
3564 val_t variable[4];
3565 struct WBT_ **closurevariable = NULL;
3566 trace.prev = tracehead; tracehead = &trace;
3567 trace.file = LOCATE_parser_prod;
3568 /* Register variable[0]: Local variable */
3569 variable[0] = self;
3570 /* Register variable[1]: Local variable */
3571 variable[1] = param0;
3572 /* Register variable[2]: Method return value and escape marker */
3573 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/ = variable[1] /*n*/;
3574 /* Register variable[3]: Result */
3575 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3576 if (UNTAG_Bool(variable[3])) { /*if*/
3577 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
3578 }
3579 return_label135: while(false);
3580 tracehead = trace.prev;
3581 return;
3582 }
3583 void parser_prod___AAbstractClasskind___n_kwclass__eq(val_t self, val_t param0) {
3584 struct trace_t trace = {NULL, NULL, 1130, LOCATE_parser_prod___AAbstractClasskind___n_kwclass__eq};
3585 val_t variable[4];
3586 struct WBT_ **closurevariable = NULL;
3587 trace.prev = tracehead; tracehead = &trace;
3588 trace.file = LOCATE_parser_prod;
3589 /* Register variable[0]: Local variable */
3590 variable[0] = self;
3591 /* Register variable[1]: Local variable */
3592 variable[1] = param0;
3593 /* Register variable[2]: Method return value and escape marker */
3594 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/ = variable[1] /*n*/;
3595 /* Register variable[3]: Result */
3596 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3597 if (UNTAG_Bool(variable[3])) { /*if*/
3598 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
3599 }
3600 return_label136: while(false);
3601 tracehead = trace.prev;
3602 return;
3603 }
3604 void parser_prod___AAbstractClasskind___replace_child(val_t self, val_t param0, val_t param1) {
3605 struct trace_t trace = {NULL, NULL, 1156, LOCATE_parser_prod___AAbstractClasskind___replace_child};
3606 val_t variable[5];
3607 struct WBT_ **closurevariable = NULL;
3608 trace.prev = tracehead; tracehead = &trace;
3609 trace.file = LOCATE_parser_prod;
3610 /* Register variable[0]: Local variable */
3611 variable[0] = self;
3612 /* Register variable[1]: Local variable */
3613 variable[1] = param0;
3614 /* Register variable[2]: Local variable */
3615 variable[2] = param1;
3616 /* Register variable[3]: Method return value and escape marker */
3617 /* Register variable[4]: Result */
3618 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3619 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbstractClasskind___replace_child, LOCATE_parser_prod, 1158); nit_exit(1);}
3620 /* Register variable[4]: Result */
3621 variable[4] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/;
3622 /* Register variable[4]: Result */
3623 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3624 if (UNTAG_Bool(variable[4])) { /*if*/
3625 /* Register variable[4]: Result */
3626 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3627 if (UNTAG_Bool(variable[4])) { /*if*/
3628 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
3629 /* Register variable[4]: Result */
3630 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
3631 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbstractClasskind___replace_child, LOCATE_parser_prod, 1162); nit_exit(1);}
3632 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/ = variable[2] /*new_child*/;
3633 } else { /*if*/
3634 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/ = NIT_NULL /*null*/;
3635 }
3636 goto return_label137;
3637 }
3638 /* Register variable[4]: Result */
3639 variable[4] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/;
3640 /* Register variable[4]: Result */
3641 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3642 if (UNTAG_Bool(variable[4])) { /*if*/
3643 /* Register variable[4]: Result */
3644 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3645 if (UNTAG_Bool(variable[4])) { /*if*/
3646 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
3647 /* Register variable[4]: Result */
3648 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
3649 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbstractClasskind___replace_child, LOCATE_parser_prod, 1172); nit_exit(1);}
3650 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/ = variable[2] /*new_child*/;
3651 } else { /*if*/
3652 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/ = NIT_NULL /*null*/;
3653 }
3654 goto return_label137;
3655 }
3656 return_label137: while(false);
3657 tracehead = trace.prev;
3658 return;
3659 }
3660 void parser_prod___AAbstractClasskind___visit_all(val_t self, val_t param0) {
3661 struct trace_t trace = {NULL, NULL, 1181, LOCATE_parser_prod___AAbstractClasskind___visit_all};
3662 val_t variable[4];
3663 struct WBT_ **closurevariable = NULL;
3664 trace.prev = tracehead; tracehead = &trace;
3665 trace.file = LOCATE_parser_prod;
3666 /* Register variable[0]: Local variable */
3667 variable[0] = self;
3668 /* Register variable[1]: Local variable */
3669 variable[1] = param0;
3670 /* Register variable[2]: Method return value and escape marker */
3671 /* Register variable[3]: Result */
3672 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/;
3673 /* Register variable[3]: Result */
3674 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::==*/)))))));
3675 if (UNTAG_Bool(variable[3])) { /*if*/
3676 /* Register variable[3]: Result */
3677 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/;
3678 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3679 }
3680 /* Register variable[3]: Result */
3681 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/;
3682 /* Register variable[3]: Result */
3683 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::==*/)))))));
3684 if (UNTAG_Bool(variable[3])) { /*if*/
3685 /* Register variable[3]: Result */
3686 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/;
3687 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3688 }
3689 return_label138: while(false);
3690 tracehead = trace.prev;
3691 return;
3692 }
3693 void parser_prod___AAbstractClasskind___visit_all_reverse(val_t self, val_t param0) {
3694 struct trace_t trace = {NULL, NULL, 1191, LOCATE_parser_prod___AAbstractClasskind___visit_all_reverse};
3695 val_t variable[4];
3696 struct WBT_ **closurevariable = NULL;
3697 trace.prev = tracehead; tracehead = &trace;
3698 trace.file = LOCATE_parser_prod;
3699 /* Register variable[0]: Local variable */
3700 variable[0] = self;
3701 /* Register variable[1]: Local variable */
3702 variable[1] = param0;
3703 /* Register variable[2]: Method return value and escape marker */
3704 /* Register variable[3]: Result */
3705 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/;
3706 /* Register variable[3]: Result */
3707 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::==*/)))))));
3708 if (UNTAG_Bool(variable[3])) { /*if*/
3709 /* Register variable[3]: Result */
3710 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/;
3711 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3712 }
3713 /* Register variable[3]: Result */
3714 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/;
3715 /* Register variable[3]: Result */
3716 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::==*/)))))));
3717 if (UNTAG_Bool(variable[3])) { /*if*/
3718 /* Register variable[3]: Result */
3719 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/;
3720 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3721 }
3722 return_label139: while(false);
3723 tracehead = trace.prev;
3724 return;
3725 }
3726 void parser_prod___AAbstractClasskind___empty_init(val_t self, int* init_table) {
3727 struct trace_t trace = {NULL, NULL, 1138, LOCATE_parser_prod___AAbstractClasskind___empty_init};
3728 val_t variable[2];
3729 struct WBT_ **closurevariable = NULL;
3730 trace.prev = tracehead; tracehead = &trace;
3731 trace.file = LOCATE_parser_prod;
3732 /* Register variable[0]: Local variable */
3733 variable[0] = self;
3734 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
3735 /* Register variable[1]: Method return value and escape marker */
3736 return_label140: while(false);
3737 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
3738 tracehead = trace.prev;
3739 return;
3740 }
3741 void parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t self, val_t param0, val_t param1, int* init_table) {
3742 struct trace_t trace = {NULL, NULL, 1140, LOCATE_parser_prod___AAbstractClasskind___init_aabstractclasskind};
3743 val_t variable[5];
3744 struct WBT_ **closurevariable = NULL;
3745 trace.prev = tracehead; tracehead = &trace;
3746 trace.file = LOCATE_parser_prod;
3747 /* Register variable[0]: Local variable */
3748 variable[0] = self;
3749 /* Register variable[1]: Local variable */
3750 variable[1] = param0;
3751 /* Register variable[2]: Local variable */
3752 variable[2] = param1;
3753 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
3754 /* Register variable[3]: Method return value and escape marker */
3755 CALL_parser_prod___AAbstractClasskind___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAbstractClasskind::empty_init*/;
3756 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[0]) /*AAbstractClasskind::_n_kwabstract*/ = variable[1] /*n_kwabstract*/;
3757 /* Register variable[4]: Result */
3758 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwabstract*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwabstract*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwabstract*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwabstract*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwabstract*/)( variable[1] /*n_kwabstract*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3759 if (UNTAG_Bool(variable[4])) { /*if*/
3760 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwabstract*/)( variable[1] /*n_kwabstract*/, variable[0]) /*PNode::parent=*/;
3761 }
3762 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[0]) /*AAbstractClasskind::_n_kwclass*/ = variable[2] /*n_kwclass*/;
3763 /* Register variable[4]: Result */
3764 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwclass*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwclass*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwclass*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwclass*/)( variable[2] /*n_kwclass*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3765 if (UNTAG_Bool(variable[4])) { /*if*/
3766 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwclass*/)( variable[2] /*n_kwclass*/, variable[0]) /*PNode::parent=*/;
3767 }
3768 return_label141: while(false);
3769 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
3770 tracehead = trace.prev;
3771 return;
3772 }
3773 void parser_prod___AInterfaceClasskind___n_kwinterface__eq(val_t self, val_t param0) {
3774 struct trace_t trace = {NULL, NULL, 1202, LOCATE_parser_prod___AInterfaceClasskind___n_kwinterface__eq};
3775 val_t variable[4];
3776 struct WBT_ **closurevariable = NULL;
3777 trace.prev = tracehead; tracehead = &trace;
3778 trace.file = LOCATE_parser_prod;
3779 /* Register variable[0]: Local variable */
3780 variable[0] = self;
3781 /* Register variable[1]: Local variable */
3782 variable[1] = param0;
3783 /* Register variable[2]: Method return value and escape marker */
3784 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/ = variable[1] /*n*/;
3785 /* Register variable[3]: Result */
3786 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3787 if (UNTAG_Bool(variable[3])) { /*if*/
3788 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
3789 }
3790 return_label142: while(false);
3791 tracehead = trace.prev;
3792 return;
3793 }
3794 void parser_prod___AInterfaceClasskind___replace_child(val_t self, val_t param0, val_t param1) {
3795 struct trace_t trace = {NULL, NULL, 1223, LOCATE_parser_prod___AInterfaceClasskind___replace_child};
3796 val_t variable[5];
3797 struct WBT_ **closurevariable = NULL;
3798 trace.prev = tracehead; tracehead = &trace;
3799 trace.file = LOCATE_parser_prod;
3800 /* Register variable[0]: Local variable */
3801 variable[0] = self;
3802 /* Register variable[1]: Local variable */
3803 variable[1] = param0;
3804 /* Register variable[2]: Local variable */
3805 variable[2] = param1;
3806 /* Register variable[3]: Method return value and escape marker */
3807 /* Register variable[4]: Result */
3808 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3809 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInterfaceClasskind___replace_child, LOCATE_parser_prod, 1225); nit_exit(1);}
3810 /* Register variable[4]: Result */
3811 variable[4] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/;
3812 /* Register variable[4]: Result */
3813 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3814 if (UNTAG_Bool(variable[4])) { /*if*/
3815 /* Register variable[4]: Result */
3816 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3817 if (UNTAG_Bool(variable[4])) { /*if*/
3818 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
3819 /* Register variable[4]: Result */
3820 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
3821 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInterfaceClasskind___replace_child, LOCATE_parser_prod, 1229); nit_exit(1);}
3822 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/ = variable[2] /*new_child*/;
3823 } else { /*if*/
3824 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/ = NIT_NULL /*null*/;
3825 }
3826 goto return_label143;
3827 }
3828 return_label143: while(false);
3829 tracehead = trace.prev;
3830 return;
3831 }
3832 void parser_prod___AInterfaceClasskind___visit_all(val_t self, val_t param0) {
3833 struct trace_t trace = {NULL, NULL, 1238, LOCATE_parser_prod___AInterfaceClasskind___visit_all};
3834 val_t variable[4];
3835 struct WBT_ **closurevariable = NULL;
3836 trace.prev = tracehead; tracehead = &trace;
3837 trace.file = LOCATE_parser_prod;
3838 /* Register variable[0]: Local variable */
3839 variable[0] = self;
3840 /* Register variable[1]: Local variable */
3841 variable[1] = param0;
3842 /* Register variable[2]: Method return value and escape marker */
3843 /* Register variable[3]: Result */
3844 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/;
3845 /* Register variable[3]: Result */
3846 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::==*/)))))));
3847 if (UNTAG_Bool(variable[3])) { /*if*/
3848 /* Register variable[3]: Result */
3849 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/;
3850 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3851 }
3852 return_label144: while(false);
3853 tracehead = trace.prev;
3854 return;
3855 }
3856 void parser_prod___AInterfaceClasskind___visit_all_reverse(val_t self, val_t param0) {
3857 struct trace_t trace = {NULL, NULL, 1245, LOCATE_parser_prod___AInterfaceClasskind___visit_all_reverse};
3858 val_t variable[4];
3859 struct WBT_ **closurevariable = NULL;
3860 trace.prev = tracehead; tracehead = &trace;
3861 trace.file = LOCATE_parser_prod;
3862 /* Register variable[0]: Local variable */
3863 variable[0] = self;
3864 /* Register variable[1]: Local variable */
3865 variable[1] = param0;
3866 /* Register variable[2]: Method return value and escape marker */
3867 /* Register variable[3]: Result */
3868 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/;
3869 /* Register variable[3]: Result */
3870 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::==*/)))))));
3871 if (UNTAG_Bool(variable[3])) { /*if*/
3872 /* Register variable[3]: Result */
3873 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/;
3874 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3875 }
3876 return_label145: while(false);
3877 tracehead = trace.prev;
3878 return;
3879 }
3880 void parser_prod___AInterfaceClasskind___empty_init(val_t self, int* init_table) {
3881 struct trace_t trace = {NULL, NULL, 1210, LOCATE_parser_prod___AInterfaceClasskind___empty_init};
3882 val_t variable[2];
3883 struct WBT_ **closurevariable = NULL;
3884 trace.prev = tracehead; tracehead = &trace;
3885 trace.file = LOCATE_parser_prod;
3886 /* Register variable[0]: Local variable */
3887 variable[0] = self;
3888 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
3889 /* Register variable[1]: Method return value and escape marker */
3890 return_label146: while(false);
3891 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
3892 tracehead = trace.prev;
3893 return;
3894 }
3895 void parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t self, val_t param0, int* init_table) {
3896 struct trace_t trace = {NULL, NULL, 1212, LOCATE_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind};
3897 val_t variable[4];
3898 struct WBT_ **closurevariable = NULL;
3899 trace.prev = tracehead; tracehead = &trace;
3900 trace.file = LOCATE_parser_prod;
3901 /* Register variable[0]: Local variable */
3902 variable[0] = self;
3903 /* Register variable[1]: Local variable */
3904 variable[1] = param0;
3905 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
3906 /* Register variable[2]: Method return value and escape marker */
3907 CALL_parser_prod___AInterfaceClasskind___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AInterfaceClasskind::empty_init*/;
3908 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[0]) /*AInterfaceClasskind::_n_kwinterface*/ = variable[1] /*n_kwinterface*/;
3909 /* Register variable[3]: Result */
3910 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwinterface*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwinterface*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwinterface*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwinterface*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwinterface*/)( variable[1] /*n_kwinterface*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3911 if (UNTAG_Bool(variable[3])) { /*if*/
3912 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwinterface*/)( variable[1] /*n_kwinterface*/, variable[0]) /*PNode::parent=*/;
3913 }
3914 return_label147: while(false);
3915 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
3916 tracehead = trace.prev;
3917 return;
3918 }
3919 void parser_prod___AUniversalClasskind___n_kwuniversal__eq(val_t self, val_t param0) {
3920 struct trace_t trace = {NULL, NULL, 1253, LOCATE_parser_prod___AUniversalClasskind___n_kwuniversal__eq};
3921 val_t variable[4];
3922 struct WBT_ **closurevariable = NULL;
3923 trace.prev = tracehead; tracehead = &trace;
3924 trace.file = LOCATE_parser_prod;
3925 /* Register variable[0]: Local variable */
3926 variable[0] = self;
3927 /* Register variable[1]: Local variable */
3928 variable[1] = param0;
3929 /* Register variable[2]: Method return value and escape marker */
3930 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/ = variable[1] /*n*/;
3931 /* Register variable[3]: Result */
3932 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3933 if (UNTAG_Bool(variable[3])) { /*if*/
3934 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
3935 }
3936 return_label148: while(false);
3937 tracehead = trace.prev;
3938 return;
3939 }
3940 void parser_prod___AUniversalClasskind___replace_child(val_t self, val_t param0, val_t param1) {
3941 struct trace_t trace = {NULL, NULL, 1274, LOCATE_parser_prod___AUniversalClasskind___replace_child};
3942 val_t variable[5];
3943 struct WBT_ **closurevariable = NULL;
3944 trace.prev = tracehead; tracehead = &trace;
3945 trace.file = LOCATE_parser_prod;
3946 /* Register variable[0]: Local variable */
3947 variable[0] = self;
3948 /* Register variable[1]: Local variable */
3949 variable[1] = param0;
3950 /* Register variable[2]: Local variable */
3951 variable[2] = param1;
3952 /* Register variable[3]: Method return value and escape marker */
3953 /* Register variable[4]: Result */
3954 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3955 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUniversalClasskind___replace_child, LOCATE_parser_prod, 1276); nit_exit(1);}
3956 /* Register variable[4]: Result */
3957 variable[4] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/;
3958 /* Register variable[4]: Result */
3959 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3960 if (UNTAG_Bool(variable[4])) { /*if*/
3961 /* Register variable[4]: Result */
3962 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3963 if (UNTAG_Bool(variable[4])) { /*if*/
3964 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
3965 /* Register variable[4]: Result */
3966 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwuniversal, ID_TKwuniversal)) /*cast TKwuniversal*/;
3967 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUniversalClasskind___replace_child, LOCATE_parser_prod, 1280); nit_exit(1);}
3968 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/ = variable[2] /*new_child*/;
3969 } else { /*if*/
3970 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/ = NIT_NULL /*null*/;
3971 }
3972 goto return_label149;
3973 }
3974 return_label149: while(false);
3975 tracehead = trace.prev;
3976 return;
3977 }
3978 void parser_prod___AUniversalClasskind___visit_all(val_t self, val_t param0) {
3979 struct trace_t trace = {NULL, NULL, 1289, LOCATE_parser_prod___AUniversalClasskind___visit_all};
3980 val_t variable[4];
3981 struct WBT_ **closurevariable = NULL;
3982 trace.prev = tracehead; tracehead = &trace;
3983 trace.file = LOCATE_parser_prod;
3984 /* Register variable[0]: Local variable */
3985 variable[0] = self;
3986 /* Register variable[1]: Local variable */
3987 variable[1] = param0;
3988 /* Register variable[2]: Method return value and escape marker */
3989 /* Register variable[3]: Result */
3990 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/;
3991 /* Register variable[3]: Result */
3992 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::==*/)))))));
3993 if (UNTAG_Bool(variable[3])) { /*if*/
3994 /* Register variable[3]: Result */
3995 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/;
3996 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3997 }
3998 return_label150: while(false);
3999 tracehead = trace.prev;
4000 return;
4001 }
4002 void parser_prod___AUniversalClasskind___visit_all_reverse(val_t self, val_t param0) {
4003 struct trace_t trace = {NULL, NULL, 1296, LOCATE_parser_prod___AUniversalClasskind___visit_all_reverse};
4004 val_t variable[4];
4005 struct WBT_ **closurevariable = NULL;
4006 trace.prev = tracehead; tracehead = &trace;
4007 trace.file = LOCATE_parser_prod;
4008 /* Register variable[0]: Local variable */
4009 variable[0] = self;
4010 /* Register variable[1]: Local variable */
4011 variable[1] = param0;
4012 /* Register variable[2]: Method return value and escape marker */
4013 /* Register variable[3]: Result */
4014 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/;
4015 /* Register variable[3]: Result */
4016 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::==*/)))))));
4017 if (UNTAG_Bool(variable[3])) { /*if*/
4018 /* Register variable[3]: Result */
4019 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/;
4020 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4021 }
4022 return_label151: while(false);
4023 tracehead = trace.prev;
4024 return;
4025 }
4026 void parser_prod___AUniversalClasskind___empty_init(val_t self, int* init_table) {
4027 struct trace_t trace = {NULL, NULL, 1261, LOCATE_parser_prod___AUniversalClasskind___empty_init};
4028 val_t variable[2];
4029 struct WBT_ **closurevariable = NULL;
4030 trace.prev = tracehead; tracehead = &trace;
4031 trace.file = LOCATE_parser_prod;
4032 /* Register variable[0]: Local variable */
4033 variable[0] = self;
4034 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
4035 /* Register variable[1]: Method return value and escape marker */
4036 return_label152: while(false);
4037 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
4038 tracehead = trace.prev;
4039 return;
4040 }
4041 void parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t self, val_t param0, int* init_table) {
4042 struct trace_t trace = {NULL, NULL, 1263, LOCATE_parser_prod___AUniversalClasskind___init_auniversalclasskind};
4043 val_t variable[4];
4044 struct WBT_ **closurevariable = NULL;
4045 trace.prev = tracehead; tracehead = &trace;
4046 trace.file = LOCATE_parser_prod;
4047 /* Register variable[0]: Local variable */
4048 variable[0] = self;
4049 /* Register variable[1]: Local variable */
4050 variable[1] = param0;
4051 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
4052 /* Register variable[2]: Method return value and escape marker */
4053 CALL_parser_prod___AUniversalClasskind___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AUniversalClasskind::empty_init*/;
4054 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[0]) /*AUniversalClasskind::_n_kwuniversal*/ = variable[1] /*n_kwuniversal*/;
4055 /* Register variable[3]: Result */
4056 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwuniversal*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwuniversal*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwuniversal*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwuniversal*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwuniversal*/)( variable[1] /*n_kwuniversal*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4057 if (UNTAG_Bool(variable[3])) { /*if*/
4058 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwuniversal*/)( variable[1] /*n_kwuniversal*/, variable[0]) /*PNode::parent=*/;
4059 }
4060 return_label153: while(false);
4061 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
4062 tracehead = trace.prev;
4063 return;
4064 }
4065 void parser_prod___AFormaldef___n_id__eq(val_t self, val_t param0) {
4066 struct trace_t trace = {NULL, NULL, 1304, LOCATE_parser_prod___AFormaldef___n_id__eq};
4067 val_t variable[4];
4068 struct WBT_ **closurevariable = NULL;
4069 trace.prev = tracehead; tracehead = &trace;
4070 trace.file = LOCATE_parser_prod;
4071 /* Register variable[0]: Local variable */
4072 variable[0] = self;
4073 /* Register variable[1]: Local variable */
4074 variable[1] = param0;
4075 /* Register variable[2]: Method return value and escape marker */
4076 ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/ = variable[1] /*n*/;
4077 /* Register variable[3]: Result */
4078 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4079 if (UNTAG_Bool(variable[3])) { /*if*/
4080 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4081 }
4082 return_label154: while(false);
4083 tracehead = trace.prev;
4084 return;
4085 }
4086 void parser_prod___AFormaldef___n_type__eq(val_t self, val_t param0) {
4087 struct trace_t trace = {NULL, NULL, 1311, LOCATE_parser_prod___AFormaldef___n_type__eq};
4088 val_t variable[4];
4089 struct WBT_ **closurevariable = NULL;
4090 trace.prev = tracehead; tracehead = &trace;
4091 trace.file = LOCATE_parser_prod;
4092 /* Register variable[0]: Local variable */
4093 variable[0] = self;
4094 /* Register variable[1]: Local variable */
4095 variable[1] = param0;
4096 /* Register variable[2]: Method return value and escape marker */
4097 ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/ = variable[1] /*n*/;
4098 /* Register variable[3]: Result */
4099 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4100 if (UNTAG_Bool(variable[3])) { /*if*/
4101 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4102 }
4103 return_label155: while(false);
4104 tracehead = trace.prev;
4105 return;
4106 }
4107 void parser_prod___AFormaldef___replace_child(val_t self, val_t param0, val_t param1) {
4108 struct trace_t trace = {NULL, NULL, 1337, LOCATE_parser_prod___AFormaldef___replace_child};
4109 val_t variable[5];
4110 struct WBT_ **closurevariable = NULL;
4111 trace.prev = tracehead; tracehead = &trace;
4112 trace.file = LOCATE_parser_prod;
4113 /* Register variable[0]: Local variable */
4114 variable[0] = self;
4115 /* Register variable[1]: Local variable */
4116 variable[1] = param0;
4117 /* Register variable[2]: Local variable */
4118 variable[2] = param1;
4119 /* Register variable[3]: Method return value and escape marker */
4120 /* Register variable[4]: Result */
4121 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4122 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFormaldef___replace_child, LOCATE_parser_prod, 1339); nit_exit(1);}
4123 /* Register variable[4]: Result */
4124 variable[4] = ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/;
4125 /* Register variable[4]: Result */
4126 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4127 if (UNTAG_Bool(variable[4])) { /*if*/
4128 /* Register variable[4]: Result */
4129 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4130 if (UNTAG_Bool(variable[4])) { /*if*/
4131 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4132 /* Register variable[4]: Result */
4133 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
4134 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFormaldef___replace_child, LOCATE_parser_prod, 1343); nit_exit(1);}
4135 ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/ = variable[2] /*new_child*/;
4136 } else { /*if*/
4137 ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/ = NIT_NULL /*null*/;
4138 }
4139 goto return_label156;
4140 }
4141 /* Register variable[4]: Result */
4142 variable[4] = ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/;
4143 /* Register variable[4]: Result */
4144 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4145 if (UNTAG_Bool(variable[4])) { /*if*/
4146 /* Register variable[4]: Result */
4147 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4148 if (UNTAG_Bool(variable[4])) { /*if*/
4149 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4150 /* Register variable[4]: Result */
4151 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
4152 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFormaldef___replace_child, LOCATE_parser_prod, 1353); nit_exit(1);}
4153 ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/ = variable[2] /*new_child*/;
4154 } else { /*if*/
4155 ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/ = NIT_NULL /*null*/;
4156 }
4157 goto return_label156;
4158 }
4159 return_label156: while(false);
4160 tracehead = trace.prev;
4161 return;
4162 }
4163 void parser_prod___AFormaldef___visit_all(val_t self, val_t param0) {
4164 struct trace_t trace = {NULL, NULL, 1362, LOCATE_parser_prod___AFormaldef___visit_all};
4165 val_t variable[4];
4166 struct WBT_ **closurevariable = NULL;
4167 trace.prev = tracehead; tracehead = &trace;
4168 trace.file = LOCATE_parser_prod;
4169 /* Register variable[0]: Local variable */
4170 variable[0] = self;
4171 /* Register variable[1]: Local variable */
4172 variable[1] = param0;
4173 /* Register variable[2]: Method return value and escape marker */
4174 /* Register variable[3]: Result */
4175 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/;
4176 /* Register variable[3]: Result */
4177 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::==*/)))))));
4178 if (UNTAG_Bool(variable[3])) { /*if*/
4179 /* Register variable[3]: Result */
4180 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/;
4181 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4182 }
4183 /* Register variable[3]: Result */
4184 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/;
4185 /* Register variable[3]: Result */
4186 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::==*/)))))));
4187 if (UNTAG_Bool(variable[3])) { /*if*/
4188 /* Register variable[3]: Result */
4189 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/;
4190 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4191 }
4192 return_label157: while(false);
4193 tracehead = trace.prev;
4194 return;
4195 }
4196 void parser_prod___AFormaldef___visit_all_reverse(val_t self, val_t param0) {
4197 struct trace_t trace = {NULL, NULL, 1372, LOCATE_parser_prod___AFormaldef___visit_all_reverse};
4198 val_t variable[4];
4199 struct WBT_ **closurevariable = NULL;
4200 trace.prev = tracehead; tracehead = &trace;
4201 trace.file = LOCATE_parser_prod;
4202 /* Register variable[0]: Local variable */
4203 variable[0] = self;
4204 /* Register variable[1]: Local variable */
4205 variable[1] = param0;
4206 /* Register variable[2]: Method return value and escape marker */
4207 /* Register variable[3]: Result */
4208 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/;
4209 /* Register variable[3]: Result */
4210 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::==*/)))))));
4211 if (UNTAG_Bool(variable[3])) { /*if*/
4212 /* Register variable[3]: Result */
4213 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/;
4214 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4215 }
4216 /* Register variable[3]: Result */
4217 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/;
4218 /* Register variable[3]: Result */
4219 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::==*/)))))));
4220 if (UNTAG_Bool(variable[3])) { /*if*/
4221 /* Register variable[3]: Result */
4222 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/;
4223 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4224 }
4225 return_label158: while(false);
4226 tracehead = trace.prev;
4227 return;
4228 }
4229 void parser_prod___AFormaldef___empty_init(val_t self, int* init_table) {
4230 struct trace_t trace = {NULL, NULL, 1319, LOCATE_parser_prod___AFormaldef___empty_init};
4231 val_t variable[2];
4232 struct WBT_ **closurevariable = NULL;
4233 trace.prev = tracehead; tracehead = &trace;
4234 trace.file = LOCATE_parser_prod;
4235 /* Register variable[0]: Local variable */
4236 variable[0] = self;
4237 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i]) return;
4238 /* Register variable[1]: Method return value and escape marker */
4239 return_label159: while(false);
4240 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
4241 tracehead = trace.prev;
4242 return;
4243 }
4244 void parser_prod___AFormaldef___init_aformaldef(val_t self, val_t param0, val_t param1, int* init_table) {
4245 struct trace_t trace = {NULL, NULL, 1321, LOCATE_parser_prod___AFormaldef___init_aformaldef};
4246 val_t variable[5];
4247 struct WBT_ **closurevariable = NULL;
4248 trace.prev = tracehead; tracehead = &trace;
4249 trace.file = LOCATE_parser_prod;
4250 /* Register variable[0]: Local variable */
4251 variable[0] = self;
4252 /* Register variable[1]: Local variable */
4253 variable[1] = param0;
4254 /* Register variable[2]: Local variable */
4255 variable[2] = param1;
4256 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i]) return;
4257 /* Register variable[3]: Method return value and escape marker */
4258 CALL_parser_prod___AFormaldef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AFormaldef::empty_init*/;
4259 ATTR_parser_nodes___AFormaldef____n_id(variable[0]) /*AFormaldef::_n_id*/ = variable[1] /*n_id*/;
4260 /* Register variable[4]: Result */
4261 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4262 if (UNTAG_Bool(variable[4])) { /*if*/
4263 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
4264 }
4265 ATTR_parser_nodes___AFormaldef____n_type(variable[0]) /*AFormaldef::_n_type*/ = variable[2] /*n_type*/;
4266 /* Register variable[4]: Result */
4267 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ == NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4268 if (UNTAG_Bool(variable[4])) { /*if*/
4269 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[0]) /*PNode::parent=*/;
4270 }
4271 return_label160: while(false);
4272 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
4273 tracehead = trace.prev;
4274 return;
4275 }
4276 void parser_prod___ASuperclass___n_kwspecial__eq(val_t self, val_t param0) {
4277 struct trace_t trace = {NULL, NULL, 1383, LOCATE_parser_prod___ASuperclass___n_kwspecial__eq};
4278 val_t variable[4];
4279 struct WBT_ **closurevariable = NULL;
4280 trace.prev = tracehead; tracehead = &trace;
4281 trace.file = LOCATE_parser_prod;
4282 /* Register variable[0]: Local variable */
4283 variable[0] = self;
4284 /* Register variable[1]: Local variable */
4285 variable[1] = param0;
4286 /* Register variable[2]: Method return value and escape marker */
4287 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/ = variable[1] /*n*/;
4288 /* Register variable[3]: Result */
4289 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4290 if (UNTAG_Bool(variable[3])) { /*if*/
4291 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4292 }
4293 return_label161: while(false);
4294 tracehead = trace.prev;
4295 return;
4296 }
4297 void parser_prod___ASuperclass___n_type__eq(val_t self, val_t param0) {
4298 struct trace_t trace = {NULL, NULL, 1390, LOCATE_parser_prod___ASuperclass___n_type__eq};
4299 val_t variable[4];
4300 struct WBT_ **closurevariable = NULL;
4301 trace.prev = tracehead; tracehead = &trace;
4302 trace.file = LOCATE_parser_prod;
4303 /* Register variable[0]: Local variable */
4304 variable[0] = self;
4305 /* Register variable[1]: Local variable */
4306 variable[1] = param0;
4307 /* Register variable[2]: Method return value and escape marker */
4308 ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/ = variable[1] /*n*/;
4309 /* Register variable[3]: Result */
4310 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4311 if (UNTAG_Bool(variable[3])) { /*if*/
4312 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4313 }
4314 return_label162: while(false);
4315 tracehead = trace.prev;
4316 return;
4317 }
4318 void parser_prod___ASuperclass___replace_child(val_t self, val_t param0, val_t param1) {
4319 struct trace_t trace = {NULL, NULL, 1416, LOCATE_parser_prod___ASuperclass___replace_child};
4320 val_t variable[5];
4321 struct WBT_ **closurevariable = NULL;
4322 trace.prev = tracehead; tracehead = &trace;
4323 trace.file = LOCATE_parser_prod;
4324 /* Register variable[0]: Local variable */
4325 variable[0] = self;
4326 /* Register variable[1]: Local variable */
4327 variable[1] = param0;
4328 /* Register variable[2]: Local variable */
4329 variable[2] = param1;
4330 /* Register variable[3]: Method return value and escape marker */
4331 /* Register variable[4]: Result */
4332 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4333 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperclass___replace_child, LOCATE_parser_prod, 1418); nit_exit(1);}
4334 /* Register variable[4]: Result */
4335 variable[4] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/;
4336 /* Register variable[4]: Result */
4337 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4338 if (UNTAG_Bool(variable[4])) { /*if*/
4339 /* Register variable[4]: Result */
4340 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4341 if (UNTAG_Bool(variable[4])) { /*if*/
4342 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4343 /* Register variable[4]: Result */
4344 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
4345 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperclass___replace_child, LOCATE_parser_prod, 1422); nit_exit(1);}
4346 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/ = variable[2] /*new_child*/;
4347 } else { /*if*/
4348 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/ = NIT_NULL /*null*/;
4349 }
4350 goto return_label163;
4351 }
4352 /* Register variable[4]: Result */
4353 variable[4] = ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/;
4354 /* Register variable[4]: Result */
4355 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4356 if (UNTAG_Bool(variable[4])) { /*if*/
4357 /* Register variable[4]: Result */
4358 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4359 if (UNTAG_Bool(variable[4])) { /*if*/
4360 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4361 /* Register variable[4]: Result */
4362 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
4363 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperclass___replace_child, LOCATE_parser_prod, 1432); nit_exit(1);}
4364 ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/ = variable[2] /*new_child*/;
4365 } else { /*if*/
4366 ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/ = NIT_NULL /*null*/;
4367 }
4368 goto return_label163;
4369 }
4370 return_label163: while(false);
4371 tracehead = trace.prev;
4372 return;
4373 }
4374 void parser_prod___ASuperclass___visit_all(val_t self, val_t param0) {
4375 struct trace_t trace = {NULL, NULL, 1441, LOCATE_parser_prod___ASuperclass___visit_all};
4376 val_t variable[4];
4377 struct WBT_ **closurevariable = NULL;
4378 trace.prev = tracehead; tracehead = &trace;
4379 trace.file = LOCATE_parser_prod;
4380 /* Register variable[0]: Local variable */
4381 variable[0] = self;
4382 /* Register variable[1]: Local variable */
4383 variable[1] = param0;
4384 /* Register variable[2]: Method return value and escape marker */
4385 /* Register variable[3]: Result */
4386 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/;
4387 /* Register variable[3]: Result */
4388 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::==*/)))))));
4389 if (UNTAG_Bool(variable[3])) { /*if*/
4390 /* Register variable[3]: Result */
4391 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/;
4392 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4393 }
4394 /* Register variable[3]: Result */
4395 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/;
4396 /* Register variable[3]: Result */
4397 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::==*/)))))));
4398 if (UNTAG_Bool(variable[3])) { /*if*/
4399 /* Register variable[3]: Result */
4400 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/;
4401 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4402 }
4403 return_label164: while(false);
4404 tracehead = trace.prev;
4405 return;
4406 }
4407 void parser_prod___ASuperclass___visit_all_reverse(val_t self, val_t param0) {
4408 struct trace_t trace = {NULL, NULL, 1451, LOCATE_parser_prod___ASuperclass___visit_all_reverse};
4409 val_t variable[4];
4410 struct WBT_ **closurevariable = NULL;
4411 trace.prev = tracehead; tracehead = &trace;
4412 trace.file = LOCATE_parser_prod;
4413 /* Register variable[0]: Local variable */
4414 variable[0] = self;
4415 /* Register variable[1]: Local variable */
4416 variable[1] = param0;
4417 /* Register variable[2]: Method return value and escape marker */
4418 /* Register variable[3]: Result */
4419 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/;
4420 /* Register variable[3]: Result */
4421 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::==*/)))))));
4422 if (UNTAG_Bool(variable[3])) { /*if*/
4423 /* Register variable[3]: Result */
4424 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/;
4425 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4426 }
4427 /* Register variable[3]: Result */
4428 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/;
4429 /* Register variable[3]: Result */
4430 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::==*/)))))));
4431 if (UNTAG_Bool(variable[3])) { /*if*/
4432 /* Register variable[3]: Result */
4433 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/;
4434 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4435 }
4436 return_label165: while(false);
4437 tracehead = trace.prev;
4438 return;
4439 }
4440 void parser_prod___ASuperclass___empty_init(val_t self, int* init_table) {
4441 struct trace_t trace = {NULL, NULL, 1398, LOCATE_parser_prod___ASuperclass___empty_init};
4442 val_t variable[2];
4443 struct WBT_ **closurevariable = NULL;
4444 trace.prev = tracehead; tracehead = &trace;
4445 trace.file = LOCATE_parser_prod;
4446 /* Register variable[0]: Local variable */
4447 variable[0] = self;
4448 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i]) return;
4449 /* Register variable[1]: Method return value and escape marker */
4450 return_label166: while(false);
4451 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
4452 tracehead = trace.prev;
4453 return;
4454 }
4455 void parser_prod___ASuperclass___init_asuperclass(val_t self, val_t param0, val_t param1, int* init_table) {
4456 struct trace_t trace = {NULL, NULL, 1400, LOCATE_parser_prod___ASuperclass___init_asuperclass};
4457 val_t variable[5];
4458 struct WBT_ **closurevariable = NULL;
4459 trace.prev = tracehead; tracehead = &trace;
4460 trace.file = LOCATE_parser_prod;
4461 /* Register variable[0]: Local variable */
4462 variable[0] = self;
4463 /* Register variable[1]: Local variable */
4464 variable[1] = param0;
4465 /* Register variable[2]: Local variable */
4466 variable[2] = param1;
4467 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i]) return;
4468 /* Register variable[3]: Method return value and escape marker */
4469 CALL_parser_prod___ASuperclass___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASuperclass::empty_init*/;
4470 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[0]) /*ASuperclass::_n_kwspecial*/ = variable[1] /*n_kwspecial*/;
4471 /* Register variable[4]: Result */
4472 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwspecial*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwspecial*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwspecial*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwspecial*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwspecial*/)( variable[1] /*n_kwspecial*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4473 if (UNTAG_Bool(variable[4])) { /*if*/
4474 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwspecial*/)( variable[1] /*n_kwspecial*/, variable[0]) /*PNode::parent=*/;
4475 }
4476 ATTR_parser_nodes___ASuperclass____n_type(variable[0]) /*ASuperclass::_n_type*/ = variable[2] /*n_type*/;
4477 /* Register variable[4]: Result */
4478 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ == NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4479 if (UNTAG_Bool(variable[4])) { /*if*/
4480 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[0]) /*PNode::parent=*/;
4481 }
4482 return_label167: while(false);
4483 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
4484 tracehead = trace.prev;
4485 return;
4486 }
4487 void parser_prod___AAttrPropdef___n_doc__eq(val_t self, val_t param0) {
4488 struct trace_t trace = {NULL, NULL, 1462, LOCATE_parser_prod___AAttrPropdef___n_doc__eq};
4489 val_t variable[4];
4490 struct WBT_ **closurevariable = NULL;
4491 trace.prev = tracehead; tracehead = &trace;
4492 trace.file = LOCATE_parser_prod;
4493 /* Register variable[0]: Local variable */
4494 variable[0] = self;
4495 /* Register variable[1]: Local variable */
4496 variable[1] = param0;
4497 /* Register variable[2]: Method return value and escape marker */
4498 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
4499 /* Register variable[3]: Result */
4500 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4501 if (UNTAG_Bool(variable[3])) { /*if*/
4502 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4503 }
4504 return_label168: while(false);
4505 tracehead = trace.prev;
4506 return;
4507 }
4508 void parser_prod___AAttrPropdef___n_kwredef__eq(val_t self, val_t param0) {
4509 struct trace_t trace = {NULL, NULL, 1483, LOCATE_parser_prod___AAttrPropdef___n_kwredef__eq};
4510 val_t variable[4];
4511 struct WBT_ **closurevariable = NULL;
4512 trace.prev = tracehead; tracehead = &trace;
4513 trace.file = LOCATE_parser_prod;
4514 /* Register variable[0]: Local variable */
4515 variable[0] = self;
4516 /* Register variable[1]: Local variable */
4517 variable[1] = param0;
4518 /* Register variable[2]: Method return value and escape marker */
4519 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/ = variable[1] /*n*/;
4520 /* Register variable[3]: Result */
4521 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4522 if (UNTAG_Bool(variable[3])) { /*if*/
4523 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4524 }
4525 return_label169: while(false);
4526 tracehead = trace.prev;
4527 return;
4528 }
4529 void parser_prod___AAttrPropdef___n_visibility__eq(val_t self, val_t param0) {
4530 struct trace_t trace = {NULL, NULL, 1490, LOCATE_parser_prod___AAttrPropdef___n_visibility__eq};
4531 val_t variable[4];
4532 struct WBT_ **closurevariable = NULL;
4533 trace.prev = tracehead; tracehead = &trace;
4534 trace.file = LOCATE_parser_prod;
4535 /* Register variable[0]: Local variable */
4536 variable[0] = self;
4537 /* Register variable[1]: Local variable */
4538 variable[1] = param0;
4539 /* Register variable[2]: Method return value and escape marker */
4540 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/ = variable[1] /*n*/;
4541 /* Register variable[3]: Result */
4542 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4543 if (UNTAG_Bool(variable[3])) { /*if*/
4544 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4545 }
4546 return_label170: while(false);
4547 tracehead = trace.prev;
4548 return;
4549 }
4550 void parser_prod___AAttrPropdef___n_kwattr__eq(val_t self, val_t param0) {
4551 struct trace_t trace = {NULL, NULL, 1497, LOCATE_parser_prod___AAttrPropdef___n_kwattr__eq};
4552 val_t variable[4];
4553 struct WBT_ **closurevariable = NULL;
4554 trace.prev = tracehead; tracehead = &trace;
4555 trace.file = LOCATE_parser_prod;
4556 /* Register variable[0]: Local variable */
4557 variable[0] = self;
4558 /* Register variable[1]: Local variable */
4559 variable[1] = param0;
4560 /* Register variable[2]: Method return value and escape marker */
4561 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/ = variable[1] /*n*/;
4562 /* Register variable[3]: Result */
4563 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4564 if (UNTAG_Bool(variable[3])) { /*if*/
4565 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4566 }
4567 return_label171: while(false);
4568 tracehead = trace.prev;
4569 return;
4570 }
4571 void parser_prod___AAttrPropdef___n_kwvar__eq(val_t self, val_t param0) {
4572 struct trace_t trace = {NULL, NULL, 1504, LOCATE_parser_prod___AAttrPropdef___n_kwvar__eq};
4573 val_t variable[4];
4574 struct WBT_ **closurevariable = NULL;
4575 trace.prev = tracehead; tracehead = &trace;
4576 trace.file = LOCATE_parser_prod;
4577 /* Register variable[0]: Local variable */
4578 variable[0] = self;
4579 /* Register variable[1]: Local variable */
4580 variable[1] = param0;
4581 /* Register variable[2]: Method return value and escape marker */
4582 ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/ = variable[1] /*n*/;
4583 /* Register variable[3]: Result */
4584 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4585 if (UNTAG_Bool(variable[3])) { /*if*/
4586 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4587 }
4588 return_label172: while(false);
4589 tracehead = trace.prev;
4590 return;
4591 }
4592 void parser_prod___AAttrPropdef___n_id__eq(val_t self, val_t param0) {
4593 struct trace_t trace = {NULL, NULL, 1511, LOCATE_parser_prod___AAttrPropdef___n_id__eq};
4594 val_t variable[4];
4595 struct WBT_ **closurevariable = NULL;
4596 trace.prev = tracehead; tracehead = &trace;
4597 trace.file = LOCATE_parser_prod;
4598 /* Register variable[0]: Local variable */
4599 variable[0] = self;
4600 /* Register variable[1]: Local variable */
4601 variable[1] = param0;
4602 /* Register variable[2]: Method return value and escape marker */
4603 ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/ = variable[1] /*n*/;
4604 /* Register variable[3]: Result */
4605 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4606 if (UNTAG_Bool(variable[3])) { /*if*/
4607 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4608 }
4609 return_label173: while(false);
4610 tracehead = trace.prev;
4611 return;
4612 }
4613 void parser_prod___AAttrPropdef___n_type__eq(val_t self, val_t param0) {
4614 struct trace_t trace = {NULL, NULL, 1518, LOCATE_parser_prod___AAttrPropdef___n_type__eq};
4615 val_t variable[4];
4616 struct WBT_ **closurevariable = NULL;
4617 trace.prev = tracehead; tracehead = &trace;
4618 trace.file = LOCATE_parser_prod;
4619 /* Register variable[0]: Local variable */
4620 variable[0] = self;
4621 /* Register variable[1]: Local variable */
4622 variable[1] = param0;
4623 /* Register variable[2]: Method return value and escape marker */
4624 ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/ = variable[1] /*n*/;
4625 /* Register variable[3]: Result */
4626 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4627 if (UNTAG_Bool(variable[3])) { /*if*/
4628 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4629 }
4630 return_label174: while(false);
4631 tracehead = trace.prev;
4632 return;
4633 }
4634 void parser_prod___AAttrPropdef___n_readable__eq(val_t self, val_t param0) {
4635 struct trace_t trace = {NULL, NULL, 1469, LOCATE_parser_prod___AAttrPropdef___n_readable__eq};
4636 val_t variable[4];
4637 struct WBT_ **closurevariable = NULL;
4638 trace.prev = tracehead; tracehead = &trace;
4639 trace.file = LOCATE_parser_prod;
4640 /* Register variable[0]: Local variable */
4641 variable[0] = self;
4642 /* Register variable[1]: Local variable */
4643 variable[1] = param0;
4644 /* Register variable[2]: Method return value and escape marker */
4645 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/ = variable[1] /*n*/;
4646 /* Register variable[3]: Result */
4647 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4648 if (UNTAG_Bool(variable[3])) { /*if*/
4649 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4650 }
4651 return_label175: while(false);
4652 tracehead = trace.prev;
4653 return;
4654 }
4655 void parser_prod___AAttrPropdef___n_writable__eq(val_t self, val_t param0) {
4656 struct trace_t trace = {NULL, NULL, 1476, LOCATE_parser_prod___AAttrPropdef___n_writable__eq};
4657 val_t variable[4];
4658 struct WBT_ **closurevariable = NULL;
4659 trace.prev = tracehead; tracehead = &trace;
4660 trace.file = LOCATE_parser_prod;
4661 /* Register variable[0]: Local variable */
4662 variable[0] = self;
4663 /* Register variable[1]: Local variable */
4664 variable[1] = param0;
4665 /* Register variable[2]: Method return value and escape marker */
4666 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/ = variable[1] /*n*/;
4667 /* Register variable[3]: Result */
4668 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4669 if (UNTAG_Bool(variable[3])) { /*if*/
4670 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4671 }
4672 return_label176: while(false);
4673 tracehead = trace.prev;
4674 return;
4675 }
4676 void parser_prod___AAttrPropdef___n_expr__eq(val_t self, val_t param0) {
4677 struct trace_t trace = {NULL, NULL, 1525, LOCATE_parser_prod___AAttrPropdef___n_expr__eq};
4678 val_t variable[4];
4679 struct WBT_ **closurevariable = NULL;
4680 trace.prev = tracehead; tracehead = &trace;
4681 trace.file = LOCATE_parser_prod;
4682 /* Register variable[0]: Local variable */
4683 variable[0] = self;
4684 /* Register variable[1]: Local variable */
4685 variable[1] = param0;
4686 /* Register variable[2]: Method return value and escape marker */
4687 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/ = variable[1] /*n*/;
4688 /* Register variable[3]: Result */
4689 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4690 if (UNTAG_Bool(variable[3])) { /*if*/
4691 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
4692 }
4693 return_label177: while(false);
4694 tracehead = trace.prev;
4695 return;
4696 }
4697 void parser_prod___AAttrPropdef___replace_child(val_t self, val_t param0, val_t param1) {
4698 struct trace_t trace = {NULL, NULL, 1591, LOCATE_parser_prod___AAttrPropdef___replace_child};
4699 val_t variable[5];
4700 struct WBT_ **closurevariable = NULL;
4701 trace.prev = tracehead; tracehead = &trace;
4702 trace.file = LOCATE_parser_prod;
4703 /* Register variable[0]: Local variable */
4704 variable[0] = self;
4705 /* Register variable[1]: Local variable */
4706 variable[1] = param0;
4707 /* Register variable[2]: Local variable */
4708 variable[2] = param1;
4709 /* Register variable[3]: Method return value and escape marker */
4710 /* Register variable[4]: Result */
4711 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4712 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1593); nit_exit(1);}
4713 /* Register variable[4]: Result */
4714 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
4715 /* Register variable[4]: Result */
4716 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4717 if (UNTAG_Bool(variable[4])) { /*if*/
4718 /* Register variable[4]: Result */
4719 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4720 if (UNTAG_Bool(variable[4])) { /*if*/
4721 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4722 /* Register variable[4]: Result */
4723 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
4724 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1597); nit_exit(1);}
4725 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
4726 } else { /*if*/
4727 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
4728 }
4729 goto return_label178;
4730 }
4731 /* Register variable[4]: Result */
4732 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/;
4733 /* Register variable[4]: Result */
4734 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4735 if (UNTAG_Bool(variable[4])) { /*if*/
4736 /* Register variable[4]: Result */
4737 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4738 if (UNTAG_Bool(variable[4])) { /*if*/
4739 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4740 /* Register variable[4]: Result */
4741 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
4742 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1607); nit_exit(1);}
4743 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/ = variable[2] /*new_child*/;
4744 } else { /*if*/
4745 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/ = NIT_NULL /*null*/;
4746 }
4747 goto return_label178;
4748 }
4749 /* Register variable[4]: Result */
4750 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/;
4751 /* Register variable[4]: Result */
4752 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4753 if (UNTAG_Bool(variable[4])) { /*if*/
4754 /* Register variable[4]: Result */
4755 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4756 if (UNTAG_Bool(variable[4])) { /*if*/
4757 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4758 /* Register variable[4]: Result */
4759 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
4760 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1617); nit_exit(1);}
4761 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/ = variable[2] /*new_child*/;
4762 } else { /*if*/
4763 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/ = NIT_NULL /*null*/;
4764 }
4765 goto return_label178;
4766 }
4767 /* Register variable[4]: Result */
4768 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/;
4769 /* Register variable[4]: Result */
4770 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4771 if (UNTAG_Bool(variable[4])) { /*if*/
4772 /* Register variable[4]: Result */
4773 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4774 if (UNTAG_Bool(variable[4])) { /*if*/
4775 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4776 /* Register variable[4]: Result */
4777 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
4778 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1627); nit_exit(1);}
4779 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
4780 } else { /*if*/
4781 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
4782 }
4783 goto return_label178;
4784 }
4785 /* Register variable[4]: Result */
4786 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/;
4787 /* Register variable[4]: Result */
4788 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4789 if (UNTAG_Bool(variable[4])) { /*if*/
4790 /* Register variable[4]: Result */
4791 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4792 if (UNTAG_Bool(variable[4])) { /*if*/
4793 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4794 /* Register variable[4]: Result */
4795 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
4796 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1637); nit_exit(1);}
4797 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/ = variable[2] /*new_child*/;
4798 } else { /*if*/
4799 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/ = NIT_NULL /*null*/;
4800 }
4801 goto return_label178;
4802 }
4803 /* Register variable[4]: Result */
4804 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/;
4805 /* Register variable[4]: Result */
4806 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4807 if (UNTAG_Bool(variable[4])) { /*if*/
4808 /* Register variable[4]: Result */
4809 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4810 if (UNTAG_Bool(variable[4])) { /*if*/
4811 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4812 /* Register variable[4]: Result */
4813 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
4814 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1647); nit_exit(1);}
4815 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/ = variable[2] /*new_child*/;
4816 } else { /*if*/
4817 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/ = NIT_NULL /*null*/;
4818 }
4819 goto return_label178;
4820 }
4821 /* Register variable[4]: Result */
4822 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/;
4823 /* Register variable[4]: Result */
4824 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4825 if (UNTAG_Bool(variable[4])) { /*if*/
4826 /* Register variable[4]: Result */
4827 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4828 if (UNTAG_Bool(variable[4])) { /*if*/
4829 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4830 /* Register variable[4]: Result */
4831 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
4832 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1657); nit_exit(1);}
4833 ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/ = variable[2] /*new_child*/;
4834 } else { /*if*/
4835 ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/ = NIT_NULL /*null*/;
4836 }
4837 goto return_label178;
4838 }
4839 /* Register variable[4]: Result */
4840 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/;
4841 /* Register variable[4]: Result */
4842 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4843 if (UNTAG_Bool(variable[4])) { /*if*/
4844 /* Register variable[4]: Result */
4845 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4846 if (UNTAG_Bool(variable[4])) { /*if*/
4847 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4848 /* Register variable[4]: Result */
4849 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
4850 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1667); nit_exit(1);}
4851 ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/ = variable[2] /*new_child*/;
4852 } else { /*if*/
4853 ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/ = NIT_NULL /*null*/;
4854 }
4855 goto return_label178;
4856 }
4857 /* Register variable[4]: Result */
4858 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/;
4859 /* Register variable[4]: Result */
4860 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4861 if (UNTAG_Bool(variable[4])) { /*if*/
4862 /* Register variable[4]: Result */
4863 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4864 if (UNTAG_Bool(variable[4])) { /*if*/
4865 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4866 /* Register variable[4]: Result */
4867 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
4868 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1677); nit_exit(1);}
4869 ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/ = variable[2] /*new_child*/;
4870 } else { /*if*/
4871 ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/ = NIT_NULL /*null*/;
4872 }
4873 goto return_label178;
4874 }
4875 /* Register variable[4]: Result */
4876 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/;
4877 /* Register variable[4]: Result */
4878 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4879 if (UNTAG_Bool(variable[4])) { /*if*/
4880 /* Register variable[4]: Result */
4881 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4882 if (UNTAG_Bool(variable[4])) { /*if*/
4883 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
4884 /* Register variable[4]: Result */
4885 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
4886 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1687); nit_exit(1);}
4887 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/ = variable[2] /*new_child*/;
4888 } else { /*if*/
4889 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/ = NIT_NULL /*null*/;
4890 }
4891 goto return_label178;
4892 }
4893 return_label178: while(false);
4894 tracehead = trace.prev;
4895 return;
4896 }
4897 void parser_prod___AAttrPropdef___visit_all(val_t self, val_t param0) {
4898 struct trace_t trace = {NULL, NULL, 1696, LOCATE_parser_prod___AAttrPropdef___visit_all};
4899 val_t variable[4];
4900 struct WBT_ **closurevariable = NULL;
4901 trace.prev = tracehead; tracehead = &trace;
4902 trace.file = LOCATE_parser_prod;
4903 /* Register variable[0]: Local variable */
4904 variable[0] = self;
4905 /* Register variable[1]: Local variable */
4906 variable[1] = param0;
4907 /* Register variable[2]: Method return value and escape marker */
4908 /* Register variable[3]: Result */
4909 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
4910 /* Register variable[3]: Result */
4911 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::==*/)))))));
4912 if (UNTAG_Bool(variable[3])) { /*if*/
4913 /* Register variable[3]: Result */
4914 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
4915 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4916 }
4917 /* Register variable[3]: Result */
4918 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/;
4919 /* Register variable[3]: Result */
4920 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::==*/)))))));
4921 if (UNTAG_Bool(variable[3])) { /*if*/
4922 /* Register variable[3]: Result */
4923 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/;
4924 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4925 }
4926 /* Register variable[3]: Result */
4927 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/;
4928 /* Register variable[3]: Result */
4929 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::==*/)))))));
4930 if (UNTAG_Bool(variable[3])) { /*if*/
4931 /* Register variable[3]: Result */
4932 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/;
4933 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4934 }
4935 /* Register variable[3]: Result */
4936 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/;
4937 /* Register variable[3]: Result */
4938 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::==*/)))))));
4939 if (UNTAG_Bool(variable[3])) { /*if*/
4940 /* Register variable[3]: Result */
4941 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/;
4942 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4943 }
4944 /* Register variable[3]: Result */
4945 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/;
4946 /* Register variable[3]: Result */
4947 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::==*/)))))));
4948 if (UNTAG_Bool(variable[3])) { /*if*/
4949 /* Register variable[3]: Result */
4950 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/;
4951 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4952 }
4953 /* Register variable[3]: Result */
4954 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/;
4955 /* Register variable[3]: Result */
4956 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::==*/)))))));
4957 if (UNTAG_Bool(variable[3])) { /*if*/
4958 /* Register variable[3]: Result */
4959 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/;
4960 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4961 }
4962 /* Register variable[3]: Result */
4963 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/;
4964 /* Register variable[3]: Result */
4965 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::==*/)))))));
4966 if (UNTAG_Bool(variable[3])) { /*if*/
4967 /* Register variable[3]: Result */
4968 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/;
4969 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4970 }
4971 /* Register variable[3]: Result */
4972 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/;
4973 /* Register variable[3]: Result */
4974 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::==*/)))))));
4975 if (UNTAG_Bool(variable[3])) { /*if*/
4976 /* Register variable[3]: Result */
4977 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/;
4978 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4979 }
4980 /* Register variable[3]: Result */
4981 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/;
4982 /* Register variable[3]: Result */
4983 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::==*/)))))));
4984 if (UNTAG_Bool(variable[3])) { /*if*/
4985 /* Register variable[3]: Result */
4986 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/;
4987 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4988 }
4989 /* Register variable[3]: Result */
4990 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/;
4991 /* Register variable[3]: Result */
4992 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::==*/)))))));
4993 if (UNTAG_Bool(variable[3])) { /*if*/
4994 /* Register variable[3]: Result */
4995 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/;
4996 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4997 }
4998 return_label179: while(false);
4999 tracehead = trace.prev;
5000 return;
5001 }
5002 void parser_prod___AAttrPropdef___visit_all_reverse(val_t self, val_t param0) {
5003 struct trace_t trace = {NULL, NULL, 1730, LOCATE_parser_prod___AAttrPropdef___visit_all_reverse};
5004 val_t variable[4];
5005 struct WBT_ **closurevariable = NULL;
5006 trace.prev = tracehead; tracehead = &trace;
5007 trace.file = LOCATE_parser_prod;
5008 /* Register variable[0]: Local variable */
5009 variable[0] = self;
5010 /* Register variable[1]: Local variable */
5011 variable[1] = param0;
5012 /* Register variable[2]: Method return value and escape marker */
5013 /* Register variable[3]: Result */
5014 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5015 /* Register variable[3]: Result */
5016 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::==*/)))))));
5017 if (UNTAG_Bool(variable[3])) { /*if*/
5018 /* Register variable[3]: Result */
5019 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5020 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5021 }
5022 /* Register variable[3]: Result */
5023 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/;
5024 /* Register variable[3]: Result */
5025 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::==*/)))))));
5026 if (UNTAG_Bool(variable[3])) { /*if*/
5027 /* Register variable[3]: Result */
5028 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/;
5029 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5030 }
5031 /* Register variable[3]: Result */
5032 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/;
5033 /* Register variable[3]: Result */
5034 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::==*/)))))));
5035 if (UNTAG_Bool(variable[3])) { /*if*/
5036 /* Register variable[3]: Result */
5037 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/;
5038 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5039 }
5040 /* Register variable[3]: Result */
5041 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/;
5042 /* Register variable[3]: Result */
5043 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::==*/)))))));
5044 if (UNTAG_Bool(variable[3])) { /*if*/
5045 /* Register variable[3]: Result */
5046 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/;
5047 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5048 }
5049 /* Register variable[3]: Result */
5050 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/;
5051 /* Register variable[3]: Result */
5052 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::==*/)))))));
5053 if (UNTAG_Bool(variable[3])) { /*if*/
5054 /* Register variable[3]: Result */
5055 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/;
5056 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5057 }
5058 /* Register variable[3]: Result */
5059 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/;
5060 /* Register variable[3]: Result */
5061 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::==*/)))))));
5062 if (UNTAG_Bool(variable[3])) { /*if*/
5063 /* Register variable[3]: Result */
5064 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/;
5065 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5066 }
5067 /* Register variable[3]: Result */
5068 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/;
5069 /* Register variable[3]: Result */
5070 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::==*/)))))));
5071 if (UNTAG_Bool(variable[3])) { /*if*/
5072 /* Register variable[3]: Result */
5073 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/;
5074 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5075 }
5076 /* Register variable[3]: Result */
5077 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/;
5078 /* Register variable[3]: Result */
5079 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::==*/)))))));
5080 if (UNTAG_Bool(variable[3])) { /*if*/
5081 /* Register variable[3]: Result */
5082 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/;
5083 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5084 }
5085 /* Register variable[3]: Result */
5086 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/;
5087 /* Register variable[3]: Result */
5088 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::==*/)))))));
5089 if (UNTAG_Bool(variable[3])) { /*if*/
5090 /* Register variable[3]: Result */
5091 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/;
5092 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5093 }
5094 /* Register variable[3]: Result */
5095 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/;
5096 /* Register variable[3]: Result */
5097 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::==*/)))))));
5098 if (UNTAG_Bool(variable[3])) { /*if*/
5099 /* Register variable[3]: Result */
5100 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/;
5101 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5102 }
5103 return_label180: while(false);
5104 tracehead = trace.prev;
5105 return;
5106 }
5107 void parser_prod___AAttrPropdef___empty_init(val_t self, int* init_table) {
5108 struct trace_t trace = {NULL, NULL, 1533, LOCATE_parser_prod___AAttrPropdef___empty_init};
5109 val_t variable[2];
5110 struct WBT_ **closurevariable = NULL;
5111 trace.prev = tracehead; tracehead = &trace;
5112 trace.file = LOCATE_parser_prod;
5113 /* Register variable[0]: Local variable */
5114 variable[0] = self;
5115 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
5116 /* Register variable[1]: Method return value and escape marker */
5117 return_label181: while(false);
5118 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
5119 tracehead = trace.prev;
5120 return;
5121 }
5122 void parser_prod___AAttrPropdef___init_aattrpropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, val_t param6, val_t param7, val_t param8, val_t param9, int* init_table) {
5123 struct trace_t trace = {NULL, NULL, 1535, LOCATE_parser_prod___AAttrPropdef___init_aattrpropdef};
5124 val_t variable[13];
5125 struct WBT_ **closurevariable = NULL;
5126 trace.prev = tracehead; tracehead = &trace;
5127 trace.file = LOCATE_parser_prod;
5128 /* Register variable[0]: Local variable */
5129 variable[0] = self;
5130 /* Register variable[1]: Local variable */
5131 variable[1] = param0;
5132 /* Register variable[2]: Local variable */
5133 variable[2] = param1;
5134 /* Register variable[3]: Local variable */
5135 variable[3] = param2;
5136 /* Register variable[4]: Local variable */
5137 variable[4] = param3;
5138 /* Register variable[5]: Local variable */
5139 variable[5] = param4;
5140 /* Register variable[6]: Local variable */
5141 variable[6] = param5;
5142 /* Register variable[7]: Local variable */
5143 variable[7] = param6;
5144 /* Register variable[8]: Local variable */
5145 variable[8] = param7;
5146 /* Register variable[9]: Local variable */
5147 variable[9] = param8;
5148 /* Register variable[10]: Local variable */
5149 variable[10] = param9;
5150 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
5151 /* Register variable[11]: Method return value and escape marker */
5152 CALL_parser_prod___AAttrPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAttrPropdef::empty_init*/;
5153 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
5154 /* Register variable[12]: Result */
5155 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5156 if (UNTAG_Bool(variable[12])) { /*if*/
5157 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
5158 }
5159 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[0]) /*AAttrPropdef::_n_readable*/ = variable[2] /*n_readable*/;
5160 /* Register variable[12]: Result */
5161 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_readable*/ == NIT_NULL /*null*/) || (( variable[2] /*n_readable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_readable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_readable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_readable*/)( variable[2] /*n_readable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5162 if (UNTAG_Bool(variable[12])) { /*if*/
5163 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_readable*/)( variable[2] /*n_readable*/, variable[0]) /*PNode::parent=*/;
5164 }
5165 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[0]) /*AAttrPropdef::_n_writable*/ = variable[3] /*n_writable*/;
5166 /* Register variable[12]: Result */
5167 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_writable*/ == NIT_NULL /*null*/) || (( variable[3] /*n_writable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_writable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_writable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_writable*/)( variable[3] /*n_writable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5168 if (UNTAG_Bool(variable[12])) { /*if*/
5169 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_writable*/)( variable[3] /*n_writable*/, variable[0]) /*PNode::parent=*/;
5170 }
5171 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[0]) /*AAttrPropdef::_n_kwredef*/ = variable[4] /*n_kwredef*/;
5172 /* Register variable[12]: Result */
5173 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwredef*/)( variable[4] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5174 if (UNTAG_Bool(variable[12])) { /*if*/
5175 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwredef*/)( variable[4] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
5176 }
5177 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[0]) /*AAttrPropdef::_n_visibility*/ = variable[5] /*n_visibility*/;
5178 /* Register variable[12]: Result */
5179 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[5] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_visibility*/)( variable[5] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5180 if (UNTAG_Bool(variable[12])) { /*if*/
5181 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_visibility*/)( variable[5] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
5182 }
5183 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[0]) /*AAttrPropdef::_n_kwattr*/ = variable[6] /*n_kwattr*/;
5184 /* Register variable[12]: Result */
5185 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_kwattr*/ == NIT_NULL /*null*/) || (( variable[6] /*n_kwattr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_kwattr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_kwattr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_kwattr*/)( variable[6] /*n_kwattr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5186 if (UNTAG_Bool(variable[12])) { /*if*/
5187 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_kwattr*/)( variable[6] /*n_kwattr*/, variable[0]) /*PNode::parent=*/;
5188 }
5189 ATTR_parser_nodes___AAttrPropdef____n_kwvar(variable[0]) /*AAttrPropdef::_n_kwvar*/ = variable[7] /*n_kwvar*/;
5190 /* Register variable[12]: Result */
5191 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_kwvar*/ == NIT_NULL /*null*/) || (( variable[7] /*n_kwvar*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_kwvar*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_kwvar*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_kwvar*/)( variable[7] /*n_kwvar*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5192 if (UNTAG_Bool(variable[12])) { /*if*/
5193 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_kwvar*/)( variable[7] /*n_kwvar*/, variable[0]) /*PNode::parent=*/;
5194 }
5195 ATTR_parser_nodes___AAttrPropdef____n_id(variable[0]) /*AAttrPropdef::_n_id*/ = variable[8] /*n_id*/;
5196 /* Register variable[12]: Result */
5197 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*n_id*/ == NIT_NULL /*null*/) || (( variable[8] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*n_id*/)( variable[8] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5198 if (UNTAG_Bool(variable[12])) { /*if*/
5199 CALL_parser_prod___PNode___parent__eq( variable[8] /*n_id*/)( variable[8] /*n_id*/, variable[0]) /*PNode::parent=*/;
5200 }
5201 ATTR_parser_nodes___AAttrPropdef____n_type(variable[0]) /*AAttrPropdef::_n_type*/ = variable[9] /*n_type*/;
5202 /* Register variable[12]: Result */
5203 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*n_type*/ == NIT_NULL /*null*/) || (( variable[9] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*n_type*/)( variable[9] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5204 if (UNTAG_Bool(variable[12])) { /*if*/
5205 CALL_parser_prod___PNode___parent__eq( variable[9] /*n_type*/)( variable[9] /*n_type*/, variable[0]) /*PNode::parent=*/;
5206 }
5207 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[0]) /*AAttrPropdef::_n_expr*/ = variable[10] /*n_expr*/;
5208 /* Register variable[12]: Result */
5209 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[10] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*n_expr*/)( variable[10] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5210 if (UNTAG_Bool(variable[12])) { /*if*/
5211 CALL_parser_prod___PNode___parent__eq( variable[10] /*n_expr*/)( variable[10] /*n_expr*/, variable[0]) /*PNode::parent=*/;
5212 }
5213 return_label182: while(false);
5214 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
5215 tracehead = trace.prev;
5216 return;
5217 }
5218 void parser_prod___AMethPropdef___n_doc__eq(val_t self, val_t param0) {
5219 struct trace_t trace = {NULL, NULL, 1765, LOCATE_parser_prod___AMethPropdef___n_doc__eq};
5220 val_t variable[4];
5221 struct WBT_ **closurevariable = NULL;
5222 trace.prev = tracehead; tracehead = &trace;
5223 trace.file = LOCATE_parser_prod;
5224 /* Register variable[0]: Local variable */
5225 variable[0] = self;
5226 /* Register variable[1]: Local variable */
5227 variable[1] = param0;
5228 /* Register variable[2]: Method return value and escape marker */
5229 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
5230 /* Register variable[3]: Result */
5231 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5232 if (UNTAG_Bool(variable[3])) { /*if*/
5233 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5234 }
5235 return_label183: while(false);
5236 tracehead = trace.prev;
5237 return;
5238 }
5239 void parser_prod___AMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
5240 struct trace_t trace = {NULL, NULL, 1772, LOCATE_parser_prod___AMethPropdef___n_kwredef__eq};
5241 val_t variable[4];
5242 struct WBT_ **closurevariable = NULL;
5243 trace.prev = tracehead; tracehead = &trace;
5244 trace.file = LOCATE_parser_prod;
5245 /* Register variable[0]: Local variable */
5246 variable[0] = self;
5247 /* Register variable[1]: Local variable */
5248 variable[1] = param0;
5249 /* Register variable[2]: Method return value and escape marker */
5250 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
5251 /* Register variable[3]: Result */
5252 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5253 if (UNTAG_Bool(variable[3])) { /*if*/
5254 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5255 }
5256 return_label184: while(false);
5257 tracehead = trace.prev;
5258 return;
5259 }
5260 void parser_prod___AMethPropdef___n_visibility__eq(val_t self, val_t param0) {
5261 struct trace_t trace = {NULL, NULL, 1779, LOCATE_parser_prod___AMethPropdef___n_visibility__eq};
5262 val_t variable[4];
5263 struct WBT_ **closurevariable = NULL;
5264 trace.prev = tracehead; tracehead = &trace;
5265 trace.file = LOCATE_parser_prod;
5266 /* Register variable[0]: Local variable */
5267 variable[0] = self;
5268 /* Register variable[1]: Local variable */
5269 variable[1] = param0;
5270 /* Register variable[2]: Method return value and escape marker */
5271 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
5272 /* Register variable[3]: Result */
5273 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5274 if (UNTAG_Bool(variable[3])) { /*if*/
5275 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5276 }
5277 return_label185: while(false);
5278 tracehead = trace.prev;
5279 return;
5280 }
5281 void parser_prod___AMethPropdef___n_methid__eq(val_t self, val_t param0) {
5282 struct trace_t trace = {NULL, NULL, 1786, LOCATE_parser_prod___AMethPropdef___n_methid__eq};
5283 val_t variable[4];
5284 struct WBT_ **closurevariable = NULL;
5285 trace.prev = tracehead; tracehead = &trace;
5286 trace.file = LOCATE_parser_prod;
5287 /* Register variable[0]: Local variable */
5288 variable[0] = self;
5289 /* Register variable[1]: Local variable */
5290 variable[1] = param0;
5291 /* Register variable[2]: Method return value and escape marker */
5292 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
5293 /* Register variable[3]: Result */
5294 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5295 if (UNTAG_Bool(variable[3])) { /*if*/
5296 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5297 }
5298 return_label186: while(false);
5299 tracehead = trace.prev;
5300 return;
5301 }
5302 void parser_prod___AMethPropdef___n_signature__eq(val_t self, val_t param0) {
5303 struct trace_t trace = {NULL, NULL, 1793, LOCATE_parser_prod___AMethPropdef___n_signature__eq};
5304 val_t variable[4];
5305 struct WBT_ **closurevariable = NULL;
5306 trace.prev = tracehead; tracehead = &trace;
5307 trace.file = LOCATE_parser_prod;
5308 /* Register variable[0]: Local variable */
5309 variable[0] = self;
5310 /* Register variable[1]: Local variable */
5311 variable[1] = param0;
5312 /* Register variable[2]: Method return value and escape marker */
5313 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
5314 /* Register variable[3]: Result */
5315 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5316 if (UNTAG_Bool(variable[3])) { /*if*/
5317 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5318 }
5319 return_label187: while(false);
5320 tracehead = trace.prev;
5321 return;
5322 }
5323 void parser_prod___AMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
5324 struct trace_t trace = {NULL, NULL, 1834, LOCATE_parser_prod___AMethPropdef___replace_child};
5325 val_t variable[5];
5326 struct WBT_ **closurevariable = NULL;
5327 trace.prev = tracehead; tracehead = &trace;
5328 trace.file = LOCATE_parser_prod;
5329 /* Register variable[0]: Local variable */
5330 variable[0] = self;
5331 /* Register variable[1]: Local variable */
5332 variable[1] = param0;
5333 /* Register variable[2]: Local variable */
5334 variable[2] = param1;
5335 /* Register variable[3]: Method return value and escape marker */
5336 /* Register variable[4]: Result */
5337 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5338 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1836); nit_exit(1);}
5339 /* Register variable[4]: Result */
5340 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5341 /* Register variable[4]: Result */
5342 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5343 if (UNTAG_Bool(variable[4])) { /*if*/
5344 /* Register variable[4]: Result */
5345 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5346 if (UNTAG_Bool(variable[4])) { /*if*/
5347 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5348 /* Register variable[4]: Result */
5349 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
5350 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1840); nit_exit(1);}
5351 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
5352 } else { /*if*/
5353 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
5354 }
5355 goto return_label188;
5356 }
5357 /* Register variable[4]: Result */
5358 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5359 /* Register variable[4]: Result */
5360 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5361 if (UNTAG_Bool(variable[4])) { /*if*/
5362 /* Register variable[4]: Result */
5363 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5364 if (UNTAG_Bool(variable[4])) { /*if*/
5365 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5366 /* Register variable[4]: Result */
5367 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5368 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1850); nit_exit(1);}
5369 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
5370 } else { /*if*/
5371 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
5372 }
5373 goto return_label188;
5374 }
5375 /* Register variable[4]: Result */
5376 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5377 /* Register variable[4]: Result */
5378 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5379 if (UNTAG_Bool(variable[4])) { /*if*/
5380 /* Register variable[4]: Result */
5381 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5382 if (UNTAG_Bool(variable[4])) { /*if*/
5383 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5384 /* Register variable[4]: Result */
5385 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
5386 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1860); nit_exit(1);}
5387 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
5388 } else { /*if*/
5389 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
5390 }
5391 goto return_label188;
5392 }
5393 /* Register variable[4]: Result */
5394 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5395 /* Register variable[4]: Result */
5396 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5397 if (UNTAG_Bool(variable[4])) { /*if*/
5398 /* Register variable[4]: Result */
5399 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5400 if (UNTAG_Bool(variable[4])) { /*if*/
5401 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5402 /* Register variable[4]: Result */
5403 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
5404 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1870); nit_exit(1);}
5405 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
5406 } else { /*if*/
5407 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
5408 }
5409 goto return_label188;
5410 }
5411 /* Register variable[4]: Result */
5412 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5413 /* Register variable[4]: Result */
5414 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5415 if (UNTAG_Bool(variable[4])) { /*if*/
5416 /* Register variable[4]: Result */
5417 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5418 if (UNTAG_Bool(variable[4])) { /*if*/
5419 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5420 /* Register variable[4]: Result */
5421 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
5422 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1880); nit_exit(1);}
5423 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
5424 } else { /*if*/
5425 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
5426 }
5427 goto return_label188;
5428 }
5429 return_label188: while(false);
5430 tracehead = trace.prev;
5431 return;
5432 }
5433 void parser_prod___AMethPropdef___visit_all(val_t self, val_t param0) {
5434 struct trace_t trace = {NULL, NULL, 1889, LOCATE_parser_prod___AMethPropdef___visit_all};
5435 val_t variable[4];
5436 struct WBT_ **closurevariable = NULL;
5437 trace.prev = tracehead; tracehead = &trace;
5438 trace.file = LOCATE_parser_prod;
5439 /* Register variable[0]: Local variable */
5440 variable[0] = self;
5441 /* Register variable[1]: Local variable */
5442 variable[1] = param0;
5443 /* Register variable[2]: Method return value and escape marker */
5444 /* Register variable[3]: Result */
5445 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5446 /* Register variable[3]: Result */
5447 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::==*/)))))));
5448 if (UNTAG_Bool(variable[3])) { /*if*/
5449 /* Register variable[3]: Result */
5450 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5451 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5452 }
5453 /* Register variable[3]: Result */
5454 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5455 /* Register variable[3]: Result */
5456 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::==*/)))))));
5457 if (UNTAG_Bool(variable[3])) { /*if*/
5458 /* Register variable[3]: Result */
5459 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5460 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5461 }
5462 /* Register variable[3]: Result */
5463 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5464 /* Register variable[3]: Result */
5465 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::==*/)))))));
5466 if (UNTAG_Bool(variable[3])) { /*if*/
5467 /* Register variable[3]: Result */
5468 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5469 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5470 }
5471 /* Register variable[3]: Result */
5472 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5473 /* Register variable[3]: Result */
5474 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::==*/)))))));
5475 if (UNTAG_Bool(variable[3])) { /*if*/
5476 /* Register variable[3]: Result */
5477 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5478 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5479 }
5480 /* Register variable[3]: Result */
5481 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5482 /* Register variable[3]: Result */
5483 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::==*/)))))));
5484 if (UNTAG_Bool(variable[3])) { /*if*/
5485 /* Register variable[3]: Result */
5486 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5487 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5488 }
5489 return_label189: while(false);
5490 tracehead = trace.prev;
5491 return;
5492 }
5493 void parser_prod___AMethPropdef___visit_all_reverse(val_t self, val_t param0) {
5494 struct trace_t trace = {NULL, NULL, 1908, LOCATE_parser_prod___AMethPropdef___visit_all_reverse};
5495 val_t variable[4];
5496 struct WBT_ **closurevariable = NULL;
5497 trace.prev = tracehead; tracehead = &trace;
5498 trace.file = LOCATE_parser_prod;
5499 /* Register variable[0]: Local variable */
5500 variable[0] = self;
5501 /* Register variable[1]: Local variable */
5502 variable[1] = param0;
5503 /* Register variable[2]: Method return value and escape marker */
5504 /* Register variable[3]: Result */
5505 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5506 /* Register variable[3]: Result */
5507 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::==*/)))))));
5508 if (UNTAG_Bool(variable[3])) { /*if*/
5509 /* Register variable[3]: Result */
5510 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5511 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5512 }
5513 /* Register variable[3]: Result */
5514 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5515 /* Register variable[3]: Result */
5516 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::==*/)))))));
5517 if (UNTAG_Bool(variable[3])) { /*if*/
5518 /* Register variable[3]: Result */
5519 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5520 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5521 }
5522 /* Register variable[3]: Result */
5523 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5524 /* Register variable[3]: Result */
5525 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::==*/)))))));
5526 if (UNTAG_Bool(variable[3])) { /*if*/
5527 /* Register variable[3]: Result */
5528 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5529 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5530 }
5531 /* Register variable[3]: Result */
5532 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5533 /* Register variable[3]: Result */
5534 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::==*/)))))));
5535 if (UNTAG_Bool(variable[3])) { /*if*/
5536 /* Register variable[3]: Result */
5537 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5538 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5539 }
5540 /* Register variable[3]: Result */
5541 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5542 /* Register variable[3]: Result */
5543 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::==*/)))))));
5544 if (UNTAG_Bool(variable[3])) { /*if*/
5545 /* Register variable[3]: Result */
5546 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5547 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5548 }
5549 return_label190: while(false);
5550 tracehead = trace.prev;
5551 return;
5552 }
5553 void parser_prod___AMethPropdef___empty_init(val_t self, int* init_table) {
5554 struct trace_t trace = {NULL, NULL, 1801, LOCATE_parser_prod___AMethPropdef___empty_init};
5555 val_t variable[2];
5556 struct WBT_ **closurevariable = NULL;
5557 trace.prev = tracehead; tracehead = &trace;
5558 trace.file = LOCATE_parser_prod;
5559 /* Register variable[0]: Local variable */
5560 variable[0] = self;
5561 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
5562 /* Register variable[1]: Method return value and escape marker */
5563 return_label191: while(false);
5564 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
5565 tracehead = trace.prev;
5566 return;
5567 }
5568 void parser_prod___AMethPropdef___init_amethpropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, int* init_table) {
5569 struct trace_t trace = {NULL, NULL, 1803, LOCATE_parser_prod___AMethPropdef___init_amethpropdef};
5570 val_t variable[8];
5571 struct WBT_ **closurevariable = NULL;
5572 trace.prev = tracehead; tracehead = &trace;
5573 trace.file = LOCATE_parser_prod;
5574 /* Register variable[0]: Local variable */
5575 variable[0] = self;
5576 /* Register variable[1]: Local variable */
5577 variable[1] = param0;
5578 /* Register variable[2]: Local variable */
5579 variable[2] = param1;
5580 /* Register variable[3]: Local variable */
5581 variable[3] = param2;
5582 /* Register variable[4]: Local variable */
5583 variable[4] = param3;
5584 /* Register variable[5]: Local variable */
5585 variable[5] = param4;
5586 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
5587 /* Register variable[6]: Method return value and escape marker */
5588 CALL_parser_prod___AMethPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AMethPropdef::empty_init*/;
5589 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
5590 /* Register variable[7]: Result */
5591 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5592 if (UNTAG_Bool(variable[7])) { /*if*/
5593 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
5594 }
5595 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
5596 /* Register variable[7]: Result */
5597 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5598 if (UNTAG_Bool(variable[7])) { /*if*/
5599 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
5600 }
5601 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
5602 /* Register variable[7]: Result */
5603 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5604 if (UNTAG_Bool(variable[7])) { /*if*/
5605 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
5606 }
5607 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[4] /*n_methid*/;
5608 /* Register variable[7]: Result */
5609 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_methid*/ == NIT_NULL /*null*/) || (( variable[4] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_methid*/)( variable[4] /*n_methid*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5610 if (UNTAG_Bool(variable[7])) { /*if*/
5611 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_methid*/)( variable[4] /*n_methid*/, variable[0]) /*PNode::parent=*/;
5612 }
5613 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[5] /*n_signature*/;
5614 /* Register variable[7]: Result */
5615 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_signature*/ == NIT_NULL /*null*/) || (( variable[5] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_signature*/)( variable[5] /*n_signature*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5616 if (UNTAG_Bool(variable[7])) { /*if*/
5617 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_signature*/)( variable[5] /*n_signature*/, variable[0]) /*PNode::parent=*/;
5618 }
5619 return_label192: while(false);
5620 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
5621 tracehead = trace.prev;
5622 return;
5623 }
5624 void parser_prod___ADeferredMethPropdef___n_doc__eq(val_t self, val_t param0) {
5625 struct trace_t trace = {NULL, NULL, 1928, LOCATE_parser_prod___ADeferredMethPropdef___n_doc__eq};
5626 val_t variable[4];
5627 struct WBT_ **closurevariable = NULL;
5628 trace.prev = tracehead; tracehead = &trace;
5629 trace.file = LOCATE_parser_prod;
5630 /* Register variable[0]: Local variable */
5631 variable[0] = self;
5632 /* Register variable[1]: Local variable */
5633 variable[1] = param0;
5634 /* Register variable[2]: Method return value and escape marker */
5635 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
5636 /* Register variable[3]: Result */
5637 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5638 if (UNTAG_Bool(variable[3])) { /*if*/
5639 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5640 }
5641 return_label193: while(false);
5642 tracehead = trace.prev;
5643 return;
5644 }
5645 void parser_prod___ADeferredMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
5646 struct trace_t trace = {NULL, NULL, 1935, LOCATE_parser_prod___ADeferredMethPropdef___n_kwredef__eq};
5647 val_t variable[4];
5648 struct WBT_ **closurevariable = NULL;
5649 trace.prev = tracehead; tracehead = &trace;
5650 trace.file = LOCATE_parser_prod;
5651 /* Register variable[0]: Local variable */
5652 variable[0] = self;
5653 /* Register variable[1]: Local variable */
5654 variable[1] = param0;
5655 /* Register variable[2]: Method return value and escape marker */
5656 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
5657 /* Register variable[3]: Result */
5658 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5659 if (UNTAG_Bool(variable[3])) { /*if*/
5660 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5661 }
5662 return_label194: while(false);
5663 tracehead = trace.prev;
5664 return;
5665 }
5666 void parser_prod___ADeferredMethPropdef___n_visibility__eq(val_t self, val_t param0) {
5667 struct trace_t trace = {NULL, NULL, 1942, LOCATE_parser_prod___ADeferredMethPropdef___n_visibility__eq};
5668 val_t variable[4];
5669 struct WBT_ **closurevariable = NULL;
5670 trace.prev = tracehead; tracehead = &trace;
5671 trace.file = LOCATE_parser_prod;
5672 /* Register variable[0]: Local variable */
5673 variable[0] = self;
5674 /* Register variable[1]: Local variable */
5675 variable[1] = param0;
5676 /* Register variable[2]: Method return value and escape marker */
5677 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
5678 /* Register variable[3]: Result */
5679 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5680 if (UNTAG_Bool(variable[3])) { /*if*/
5681 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5682 }
5683 return_label195: while(false);
5684 tracehead = trace.prev;
5685 return;
5686 }
5687 void parser_prod___ADeferredMethPropdef___n_methid__eq(val_t self, val_t param0) {
5688 struct trace_t trace = {NULL, NULL, 1956, LOCATE_parser_prod___ADeferredMethPropdef___n_methid__eq};
5689 val_t variable[4];
5690 struct WBT_ **closurevariable = NULL;
5691 trace.prev = tracehead; tracehead = &trace;
5692 trace.file = LOCATE_parser_prod;
5693 /* Register variable[0]: Local variable */
5694 variable[0] = self;
5695 /* Register variable[1]: Local variable */
5696 variable[1] = param0;
5697 /* Register variable[2]: Method return value and escape marker */
5698 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
5699 /* Register variable[3]: Result */
5700 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5701 if (UNTAG_Bool(variable[3])) { /*if*/
5702 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5703 }
5704 return_label196: while(false);
5705 tracehead = trace.prev;
5706 return;
5707 }
5708 void parser_prod___ADeferredMethPropdef___n_signature__eq(val_t self, val_t param0) {
5709 struct trace_t trace = {NULL, NULL, 1963, LOCATE_parser_prod___ADeferredMethPropdef___n_signature__eq};
5710 val_t variable[4];
5711 struct WBT_ **closurevariable = NULL;
5712 trace.prev = tracehead; tracehead = &trace;
5713 trace.file = LOCATE_parser_prod;
5714 /* Register variable[0]: Local variable */
5715 variable[0] = self;
5716 /* Register variable[1]: Local variable */
5717 variable[1] = param0;
5718 /* Register variable[2]: Method return value and escape marker */
5719 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
5720 /* Register variable[3]: Result */
5721 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5722 if (UNTAG_Bool(variable[3])) { /*if*/
5723 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5724 }
5725 return_label197: while(false);
5726 tracehead = trace.prev;
5727 return;
5728 }
5729 void parser_prod___ADeferredMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
5730 struct trace_t trace = {NULL, NULL, 1949, LOCATE_parser_prod___ADeferredMethPropdef___n_kwmeth__eq};
5731 val_t variable[4];
5732 struct WBT_ **closurevariable = NULL;
5733 trace.prev = tracehead; tracehead = &trace;
5734 trace.file = LOCATE_parser_prod;
5735 /* Register variable[0]: Local variable */
5736 variable[0] = self;
5737 /* Register variable[1]: Local variable */
5738 variable[1] = param0;
5739 /* Register variable[2]: Method return value and escape marker */
5740 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
5741 /* Register variable[3]: Result */
5742 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5743 if (UNTAG_Bool(variable[3])) { /*if*/
5744 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
5745 }
5746 return_label198: while(false);
5747 tracehead = trace.prev;
5748 return;
5749 }
5750 void parser_prod___ADeferredMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
5751 struct trace_t trace = {NULL, NULL, 2009, LOCATE_parser_prod___ADeferredMethPropdef___replace_child};
5752 val_t variable[5];
5753 struct WBT_ **closurevariable = NULL;
5754 trace.prev = tracehead; tracehead = &trace;
5755 trace.file = LOCATE_parser_prod;
5756 /* Register variable[0]: Local variable */
5757 variable[0] = self;
5758 /* Register variable[1]: Local variable */
5759 variable[1] = param0;
5760 /* Register variable[2]: Local variable */
5761 variable[2] = param1;
5762 /* Register variable[3]: Method return value and escape marker */
5763 /* Register variable[4]: Result */
5764 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5765 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2011); nit_exit(1);}
5766 /* Register variable[4]: Result */
5767 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5768 /* Register variable[4]: Result */
5769 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5770 if (UNTAG_Bool(variable[4])) { /*if*/
5771 /* Register variable[4]: Result */
5772 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5773 if (UNTAG_Bool(variable[4])) { /*if*/
5774 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5775 /* Register variable[4]: Result */
5776 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
5777 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2015); nit_exit(1);}
5778 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
5779 } else { /*if*/
5780 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
5781 }
5782 goto return_label199;
5783 }
5784 /* Register variable[4]: Result */
5785 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5786 /* Register variable[4]: Result */
5787 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5788 if (UNTAG_Bool(variable[4])) { /*if*/
5789 /* Register variable[4]: Result */
5790 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5791 if (UNTAG_Bool(variable[4])) { /*if*/
5792 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5793 /* Register variable[4]: Result */
5794 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5795 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2025); nit_exit(1);}
5796 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
5797 } else { /*if*/
5798 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
5799 }
5800 goto return_label199;
5801 }
5802 /* Register variable[4]: Result */
5803 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5804 /* Register variable[4]: Result */
5805 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5806 if (UNTAG_Bool(variable[4])) { /*if*/
5807 /* Register variable[4]: Result */
5808 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5809 if (UNTAG_Bool(variable[4])) { /*if*/
5810 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5811 /* Register variable[4]: Result */
5812 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
5813 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2035); nit_exit(1);}
5814 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
5815 } else { /*if*/
5816 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
5817 }
5818 goto return_label199;
5819 }
5820 /* Register variable[4]: Result */
5821 variable[4] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/;
5822 /* Register variable[4]: Result */
5823 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5824 if (UNTAG_Bool(variable[4])) { /*if*/
5825 /* Register variable[4]: Result */
5826 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5827 if (UNTAG_Bool(variable[4])) { /*if*/
5828 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5829 /* Register variable[4]: Result */
5830 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
5831 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2045); nit_exit(1);}
5832 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
5833 } else { /*if*/
5834 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
5835 }
5836 goto return_label199;
5837 }
5838 /* Register variable[4]: Result */
5839 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5840 /* Register variable[4]: Result */
5841 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5842 if (UNTAG_Bool(variable[4])) { /*if*/
5843 /* Register variable[4]: Result */
5844 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5845 if (UNTAG_Bool(variable[4])) { /*if*/
5846 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5847 /* Register variable[4]: Result */
5848 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
5849 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2055); nit_exit(1);}
5850 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
5851 } else { /*if*/
5852 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
5853 }
5854 goto return_label199;
5855 }
5856 /* Register variable[4]: Result */
5857 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5858 /* Register variable[4]: Result */
5859 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5860 if (UNTAG_Bool(variable[4])) { /*if*/
5861 /* Register variable[4]: Result */
5862 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5863 if (UNTAG_Bool(variable[4])) { /*if*/
5864 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
5865 /* Register variable[4]: Result */
5866 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
5867 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2065); nit_exit(1);}
5868 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
5869 } else { /*if*/
5870 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
5871 }
5872 goto return_label199;
5873 }
5874 return_label199: while(false);
5875 tracehead = trace.prev;
5876 return;
5877 }
5878 void parser_prod___ADeferredMethPropdef___visit_all(val_t self, val_t param0) {
5879 struct trace_t trace = {NULL, NULL, 2074, LOCATE_parser_prod___ADeferredMethPropdef___visit_all};
5880 val_t variable[4];
5881 struct WBT_ **closurevariable = NULL;
5882 trace.prev = tracehead; tracehead = &trace;
5883 trace.file = LOCATE_parser_prod;
5884 /* Register variable[0]: Local variable */
5885 variable[0] = self;
5886 /* Register variable[1]: Local variable */
5887 variable[1] = param0;
5888 /* Register variable[2]: Method return value and escape marker */
5889 /* Register variable[3]: Result */
5890 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5891 /* Register variable[3]: Result */
5892 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::==*/)))))));
5893 if (UNTAG_Bool(variable[3])) { /*if*/
5894 /* Register variable[3]: Result */
5895 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5896 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5897 }
5898 /* Register variable[3]: Result */
5899 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5900 /* Register variable[3]: Result */
5901 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::==*/)))))));
5902 if (UNTAG_Bool(variable[3])) { /*if*/
5903 /* Register variable[3]: Result */
5904 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5905 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5906 }
5907 /* Register variable[3]: Result */
5908 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5909 /* Register variable[3]: Result */
5910 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::==*/)))))));
5911 if (UNTAG_Bool(variable[3])) { /*if*/
5912 /* Register variable[3]: Result */
5913 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5914 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5915 }
5916 /* Register variable[3]: Result */
5917 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/;
5918 /* Register variable[3]: Result */
5919 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::==*/)))))));
5920 if (UNTAG_Bool(variable[3])) { /*if*/
5921 /* Register variable[3]: Result */
5922 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/;
5923 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5924 }
5925 /* Register variable[3]: Result */
5926 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5927 /* Register variable[3]: Result */
5928 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::==*/)))))));
5929 if (UNTAG_Bool(variable[3])) { /*if*/
5930 /* Register variable[3]: Result */
5931 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5932 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5933 }
5934 /* Register variable[3]: Result */
5935 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5936 /* Register variable[3]: Result */
5937 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::==*/)))))));
5938 if (UNTAG_Bool(variable[3])) { /*if*/
5939 /* Register variable[3]: Result */
5940 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
5941 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5942 }
5943 return_label200: while(false);
5944 tracehead = trace.prev;
5945 return;
5946 }
5947 void parser_prod___ADeferredMethPropdef___visit_all_reverse(val_t self, val_t param0) {
5948 struct trace_t trace = {NULL, NULL, 2096, LOCATE_parser_prod___ADeferredMethPropdef___visit_all_reverse};
5949 val_t variable[4];
5950 struct WBT_ **closurevariable = NULL;
5951 trace.prev = tracehead; tracehead = &trace;
5952 trace.file = LOCATE_parser_prod;
5953 /* Register variable[0]: Local variable */
5954 variable[0] = self;
5955 /* Register variable[1]: Local variable */
5956 variable[1] = param0;
5957 /* Register variable[2]: Method return value and escape marker */
5958 /* Register variable[3]: Result */
5959 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5960 /* Register variable[3]: Result */
5961 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::==*/)))))));
5962 if (UNTAG_Bool(variable[3])) { /*if*/
5963 /* Register variable[3]: Result */
5964 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
5965 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5966 }
5967 /* Register variable[3]: Result */
5968 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5969 /* Register variable[3]: Result */
5970 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::==*/)))))));
5971 if (UNTAG_Bool(variable[3])) { /*if*/
5972 /* Register variable[3]: Result */
5973 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
5974 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5975 }
5976 /* Register variable[3]: Result */
5977 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5978 /* Register variable[3]: Result */
5979 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::==*/)))))));
5980 if (UNTAG_Bool(variable[3])) { /*if*/
5981 /* Register variable[3]: Result */
5982 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
5983 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5984 }
5985 /* Register variable[3]: Result */
5986 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/;
5987 /* Register variable[3]: Result */
5988 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::==*/)))))));
5989 if (UNTAG_Bool(variable[3])) { /*if*/
5990 /* Register variable[3]: Result */
5991 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/;
5992 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5993 }
5994 /* Register variable[3]: Result */
5995 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
5996 /* Register variable[3]: Result */
5997 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::==*/)))))));
5998 if (UNTAG_Bool(variable[3])) { /*if*/
5999 /* Register variable[3]: Result */
6000 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6001 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6002 }
6003 /* Register variable[3]: Result */
6004 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6005 /* Register variable[3]: Result */
6006 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::==*/)))))));
6007 if (UNTAG_Bool(variable[3])) { /*if*/
6008 /* Register variable[3]: Result */
6009 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6010 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6011 }
6012 return_label201: while(false);
6013 tracehead = trace.prev;
6014 return;
6015 }
6016 void parser_prod___ADeferredMethPropdef___empty_init(val_t self, int* init_table) {
6017 struct trace_t trace = {NULL, NULL, 1971, LOCATE_parser_prod___ADeferredMethPropdef___empty_init};
6018 val_t variable[2];
6019 struct WBT_ **closurevariable = NULL;
6020 trace.prev = tracehead; tracehead = &trace;
6021 trace.file = LOCATE_parser_prod;
6022 /* Register variable[0]: Local variable */
6023 variable[0] = self;
6024 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
6025 /* Register variable[1]: Method return value and escape marker */
6026 return_label202: while(false);
6027 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
6028 tracehead = trace.prev;
6029 return;
6030 }
6031 void parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, int* init_table) {
6032 struct trace_t trace = {NULL, NULL, 1973, LOCATE_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef};
6033 val_t variable[9];
6034 struct WBT_ **closurevariable = NULL;
6035 trace.prev = tracehead; tracehead = &trace;
6036 trace.file = LOCATE_parser_prod;
6037 /* Register variable[0]: Local variable */
6038 variable[0] = self;
6039 /* Register variable[1]: Local variable */
6040 variable[1] = param0;
6041 /* Register variable[2]: Local variable */
6042 variable[2] = param1;
6043 /* Register variable[3]: Local variable */
6044 variable[3] = param2;
6045 /* Register variable[4]: Local variable */
6046 variable[4] = param3;
6047 /* Register variable[5]: Local variable */
6048 variable[5] = param4;
6049 /* Register variable[6]: Local variable */
6050 variable[6] = param5;
6051 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
6052 /* Register variable[7]: Method return value and escape marker */
6053 CALL_parser_prod___ADeferredMethPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ADeferredMethPropdef::empty_init*/;
6054 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
6055 /* Register variable[8]: Result */
6056 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6057 if (UNTAG_Bool(variable[8])) { /*if*/
6058 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
6059 }
6060 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
6061 /* Register variable[8]: Result */
6062 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6063 if (UNTAG_Bool(variable[8])) { /*if*/
6064 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
6065 }
6066 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
6067 /* Register variable[8]: Result */
6068 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6069 if (UNTAG_Bool(variable[8])) { /*if*/
6070 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
6071 }
6072 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[0]) /*ADeferredMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
6073 /* Register variable[8]: Result */
6074 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6075 if (UNTAG_Bool(variable[8])) { /*if*/
6076 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[0]) /*PNode::parent=*/;
6077 }
6078 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
6079 /* Register variable[8]: Result */
6080 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ == NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6081 if (UNTAG_Bool(variable[8])) { /*if*/
6082 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[0]) /*PNode::parent=*/;
6083 }
6084 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
6085 /* Register variable[8]: Result */
6086 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ == NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6087 if (UNTAG_Bool(variable[8])) { /*if*/
6088 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[0]) /*PNode::parent=*/;
6089 }
6090 return_label203: while(false);
6091 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
6092 tracehead = trace.prev;
6093 return;
6094 }
6095 void parser_prod___AInternMethPropdef___n_doc__eq(val_t self, val_t param0) {
6096 struct trace_t trace = {NULL, NULL, 2119, LOCATE_parser_prod___AInternMethPropdef___n_doc__eq};
6097 val_t variable[4];
6098 struct WBT_ **closurevariable = NULL;
6099 trace.prev = tracehead; tracehead = &trace;
6100 trace.file = LOCATE_parser_prod;
6101 /* Register variable[0]: Local variable */
6102 variable[0] = self;
6103 /* Register variable[1]: Local variable */
6104 variable[1] = param0;
6105 /* Register variable[2]: Method return value and escape marker */
6106 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
6107 /* Register variable[3]: Result */
6108 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6109 if (UNTAG_Bool(variable[3])) { /*if*/
6110 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6111 }
6112 return_label204: while(false);
6113 tracehead = trace.prev;
6114 return;
6115 }
6116 void parser_prod___AInternMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
6117 struct trace_t trace = {NULL, NULL, 2126, LOCATE_parser_prod___AInternMethPropdef___n_kwredef__eq};
6118 val_t variable[4];
6119 struct WBT_ **closurevariable = NULL;
6120 trace.prev = tracehead; tracehead = &trace;
6121 trace.file = LOCATE_parser_prod;
6122 /* Register variable[0]: Local variable */
6123 variable[0] = self;
6124 /* Register variable[1]: Local variable */
6125 variable[1] = param0;
6126 /* Register variable[2]: Method return value and escape marker */
6127 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
6128 /* Register variable[3]: Result */
6129 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6130 if (UNTAG_Bool(variable[3])) { /*if*/
6131 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6132 }
6133 return_label205: while(false);
6134 tracehead = trace.prev;
6135 return;
6136 }
6137 void parser_prod___AInternMethPropdef___n_visibility__eq(val_t self, val_t param0) {
6138 struct trace_t trace = {NULL, NULL, 2133, LOCATE_parser_prod___AInternMethPropdef___n_visibility__eq};
6139 val_t variable[4];
6140 struct WBT_ **closurevariable = NULL;
6141 trace.prev = tracehead; tracehead = &trace;
6142 trace.file = LOCATE_parser_prod;
6143 /* Register variable[0]: Local variable */
6144 variable[0] = self;
6145 /* Register variable[1]: Local variable */
6146 variable[1] = param0;
6147 /* Register variable[2]: Method return value and escape marker */
6148 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
6149 /* Register variable[3]: Result */
6150 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6151 if (UNTAG_Bool(variable[3])) { /*if*/
6152 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6153 }
6154 return_label206: while(false);
6155 tracehead = trace.prev;
6156 return;
6157 }
6158 void parser_prod___AInternMethPropdef___n_methid__eq(val_t self, val_t param0) {
6159 struct trace_t trace = {NULL, NULL, 2147, LOCATE_parser_prod___AInternMethPropdef___n_methid__eq};
6160 val_t variable[4];
6161 struct WBT_ **closurevariable = NULL;
6162 trace.prev = tracehead; tracehead = &trace;
6163 trace.file = LOCATE_parser_prod;
6164 /* Register variable[0]: Local variable */
6165 variable[0] = self;
6166 /* Register variable[1]: Local variable */
6167 variable[1] = param0;
6168 /* Register variable[2]: Method return value and escape marker */
6169 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
6170 /* Register variable[3]: Result */
6171 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6172 if (UNTAG_Bool(variable[3])) { /*if*/
6173 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6174 }
6175 return_label207: while(false);
6176 tracehead = trace.prev;
6177 return;
6178 }
6179 void parser_prod___AInternMethPropdef___n_signature__eq(val_t self, val_t param0) {
6180 struct trace_t trace = {NULL, NULL, 2154, LOCATE_parser_prod___AInternMethPropdef___n_signature__eq};
6181 val_t variable[4];
6182 struct WBT_ **closurevariable = NULL;
6183 trace.prev = tracehead; tracehead = &trace;
6184 trace.file = LOCATE_parser_prod;
6185 /* Register variable[0]: Local variable */
6186 variable[0] = self;
6187 /* Register variable[1]: Local variable */
6188 variable[1] = param0;
6189 /* Register variable[2]: Method return value and escape marker */
6190 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
6191 /* Register variable[3]: Result */
6192 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6193 if (UNTAG_Bool(variable[3])) { /*if*/
6194 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6195 }
6196 return_label208: while(false);
6197 tracehead = trace.prev;
6198 return;
6199 }
6200 void parser_prod___AInternMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
6201 struct trace_t trace = {NULL, NULL, 2140, LOCATE_parser_prod___AInternMethPropdef___n_kwmeth__eq};
6202 val_t variable[4];
6203 struct WBT_ **closurevariable = NULL;
6204 trace.prev = tracehead; tracehead = &trace;
6205 trace.file = LOCATE_parser_prod;
6206 /* Register variable[0]: Local variable */
6207 variable[0] = self;
6208 /* Register variable[1]: Local variable */
6209 variable[1] = param0;
6210 /* Register variable[2]: Method return value and escape marker */
6211 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
6212 /* Register variable[3]: Result */
6213 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6214 if (UNTAG_Bool(variable[3])) { /*if*/
6215 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6216 }
6217 return_label209: while(false);
6218 tracehead = trace.prev;
6219 return;
6220 }
6221 void parser_prod___AInternMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
6222 struct trace_t trace = {NULL, NULL, 2200, LOCATE_parser_prod___AInternMethPropdef___replace_child};
6223 val_t variable[5];
6224 struct WBT_ **closurevariable = NULL;
6225 trace.prev = tracehead; tracehead = &trace;
6226 trace.file = LOCATE_parser_prod;
6227 /* Register variable[0]: Local variable */
6228 variable[0] = self;
6229 /* Register variable[1]: Local variable */
6230 variable[1] = param0;
6231 /* Register variable[2]: Local variable */
6232 variable[2] = param1;
6233 /* Register variable[3]: Method return value and escape marker */
6234 /* Register variable[4]: Result */
6235 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6236 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2202); nit_exit(1);}
6237 /* Register variable[4]: Result */
6238 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6239 /* Register variable[4]: Result */
6240 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6241 if (UNTAG_Bool(variable[4])) { /*if*/
6242 /* Register variable[4]: Result */
6243 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6244 if (UNTAG_Bool(variable[4])) { /*if*/
6245 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6246 /* Register variable[4]: Result */
6247 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
6248 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2206); nit_exit(1);}
6249 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
6250 } else { /*if*/
6251 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
6252 }
6253 goto return_label210;
6254 }
6255 /* Register variable[4]: Result */
6256 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6257 /* Register variable[4]: Result */
6258 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6259 if (UNTAG_Bool(variable[4])) { /*if*/
6260 /* Register variable[4]: Result */
6261 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6262 if (UNTAG_Bool(variable[4])) { /*if*/
6263 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6264 /* Register variable[4]: Result */
6265 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6266 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2216); nit_exit(1);}
6267 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
6268 } else { /*if*/
6269 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
6270 }
6271 goto return_label210;
6272 }
6273 /* Register variable[4]: Result */
6274 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6275 /* Register variable[4]: Result */
6276 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6277 if (UNTAG_Bool(variable[4])) { /*if*/
6278 /* Register variable[4]: Result */
6279 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6280 if (UNTAG_Bool(variable[4])) { /*if*/
6281 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6282 /* Register variable[4]: Result */
6283 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
6284 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2226); nit_exit(1);}
6285 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
6286 } else { /*if*/
6287 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
6288 }
6289 goto return_label210;
6290 }
6291 /* Register variable[4]: Result */
6292 variable[4] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/;
6293 /* Register variable[4]: Result */
6294 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6295 if (UNTAG_Bool(variable[4])) { /*if*/
6296 /* Register variable[4]: Result */
6297 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6298 if (UNTAG_Bool(variable[4])) { /*if*/
6299 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6300 /* Register variable[4]: Result */
6301 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
6302 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2236); nit_exit(1);}
6303 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
6304 } else { /*if*/
6305 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
6306 }
6307 goto return_label210;
6308 }
6309 /* Register variable[4]: Result */
6310 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6311 /* Register variable[4]: Result */
6312 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6313 if (UNTAG_Bool(variable[4])) { /*if*/
6314 /* Register variable[4]: Result */
6315 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6316 if (UNTAG_Bool(variable[4])) { /*if*/
6317 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6318 /* Register variable[4]: Result */
6319 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
6320 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2246); nit_exit(1);}
6321 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
6322 } else { /*if*/
6323 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
6324 }
6325 goto return_label210;
6326 }
6327 /* Register variable[4]: Result */
6328 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6329 /* Register variable[4]: Result */
6330 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6331 if (UNTAG_Bool(variable[4])) { /*if*/
6332 /* Register variable[4]: Result */
6333 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6334 if (UNTAG_Bool(variable[4])) { /*if*/
6335 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6336 /* Register variable[4]: Result */
6337 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
6338 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2256); nit_exit(1);}
6339 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
6340 } else { /*if*/
6341 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
6342 }
6343 goto return_label210;
6344 }
6345 return_label210: while(false);
6346 tracehead = trace.prev;
6347 return;
6348 }
6349 void parser_prod___AInternMethPropdef___visit_all(val_t self, val_t param0) {
6350 struct trace_t trace = {NULL, NULL, 2265, LOCATE_parser_prod___AInternMethPropdef___visit_all};
6351 val_t variable[4];
6352 struct WBT_ **closurevariable = NULL;
6353 trace.prev = tracehead; tracehead = &trace;
6354 trace.file = LOCATE_parser_prod;
6355 /* Register variable[0]: Local variable */
6356 variable[0] = self;
6357 /* Register variable[1]: Local variable */
6358 variable[1] = param0;
6359 /* Register variable[2]: Method return value and escape marker */
6360 /* Register variable[3]: Result */
6361 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6362 /* Register variable[3]: Result */
6363 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::==*/)))))));
6364 if (UNTAG_Bool(variable[3])) { /*if*/
6365 /* Register variable[3]: Result */
6366 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6367 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6368 }
6369 /* Register variable[3]: Result */
6370 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6371 /* Register variable[3]: Result */
6372 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::==*/)))))));
6373 if (UNTAG_Bool(variable[3])) { /*if*/
6374 /* Register variable[3]: Result */
6375 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6376 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6377 }
6378 /* Register variable[3]: Result */
6379 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6380 /* Register variable[3]: Result */
6381 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::==*/)))))));
6382 if (UNTAG_Bool(variable[3])) { /*if*/
6383 /* Register variable[3]: Result */
6384 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6385 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6386 }
6387 /* Register variable[3]: Result */
6388 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/;
6389 /* Register variable[3]: Result */
6390 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::==*/)))))));
6391 if (UNTAG_Bool(variable[3])) { /*if*/
6392 /* Register variable[3]: Result */
6393 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/;
6394 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6395 }
6396 /* Register variable[3]: Result */
6397 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6398 /* Register variable[3]: Result */
6399 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::==*/)))))));
6400 if (UNTAG_Bool(variable[3])) { /*if*/
6401 /* Register variable[3]: Result */
6402 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6403 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6404 }
6405 /* Register variable[3]: Result */
6406 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6407 /* Register variable[3]: Result */
6408 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::==*/)))))));
6409 if (UNTAG_Bool(variable[3])) { /*if*/
6410 /* Register variable[3]: Result */
6411 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6412 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6413 }
6414 return_label211: while(false);
6415 tracehead = trace.prev;
6416 return;
6417 }
6418 void parser_prod___AInternMethPropdef___visit_all_reverse(val_t self, val_t param0) {
6419 struct trace_t trace = {NULL, NULL, 2287, LOCATE_parser_prod___AInternMethPropdef___visit_all_reverse};
6420 val_t variable[4];
6421 struct WBT_ **closurevariable = NULL;
6422 trace.prev = tracehead; tracehead = &trace;
6423 trace.file = LOCATE_parser_prod;
6424 /* Register variable[0]: Local variable */
6425 variable[0] = self;
6426 /* Register variable[1]: Local variable */
6427 variable[1] = param0;
6428 /* Register variable[2]: Method return value and escape marker */
6429 /* Register variable[3]: Result */
6430 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6431 /* Register variable[3]: Result */
6432 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::==*/)))))));
6433 if (UNTAG_Bool(variable[3])) { /*if*/
6434 /* Register variable[3]: Result */
6435 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6436 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6437 }
6438 /* Register variable[3]: Result */
6439 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6440 /* Register variable[3]: Result */
6441 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::==*/)))))));
6442 if (UNTAG_Bool(variable[3])) { /*if*/
6443 /* Register variable[3]: Result */
6444 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6445 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6446 }
6447 /* Register variable[3]: Result */
6448 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6449 /* Register variable[3]: Result */
6450 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::==*/)))))));
6451 if (UNTAG_Bool(variable[3])) { /*if*/
6452 /* Register variable[3]: Result */
6453 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6454 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6455 }
6456 /* Register variable[3]: Result */
6457 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/;
6458 /* Register variable[3]: Result */
6459 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::==*/)))))));
6460 if (UNTAG_Bool(variable[3])) { /*if*/
6461 /* Register variable[3]: Result */
6462 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/;
6463 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6464 }
6465 /* Register variable[3]: Result */
6466 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6467 /* Register variable[3]: Result */
6468 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::==*/)))))));
6469 if (UNTAG_Bool(variable[3])) { /*if*/
6470 /* Register variable[3]: Result */
6471 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6472 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6473 }
6474 /* Register variable[3]: Result */
6475 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6476 /* Register variable[3]: Result */
6477 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::==*/)))))));
6478 if (UNTAG_Bool(variable[3])) { /*if*/
6479 /* Register variable[3]: Result */
6480 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6481 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6482 }
6483 return_label212: while(false);
6484 tracehead = trace.prev;
6485 return;
6486 }
6487 void parser_prod___AInternMethPropdef___empty_init(val_t self, int* init_table) {
6488 struct trace_t trace = {NULL, NULL, 2162, LOCATE_parser_prod___AInternMethPropdef___empty_init};
6489 val_t variable[2];
6490 struct WBT_ **closurevariable = NULL;
6491 trace.prev = tracehead; tracehead = &trace;
6492 trace.file = LOCATE_parser_prod;
6493 /* Register variable[0]: Local variable */
6494 variable[0] = self;
6495 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
6496 /* Register variable[1]: Method return value and escape marker */
6497 return_label213: while(false);
6498 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
6499 tracehead = trace.prev;
6500 return;
6501 }
6502 void parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, int* init_table) {
6503 struct trace_t trace = {NULL, NULL, 2164, LOCATE_parser_prod___AInternMethPropdef___init_ainternmethpropdef};
6504 val_t variable[9];
6505 struct WBT_ **closurevariable = NULL;
6506 trace.prev = tracehead; tracehead = &trace;
6507 trace.file = LOCATE_parser_prod;
6508 /* Register variable[0]: Local variable */
6509 variable[0] = self;
6510 /* Register variable[1]: Local variable */
6511 variable[1] = param0;
6512 /* Register variable[2]: Local variable */
6513 variable[2] = param1;
6514 /* Register variable[3]: Local variable */
6515 variable[3] = param2;
6516 /* Register variable[4]: Local variable */
6517 variable[4] = param3;
6518 /* Register variable[5]: Local variable */
6519 variable[5] = param4;
6520 /* Register variable[6]: Local variable */
6521 variable[6] = param5;
6522 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
6523 /* Register variable[7]: Method return value and escape marker */
6524 CALL_parser_prod___AInternMethPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AInternMethPropdef::empty_init*/;
6525 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
6526 /* Register variable[8]: Result */
6527 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6528 if (UNTAG_Bool(variable[8])) { /*if*/
6529 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
6530 }
6531 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
6532 /* Register variable[8]: Result */
6533 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6534 if (UNTAG_Bool(variable[8])) { /*if*/
6535 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
6536 }
6537 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
6538 /* Register variable[8]: Result */
6539 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6540 if (UNTAG_Bool(variable[8])) { /*if*/
6541 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
6542 }
6543 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[0]) /*AInternMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
6544 /* Register variable[8]: Result */
6545 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6546 if (UNTAG_Bool(variable[8])) { /*if*/
6547 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[0]) /*PNode::parent=*/;
6548 }
6549 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
6550 /* Register variable[8]: Result */
6551 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ == NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6552 if (UNTAG_Bool(variable[8])) { /*if*/
6553 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[0]) /*PNode::parent=*/;
6554 }
6555 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
6556 /* Register variable[8]: Result */
6557 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ == NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6558 if (UNTAG_Bool(variable[8])) { /*if*/
6559 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[0]) /*PNode::parent=*/;
6560 }
6561 return_label214: while(false);
6562 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
6563 tracehead = trace.prev;
6564 return;
6565 }
6566 void parser_prod___AExternMethPropdef___n_doc__eq(val_t self, val_t param0) {
6567 struct trace_t trace = {NULL, NULL, 2310, LOCATE_parser_prod___AExternMethPropdef___n_doc__eq};
6568 val_t variable[4];
6569 struct WBT_ **closurevariable = NULL;
6570 trace.prev = tracehead; tracehead = &trace;
6571 trace.file = LOCATE_parser_prod;
6572 /* Register variable[0]: Local variable */
6573 variable[0] = self;
6574 /* Register variable[1]: Local variable */
6575 variable[1] = param0;
6576 /* Register variable[2]: Method return value and escape marker */
6577 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
6578 /* Register variable[3]: Result */
6579 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6580 if (UNTAG_Bool(variable[3])) { /*if*/
6581 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6582 }
6583 return_label215: while(false);
6584 tracehead = trace.prev;
6585 return;
6586 }
6587 void parser_prod___AExternMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
6588 struct trace_t trace = {NULL, NULL, 2317, LOCATE_parser_prod___AExternMethPropdef___n_kwredef__eq};
6589 val_t variable[4];
6590 struct WBT_ **closurevariable = NULL;
6591 trace.prev = tracehead; tracehead = &trace;
6592 trace.file = LOCATE_parser_prod;
6593 /* Register variable[0]: Local variable */
6594 variable[0] = self;
6595 /* Register variable[1]: Local variable */
6596 variable[1] = param0;
6597 /* Register variable[2]: Method return value and escape marker */
6598 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
6599 /* Register variable[3]: Result */
6600 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6601 if (UNTAG_Bool(variable[3])) { /*if*/
6602 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6603 }
6604 return_label216: while(false);
6605 tracehead = trace.prev;
6606 return;
6607 }
6608 void parser_prod___AExternMethPropdef___n_visibility__eq(val_t self, val_t param0) {
6609 struct trace_t trace = {NULL, NULL, 2324, LOCATE_parser_prod___AExternMethPropdef___n_visibility__eq};
6610 val_t variable[4];
6611 struct WBT_ **closurevariable = NULL;
6612 trace.prev = tracehead; tracehead = &trace;
6613 trace.file = LOCATE_parser_prod;
6614 /* Register variable[0]: Local variable */
6615 variable[0] = self;
6616 /* Register variable[1]: Local variable */
6617 variable[1] = param0;
6618 /* Register variable[2]: Method return value and escape marker */
6619 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
6620 /* Register variable[3]: Result */
6621 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6622 if (UNTAG_Bool(variable[3])) { /*if*/
6623 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6624 }
6625 return_label217: while(false);
6626 tracehead = trace.prev;
6627 return;
6628 }
6629 void parser_prod___AExternMethPropdef___n_methid__eq(val_t self, val_t param0) {
6630 struct trace_t trace = {NULL, NULL, 2338, LOCATE_parser_prod___AExternMethPropdef___n_methid__eq};
6631 val_t variable[4];
6632 struct WBT_ **closurevariable = NULL;
6633 trace.prev = tracehead; tracehead = &trace;
6634 trace.file = LOCATE_parser_prod;
6635 /* Register variable[0]: Local variable */
6636 variable[0] = self;
6637 /* Register variable[1]: Local variable */
6638 variable[1] = param0;
6639 /* Register variable[2]: Method return value and escape marker */
6640 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
6641 /* Register variable[3]: Result */
6642 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6643 if (UNTAG_Bool(variable[3])) { /*if*/
6644 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6645 }
6646 return_label218: while(false);
6647 tracehead = trace.prev;
6648 return;
6649 }
6650 void parser_prod___AExternMethPropdef___n_signature__eq(val_t self, val_t param0) {
6651 struct trace_t trace = {NULL, NULL, 2345, LOCATE_parser_prod___AExternMethPropdef___n_signature__eq};
6652 val_t variable[4];
6653 struct WBT_ **closurevariable = NULL;
6654 trace.prev = tracehead; tracehead = &trace;
6655 trace.file = LOCATE_parser_prod;
6656 /* Register variable[0]: Local variable */
6657 variable[0] = self;
6658 /* Register variable[1]: Local variable */
6659 variable[1] = param0;
6660 /* Register variable[2]: Method return value and escape marker */
6661 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
6662 /* Register variable[3]: Result */
6663 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6664 if (UNTAG_Bool(variable[3])) { /*if*/
6665 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6666 }
6667 return_label219: while(false);
6668 tracehead = trace.prev;
6669 return;
6670 }
6671 void parser_prod___AExternMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
6672 struct trace_t trace = {NULL, NULL, 2331, LOCATE_parser_prod___AExternMethPropdef___n_kwmeth__eq};
6673 val_t variable[4];
6674 struct WBT_ **closurevariable = NULL;
6675 trace.prev = tracehead; tracehead = &trace;
6676 trace.file = LOCATE_parser_prod;
6677 /* Register variable[0]: Local variable */
6678 variable[0] = self;
6679 /* Register variable[1]: Local variable */
6680 variable[1] = param0;
6681 /* Register variable[2]: Method return value and escape marker */
6682 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
6683 /* Register variable[3]: Result */
6684 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6685 if (UNTAG_Bool(variable[3])) { /*if*/
6686 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6687 }
6688 return_label220: while(false);
6689 tracehead = trace.prev;
6690 return;
6691 }
6692 void parser_prod___AExternMethPropdef___n_extern__eq(val_t self, val_t param0) {
6693 struct trace_t trace = {NULL, NULL, 2352, LOCATE_parser_prod___AExternMethPropdef___n_extern__eq};
6694 val_t variable[4];
6695 struct WBT_ **closurevariable = NULL;
6696 trace.prev = tracehead; tracehead = &trace;
6697 trace.file = LOCATE_parser_prod;
6698 /* Register variable[0]: Local variable */
6699 variable[0] = self;
6700 /* Register variable[1]: Local variable */
6701 variable[1] = param0;
6702 /* Register variable[2]: Method return value and escape marker */
6703 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/ = variable[1] /*n*/;
6704 /* Register variable[3]: Result */
6705 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6706 if (UNTAG_Bool(variable[3])) { /*if*/
6707 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
6708 }
6709 return_label221: while(false);
6710 tracehead = trace.prev;
6711 return;
6712 }
6713 void parser_prod___AExternMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
6714 struct trace_t trace = {NULL, NULL, 2403, LOCATE_parser_prod___AExternMethPropdef___replace_child};
6715 val_t variable[5];
6716 struct WBT_ **closurevariable = NULL;
6717 trace.prev = tracehead; tracehead = &trace;
6718 trace.file = LOCATE_parser_prod;
6719 /* Register variable[0]: Local variable */
6720 variable[0] = self;
6721 /* Register variable[1]: Local variable */
6722 variable[1] = param0;
6723 /* Register variable[2]: Local variable */
6724 variable[2] = param1;
6725 /* Register variable[3]: Method return value and escape marker */
6726 /* Register variable[4]: Result */
6727 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6728 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2405); nit_exit(1);}
6729 /* Register variable[4]: Result */
6730 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6731 /* Register variable[4]: Result */
6732 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6733 if (UNTAG_Bool(variable[4])) { /*if*/
6734 /* Register variable[4]: Result */
6735 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6736 if (UNTAG_Bool(variable[4])) { /*if*/
6737 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6738 /* Register variable[4]: Result */
6739 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
6740 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2409); nit_exit(1);}
6741 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
6742 } else { /*if*/
6743 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
6744 }
6745 goto return_label222;
6746 }
6747 /* Register variable[4]: Result */
6748 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6749 /* Register variable[4]: Result */
6750 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6751 if (UNTAG_Bool(variable[4])) { /*if*/
6752 /* Register variable[4]: Result */
6753 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6754 if (UNTAG_Bool(variable[4])) { /*if*/
6755 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6756 /* Register variable[4]: Result */
6757 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6758 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2419); nit_exit(1);}
6759 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
6760 } else { /*if*/
6761 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
6762 }
6763 goto return_label222;
6764 }
6765 /* Register variable[4]: Result */
6766 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6767 /* Register variable[4]: Result */
6768 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6769 if (UNTAG_Bool(variable[4])) { /*if*/
6770 /* Register variable[4]: Result */
6771 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6772 if (UNTAG_Bool(variable[4])) { /*if*/
6773 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6774 /* Register variable[4]: Result */
6775 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
6776 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2429); nit_exit(1);}
6777 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
6778 } else { /*if*/
6779 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
6780 }
6781 goto return_label222;
6782 }
6783 /* Register variable[4]: Result */
6784 variable[4] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/;
6785 /* Register variable[4]: Result */
6786 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6787 if (UNTAG_Bool(variable[4])) { /*if*/
6788 /* Register variable[4]: Result */
6789 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6790 if (UNTAG_Bool(variable[4])) { /*if*/
6791 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6792 /* Register variable[4]: Result */
6793 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
6794 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2439); nit_exit(1);}
6795 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
6796 } else { /*if*/
6797 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
6798 }
6799 goto return_label222;
6800 }
6801 /* Register variable[4]: Result */
6802 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6803 /* Register variable[4]: Result */
6804 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6805 if (UNTAG_Bool(variable[4])) { /*if*/
6806 /* Register variable[4]: Result */
6807 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6808 if (UNTAG_Bool(variable[4])) { /*if*/
6809 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6810 /* Register variable[4]: Result */
6811 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
6812 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2449); nit_exit(1);}
6813 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
6814 } else { /*if*/
6815 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
6816 }
6817 goto return_label222;
6818 }
6819 /* Register variable[4]: Result */
6820 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6821 /* Register variable[4]: Result */
6822 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6823 if (UNTAG_Bool(variable[4])) { /*if*/
6824 /* Register variable[4]: Result */
6825 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6826 if (UNTAG_Bool(variable[4])) { /*if*/
6827 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6828 /* Register variable[4]: Result */
6829 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
6830 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2459); nit_exit(1);}
6831 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
6832 } else { /*if*/
6833 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
6834 }
6835 goto return_label222;
6836 }
6837 /* Register variable[4]: Result */
6838 variable[4] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/;
6839 /* Register variable[4]: Result */
6840 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6841 if (UNTAG_Bool(variable[4])) { /*if*/
6842 /* Register variable[4]: Result */
6843 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6844 if (UNTAG_Bool(variable[4])) { /*if*/
6845 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
6846 /* Register variable[4]: Result */
6847 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
6848 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2469); nit_exit(1);}
6849 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/ = variable[2] /*new_child*/;
6850 } else { /*if*/
6851 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/ = NIT_NULL /*null*/;
6852 }
6853 goto return_label222;
6854 }
6855 return_label222: while(false);
6856 tracehead = trace.prev;
6857 return;
6858 }
6859 void parser_prod___AExternMethPropdef___visit_all(val_t self, val_t param0) {
6860 struct trace_t trace = {NULL, NULL, 2478, LOCATE_parser_prod___AExternMethPropdef___visit_all};
6861 val_t variable[4];
6862 struct WBT_ **closurevariable = NULL;
6863 trace.prev = tracehead; tracehead = &trace;
6864 trace.file = LOCATE_parser_prod;
6865 /* Register variable[0]: Local variable */
6866 variable[0] = self;
6867 /* Register variable[1]: Local variable */
6868 variable[1] = param0;
6869 /* Register variable[2]: Method return value and escape marker */
6870 /* Register variable[3]: Result */
6871 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6872 /* Register variable[3]: Result */
6873 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::==*/)))))));
6874 if (UNTAG_Bool(variable[3])) { /*if*/
6875 /* Register variable[3]: Result */
6876 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6877 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6878 }
6879 /* Register variable[3]: Result */
6880 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6881 /* Register variable[3]: Result */
6882 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::==*/)))))));
6883 if (UNTAG_Bool(variable[3])) { /*if*/
6884 /* Register variable[3]: Result */
6885 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6886 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6887 }
6888 /* Register variable[3]: Result */
6889 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6890 /* Register variable[3]: Result */
6891 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::==*/)))))));
6892 if (UNTAG_Bool(variable[3])) { /*if*/
6893 /* Register variable[3]: Result */
6894 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6895 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6896 }
6897 /* Register variable[3]: Result */
6898 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/;
6899 /* Register variable[3]: Result */
6900 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::==*/)))))));
6901 if (UNTAG_Bool(variable[3])) { /*if*/
6902 /* Register variable[3]: Result */
6903 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/;
6904 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6905 }
6906 /* Register variable[3]: Result */
6907 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6908 /* Register variable[3]: Result */
6909 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::==*/)))))));
6910 if (UNTAG_Bool(variable[3])) { /*if*/
6911 /* Register variable[3]: Result */
6912 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6913 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6914 }
6915 /* Register variable[3]: Result */
6916 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6917 /* Register variable[3]: Result */
6918 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::==*/)))))));
6919 if (UNTAG_Bool(variable[3])) { /*if*/
6920 /* Register variable[3]: Result */
6921 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6922 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6923 }
6924 /* Register variable[3]: Result */
6925 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/;
6926 /* Register variable[3]: Result */
6927 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::==*/)))))));
6928 if (UNTAG_Bool(variable[3])) { /*if*/
6929 /* Register variable[3]: Result */
6930 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/;
6931 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6932 }
6933 return_label223: while(false);
6934 tracehead = trace.prev;
6935 return;
6936 }
6937 void parser_prod___AExternMethPropdef___visit_all_reverse(val_t self, val_t param0) {
6938 struct trace_t trace = {NULL, NULL, 2503, LOCATE_parser_prod___AExternMethPropdef___visit_all_reverse};
6939 val_t variable[4];
6940 struct WBT_ **closurevariable = NULL;
6941 trace.prev = tracehead; tracehead = &trace;
6942 trace.file = LOCATE_parser_prod;
6943 /* Register variable[0]: Local variable */
6944 variable[0] = self;
6945 /* Register variable[1]: Local variable */
6946 variable[1] = param0;
6947 /* Register variable[2]: Method return value and escape marker */
6948 /* Register variable[3]: Result */
6949 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6950 /* Register variable[3]: Result */
6951 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::==*/)))))));
6952 if (UNTAG_Bool(variable[3])) { /*if*/
6953 /* Register variable[3]: Result */
6954 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
6955 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6956 }
6957 /* Register variable[3]: Result */
6958 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6959 /* Register variable[3]: Result */
6960 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::==*/)))))));
6961 if (UNTAG_Bool(variable[3])) { /*if*/
6962 /* Register variable[3]: Result */
6963 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
6964 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6965 }
6966 /* Register variable[3]: Result */
6967 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6968 /* Register variable[3]: Result */
6969 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::==*/)))))));
6970 if (UNTAG_Bool(variable[3])) { /*if*/
6971 /* Register variable[3]: Result */
6972 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
6973 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6974 }
6975 /* Register variable[3]: Result */
6976 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/;
6977 /* Register variable[3]: Result */
6978 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::==*/)))))));
6979 if (UNTAG_Bool(variable[3])) { /*if*/
6980 /* Register variable[3]: Result */
6981 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/;
6982 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6983 }
6984 /* Register variable[3]: Result */
6985 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6986 /* Register variable[3]: Result */
6987 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::==*/)))))));
6988 if (UNTAG_Bool(variable[3])) { /*if*/
6989 /* Register variable[3]: Result */
6990 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
6991 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6992 }
6993 /* Register variable[3]: Result */
6994 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
6995 /* Register variable[3]: Result */
6996 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::==*/)))))));
6997 if (UNTAG_Bool(variable[3])) { /*if*/
6998 /* Register variable[3]: Result */
6999 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7000 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7001 }
7002 /* Register variable[3]: Result */
7003 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/;
7004 /* Register variable[3]: Result */
7005 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::==*/)))))));
7006 if (UNTAG_Bool(variable[3])) { /*if*/
7007 /* Register variable[3]: Result */
7008 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/;
7009 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7010 }
7011 return_label224: while(false);
7012 tracehead = trace.prev;
7013 return;
7014 }
7015 void parser_prod___AExternMethPropdef___empty_init(val_t self, int* init_table) {
7016 struct trace_t trace = {NULL, NULL, 2360, LOCATE_parser_prod___AExternMethPropdef___empty_init};
7017 val_t variable[2];
7018 struct WBT_ **closurevariable = NULL;
7019 trace.prev = tracehead; tracehead = &trace;
7020 trace.file = LOCATE_parser_prod;
7021 /* Register variable[0]: Local variable */
7022 variable[0] = self;
7023 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
7024 /* Register variable[1]: Method return value and escape marker */
7025 return_label225: while(false);
7026 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
7027 tracehead = trace.prev;
7028 return;
7029 }
7030 void parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, val_t param6, int* init_table) {
7031 struct trace_t trace = {NULL, NULL, 2362, LOCATE_parser_prod___AExternMethPropdef___init_aexternmethpropdef};
7032 val_t variable[10];
7033 struct WBT_ **closurevariable = NULL;
7034 trace.prev = tracehead; tracehead = &trace;
7035 trace.file = LOCATE_parser_prod;
7036 /* Register variable[0]: Local variable */
7037 variable[0] = self;
7038 /* Register variable[1]: Local variable */
7039 variable[1] = param0;
7040 /* Register variable[2]: Local variable */
7041 variable[2] = param1;
7042 /* Register variable[3]: Local variable */
7043 variable[3] = param2;
7044 /* Register variable[4]: Local variable */
7045 variable[4] = param3;
7046 /* Register variable[5]: Local variable */
7047 variable[5] = param4;
7048 /* Register variable[6]: Local variable */
7049 variable[6] = param5;
7050 /* Register variable[7]: Local variable */
7051 variable[7] = param6;
7052 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
7053 /* Register variable[8]: Method return value and escape marker */
7054 CALL_parser_prod___AExternMethPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AExternMethPropdef::empty_init*/;
7055 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
7056 /* Register variable[9]: Result */
7057 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7058 if (UNTAG_Bool(variable[9])) { /*if*/
7059 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
7060 }
7061 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
7062 /* Register variable[9]: Result */
7063 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7064 if (UNTAG_Bool(variable[9])) { /*if*/
7065 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
7066 }
7067 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
7068 /* Register variable[9]: Result */
7069 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7070 if (UNTAG_Bool(variable[9])) { /*if*/
7071 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
7072 }
7073 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[0]) /*AExternMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
7074 /* Register variable[9]: Result */
7075 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7076 if (UNTAG_Bool(variable[9])) { /*if*/
7077 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[0]) /*PNode::parent=*/;
7078 }
7079 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
7080 /* Register variable[9]: Result */
7081 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ == NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7082 if (UNTAG_Bool(variable[9])) { /*if*/
7083 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[0]) /*PNode::parent=*/;
7084 }
7085 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
7086 /* Register variable[9]: Result */
7087 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ == NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7088 if (UNTAG_Bool(variable[9])) { /*if*/
7089 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[0]) /*PNode::parent=*/;
7090 }
7091 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[0]) /*AExternMethPropdef::_n_extern*/ = variable[7] /*n_extern*/;
7092 /* Register variable[9]: Result */
7093 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_extern*/ == NIT_NULL /*null*/) || (( variable[7] /*n_extern*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_extern*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_extern*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_extern*/)( variable[7] /*n_extern*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7094 if (UNTAG_Bool(variable[9])) { /*if*/
7095 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_extern*/)( variable[7] /*n_extern*/, variable[0]) /*PNode::parent=*/;
7096 }
7097 return_label226: while(false);
7098 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
7099 tracehead = trace.prev;
7100 return;
7101 }
7102 void parser_prod___AConcreteMethPropdef___n_doc__eq(val_t self, val_t param0) {
7103 struct trace_t trace = {NULL, NULL, 2529, LOCATE_parser_prod___AConcreteMethPropdef___n_doc__eq};
7104 val_t variable[4];
7105 struct WBT_ **closurevariable = NULL;
7106 trace.prev = tracehead; tracehead = &trace;
7107 trace.file = LOCATE_parser_prod;
7108 /* Register variable[0]: Local variable */
7109 variable[0] = self;
7110 /* Register variable[1]: Local variable */
7111 variable[1] = param0;
7112 /* Register variable[2]: Method return value and escape marker */
7113 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
7114 /* Register variable[3]: Result */
7115 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7116 if (UNTAG_Bool(variable[3])) { /*if*/
7117 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7118 }
7119 return_label227: while(false);
7120 tracehead = trace.prev;
7121 return;
7122 }
7123 void parser_prod___AConcreteMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
7124 struct trace_t trace = {NULL, NULL, 2536, LOCATE_parser_prod___AConcreteMethPropdef___n_kwredef__eq};
7125 val_t variable[4];
7126 struct WBT_ **closurevariable = NULL;
7127 trace.prev = tracehead; tracehead = &trace;
7128 trace.file = LOCATE_parser_prod;
7129 /* Register variable[0]: Local variable */
7130 variable[0] = self;
7131 /* Register variable[1]: Local variable */
7132 variable[1] = param0;
7133 /* Register variable[2]: Method return value and escape marker */
7134 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
7135 /* Register variable[3]: Result */
7136 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7137 if (UNTAG_Bool(variable[3])) { /*if*/
7138 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7139 }
7140 return_label228: while(false);
7141 tracehead = trace.prev;
7142 return;
7143 }
7144 void parser_prod___AConcreteMethPropdef___n_visibility__eq(val_t self, val_t param0) {
7145 struct trace_t trace = {NULL, NULL, 2543, LOCATE_parser_prod___AConcreteMethPropdef___n_visibility__eq};
7146 val_t variable[4];
7147 struct WBT_ **closurevariable = NULL;
7148 trace.prev = tracehead; tracehead = &trace;
7149 trace.file = LOCATE_parser_prod;
7150 /* Register variable[0]: Local variable */
7151 variable[0] = self;
7152 /* Register variable[1]: Local variable */
7153 variable[1] = param0;
7154 /* Register variable[2]: Method return value and escape marker */
7155 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
7156 /* Register variable[3]: Result */
7157 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7158 if (UNTAG_Bool(variable[3])) { /*if*/
7159 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7160 }
7161 return_label229: while(false);
7162 tracehead = trace.prev;
7163 return;
7164 }
7165 void parser_prod___AConcreteMethPropdef___n_methid__eq(val_t self, val_t param0) {
7166 struct trace_t trace = {NULL, NULL, 2557, LOCATE_parser_prod___AConcreteMethPropdef___n_methid__eq};
7167 val_t variable[4];
7168 struct WBT_ **closurevariable = NULL;
7169 trace.prev = tracehead; tracehead = &trace;
7170 trace.file = LOCATE_parser_prod;
7171 /* Register variable[0]: Local variable */
7172 variable[0] = self;
7173 /* Register variable[1]: Local variable */
7174 variable[1] = param0;
7175 /* Register variable[2]: Method return value and escape marker */
7176 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
7177 /* Register variable[3]: Result */
7178 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7179 if (UNTAG_Bool(variable[3])) { /*if*/
7180 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7181 }
7182 return_label230: while(false);
7183 tracehead = trace.prev;
7184 return;
7185 }
7186 void parser_prod___AConcreteMethPropdef___n_signature__eq(val_t self, val_t param0) {
7187 struct trace_t trace = {NULL, NULL, 2564, LOCATE_parser_prod___AConcreteMethPropdef___n_signature__eq};
7188 val_t variable[4];
7189 struct WBT_ **closurevariable = NULL;
7190 trace.prev = tracehead; tracehead = &trace;
7191 trace.file = LOCATE_parser_prod;
7192 /* Register variable[0]: Local variable */
7193 variable[0] = self;
7194 /* Register variable[1]: Local variable */
7195 variable[1] = param0;
7196 /* Register variable[2]: Method return value and escape marker */
7197 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
7198 /* Register variable[3]: Result */
7199 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7200 if (UNTAG_Bool(variable[3])) { /*if*/
7201 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7202 }
7203 return_label231: while(false);
7204 tracehead = trace.prev;
7205 return;
7206 }
7207 void parser_prod___AConcreteMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
7208 struct trace_t trace = {NULL, NULL, 2550, LOCATE_parser_prod___AConcreteMethPropdef___n_kwmeth__eq};
7209 val_t variable[4];
7210 struct WBT_ **closurevariable = NULL;
7211 trace.prev = tracehead; tracehead = &trace;
7212 trace.file = LOCATE_parser_prod;
7213 /* Register variable[0]: Local variable */
7214 variable[0] = self;
7215 /* Register variable[1]: Local variable */
7216 variable[1] = param0;
7217 /* Register variable[2]: Method return value and escape marker */
7218 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
7219 /* Register variable[3]: Result */
7220 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7221 if (UNTAG_Bool(variable[3])) { /*if*/
7222 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7223 }
7224 return_label232: while(false);
7225 tracehead = trace.prev;
7226 return;
7227 }
7228 void parser_prod___AConcreteMethPropdef___n_block__eq(val_t self, val_t param0) {
7229 struct trace_t trace = {NULL, NULL, 2571, LOCATE_parser_prod___AConcreteMethPropdef___n_block__eq};
7230 val_t variable[4];
7231 struct WBT_ **closurevariable = NULL;
7232 trace.prev = tracehead; tracehead = &trace;
7233 trace.file = LOCATE_parser_prod;
7234 /* Register variable[0]: Local variable */
7235 variable[0] = self;
7236 /* Register variable[1]: Local variable */
7237 variable[1] = param0;
7238 /* Register variable[2]: Method return value and escape marker */
7239 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[1] /*n*/;
7240 /* Register variable[3]: Result */
7241 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7242 if (UNTAG_Bool(variable[3])) { /*if*/
7243 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7244 }
7245 return_label233: while(false);
7246 tracehead = trace.prev;
7247 return;
7248 }
7249 void parser_prod___AConcreteMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
7250 struct trace_t trace = {NULL, NULL, 2622, LOCATE_parser_prod___AConcreteMethPropdef___replace_child};
7251 val_t variable[5];
7252 struct WBT_ **closurevariable = NULL;
7253 trace.prev = tracehead; tracehead = &trace;
7254 trace.file = LOCATE_parser_prod;
7255 /* Register variable[0]: Local variable */
7256 variable[0] = self;
7257 /* Register variable[1]: Local variable */
7258 variable[1] = param0;
7259 /* Register variable[2]: Local variable */
7260 variable[2] = param1;
7261 /* Register variable[3]: Method return value and escape marker */
7262 /* Register variable[4]: Result */
7263 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7264 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2624); nit_exit(1);}
7265 /* Register variable[4]: Result */
7266 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7267 /* Register variable[4]: Result */
7268 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7269 if (UNTAG_Bool(variable[4])) { /*if*/
7270 /* Register variable[4]: Result */
7271 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7272 if (UNTAG_Bool(variable[4])) { /*if*/
7273 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7274 /* Register variable[4]: Result */
7275 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
7276 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2628); nit_exit(1);}
7277 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
7278 } else { /*if*/
7279 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
7280 }
7281 goto return_label234;
7282 }
7283 /* Register variable[4]: Result */
7284 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7285 /* Register variable[4]: Result */
7286 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7287 if (UNTAG_Bool(variable[4])) { /*if*/
7288 /* Register variable[4]: Result */
7289 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7290 if (UNTAG_Bool(variable[4])) { /*if*/
7291 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7292 /* Register variable[4]: Result */
7293 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7294 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2638); nit_exit(1);}
7295 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
7296 } else { /*if*/
7297 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
7298 }
7299 goto return_label234;
7300 }
7301 /* Register variable[4]: Result */
7302 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7303 /* Register variable[4]: Result */
7304 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7305 if (UNTAG_Bool(variable[4])) { /*if*/
7306 /* Register variable[4]: Result */
7307 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7308 if (UNTAG_Bool(variable[4])) { /*if*/
7309 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7310 /* Register variable[4]: Result */
7311 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
7312 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2648); nit_exit(1);}
7313 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
7314 } else { /*if*/
7315 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
7316 }
7317 goto return_label234;
7318 }
7319 /* Register variable[4]: Result */
7320 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/;
7321 /* Register variable[4]: Result */
7322 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7323 if (UNTAG_Bool(variable[4])) { /*if*/
7324 /* Register variable[4]: Result */
7325 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7326 if (UNTAG_Bool(variable[4])) { /*if*/
7327 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7328 /* Register variable[4]: Result */
7329 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
7330 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2658); nit_exit(1);}
7331 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
7332 } else { /*if*/
7333 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
7334 }
7335 goto return_label234;
7336 }
7337 /* Register variable[4]: Result */
7338 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7339 /* Register variable[4]: Result */
7340 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7341 if (UNTAG_Bool(variable[4])) { /*if*/
7342 /* Register variable[4]: Result */
7343 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7344 if (UNTAG_Bool(variable[4])) { /*if*/
7345 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7346 /* Register variable[4]: Result */
7347 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
7348 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2668); nit_exit(1);}
7349 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
7350 } else { /*if*/
7351 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
7352 }
7353 goto return_label234;
7354 }
7355 /* Register variable[4]: Result */
7356 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7357 /* Register variable[4]: Result */
7358 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7359 if (UNTAG_Bool(variable[4])) { /*if*/
7360 /* Register variable[4]: Result */
7361 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7362 if (UNTAG_Bool(variable[4])) { /*if*/
7363 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7364 /* Register variable[4]: Result */
7365 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
7366 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2678); nit_exit(1);}
7367 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
7368 } else { /*if*/
7369 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
7370 }
7371 goto return_label234;
7372 }
7373 /* Register variable[4]: Result */
7374 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
7375 /* Register variable[4]: Result */
7376 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7377 if (UNTAG_Bool(variable[4])) { /*if*/
7378 /* Register variable[4]: Result */
7379 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7380 if (UNTAG_Bool(variable[4])) { /*if*/
7381 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7382 /* Register variable[4]: Result */
7383 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
7384 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2688); nit_exit(1);}
7385 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*new_child*/;
7386 } else { /*if*/
7387 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = NIT_NULL /*null*/;
7388 }
7389 goto return_label234;
7390 }
7391 return_label234: while(false);
7392 tracehead = trace.prev;
7393 return;
7394 }
7395 void parser_prod___AConcreteMethPropdef___visit_all(val_t self, val_t param0) {
7396 struct trace_t trace = {NULL, NULL, 2697, LOCATE_parser_prod___AConcreteMethPropdef___visit_all};
7397 val_t variable[4];
7398 struct WBT_ **closurevariable = NULL;
7399 trace.prev = tracehead; tracehead = &trace;
7400 trace.file = LOCATE_parser_prod;
7401 /* Register variable[0]: Local variable */
7402 variable[0] = self;
7403 /* Register variable[1]: Local variable */
7404 variable[1] = param0;
7405 /* Register variable[2]: Method return value and escape marker */
7406 /* Register variable[3]: Result */
7407 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7408 /* Register variable[3]: Result */
7409 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::==*/)))))));
7410 if (UNTAG_Bool(variable[3])) { /*if*/
7411 /* Register variable[3]: Result */
7412 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7413 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7414 }
7415 /* Register variable[3]: Result */
7416 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7417 /* Register variable[3]: Result */
7418 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::==*/)))))));
7419 if (UNTAG_Bool(variable[3])) { /*if*/
7420 /* Register variable[3]: Result */
7421 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7422 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7423 }
7424 /* Register variable[3]: Result */
7425 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7426 /* Register variable[3]: Result */
7427 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::==*/)))))));
7428 if (UNTAG_Bool(variable[3])) { /*if*/
7429 /* Register variable[3]: Result */
7430 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7431 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7432 }
7433 /* Register variable[3]: Result */
7434 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/;
7435 /* Register variable[3]: Result */
7436 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::==*/)))))));
7437 if (UNTAG_Bool(variable[3])) { /*if*/
7438 /* Register variable[3]: Result */
7439 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/;
7440 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7441 }
7442 /* Register variable[3]: Result */
7443 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7444 /* Register variable[3]: Result */
7445 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::==*/)))))));
7446 if (UNTAG_Bool(variable[3])) { /*if*/
7447 /* Register variable[3]: Result */
7448 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7449 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7450 }
7451 /* Register variable[3]: Result */
7452 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7453 /* Register variable[3]: Result */
7454 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::==*/)))))));
7455 if (UNTAG_Bool(variable[3])) { /*if*/
7456 /* Register variable[3]: Result */
7457 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7458 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7459 }
7460 /* Register variable[3]: Result */
7461 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
7462 /* Register variable[3]: Result */
7463 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::==*/)))))));
7464 if (UNTAG_Bool(variable[3])) { /*if*/
7465 /* Register variable[3]: Result */
7466 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
7467 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7468 }
7469 return_label235: while(false);
7470 tracehead = trace.prev;
7471 return;
7472 }
7473 void parser_prod___AConcreteMethPropdef___visit_all_reverse(val_t self, val_t param0) {
7474 struct trace_t trace = {NULL, NULL, 2722, LOCATE_parser_prod___AConcreteMethPropdef___visit_all_reverse};
7475 val_t variable[4];
7476 struct WBT_ **closurevariable = NULL;
7477 trace.prev = tracehead; tracehead = &trace;
7478 trace.file = LOCATE_parser_prod;
7479 /* Register variable[0]: Local variable */
7480 variable[0] = self;
7481 /* Register variable[1]: Local variable */
7482 variable[1] = param0;
7483 /* Register variable[2]: Method return value and escape marker */
7484 /* Register variable[3]: Result */
7485 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7486 /* Register variable[3]: Result */
7487 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::==*/)))))));
7488 if (UNTAG_Bool(variable[3])) { /*if*/
7489 /* Register variable[3]: Result */
7490 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7491 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7492 }
7493 /* Register variable[3]: Result */
7494 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7495 /* Register variable[3]: Result */
7496 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::==*/)))))));
7497 if (UNTAG_Bool(variable[3])) { /*if*/
7498 /* Register variable[3]: Result */
7499 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7500 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7501 }
7502 /* Register variable[3]: Result */
7503 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7504 /* Register variable[3]: Result */
7505 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::==*/)))))));
7506 if (UNTAG_Bool(variable[3])) { /*if*/
7507 /* Register variable[3]: Result */
7508 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7509 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7510 }
7511 /* Register variable[3]: Result */
7512 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/;
7513 /* Register variable[3]: Result */
7514 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::==*/)))))));
7515 if (UNTAG_Bool(variable[3])) { /*if*/
7516 /* Register variable[3]: Result */
7517 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/;
7518 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7519 }
7520 /* Register variable[3]: Result */
7521 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7522 /* Register variable[3]: Result */
7523 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::==*/)))))));
7524 if (UNTAG_Bool(variable[3])) { /*if*/
7525 /* Register variable[3]: Result */
7526 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7527 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7528 }
7529 /* Register variable[3]: Result */
7530 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7531 /* Register variable[3]: Result */
7532 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::==*/)))))));
7533 if (UNTAG_Bool(variable[3])) { /*if*/
7534 /* Register variable[3]: Result */
7535 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7536 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7537 }
7538 /* Register variable[3]: Result */
7539 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
7540 /* Register variable[3]: Result */
7541 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::==*/)))))));
7542 if (UNTAG_Bool(variable[3])) { /*if*/
7543 /* Register variable[3]: Result */
7544 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
7545 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7546 }
7547 return_label236: while(false);
7548 tracehead = trace.prev;
7549 return;
7550 }
7551 void parser_prod___AConcreteMethPropdef___empty_init(val_t self, int* init_table) {
7552 struct trace_t trace = {NULL, NULL, 2579, LOCATE_parser_prod___AConcreteMethPropdef___empty_init};
7553 val_t variable[2];
7554 struct WBT_ **closurevariable = NULL;
7555 trace.prev = tracehead; tracehead = &trace;
7556 trace.file = LOCATE_parser_prod;
7557 /* Register variable[0]: Local variable */
7558 variable[0] = self;
7559 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
7560 /* Register variable[1]: Method return value and escape marker */
7561 return_label237: while(false);
7562 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
7563 tracehead = trace.prev;
7564 return;
7565 }
7566 void parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, val_t param6, int* init_table) {
7567 struct trace_t trace = {NULL, NULL, 2581, LOCATE_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef};
7568 val_t variable[10];
7569 struct WBT_ **closurevariable = NULL;
7570 trace.prev = tracehead; tracehead = &trace;
7571 trace.file = LOCATE_parser_prod;
7572 /* Register variable[0]: Local variable */
7573 variable[0] = self;
7574 /* Register variable[1]: Local variable */
7575 variable[1] = param0;
7576 /* Register variable[2]: Local variable */
7577 variable[2] = param1;
7578 /* Register variable[3]: Local variable */
7579 variable[3] = param2;
7580 /* Register variable[4]: Local variable */
7581 variable[4] = param3;
7582 /* Register variable[5]: Local variable */
7583 variable[5] = param4;
7584 /* Register variable[6]: Local variable */
7585 variable[6] = param5;
7586 /* Register variable[7]: Local variable */
7587 variable[7] = param6;
7588 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
7589 /* Register variable[8]: Method return value and escape marker */
7590 CALL_parser_prod___AConcreteMethPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
7591 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
7592 /* Register variable[9]: Result */
7593 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7594 if (UNTAG_Bool(variable[9])) { /*if*/
7595 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
7596 }
7597 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
7598 /* Register variable[9]: Result */
7599 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7600 if (UNTAG_Bool(variable[9])) { /*if*/
7601 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
7602 }
7603 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
7604 /* Register variable[9]: Result */
7605 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7606 if (UNTAG_Bool(variable[9])) { /*if*/
7607 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
7608 }
7609 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[0]) /*AConcreteMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
7610 /* Register variable[9]: Result */
7611 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7612 if (UNTAG_Bool(variable[9])) { /*if*/
7613 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[0]) /*PNode::parent=*/;
7614 }
7615 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
7616 /* Register variable[9]: Result */
7617 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ == NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7618 if (UNTAG_Bool(variable[9])) { /*if*/
7619 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[0]) /*PNode::parent=*/;
7620 }
7621 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
7622 /* Register variable[9]: Result */
7623 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ == NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7624 if (UNTAG_Bool(variable[9])) { /*if*/
7625 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[0]) /*PNode::parent=*/;
7626 }
7627 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[7] /*n_block*/;
7628 /* Register variable[9]: Result */
7629 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_block*/ == NIT_NULL /*null*/) || (( variable[7] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)( variable[7] /*n_block*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7630 if (UNTAG_Bool(variable[9])) { /*if*/
7631 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_block*/)( variable[7] /*n_block*/, variable[0]) /*PNode::parent=*/;
7632 }
7633 return_label238: while(false);
7634 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
7635 tracehead = trace.prev;
7636 return;
7637 }
7638 void parser_prod___AConcreteInitPropdef___n_doc__eq(val_t self, val_t param0) {
7639 struct trace_t trace = {NULL, NULL, 2748, LOCATE_parser_prod___AConcreteInitPropdef___n_doc__eq};
7640 val_t variable[4];
7641 struct WBT_ **closurevariable = NULL;
7642 trace.prev = tracehead; tracehead = &trace;
7643 trace.file = LOCATE_parser_prod;
7644 /* Register variable[0]: Local variable */
7645 variable[0] = self;
7646 /* Register variable[1]: Local variable */
7647 variable[1] = param0;
7648 /* Register variable[2]: Method return value and escape marker */
7649 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
7650 /* Register variable[3]: Result */
7651 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7652 if (UNTAG_Bool(variable[3])) { /*if*/
7653 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7654 }
7655 return_label239: while(false);
7656 tracehead = trace.prev;
7657 return;
7658 }
7659 void parser_prod___AConcreteInitPropdef___n_kwredef__eq(val_t self, val_t param0) {
7660 struct trace_t trace = {NULL, NULL, 2755, LOCATE_parser_prod___AConcreteInitPropdef___n_kwredef__eq};
7661 val_t variable[4];
7662 struct WBT_ **closurevariable = NULL;
7663 trace.prev = tracehead; tracehead = &trace;
7664 trace.file = LOCATE_parser_prod;
7665 /* Register variable[0]: Local variable */
7666 variable[0] = self;
7667 /* Register variable[1]: Local variable */
7668 variable[1] = param0;
7669 /* Register variable[2]: Method return value and escape marker */
7670 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
7671 /* Register variable[3]: Result */
7672 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7673 if (UNTAG_Bool(variable[3])) { /*if*/
7674 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7675 }
7676 return_label240: while(false);
7677 tracehead = trace.prev;
7678 return;
7679 }
7680 void parser_prod___AConcreteInitPropdef___n_visibility__eq(val_t self, val_t param0) {
7681 struct trace_t trace = {NULL, NULL, 2762, LOCATE_parser_prod___AConcreteInitPropdef___n_visibility__eq};
7682 val_t variable[4];
7683 struct WBT_ **closurevariable = NULL;
7684 trace.prev = tracehead; tracehead = &trace;
7685 trace.file = LOCATE_parser_prod;
7686 /* Register variable[0]: Local variable */
7687 variable[0] = self;
7688 /* Register variable[1]: Local variable */
7689 variable[1] = param0;
7690 /* Register variable[2]: Method return value and escape marker */
7691 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
7692 /* Register variable[3]: Result */
7693 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7694 if (UNTAG_Bool(variable[3])) { /*if*/
7695 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7696 }
7697 return_label241: while(false);
7698 tracehead = trace.prev;
7699 return;
7700 }
7701 void parser_prod___AConcreteInitPropdef___n_methid__eq(val_t self, val_t param0) {
7702 struct trace_t trace = {NULL, NULL, 2776, LOCATE_parser_prod___AConcreteInitPropdef___n_methid__eq};
7703 val_t variable[4];
7704 struct WBT_ **closurevariable = NULL;
7705 trace.prev = tracehead; tracehead = &trace;
7706 trace.file = LOCATE_parser_prod;
7707 /* Register variable[0]: Local variable */
7708 variable[0] = self;
7709 /* Register variable[1]: Local variable */
7710 variable[1] = param0;
7711 /* Register variable[2]: Method return value and escape marker */
7712 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
7713 /* Register variable[3]: Result */
7714 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7715 if (UNTAG_Bool(variable[3])) { /*if*/
7716 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7717 }
7718 return_label242: while(false);
7719 tracehead = trace.prev;
7720 return;
7721 }
7722 void parser_prod___AConcreteInitPropdef___n_signature__eq(val_t self, val_t param0) {
7723 struct trace_t trace = {NULL, NULL, 2783, LOCATE_parser_prod___AConcreteInitPropdef___n_signature__eq};
7724 val_t variable[4];
7725 struct WBT_ **closurevariable = NULL;
7726 trace.prev = tracehead; tracehead = &trace;
7727 trace.file = LOCATE_parser_prod;
7728 /* Register variable[0]: Local variable */
7729 variable[0] = self;
7730 /* Register variable[1]: Local variable */
7731 variable[1] = param0;
7732 /* Register variable[2]: Method return value and escape marker */
7733 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
7734 /* Register variable[3]: Result */
7735 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7736 if (UNTAG_Bool(variable[3])) { /*if*/
7737 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7738 }
7739 return_label243: while(false);
7740 tracehead = trace.prev;
7741 return;
7742 }
7743 void parser_prod___AConcreteInitPropdef___n_block__eq(val_t self, val_t param0) {
7744 struct trace_t trace = {NULL, NULL, 2790, LOCATE_parser_prod___AConcreteInitPropdef___n_block__eq};
7745 val_t variable[4];
7746 struct WBT_ **closurevariable = NULL;
7747 trace.prev = tracehead; tracehead = &trace;
7748 trace.file = LOCATE_parser_prod;
7749 /* Register variable[0]: Local variable */
7750 variable[0] = self;
7751 /* Register variable[1]: Local variable */
7752 variable[1] = param0;
7753 /* Register variable[2]: Method return value and escape marker */
7754 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[1] /*n*/;
7755 /* Register variable[3]: Result */
7756 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7757 if (UNTAG_Bool(variable[3])) { /*if*/
7758 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7759 }
7760 return_label244: while(false);
7761 tracehead = trace.prev;
7762 return;
7763 }
7764 void parser_prod___AConcreteInitPropdef___n_kwinit__eq(val_t self, val_t param0) {
7765 struct trace_t trace = {NULL, NULL, 2769, LOCATE_parser_prod___AConcreteInitPropdef___n_kwinit__eq};
7766 val_t variable[4];
7767 struct WBT_ **closurevariable = NULL;
7768 trace.prev = tracehead; tracehead = &trace;
7769 trace.file = LOCATE_parser_prod;
7770 /* Register variable[0]: Local variable */
7771 variable[0] = self;
7772 /* Register variable[1]: Local variable */
7773 variable[1] = param0;
7774 /* Register variable[2]: Method return value and escape marker */
7775 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/ = variable[1] /*n*/;
7776 /* Register variable[3]: Result */
7777 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7778 if (UNTAG_Bool(variable[3])) { /*if*/
7779 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
7780 }
7781 return_label245: while(false);
7782 tracehead = trace.prev;
7783 return;
7784 }
7785 void parser_prod___AConcreteInitPropdef___replace_child(val_t self, val_t param0, val_t param1) {
7786 struct trace_t trace = {NULL, NULL, 2841, LOCATE_parser_prod___AConcreteInitPropdef___replace_child};
7787 val_t variable[5];
7788 struct WBT_ **closurevariable = NULL;
7789 trace.prev = tracehead; tracehead = &trace;
7790 trace.file = LOCATE_parser_prod;
7791 /* Register variable[0]: Local variable */
7792 variable[0] = self;
7793 /* Register variable[1]: Local variable */
7794 variable[1] = param0;
7795 /* Register variable[2]: Local variable */
7796 variable[2] = param1;
7797 /* Register variable[3]: Method return value and escape marker */
7798 /* Register variable[4]: Result */
7799 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7800 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2843); nit_exit(1);}
7801 /* Register variable[4]: Result */
7802 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7803 /* Register variable[4]: Result */
7804 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7805 if (UNTAG_Bool(variable[4])) { /*if*/
7806 /* Register variable[4]: Result */
7807 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7808 if (UNTAG_Bool(variable[4])) { /*if*/
7809 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7810 /* Register variable[4]: Result */
7811 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
7812 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2847); nit_exit(1);}
7813 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
7814 } else { /*if*/
7815 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
7816 }
7817 goto return_label246;
7818 }
7819 /* Register variable[4]: Result */
7820 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7821 /* Register variable[4]: Result */
7822 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7823 if (UNTAG_Bool(variable[4])) { /*if*/
7824 /* Register variable[4]: Result */
7825 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7826 if (UNTAG_Bool(variable[4])) { /*if*/
7827 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7828 /* Register variable[4]: Result */
7829 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7830 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2857); nit_exit(1);}
7831 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
7832 } else { /*if*/
7833 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
7834 }
7835 goto return_label246;
7836 }
7837 /* Register variable[4]: Result */
7838 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7839 /* Register variable[4]: Result */
7840 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7841 if (UNTAG_Bool(variable[4])) { /*if*/
7842 /* Register variable[4]: Result */
7843 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7844 if (UNTAG_Bool(variable[4])) { /*if*/
7845 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7846 /* Register variable[4]: Result */
7847 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
7848 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2867); nit_exit(1);}
7849 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
7850 } else { /*if*/
7851 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
7852 }
7853 goto return_label246;
7854 }
7855 /* Register variable[4]: Result */
7856 variable[4] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/;
7857 /* Register variable[4]: Result */
7858 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7859 if (UNTAG_Bool(variable[4])) { /*if*/
7860 /* Register variable[4]: Result */
7861 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7862 if (UNTAG_Bool(variable[4])) { /*if*/
7863 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7864 /* Register variable[4]: Result */
7865 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
7866 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2877); nit_exit(1);}
7867 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/ = variable[2] /*new_child*/;
7868 } else { /*if*/
7869 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/ = NIT_NULL /*null*/;
7870 }
7871 goto return_label246;
7872 }
7873 /* Register variable[4]: Result */
7874 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7875 /* Register variable[4]: Result */
7876 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7877 if (UNTAG_Bool(variable[4])) { /*if*/
7878 /* Register variable[4]: Result */
7879 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7880 if (UNTAG_Bool(variable[4])) { /*if*/
7881 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7882 /* Register variable[4]: Result */
7883 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
7884 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2887); nit_exit(1);}
7885 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
7886 } else { /*if*/
7887 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
7888 }
7889 goto return_label246;
7890 }
7891 /* Register variable[4]: Result */
7892 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7893 /* Register variable[4]: Result */
7894 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7895 if (UNTAG_Bool(variable[4])) { /*if*/
7896 /* Register variable[4]: Result */
7897 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7898 if (UNTAG_Bool(variable[4])) { /*if*/
7899 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7900 /* Register variable[4]: Result */
7901 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
7902 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2897); nit_exit(1);}
7903 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
7904 } else { /*if*/
7905 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
7906 }
7907 goto return_label246;
7908 }
7909 /* Register variable[4]: Result */
7910 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
7911 /* Register variable[4]: Result */
7912 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7913 if (UNTAG_Bool(variable[4])) { /*if*/
7914 /* Register variable[4]: Result */
7915 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7916 if (UNTAG_Bool(variable[4])) { /*if*/
7917 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
7918 /* Register variable[4]: Result */
7919 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
7920 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2907); nit_exit(1);}
7921 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*new_child*/;
7922 } else { /*if*/
7923 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = NIT_NULL /*null*/;
7924 }
7925 goto return_label246;
7926 }
7927 return_label246: while(false);
7928 tracehead = trace.prev;
7929 return;
7930 }
7931 void parser_prod___AConcreteInitPropdef___visit_all(val_t self, val_t param0) {
7932 struct trace_t trace = {NULL, NULL, 2916, LOCATE_parser_prod___AConcreteInitPropdef___visit_all};
7933 val_t variable[4];
7934 struct WBT_ **closurevariable = NULL;
7935 trace.prev = tracehead; tracehead = &trace;
7936 trace.file = LOCATE_parser_prod;
7937 /* Register variable[0]: Local variable */
7938 variable[0] = self;
7939 /* Register variable[1]: Local variable */
7940 variable[1] = param0;
7941 /* Register variable[2]: Method return value and escape marker */
7942 /* Register variable[3]: Result */
7943 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7944 /* Register variable[3]: Result */
7945 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::==*/)))))));
7946 if (UNTAG_Bool(variable[3])) { /*if*/
7947 /* Register variable[3]: Result */
7948 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
7949 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7950 }
7951 /* Register variable[3]: Result */
7952 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7953 /* Register variable[3]: Result */
7954 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::==*/)))))));
7955 if (UNTAG_Bool(variable[3])) { /*if*/
7956 /* Register variable[3]: Result */
7957 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
7958 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7959 }
7960 /* Register variable[3]: Result */
7961 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7962 /* Register variable[3]: Result */
7963 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::==*/)))))));
7964 if (UNTAG_Bool(variable[3])) { /*if*/
7965 /* Register variable[3]: Result */
7966 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
7967 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7968 }
7969 /* Register variable[3]: Result */
7970 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/;
7971 /* Register variable[3]: Result */
7972 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::==*/)))))));
7973 if (UNTAG_Bool(variable[3])) { /*if*/
7974 /* Register variable[3]: Result */
7975 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/;
7976 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7977 }
7978 /* Register variable[3]: Result */
7979 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7980 /* Register variable[3]: Result */
7981 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::==*/)))))));
7982 if (UNTAG_Bool(variable[3])) { /*if*/
7983 /* Register variable[3]: Result */
7984 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
7985 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7986 }
7987 /* Register variable[3]: Result */
7988 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7989 /* Register variable[3]: Result */
7990 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::==*/)))))));
7991 if (UNTAG_Bool(variable[3])) { /*if*/
7992 /* Register variable[3]: Result */
7993 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
7994 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7995 }
7996 /* Register variable[3]: Result */
7997 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
7998 /* Register variable[3]: Result */
7999 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::==*/)))))));
8000 if (UNTAG_Bool(variable[3])) { /*if*/
8001 /* Register variable[3]: Result */
8002 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8003 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8004 }
8005 return_label247: while(false);
8006 tracehead = trace.prev;
8007 return;
8008 }
8009 void parser_prod___AConcreteInitPropdef___visit_all_reverse(val_t self, val_t param0) {
8010 struct trace_t trace = {NULL, NULL, 2941, LOCATE_parser_prod___AConcreteInitPropdef___visit_all_reverse};
8011 val_t variable[4];
8012 struct WBT_ **closurevariable = NULL;
8013 trace.prev = tracehead; tracehead = &trace;
8014 trace.file = LOCATE_parser_prod;
8015 /* Register variable[0]: Local variable */
8016 variable[0] = self;
8017 /* Register variable[1]: Local variable */
8018 variable[1] = param0;
8019 /* Register variable[2]: Method return value and escape marker */
8020 /* Register variable[3]: Result */
8021 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
8022 /* Register variable[3]: Result */
8023 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::==*/)))))));
8024 if (UNTAG_Bool(variable[3])) { /*if*/
8025 /* Register variable[3]: Result */
8026 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
8027 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8028 }
8029 /* Register variable[3]: Result */
8030 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
8031 /* Register variable[3]: Result */
8032 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::==*/)))))));
8033 if (UNTAG_Bool(variable[3])) { /*if*/
8034 /* Register variable[3]: Result */
8035 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
8036 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8037 }
8038 /* Register variable[3]: Result */
8039 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
8040 /* Register variable[3]: Result */
8041 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::==*/)))))));
8042 if (UNTAG_Bool(variable[3])) { /*if*/
8043 /* Register variable[3]: Result */
8044 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/;
8045 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8046 }
8047 /* Register variable[3]: Result */
8048 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/;
8049 /* Register variable[3]: Result */
8050 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::==*/)))))));
8051 if (UNTAG_Bool(variable[3])) { /*if*/
8052 /* Register variable[3]: Result */
8053 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/;
8054 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8055 }
8056 /* Register variable[3]: Result */
8057 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
8058 /* Register variable[3]: Result */
8059 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::==*/)))))));
8060 if (UNTAG_Bool(variable[3])) { /*if*/
8061 /* Register variable[3]: Result */
8062 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/;
8063 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8064 }
8065 /* Register variable[3]: Result */
8066 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
8067 /* Register variable[3]: Result */
8068 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::==*/)))))));
8069 if (UNTAG_Bool(variable[3])) { /*if*/
8070 /* Register variable[3]: Result */
8071 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/;
8072 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8073 }
8074 /* Register variable[3]: Result */
8075 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8076 /* Register variable[3]: Result */
8077 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::==*/)))))));
8078 if (UNTAG_Bool(variable[3])) { /*if*/
8079 /* Register variable[3]: Result */
8080 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8081 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8082 }
8083 return_label248: while(false);
8084 tracehead = trace.prev;
8085 return;
8086 }
8087 void parser_prod___AConcreteInitPropdef___empty_init(val_t self, int* init_table) {
8088 struct trace_t trace = {NULL, NULL, 2798, LOCATE_parser_prod___AConcreteInitPropdef___empty_init};
8089 val_t variable[2];
8090 struct WBT_ **closurevariable = NULL;
8091 trace.prev = tracehead; tracehead = &trace;
8092 trace.file = LOCATE_parser_prod;
8093 /* Register variable[0]: Local variable */
8094 variable[0] = self;
8095 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
8096 /* Register variable[1]: Method return value and escape marker */
8097 return_label249: while(false);
8098 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
8099 tracehead = trace.prev;
8100 return;
8101 }
8102 void parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, val_t param6, int* init_table) {
8103 struct trace_t trace = {NULL, NULL, 2800, LOCATE_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef};
8104 val_t variable[10];
8105 struct WBT_ **closurevariable = NULL;
8106 trace.prev = tracehead; tracehead = &trace;
8107 trace.file = LOCATE_parser_prod;
8108 /* Register variable[0]: Local variable */
8109 variable[0] = self;
8110 /* Register variable[1]: Local variable */
8111 variable[1] = param0;
8112 /* Register variable[2]: Local variable */
8113 variable[2] = param1;
8114 /* Register variable[3]: Local variable */
8115 variable[3] = param2;
8116 /* Register variable[4]: Local variable */
8117 variable[4] = param3;
8118 /* Register variable[5]: Local variable */
8119 variable[5] = param4;
8120 /* Register variable[6]: Local variable */
8121 variable[6] = param5;
8122 /* Register variable[7]: Local variable */
8123 variable[7] = param6;
8124 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
8125 /* Register variable[8]: Method return value and escape marker */
8126 CALL_parser_prod___AConcreteInitPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AConcreteInitPropdef::empty_init*/;
8127 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
8128 /* Register variable[9]: Result */
8129 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8130 if (UNTAG_Bool(variable[9])) { /*if*/
8131 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
8132 }
8133 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
8134 /* Register variable[9]: Result */
8135 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8136 if (UNTAG_Bool(variable[9])) { /*if*/
8137 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
8138 }
8139 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[0]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
8140 /* Register variable[9]: Result */
8141 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8142 if (UNTAG_Bool(variable[9])) { /*if*/
8143 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
8144 }
8145 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[0]) /*AConcreteInitPropdef::_n_kwinit*/ = variable[4] /*n_kwinit*/;
8146 /* Register variable[9]: Result */
8147 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwinit*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwinit*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwinit*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwinit*/)( variable[4] /*n_kwinit*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8148 if (UNTAG_Bool(variable[9])) { /*if*/
8149 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwinit*/)( variable[4] /*n_kwinit*/, variable[0]) /*PNode::parent=*/;
8150 }
8151 ATTR_parser_nodes___AMethPropdef____n_methid(variable[0]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
8152 /* Register variable[9]: Result */
8153 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ == NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8154 if (UNTAG_Bool(variable[9])) { /*if*/
8155 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[0]) /*PNode::parent=*/;
8156 }
8157 ATTR_parser_nodes___AMethPropdef____n_signature(variable[0]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
8158 /* Register variable[9]: Result */
8159 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ == NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8160 if (UNTAG_Bool(variable[9])) { /*if*/
8161 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[0]) /*PNode::parent=*/;
8162 }
8163 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[7] /*n_block*/;
8164 /* Register variable[9]: Result */
8165 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_block*/ == NIT_NULL /*null*/) || (( variable[7] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)( variable[7] /*n_block*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8166 if (UNTAG_Bool(variable[9])) { /*if*/
8167 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_block*/)( variable[7] /*n_block*/, variable[0]) /*PNode::parent=*/;
8168 }
8169 return_label250: while(false);
8170 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
8171 tracehead = trace.prev;
8172 return;
8173 }
8174 void parser_prod___AMainMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
8175 struct trace_t trace = {NULL, NULL, 2967, LOCATE_parser_prod___AMainMethPropdef___n_kwredef__eq};
8176 val_t variable[4];
8177 struct WBT_ **closurevariable = NULL;
8178 trace.prev = tracehead; tracehead = &trace;
8179 trace.file = LOCATE_parser_prod;
8180 /* Register variable[0]: Local variable */
8181 variable[0] = self;
8182 /* Register variable[1]: Local variable */
8183 variable[1] = param0;
8184 /* Register variable[2]: Method return value and escape marker */
8185 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
8186 /* Register variable[3]: Result */
8187 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8188 if (UNTAG_Bool(variable[3])) { /*if*/
8189 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8190 }
8191 return_label251: while(false);
8192 tracehead = trace.prev;
8193 return;
8194 }
8195 void parser_prod___AMainMethPropdef___n_block__eq(val_t self, val_t param0) {
8196 struct trace_t trace = {NULL, NULL, 2974, LOCATE_parser_prod___AMainMethPropdef___n_block__eq};
8197 val_t variable[4];
8198 struct WBT_ **closurevariable = NULL;
8199 trace.prev = tracehead; tracehead = &trace;
8200 trace.file = LOCATE_parser_prod;
8201 /* Register variable[0]: Local variable */
8202 variable[0] = self;
8203 /* Register variable[1]: Local variable */
8204 variable[1] = param0;
8205 /* Register variable[2]: Method return value and escape marker */
8206 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[1] /*n*/;
8207 /* Register variable[3]: Result */
8208 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8209 if (UNTAG_Bool(variable[3])) { /*if*/
8210 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8211 }
8212 return_label252: while(false);
8213 tracehead = trace.prev;
8214 return;
8215 }
8216 void parser_prod___AMainMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
8217 struct trace_t trace = {NULL, NULL, 3000, LOCATE_parser_prod___AMainMethPropdef___replace_child};
8218 val_t variable[5];
8219 struct WBT_ **closurevariable = NULL;
8220 trace.prev = tracehead; tracehead = &trace;
8221 trace.file = LOCATE_parser_prod;
8222 /* Register variable[0]: Local variable */
8223 variable[0] = self;
8224 /* Register variable[1]: Local variable */
8225 variable[1] = param0;
8226 /* Register variable[2]: Local variable */
8227 variable[2] = param1;
8228 /* Register variable[3]: Method return value and escape marker */
8229 /* Register variable[4]: Result */
8230 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8231 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainMethPropdef___replace_child, LOCATE_parser_prod, 3002); nit_exit(1);}
8232 /* Register variable[4]: Result */
8233 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
8234 /* Register variable[4]: Result */
8235 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8236 if (UNTAG_Bool(variable[4])) { /*if*/
8237 /* Register variable[4]: Result */
8238 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8239 if (UNTAG_Bool(variable[4])) { /*if*/
8240 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8241 /* Register variable[4]: Result */
8242 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8243 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainMethPropdef___replace_child, LOCATE_parser_prod, 3006); nit_exit(1);}
8244 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
8245 } else { /*if*/
8246 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
8247 }
8248 goto return_label253;
8249 }
8250 /* Register variable[4]: Result */
8251 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8252 /* Register variable[4]: Result */
8253 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8254 if (UNTAG_Bool(variable[4])) { /*if*/
8255 /* Register variable[4]: Result */
8256 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8257 if (UNTAG_Bool(variable[4])) { /*if*/
8258 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8259 /* Register variable[4]: Result */
8260 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
8261 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainMethPropdef___replace_child, LOCATE_parser_prod, 3016); nit_exit(1);}
8262 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*new_child*/;
8263 } else { /*if*/
8264 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = NIT_NULL /*null*/;
8265 }
8266 goto return_label253;
8267 }
8268 return_label253: while(false);
8269 tracehead = trace.prev;
8270 return;
8271 }
8272 void parser_prod___AMainMethPropdef___visit_all(val_t self, val_t param0) {
8273 struct trace_t trace = {NULL, NULL, 3025, LOCATE_parser_prod___AMainMethPropdef___visit_all};
8274 val_t variable[4];
8275 struct WBT_ **closurevariable = NULL;
8276 trace.prev = tracehead; tracehead = &trace;
8277 trace.file = LOCATE_parser_prod;
8278 /* Register variable[0]: Local variable */
8279 variable[0] = self;
8280 /* Register variable[1]: Local variable */
8281 variable[1] = param0;
8282 /* Register variable[2]: Method return value and escape marker */
8283 /* Register variable[3]: Result */
8284 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
8285 /* Register variable[3]: Result */
8286 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::==*/)))))));
8287 if (UNTAG_Bool(variable[3])) { /*if*/
8288 /* Register variable[3]: Result */
8289 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
8290 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8291 }
8292 /* Register variable[3]: Result */
8293 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8294 /* Register variable[3]: Result */
8295 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::==*/)))))));
8296 if (UNTAG_Bool(variable[3])) { /*if*/
8297 /* Register variable[3]: Result */
8298 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8299 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8300 }
8301 return_label254: while(false);
8302 tracehead = trace.prev;
8303 return;
8304 }
8305 void parser_prod___AMainMethPropdef___visit_all_reverse(val_t self, val_t param0) {
8306 struct trace_t trace = {NULL, NULL, 3035, LOCATE_parser_prod___AMainMethPropdef___visit_all_reverse};
8307 val_t variable[4];
8308 struct WBT_ **closurevariable = NULL;
8309 trace.prev = tracehead; tracehead = &trace;
8310 trace.file = LOCATE_parser_prod;
8311 /* Register variable[0]: Local variable */
8312 variable[0] = self;
8313 /* Register variable[1]: Local variable */
8314 variable[1] = param0;
8315 /* Register variable[2]: Method return value and escape marker */
8316 /* Register variable[3]: Result */
8317 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
8318 /* Register variable[3]: Result */
8319 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::==*/)))))));
8320 if (UNTAG_Bool(variable[3])) { /*if*/
8321 /* Register variable[3]: Result */
8322 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/;
8323 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8324 }
8325 /* Register variable[3]: Result */
8326 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8327 /* Register variable[3]: Result */
8328 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::==*/)))))));
8329 if (UNTAG_Bool(variable[3])) { /*if*/
8330 /* Register variable[3]: Result */
8331 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/;
8332 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8333 }
8334 return_label255: while(false);
8335 tracehead = trace.prev;
8336 return;
8337 }
8338 void parser_prod___AMainMethPropdef___empty_init(val_t self, int* init_table) {
8339 struct trace_t trace = {NULL, NULL, 2982, LOCATE_parser_prod___AMainMethPropdef___empty_init};
8340 val_t variable[2];
8341 struct WBT_ **closurevariable = NULL;
8342 trace.prev = tracehead; tracehead = &trace;
8343 trace.file = LOCATE_parser_prod;
8344 /* Register variable[0]: Local variable */
8345 variable[0] = self;
8346 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
8347 /* Register variable[1]: Method return value and escape marker */
8348 return_label256: while(false);
8349 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
8350 tracehead = trace.prev;
8351 return;
8352 }
8353 void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t self, val_t param0, val_t param1, int* init_table) {
8354 struct trace_t trace = {NULL, NULL, 2984, LOCATE_parser_prod___AMainMethPropdef___init_amainmethpropdef};
8355 val_t variable[5];
8356 struct WBT_ **closurevariable = NULL;
8357 trace.prev = tracehead; tracehead = &trace;
8358 trace.file = LOCATE_parser_prod;
8359 /* Register variable[0]: Local variable */
8360 variable[0] = self;
8361 /* Register variable[1]: Local variable */
8362 variable[1] = param0;
8363 /* Register variable[2]: Local variable */
8364 variable[2] = param1;
8365 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
8366 /* Register variable[3]: Method return value and escape marker */
8367 CALL_parser_prod___AMainMethPropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AMainMethPropdef::empty_init*/;
8368 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[0]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n_kwredef*/;
8369 /* Register variable[4]: Result */
8370 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8371 if (UNTAG_Bool(variable[4])) { /*if*/
8372 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
8373 }
8374 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[0]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*n_block*/;
8375 /* Register variable[4]: Result */
8376 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_block*/ == NIT_NULL /*null*/) || (( variable[2] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)( variable[2] /*n_block*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8377 if (UNTAG_Bool(variable[4])) { /*if*/
8378 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_block*/)( variable[2] /*n_block*/, variable[0]) /*PNode::parent=*/;
8379 }
8380 return_label257: while(false);
8381 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
8382 tracehead = trace.prev;
8383 return;
8384 }
8385 void parser_prod___ATypePropdef___n_doc__eq(val_t self, val_t param0) {
8386 struct trace_t trace = {NULL, NULL, 3046, LOCATE_parser_prod___ATypePropdef___n_doc__eq};
8387 val_t variable[4];
8388 struct WBT_ **closurevariable = NULL;
8389 trace.prev = tracehead; tracehead = &trace;
8390 trace.file = LOCATE_parser_prod;
8391 /* Register variable[0]: Local variable */
8392 variable[0] = self;
8393 /* Register variable[1]: Local variable */
8394 variable[1] = param0;
8395 /* Register variable[2]: Method return value and escape marker */
8396 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
8397 /* Register variable[3]: Result */
8398 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8399 if (UNTAG_Bool(variable[3])) { /*if*/
8400 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8401 }
8402 return_label258: while(false);
8403 tracehead = trace.prev;
8404 return;
8405 }
8406 void parser_prod___ATypePropdef___n_kwredef__eq(val_t self, val_t param0) {
8407 struct trace_t trace = {NULL, NULL, 3053, LOCATE_parser_prod___ATypePropdef___n_kwredef__eq};
8408 val_t variable[4];
8409 struct WBT_ **closurevariable = NULL;
8410 trace.prev = tracehead; tracehead = &trace;
8411 trace.file = LOCATE_parser_prod;
8412 /* Register variable[0]: Local variable */
8413 variable[0] = self;
8414 /* Register variable[1]: Local variable */
8415 variable[1] = param0;
8416 /* Register variable[2]: Method return value and escape marker */
8417 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/ = variable[1] /*n*/;
8418 /* Register variable[3]: Result */
8419 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8420 if (UNTAG_Bool(variable[3])) { /*if*/
8421 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8422 }
8423 return_label259: while(false);
8424 tracehead = trace.prev;
8425 return;
8426 }
8427 void parser_prod___ATypePropdef___n_visibility__eq(val_t self, val_t param0) {
8428 struct trace_t trace = {NULL, NULL, 3060, LOCATE_parser_prod___ATypePropdef___n_visibility__eq};
8429 val_t variable[4];
8430 struct WBT_ **closurevariable = NULL;
8431 trace.prev = tracehead; tracehead = &trace;
8432 trace.file = LOCATE_parser_prod;
8433 /* Register variable[0]: Local variable */
8434 variable[0] = self;
8435 /* Register variable[1]: Local variable */
8436 variable[1] = param0;
8437 /* Register variable[2]: Method return value and escape marker */
8438 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/ = variable[1] /*n*/;
8439 /* Register variable[3]: Result */
8440 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8441 if (UNTAG_Bool(variable[3])) { /*if*/
8442 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8443 }
8444 return_label260: while(false);
8445 tracehead = trace.prev;
8446 return;
8447 }
8448 void parser_prod___ATypePropdef___n_kwtype__eq(val_t self, val_t param0) {
8449 struct trace_t trace = {NULL, NULL, 3067, LOCATE_parser_prod___ATypePropdef___n_kwtype__eq};
8450 val_t variable[4];
8451 struct WBT_ **closurevariable = NULL;
8452 trace.prev = tracehead; tracehead = &trace;
8453 trace.file = LOCATE_parser_prod;
8454 /* Register variable[0]: Local variable */
8455 variable[0] = self;
8456 /* Register variable[1]: Local variable */
8457 variable[1] = param0;
8458 /* Register variable[2]: Method return value and escape marker */
8459 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/ = variable[1] /*n*/;
8460 /* Register variable[3]: Result */
8461 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8462 if (UNTAG_Bool(variable[3])) { /*if*/
8463 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8464 }
8465 return_label261: while(false);
8466 tracehead = trace.prev;
8467 return;
8468 }
8469 void parser_prod___ATypePropdef___n_id__eq(val_t self, val_t param0) {
8470 struct trace_t trace = {NULL, NULL, 3074, LOCATE_parser_prod___ATypePropdef___n_id__eq};
8471 val_t variable[4];
8472 struct WBT_ **closurevariable = NULL;
8473 trace.prev = tracehead; tracehead = &trace;
8474 trace.file = LOCATE_parser_prod;
8475 /* Register variable[0]: Local variable */
8476 variable[0] = self;
8477 /* Register variable[1]: Local variable */
8478 variable[1] = param0;
8479 /* Register variable[2]: Method return value and escape marker */
8480 ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/ = variable[1] /*n*/;
8481 /* Register variable[3]: Result */
8482 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8483 if (UNTAG_Bool(variable[3])) { /*if*/
8484 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8485 }
8486 return_label262: while(false);
8487 tracehead = trace.prev;
8488 return;
8489 }
8490 void parser_prod___ATypePropdef___n_type__eq(val_t self, val_t param0) {
8491 struct trace_t trace = {NULL, NULL, 3081, LOCATE_parser_prod___ATypePropdef___n_type__eq};
8492 val_t variable[4];
8493 struct WBT_ **closurevariable = NULL;
8494 trace.prev = tracehead; tracehead = &trace;
8495 trace.file = LOCATE_parser_prod;
8496 /* Register variable[0]: Local variable */
8497 variable[0] = self;
8498 /* Register variable[1]: Local variable */
8499 variable[1] = param0;
8500 /* Register variable[2]: Method return value and escape marker */
8501 ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/ = variable[1] /*n*/;
8502 /* Register variable[3]: Result */
8503 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8504 if (UNTAG_Bool(variable[3])) { /*if*/
8505 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8506 }
8507 return_label263: while(false);
8508 tracehead = trace.prev;
8509 return;
8510 }
8511 void parser_prod___ATypePropdef___replace_child(val_t self, val_t param0, val_t param1) {
8512 struct trace_t trace = {NULL, NULL, 3127, LOCATE_parser_prod___ATypePropdef___replace_child};
8513 val_t variable[5];
8514 struct WBT_ **closurevariable = NULL;
8515 trace.prev = tracehead; tracehead = &trace;
8516 trace.file = LOCATE_parser_prod;
8517 /* Register variable[0]: Local variable */
8518 variable[0] = self;
8519 /* Register variable[1]: Local variable */
8520 variable[1] = param0;
8521 /* Register variable[2]: Local variable */
8522 variable[2] = param1;
8523 /* Register variable[3]: Method return value and escape marker */
8524 /* Register variable[4]: Result */
8525 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8526 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3129); nit_exit(1);}
8527 /* Register variable[4]: Result */
8528 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
8529 /* Register variable[4]: Result */
8530 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8531 if (UNTAG_Bool(variable[4])) { /*if*/
8532 /* Register variable[4]: Result */
8533 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8534 if (UNTAG_Bool(variable[4])) { /*if*/
8535 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8536 /* Register variable[4]: Result */
8537 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
8538 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3133); nit_exit(1);}
8539 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
8540 } else { /*if*/
8541 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
8542 }
8543 goto return_label264;
8544 }
8545 /* Register variable[4]: Result */
8546 variable[4] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/;
8547 /* Register variable[4]: Result */
8548 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8549 if (UNTAG_Bool(variable[4])) { /*if*/
8550 /* Register variable[4]: Result */
8551 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8552 if (UNTAG_Bool(variable[4])) { /*if*/
8553 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8554 /* Register variable[4]: Result */
8555 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8556 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3143); nit_exit(1);}
8557 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/ = variable[2] /*new_child*/;
8558 } else { /*if*/
8559 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/ = NIT_NULL /*null*/;
8560 }
8561 goto return_label264;
8562 }
8563 /* Register variable[4]: Result */
8564 variable[4] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/;
8565 /* Register variable[4]: Result */
8566 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8567 if (UNTAG_Bool(variable[4])) { /*if*/
8568 /* Register variable[4]: Result */
8569 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8570 if (UNTAG_Bool(variable[4])) { /*if*/
8571 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8572 /* Register variable[4]: Result */
8573 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
8574 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3153); nit_exit(1);}
8575 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/ = variable[2] /*new_child*/;
8576 } else { /*if*/
8577 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/ = NIT_NULL /*null*/;
8578 }
8579 goto return_label264;
8580 }
8581 /* Register variable[4]: Result */
8582 variable[4] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/;
8583 /* Register variable[4]: Result */
8584 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8585 if (UNTAG_Bool(variable[4])) { /*if*/
8586 /* Register variable[4]: Result */
8587 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8588 if (UNTAG_Bool(variable[4])) { /*if*/
8589 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8590 /* Register variable[4]: Result */
8591 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
8592 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3163); nit_exit(1);}
8593 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/ = variable[2] /*new_child*/;
8594 } else { /*if*/
8595 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/ = NIT_NULL /*null*/;
8596 }
8597 goto return_label264;
8598 }
8599 /* Register variable[4]: Result */
8600 variable[4] = ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/;
8601 /* Register variable[4]: Result */
8602 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8603 if (UNTAG_Bool(variable[4])) { /*if*/
8604 /* Register variable[4]: Result */
8605 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8606 if (UNTAG_Bool(variable[4])) { /*if*/
8607 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8608 /* Register variable[4]: Result */
8609 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
8610 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3173); nit_exit(1);}
8611 ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/ = variable[2] /*new_child*/;
8612 } else { /*if*/
8613 ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/ = NIT_NULL /*null*/;
8614 }
8615 goto return_label264;
8616 }
8617 /* Register variable[4]: Result */
8618 variable[4] = ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/;
8619 /* Register variable[4]: Result */
8620 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8621 if (UNTAG_Bool(variable[4])) { /*if*/
8622 /* Register variable[4]: Result */
8623 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8624 if (UNTAG_Bool(variable[4])) { /*if*/
8625 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8626 /* Register variable[4]: Result */
8627 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
8628 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3183); nit_exit(1);}
8629 ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/ = variable[2] /*new_child*/;
8630 } else { /*if*/
8631 ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/ = NIT_NULL /*null*/;
8632 }
8633 goto return_label264;
8634 }
8635 return_label264: while(false);
8636 tracehead = trace.prev;
8637 return;
8638 }
8639 void parser_prod___ATypePropdef___visit_all(val_t self, val_t param0) {
8640 struct trace_t trace = {NULL, NULL, 3192, LOCATE_parser_prod___ATypePropdef___visit_all};
8641 val_t variable[4];
8642 struct WBT_ **closurevariable = NULL;
8643 trace.prev = tracehead; tracehead = &trace;
8644 trace.file = LOCATE_parser_prod;
8645 /* Register variable[0]: Local variable */
8646 variable[0] = self;
8647 /* Register variable[1]: Local variable */
8648 variable[1] = param0;
8649 /* Register variable[2]: Method return value and escape marker */
8650 /* Register variable[3]: Result */
8651 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
8652 /* Register variable[3]: Result */
8653 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::==*/)))))));
8654 if (UNTAG_Bool(variable[3])) { /*if*/
8655 /* Register variable[3]: Result */
8656 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
8657 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8658 }
8659 /* Register variable[3]: Result */
8660 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/;
8661 /* Register variable[3]: Result */
8662 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::==*/)))))));
8663 if (UNTAG_Bool(variable[3])) { /*if*/
8664 /* Register variable[3]: Result */
8665 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/;
8666 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8667 }
8668 /* Register variable[3]: Result */
8669 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/;
8670 /* Register variable[3]: Result */
8671 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::==*/)))))));
8672 if (UNTAG_Bool(variable[3])) { /*if*/
8673 /* Register variable[3]: Result */
8674 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/;
8675 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8676 }
8677 /* Register variable[3]: Result */
8678 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/;
8679 /* Register variable[3]: Result */
8680 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::==*/)))))));
8681 if (UNTAG_Bool(variable[3])) { /*if*/
8682 /* Register variable[3]: Result */
8683 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/;
8684 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8685 }
8686 /* Register variable[3]: Result */
8687 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/;
8688 /* Register variable[3]: Result */
8689 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::==*/)))))));
8690 if (UNTAG_Bool(variable[3])) { /*if*/
8691 /* Register variable[3]: Result */
8692 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/;
8693 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8694 }
8695 /* Register variable[3]: Result */
8696 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/;
8697 /* Register variable[3]: Result */
8698 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::==*/)))))));
8699 if (UNTAG_Bool(variable[3])) { /*if*/
8700 /* Register variable[3]: Result */
8701 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/;
8702 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8703 }
8704 return_label265: while(false);
8705 tracehead = trace.prev;
8706 return;
8707 }
8708 void parser_prod___ATypePropdef___visit_all_reverse(val_t self, val_t param0) {
8709 struct trace_t trace = {NULL, NULL, 3214, LOCATE_parser_prod___ATypePropdef___visit_all_reverse};
8710 val_t variable[4];
8711 struct WBT_ **closurevariable = NULL;
8712 trace.prev = tracehead; tracehead = &trace;
8713 trace.file = LOCATE_parser_prod;
8714 /* Register variable[0]: Local variable */
8715 variable[0] = self;
8716 /* Register variable[1]: Local variable */
8717 variable[1] = param0;
8718 /* Register variable[2]: Method return value and escape marker */
8719 /* Register variable[3]: Result */
8720 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
8721 /* Register variable[3]: Result */
8722 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::==*/)))))));
8723 if (UNTAG_Bool(variable[3])) { /*if*/
8724 /* Register variable[3]: Result */
8725 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/;
8726 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8727 }
8728 /* Register variable[3]: Result */
8729 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/;
8730 /* Register variable[3]: Result */
8731 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::==*/)))))));
8732 if (UNTAG_Bool(variable[3])) { /*if*/
8733 /* Register variable[3]: Result */
8734 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/;
8735 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8736 }
8737 /* Register variable[3]: Result */
8738 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/;
8739 /* Register variable[3]: Result */
8740 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::==*/)))))));
8741 if (UNTAG_Bool(variable[3])) { /*if*/
8742 /* Register variable[3]: Result */
8743 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/;
8744 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8745 }
8746 /* Register variable[3]: Result */
8747 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/;
8748 /* Register variable[3]: Result */
8749 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::==*/)))))));
8750 if (UNTAG_Bool(variable[3])) { /*if*/
8751 /* Register variable[3]: Result */
8752 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/;
8753 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8754 }
8755 /* Register variable[3]: Result */
8756 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/;
8757 /* Register variable[3]: Result */
8758 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::==*/)))))));
8759 if (UNTAG_Bool(variable[3])) { /*if*/
8760 /* Register variable[3]: Result */
8761 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/;
8762 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8763 }
8764 /* Register variable[3]: Result */
8765 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/;
8766 /* Register variable[3]: Result */
8767 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::==*/)))))));
8768 if (UNTAG_Bool(variable[3])) { /*if*/
8769 /* Register variable[3]: Result */
8770 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/;
8771 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8772 }
8773 return_label266: while(false);
8774 tracehead = trace.prev;
8775 return;
8776 }
8777 void parser_prod___ATypePropdef___empty_init(val_t self, int* init_table) {
8778 struct trace_t trace = {NULL, NULL, 3089, LOCATE_parser_prod___ATypePropdef___empty_init};
8779 val_t variable[2];
8780 struct WBT_ **closurevariable = NULL;
8781 trace.prev = tracehead; tracehead = &trace;
8782 trace.file = LOCATE_parser_prod;
8783 /* Register variable[0]: Local variable */
8784 variable[0] = self;
8785 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
8786 /* Register variable[1]: Method return value and escape marker */
8787 return_label267: while(false);
8788 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
8789 tracehead = trace.prev;
8790 return;
8791 }
8792 void parser_prod___ATypePropdef___init_atypepropdef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, int* init_table) {
8793 struct trace_t trace = {NULL, NULL, 3091, LOCATE_parser_prod___ATypePropdef___init_atypepropdef};
8794 val_t variable[9];
8795 struct WBT_ **closurevariable = NULL;
8796 trace.prev = tracehead; tracehead = &trace;
8797 trace.file = LOCATE_parser_prod;
8798 /* Register variable[0]: Local variable */
8799 variable[0] = self;
8800 /* Register variable[1]: Local variable */
8801 variable[1] = param0;
8802 /* Register variable[2]: Local variable */
8803 variable[2] = param1;
8804 /* Register variable[3]: Local variable */
8805 variable[3] = param2;
8806 /* Register variable[4]: Local variable */
8807 variable[4] = param3;
8808 /* Register variable[5]: Local variable */
8809 variable[5] = param4;
8810 /* Register variable[6]: Local variable */
8811 variable[6] = param5;
8812 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
8813 /* Register variable[7]: Method return value and escape marker */
8814 CALL_parser_prod___ATypePropdef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ATypePropdef::empty_init*/;
8815 ATTR_parser_nodes___PPropdef____n_doc(variable[0]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
8816 /* Register variable[8]: Result */
8817 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ == NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8818 if (UNTAG_Bool(variable[8])) { /*if*/
8819 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[0]) /*PNode::parent=*/;
8820 }
8821 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[0]) /*ATypePropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
8822 /* Register variable[8]: Result */
8823 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8824 if (UNTAG_Bool(variable[8])) { /*if*/
8825 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
8826 }
8827 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[0]) /*ATypePropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
8828 /* Register variable[8]: Result */
8829 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ == NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8830 if (UNTAG_Bool(variable[8])) { /*if*/
8831 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[0]) /*PNode::parent=*/;
8832 }
8833 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[0]) /*ATypePropdef::_n_kwtype*/ = variable[4] /*n_kwtype*/;
8834 /* Register variable[8]: Result */
8835 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwtype*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwtype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwtype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwtype*/)( variable[4] /*n_kwtype*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8836 if (UNTAG_Bool(variable[8])) { /*if*/
8837 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwtype*/)( variable[4] /*n_kwtype*/, variable[0]) /*PNode::parent=*/;
8838 }
8839 ATTR_parser_nodes___ATypePropdef____n_id(variable[0]) /*ATypePropdef::_n_id*/ = variable[5] /*n_id*/;
8840 /* Register variable[8]: Result */
8841 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_id*/ == NIT_NULL /*null*/) || (( variable[5] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)( variable[5] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8842 if (UNTAG_Bool(variable[8])) { /*if*/
8843 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_id*/)( variable[5] /*n_id*/, variable[0]) /*PNode::parent=*/;
8844 }
8845 ATTR_parser_nodes___ATypePropdef____n_type(variable[0]) /*ATypePropdef::_n_type*/ = variable[6] /*n_type*/;
8846 /* Register variable[8]: Result */
8847 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_type*/ == NIT_NULL /*null*/) || (( variable[6] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_type*/)( variable[6] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8848 if (UNTAG_Bool(variable[8])) { /*if*/
8849 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_type*/)( variable[6] /*n_type*/, variable[0]) /*PNode::parent=*/;
8850 }
8851 return_label268: while(false);
8852 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
8853 tracehead = trace.prev;
8854 return;
8855 }
8856 void parser_prod___AReadAble___n_kwredef__eq(val_t self, val_t param0) {
8857 struct trace_t trace = {NULL, NULL, 3237, LOCATE_parser_prod___AReadAble___n_kwredef__eq};
8858 val_t variable[4];
8859 struct WBT_ **closurevariable = NULL;
8860 trace.prev = tracehead; tracehead = &trace;
8861 trace.file = LOCATE_parser_prod;
8862 /* Register variable[0]: Local variable */
8863 variable[0] = self;
8864 /* Register variable[1]: Local variable */
8865 variable[1] = param0;
8866 /* Register variable[2]: Method return value and escape marker */
8867 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = variable[1] /*n*/;
8868 /* Register variable[3]: Result */
8869 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8870 if (UNTAG_Bool(variable[3])) { /*if*/
8871 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8872 }
8873 return_label269: while(false);
8874 tracehead = trace.prev;
8875 return;
8876 }
8877 void parser_prod___AReadAble___n_kwreadable__eq(val_t self, val_t param0) {
8878 struct trace_t trace = {NULL, NULL, 3244, LOCATE_parser_prod___AReadAble___n_kwreadable__eq};
8879 val_t variable[4];
8880 struct WBT_ **closurevariable = NULL;
8881 trace.prev = tracehead; tracehead = &trace;
8882 trace.file = LOCATE_parser_prod;
8883 /* Register variable[0]: Local variable */
8884 variable[0] = self;
8885 /* Register variable[1]: Local variable */
8886 variable[1] = param0;
8887 /* Register variable[2]: Method return value and escape marker */
8888 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/ = variable[1] /*n*/;
8889 /* Register variable[3]: Result */
8890 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8891 if (UNTAG_Bool(variable[3])) { /*if*/
8892 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
8893 }
8894 return_label270: while(false);
8895 tracehead = trace.prev;
8896 return;
8897 }
8898 void parser_prod___AReadAble___replace_child(val_t self, val_t param0, val_t param1) {
8899 struct trace_t trace = {NULL, NULL, 3270, LOCATE_parser_prod___AReadAble___replace_child};
8900 val_t variable[5];
8901 struct WBT_ **closurevariable = NULL;
8902 trace.prev = tracehead; tracehead = &trace;
8903 trace.file = LOCATE_parser_prod;
8904 /* Register variable[0]: Local variable */
8905 variable[0] = self;
8906 /* Register variable[1]: Local variable */
8907 variable[1] = param0;
8908 /* Register variable[2]: Local variable */
8909 variable[2] = param1;
8910 /* Register variable[3]: Method return value and escape marker */
8911 /* Register variable[4]: Result */
8912 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8913 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReadAble___replace_child, LOCATE_parser_prod, 3272); nit_exit(1);}
8914 /* Register variable[4]: Result */
8915 variable[4] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
8916 /* Register variable[4]: Result */
8917 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8918 if (UNTAG_Bool(variable[4])) { /*if*/
8919 /* Register variable[4]: Result */
8920 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8921 if (UNTAG_Bool(variable[4])) { /*if*/
8922 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8923 /* Register variable[4]: Result */
8924 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8925 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReadAble___replace_child, LOCATE_parser_prod, 3276); nit_exit(1);}
8926 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = variable[2] /*new_child*/;
8927 } else { /*if*/
8928 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = NIT_NULL /*null*/;
8929 }
8930 goto return_label271;
8931 }
8932 /* Register variable[4]: Result */
8933 variable[4] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/;
8934 /* Register variable[4]: Result */
8935 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8936 if (UNTAG_Bool(variable[4])) { /*if*/
8937 /* Register variable[4]: Result */
8938 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8939 if (UNTAG_Bool(variable[4])) { /*if*/
8940 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
8941 /* Register variable[4]: Result */
8942 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
8943 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReadAble___replace_child, LOCATE_parser_prod, 3286); nit_exit(1);}
8944 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/ = variable[2] /*new_child*/;
8945 } else { /*if*/
8946 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/ = NIT_NULL /*null*/;
8947 }
8948 goto return_label271;
8949 }
8950 return_label271: while(false);
8951 tracehead = trace.prev;
8952 return;
8953 }
8954 void parser_prod___AReadAble___visit_all(val_t self, val_t param0) {
8955 struct trace_t trace = {NULL, NULL, 3295, LOCATE_parser_prod___AReadAble___visit_all};
8956 val_t variable[4];
8957 struct WBT_ **closurevariable = NULL;
8958 trace.prev = tracehead; tracehead = &trace;
8959 trace.file = LOCATE_parser_prod;
8960 /* Register variable[0]: Local variable */
8961 variable[0] = self;
8962 /* Register variable[1]: Local variable */
8963 variable[1] = param0;
8964 /* Register variable[2]: Method return value and escape marker */
8965 /* Register variable[3]: Result */
8966 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
8967 /* Register variable[3]: Result */
8968 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::==*/)))))));
8969 if (UNTAG_Bool(variable[3])) { /*if*/
8970 /* Register variable[3]: Result */
8971 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
8972 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8973 }
8974 /* Register variable[3]: Result */
8975 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/;
8976 /* Register variable[3]: Result */
8977 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::==*/)))))));
8978 if (UNTAG_Bool(variable[3])) { /*if*/
8979 /* Register variable[3]: Result */
8980 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/;
8981 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8982 }
8983 return_label272: while(false);
8984 tracehead = trace.prev;
8985 return;
8986 }
8987 void parser_prod___AReadAble___visit_all_reverse(val_t self, val_t param0) {
8988 struct trace_t trace = {NULL, NULL, 3305, LOCATE_parser_prod___AReadAble___visit_all_reverse};
8989 val_t variable[4];
8990 struct WBT_ **closurevariable = NULL;
8991 trace.prev = tracehead; tracehead = &trace;
8992 trace.file = LOCATE_parser_prod;
8993 /* Register variable[0]: Local variable */
8994 variable[0] = self;
8995 /* Register variable[1]: Local variable */
8996 variable[1] = param0;
8997 /* Register variable[2]: Method return value and escape marker */
8998 /* Register variable[3]: Result */
8999 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
9000 /* Register variable[3]: Result */
9001 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::==*/)))))));
9002 if (UNTAG_Bool(variable[3])) { /*if*/
9003 /* Register variable[3]: Result */
9004 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
9005 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9006 }
9007 /* Register variable[3]: Result */
9008 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/;
9009 /* Register variable[3]: Result */
9010 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::==*/)))))));
9011 if (UNTAG_Bool(variable[3])) { /*if*/
9012 /* Register variable[3]: Result */
9013 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/;
9014 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9015 }
9016 return_label273: while(false);
9017 tracehead = trace.prev;
9018 return;
9019 }
9020 void parser_prod___AReadAble___empty_init(val_t self, int* init_table) {
9021 struct trace_t trace = {NULL, NULL, 3252, LOCATE_parser_prod___AReadAble___empty_init};
9022 val_t variable[2];
9023 struct WBT_ **closurevariable = NULL;
9024 trace.prev = tracehead; tracehead = &trace;
9025 trace.file = LOCATE_parser_prod;
9026 /* Register variable[0]: Local variable */
9027 variable[0] = self;
9028 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i]) return;
9029 /* Register variable[1]: Method return value and escape marker */
9030 return_label274: while(false);
9031 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i] = 1;
9032 tracehead = trace.prev;
9033 return;
9034 }
9035 void parser_prod___AReadAble___init_areadable(val_t self, val_t param0, val_t param1, int* init_table) {
9036 struct trace_t trace = {NULL, NULL, 3254, LOCATE_parser_prod___AReadAble___init_areadable};
9037 val_t variable[5];
9038 struct WBT_ **closurevariable = NULL;
9039 trace.prev = tracehead; tracehead = &trace;
9040 trace.file = LOCATE_parser_prod;
9041 /* Register variable[0]: Local variable */
9042 variable[0] = self;
9043 /* Register variable[1]: Local variable */
9044 variable[1] = param0;
9045 /* Register variable[2]: Local variable */
9046 variable[2] = param1;
9047 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i]) return;
9048 /* Register variable[3]: Method return value and escape marker */
9049 CALL_parser_prod___AReadAble___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AReadAble::empty_init*/;
9050 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = variable[1] /*n_kwredef*/;
9051 /* Register variable[4]: Result */
9052 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9053 if (UNTAG_Bool(variable[4])) { /*if*/
9054 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
9055 }
9056 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[0]) /*AReadAble::_n_kwreadable*/ = variable[2] /*n_kwreadable*/;
9057 /* Register variable[4]: Result */
9058 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwreadable*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwreadable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwreadable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwreadable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwreadable*/)( variable[2] /*n_kwreadable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9059 if (UNTAG_Bool(variable[4])) { /*if*/
9060 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwreadable*/)( variable[2] /*n_kwreadable*/, variable[0]) /*PNode::parent=*/;
9061 }
9062 return_label275: while(false);
9063 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i] = 1;
9064 tracehead = trace.prev;
9065 return;
9066 }
9067 void parser_prod___AWriteAble___n_kwredef__eq(val_t self, val_t param0) {
9068 struct trace_t trace = {NULL, NULL, 3316, LOCATE_parser_prod___AWriteAble___n_kwredef__eq};
9069 val_t variable[4];
9070 struct WBT_ **closurevariable = NULL;
9071 trace.prev = tracehead; tracehead = &trace;
9072 trace.file = LOCATE_parser_prod;
9073 /* Register variable[0]: Local variable */
9074 variable[0] = self;
9075 /* Register variable[1]: Local variable */
9076 variable[1] = param0;
9077 /* Register variable[2]: Method return value and escape marker */
9078 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = variable[1] /*n*/;
9079 /* Register variable[3]: Result */
9080 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9081 if (UNTAG_Bool(variable[3])) { /*if*/
9082 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
9083 }
9084 return_label276: while(false);
9085 tracehead = trace.prev;
9086 return;
9087 }
9088 void parser_prod___AWriteAble___n_kwwritable__eq(val_t self, val_t param0) {
9089 struct trace_t trace = {NULL, NULL, 3323, LOCATE_parser_prod___AWriteAble___n_kwwritable__eq};
9090 val_t variable[4];
9091 struct WBT_ **closurevariable = NULL;
9092 trace.prev = tracehead; tracehead = &trace;
9093 trace.file = LOCATE_parser_prod;
9094 /* Register variable[0]: Local variable */
9095 variable[0] = self;
9096 /* Register variable[1]: Local variable */
9097 variable[1] = param0;
9098 /* Register variable[2]: Method return value and escape marker */
9099 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/ = variable[1] /*n*/;
9100 /* Register variable[3]: Result */
9101 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9102 if (UNTAG_Bool(variable[3])) { /*if*/
9103 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
9104 }
9105 return_label277: while(false);
9106 tracehead = trace.prev;
9107 return;
9108 }
9109 void parser_prod___AWriteAble___replace_child(val_t self, val_t param0, val_t param1) {
9110 struct trace_t trace = {NULL, NULL, 3349, LOCATE_parser_prod___AWriteAble___replace_child};
9111 val_t variable[5];
9112 struct WBT_ **closurevariable = NULL;
9113 trace.prev = tracehead; tracehead = &trace;
9114 trace.file = LOCATE_parser_prod;
9115 /* Register variable[0]: Local variable */
9116 variable[0] = self;
9117 /* Register variable[1]: Local variable */
9118 variable[1] = param0;
9119 /* Register variable[2]: Local variable */
9120 variable[2] = param1;
9121 /* Register variable[3]: Method return value and escape marker */
9122 /* Register variable[4]: Result */
9123 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9124 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWriteAble___replace_child, LOCATE_parser_prod, 3351); nit_exit(1);}
9125 /* Register variable[4]: Result */
9126 variable[4] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
9127 /* Register variable[4]: Result */
9128 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9129 if (UNTAG_Bool(variable[4])) { /*if*/
9130 /* Register variable[4]: Result */
9131 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9132 if (UNTAG_Bool(variable[4])) { /*if*/
9133 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
9134 /* Register variable[4]: Result */
9135 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9136 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWriteAble___replace_child, LOCATE_parser_prod, 3355); nit_exit(1);}
9137 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = variable[2] /*new_child*/;
9138 } else { /*if*/
9139 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = NIT_NULL /*null*/;
9140 }
9141 goto return_label278;
9142 }
9143 /* Register variable[4]: Result */
9144 variable[4] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/;
9145 /* Register variable[4]: Result */
9146 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9147 if (UNTAG_Bool(variable[4])) { /*if*/
9148 /* Register variable[4]: Result */
9149 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9150 if (UNTAG_Bool(variable[4])) { /*if*/
9151 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
9152 /* Register variable[4]: Result */
9153 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
9154 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWriteAble___replace_child, LOCATE_parser_prod, 3365); nit_exit(1);}
9155 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/ = variable[2] /*new_child*/;
9156 } else { /*if*/
9157 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/ = NIT_NULL /*null*/;
9158 }
9159 goto return_label278;
9160 }
9161 return_label278: while(false);
9162 tracehead = trace.prev;
9163 return;
9164 }
9165 void parser_prod___AWriteAble___visit_all(val_t self, val_t param0) {
9166 struct trace_t trace = {NULL, NULL, 3374, LOCATE_parser_prod___AWriteAble___visit_all};
9167 val_t variable[4];
9168 struct WBT_ **closurevariable = NULL;
9169 trace.prev = tracehead; tracehead = &trace;
9170 trace.file = LOCATE_parser_prod;
9171 /* Register variable[0]: Local variable */
9172 variable[0] = self;
9173 /* Register variable[1]: Local variable */
9174 variable[1] = param0;
9175 /* Register variable[2]: Method return value and escape marker */
9176 /* Register variable[3]: Result */
9177 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
9178 /* Register variable[3]: Result */
9179 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::==*/)))))));
9180 if (UNTAG_Bool(variable[3])) { /*if*/
9181 /* Register variable[3]: Result */
9182 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
9183 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9184 }
9185 /* Register variable[3]: Result */
9186 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/;
9187 /* Register variable[3]: Result */
9188 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::==*/)))))));
9189 if (UNTAG_Bool(variable[3])) { /*if*/
9190 /* Register variable[3]: Result */
9191 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/;
9192 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9193 }
9194 return_label279: while(false);
9195 tracehead = trace.prev;
9196 return;
9197 }
9198 void parser_prod___AWriteAble___visit_all_reverse(val_t self, val_t param0) {
9199 struct trace_t trace = {NULL, NULL, 3384, LOCATE_parser_prod___AWriteAble___visit_all_reverse};
9200 val_t variable[4];
9201 struct WBT_ **closurevariable = NULL;
9202 trace.prev = tracehead; tracehead = &trace;
9203 trace.file = LOCATE_parser_prod;
9204 /* Register variable[0]: Local variable */
9205 variable[0] = self;
9206 /* Register variable[1]: Local variable */
9207 variable[1] = param0;
9208 /* Register variable[2]: Method return value and escape marker */
9209 /* Register variable[3]: Result */
9210 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
9211 /* Register variable[3]: Result */
9212 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::==*/)))))));
9213 if (UNTAG_Bool(variable[3])) { /*if*/
9214 /* Register variable[3]: Result */
9215 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/;
9216 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9217 }
9218 /* Register variable[3]: Result */
9219 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/;
9220 /* Register variable[3]: Result */
9221 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::==*/)))))));
9222 if (UNTAG_Bool(variable[3])) { /*if*/
9223 /* Register variable[3]: Result */
9224 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/;
9225 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9226 }
9227 return_label280: while(false);
9228 tracehead = trace.prev;
9229 return;
9230 }
9231 void parser_prod___AWriteAble___empty_init(val_t self, int* init_table) {
9232 struct trace_t trace = {NULL, NULL, 3331, LOCATE_parser_prod___AWriteAble___empty_init};
9233 val_t variable[2];
9234 struct WBT_ **closurevariable = NULL;
9235 trace.prev = tracehead; tracehead = &trace;
9236 trace.file = LOCATE_parser_prod;
9237 /* Register variable[0]: Local variable */
9238 variable[0] = self;
9239 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i]) return;
9240 /* Register variable[1]: Method return value and escape marker */
9241 return_label281: while(false);
9242 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
9243 tracehead = trace.prev;
9244 return;
9245 }
9246 void parser_prod___AWriteAble___init_awriteable(val_t self, val_t param0, val_t param1, int* init_table) {
9247 struct trace_t trace = {NULL, NULL, 3333, LOCATE_parser_prod___AWriteAble___init_awriteable};
9248 val_t variable[5];
9249 struct WBT_ **closurevariable = NULL;
9250 trace.prev = tracehead; tracehead = &trace;
9251 trace.file = LOCATE_parser_prod;
9252 /* Register variable[0]: Local variable */
9253 variable[0] = self;
9254 /* Register variable[1]: Local variable */
9255 variable[1] = param0;
9256 /* Register variable[2]: Local variable */
9257 variable[2] = param1;
9258 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i]) return;
9259 /* Register variable[3]: Method return value and escape marker */
9260 CALL_parser_prod___AWriteAble___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AWriteAble::empty_init*/;
9261 ATTR_parser_nodes___PAble____n_kwredef(variable[0]) /*PAble::_n_kwredef*/ = variable[1] /*n_kwredef*/;
9262 /* Register variable[4]: Result */
9263 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9264 if (UNTAG_Bool(variable[4])) { /*if*/
9265 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[0]) /*PNode::parent=*/;
9266 }
9267 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[0]) /*AWriteAble::_n_kwwritable*/ = variable[2] /*n_kwwritable*/;
9268 /* Register variable[4]: Result */
9269 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwwritable*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwwritable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwwritable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwwritable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwwritable*/)( variable[2] /*n_kwwritable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9270 if (UNTAG_Bool(variable[4])) { /*if*/
9271 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwwritable*/)( variable[2] /*n_kwwritable*/, variable[0]) /*PNode::parent=*/;
9272 }
9273 return_label282: while(false);
9274 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
9275 tracehead = trace.prev;
9276 return;
9277 }
9278 void parser_prod___AIdMethid___n_id__eq(val_t self, val_t param0) {
9279 struct trace_t trace = {NULL, NULL, 3395, LOCATE_parser_prod___AIdMethid___n_id__eq};
9280 val_t variable[4];
9281 struct WBT_ **closurevariable = NULL;
9282 trace.prev = tracehead; tracehead = &trace;
9283 trace.file = LOCATE_parser_prod;
9284 /* Register variable[0]: Local variable */
9285 variable[0] = self;
9286 /* Register variable[1]: Local variable */
9287 variable[1] = param0;
9288 /* Register variable[2]: Method return value and escape marker */
9289 ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/ = variable[1] /*n*/;
9290 /* Register variable[3]: Result */
9291 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9292 if (UNTAG_Bool(variable[3])) { /*if*/
9293 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
9294 }
9295 return_label283: while(false);
9296 tracehead = trace.prev;
9297 return;
9298 }
9299 void parser_prod___AIdMethid___replace_child(val_t self, val_t param0, val_t param1) {
9300 struct trace_t trace = {NULL, NULL, 3416, LOCATE_parser_prod___AIdMethid___replace_child};
9301 val_t variable[5];
9302 struct WBT_ **closurevariable = NULL;
9303 trace.prev = tracehead; tracehead = &trace;
9304 trace.file = LOCATE_parser_prod;
9305 /* Register variable[0]: Local variable */
9306 variable[0] = self;
9307 /* Register variable[1]: Local variable */
9308 variable[1] = param0;
9309 /* Register variable[2]: Local variable */
9310 variable[2] = param1;
9311 /* Register variable[3]: Method return value and escape marker */
9312 /* Register variable[4]: Result */
9313 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9314 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIdMethid___replace_child, LOCATE_parser_prod, 3418); nit_exit(1);}
9315 /* Register variable[4]: Result */
9316 variable[4] = ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/;
9317 /* Register variable[4]: Result */
9318 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9319 if (UNTAG_Bool(variable[4])) { /*if*/
9320 /* Register variable[4]: Result */
9321 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9322 if (UNTAG_Bool(variable[4])) { /*if*/
9323 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
9324 /* Register variable[4]: Result */
9325 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
9326 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIdMethid___replace_child, LOCATE_parser_prod, 3422); nit_exit(1);}
9327 ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/ = variable[2] /*new_child*/;
9328 } else { /*if*/
9329 ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/ = NIT_NULL /*null*/;
9330 }
9331 goto return_label284;
9332 }
9333 return_label284: while(false);
9334 tracehead = trace.prev;
9335 return;
9336 }
9337 void parser_prod___AIdMethid___visit_all(val_t self, val_t param0) {
9338 struct trace_t trace = {NULL, NULL, 3431, LOCATE_parser_prod___AIdMethid___visit_all};
9339 val_t variable[4];
9340 struct WBT_ **closurevariable = NULL;
9341 trace.prev = tracehead; tracehead = &trace;
9342 trace.file = LOCATE_parser_prod;
9343 /* Register variable[0]: Local variable */
9344 variable[0] = self;
9345 /* Register variable[1]: Local variable */
9346 variable[1] = param0;
9347 /* Register variable[2]: Method return value and escape marker */
9348 /* Register variable[3]: Result */
9349 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/;
9350 /* Register variable[3]: Result */
9351 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::==*/)))))));
9352 if (UNTAG_Bool(variable[3])) { /*if*/
9353 /* Register variable[3]: Result */
9354 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/;
9355 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9356 }
9357 return_label285: while(false);
9358 tracehead = trace.prev;
9359 return;
9360 }
9361 void parser_prod___AIdMethid___visit_all_reverse(val_t self, val_t param0) {
9362 struct trace_t trace = {NULL, NULL, 3438, LOCATE_parser_prod___AIdMethid___visit_all_reverse};
9363 val_t variable[4];
9364 struct WBT_ **closurevariable = NULL;
9365 trace.prev = tracehead; tracehead = &trace;
9366 trace.file = LOCATE_parser_prod;
9367 /* Register variable[0]: Local variable */
9368 variable[0] = self;
9369 /* Register variable[1]: Local variable */
9370 variable[1] = param0;
9371 /* Register variable[2]: Method return value and escape marker */
9372 /* Register variable[3]: Result */
9373 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/;
9374 /* Register variable[3]: Result */
9375 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::==*/)))))));
9376 if (UNTAG_Bool(variable[3])) { /*if*/
9377 /* Register variable[3]: Result */
9378 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/;
9379 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9380 }
9381 return_label286: while(false);
9382 tracehead = trace.prev;
9383 return;
9384 }
9385 void parser_prod___AIdMethid___empty_init(val_t self, int* init_table) {
9386 struct trace_t trace = {NULL, NULL, 3403, LOCATE_parser_prod___AIdMethid___empty_init};
9387 val_t variable[2];
9388 struct WBT_ **closurevariable = NULL;
9389 trace.prev = tracehead; tracehead = &trace;
9390 trace.file = LOCATE_parser_prod;
9391 /* Register variable[0]: Local variable */
9392 variable[0] = self;
9393 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i]) return;
9394 /* Register variable[1]: Method return value and escape marker */
9395 return_label287: while(false);
9396 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
9397 tracehead = trace.prev;
9398 return;
9399 }
9400 void parser_prod___AIdMethid___init_aidmethid(val_t self, val_t param0, int* init_table) {
9401 struct trace_t trace = {NULL, NULL, 3405, LOCATE_parser_prod___AIdMethid___init_aidmethid};
9402 val_t variable[4];
9403 struct WBT_ **closurevariable = NULL;
9404 trace.prev = tracehead; tracehead = &trace;
9405 trace.file = LOCATE_parser_prod;
9406 /* Register variable[0]: Local variable */
9407 variable[0] = self;
9408 /* Register variable[1]: Local variable */
9409 variable[1] = param0;
9410 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i]) return;
9411 /* Register variable[2]: Method return value and escape marker */
9412 CALL_parser_prod___AIdMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AIdMethid::empty_init*/;
9413 ATTR_parser_nodes___AIdMethid____n_id(variable[0]) /*AIdMethid::_n_id*/ = variable[1] /*n_id*/;
9414 /* Register variable[3]: Result */
9415 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9416 if (UNTAG_Bool(variable[3])) { /*if*/
9417 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
9418 }
9419 return_label288: while(false);
9420 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
9421 tracehead = trace.prev;
9422 return;
9423 }
9424 void parser_prod___APlusMethid___n_plus__eq(val_t self, val_t param0) {
9425 struct trace_t trace = {NULL, NULL, 3446, LOCATE_parser_prod___APlusMethid___n_plus__eq};
9426 val_t variable[4];
9427 struct WBT_ **closurevariable = NULL;
9428 trace.prev = tracehead; tracehead = &trace;
9429 trace.file = LOCATE_parser_prod;
9430 /* Register variable[0]: Local variable */
9431 variable[0] = self;
9432 /* Register variable[1]: Local variable */
9433 variable[1] = param0;
9434 /* Register variable[2]: Method return value and escape marker */
9435 ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/ = variable[1] /*n*/;
9436 /* Register variable[3]: Result */
9437 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9438 if (UNTAG_Bool(variable[3])) { /*if*/
9439 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
9440 }
9441 return_label289: while(false);
9442 tracehead = trace.prev;
9443 return;
9444 }
9445 void parser_prod___APlusMethid___replace_child(val_t self, val_t param0, val_t param1) {
9446 struct trace_t trace = {NULL, NULL, 3467, LOCATE_parser_prod___APlusMethid___replace_child};
9447 val_t variable[5];
9448 struct WBT_ **closurevariable = NULL;
9449 trace.prev = tracehead; tracehead = &trace;
9450 trace.file = LOCATE_parser_prod;
9451 /* Register variable[0]: Local variable */
9452 variable[0] = self;
9453 /* Register variable[1]: Local variable */
9454 variable[1] = param0;
9455 /* Register variable[2]: Local variable */
9456 variable[2] = param1;
9457 /* Register variable[3]: Method return value and escape marker */
9458 /* Register variable[4]: Result */
9459 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9460 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusMethid___replace_child, LOCATE_parser_prod, 3469); nit_exit(1);}
9461 /* Register variable[4]: Result */
9462 variable[4] = ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/;
9463 /* Register variable[4]: Result */
9464 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9465 if (UNTAG_Bool(variable[4])) { /*if*/
9466 /* Register variable[4]: Result */
9467 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9468 if (UNTAG_Bool(variable[4])) { /*if*/
9469 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
9470 /* Register variable[4]: Result */
9471 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
9472 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusMethid___replace_child, LOCATE_parser_prod, 3473); nit_exit(1);}
9473 ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/ = variable[2] /*new_child*/;
9474 } else { /*if*/
9475 ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/ = NIT_NULL /*null*/;
9476 }
9477 goto return_label290;
9478 }
9479 return_label290: while(false);
9480 tracehead = trace.prev;
9481 return;
9482 }
9483 void parser_prod___APlusMethid___visit_all(val_t self, val_t param0) {
9484 struct trace_t trace = {NULL, NULL, 3482, LOCATE_parser_prod___APlusMethid___visit_all};
9485 val_t variable[4];
9486 struct WBT_ **closurevariable = NULL;
9487 trace.prev = tracehead; tracehead = &trace;
9488 trace.file = LOCATE_parser_prod;
9489 /* Register variable[0]: Local variable */
9490 variable[0] = self;
9491 /* Register variable[1]: Local variable */
9492 variable[1] = param0;
9493 /* Register variable[2]: Method return value and escape marker */
9494 /* Register variable[3]: Result */
9495 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/;
9496 /* Register variable[3]: Result */
9497 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::==*/)))))));
9498 if (UNTAG_Bool(variable[3])) { /*if*/
9499 /* Register variable[3]: Result */
9500 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/;
9501 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9502 }
9503 return_label291: while(false);
9504 tracehead = trace.prev;
9505 return;
9506 }
9507 void parser_prod___APlusMethid___visit_all_reverse(val_t self, val_t param0) {
9508 struct trace_t trace = {NULL, NULL, 3489, LOCATE_parser_prod___APlusMethid___visit_all_reverse};
9509 val_t variable[4];
9510 struct WBT_ **closurevariable = NULL;
9511 trace.prev = tracehead; tracehead = &trace;
9512 trace.file = LOCATE_parser_prod;
9513 /* Register variable[0]: Local variable */
9514 variable[0] = self;
9515 /* Register variable[1]: Local variable */
9516 variable[1] = param0;
9517 /* Register variable[2]: Method return value and escape marker */
9518 /* Register variable[3]: Result */
9519 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/;
9520 /* Register variable[3]: Result */
9521 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::==*/)))))));
9522 if (UNTAG_Bool(variable[3])) { /*if*/
9523 /* Register variable[3]: Result */
9524 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/;
9525 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9526 }
9527 return_label292: while(false);
9528 tracehead = trace.prev;
9529 return;
9530 }
9531 void parser_prod___APlusMethid___empty_init(val_t self, int* init_table) {
9532 struct trace_t trace = {NULL, NULL, 3454, LOCATE_parser_prod___APlusMethid___empty_init};
9533 val_t variable[2];
9534 struct WBT_ **closurevariable = NULL;
9535 trace.prev = tracehead; tracehead = &trace;
9536 trace.file = LOCATE_parser_prod;
9537 /* Register variable[0]: Local variable */
9538 variable[0] = self;
9539 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i]) return;
9540 /* Register variable[1]: Method return value and escape marker */
9541 return_label293: while(false);
9542 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
9543 tracehead = trace.prev;
9544 return;
9545 }
9546 void parser_prod___APlusMethid___init_aplusmethid(val_t self, val_t param0, int* init_table) {
9547 struct trace_t trace = {NULL, NULL, 3456, LOCATE_parser_prod___APlusMethid___init_aplusmethid};
9548 val_t variable[4];
9549 struct WBT_ **closurevariable = NULL;
9550 trace.prev = tracehead; tracehead = &trace;
9551 trace.file = LOCATE_parser_prod;
9552 /* Register variable[0]: Local variable */
9553 variable[0] = self;
9554 /* Register variable[1]: Local variable */
9555 variable[1] = param0;
9556 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i]) return;
9557 /* Register variable[2]: Method return value and escape marker */
9558 CALL_parser_prod___APlusMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APlusMethid::empty_init*/;
9559 ATTR_parser_nodes___APlusMethid____n_plus(variable[0]) /*APlusMethid::_n_plus*/ = variable[1] /*n_plus*/;
9560 /* Register variable[3]: Result */
9561 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_plus*/ == NIT_NULL /*null*/) || (( variable[1] /*n_plus*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_plus*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_plus*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_plus*/)( variable[1] /*n_plus*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9562 if (UNTAG_Bool(variable[3])) { /*if*/
9563 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_plus*/)( variable[1] /*n_plus*/, variable[0]) /*PNode::parent=*/;
9564 }
9565 return_label294: while(false);
9566 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
9567 tracehead = trace.prev;
9568 return;
9569 }
9570 void parser_prod___AMinusMethid___n_minus__eq(val_t self, val_t param0) {
9571 struct trace_t trace = {NULL, NULL, 3497, LOCATE_parser_prod___AMinusMethid___n_minus__eq};
9572 val_t variable[4];
9573 struct WBT_ **closurevariable = NULL;
9574 trace.prev = tracehead; tracehead = &trace;
9575 trace.file = LOCATE_parser_prod;
9576 /* Register variable[0]: Local variable */
9577 variable[0] = self;
9578 /* Register variable[1]: Local variable */
9579 variable[1] = param0;
9580 /* Register variable[2]: Method return value and escape marker */
9581 ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/ = variable[1] /*n*/;
9582 /* Register variable[3]: Result */
9583 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9584 if (UNTAG_Bool(variable[3])) { /*if*/
9585 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
9586 }
9587 return_label295: while(false);
9588 tracehead = trace.prev;
9589 return;
9590 }
9591 void parser_prod___AMinusMethid___replace_child(val_t self, val_t param0, val_t param1) {
9592 struct trace_t trace = {NULL, NULL, 3518, LOCATE_parser_prod___AMinusMethid___replace_child};
9593 val_t variable[5];
9594 struct WBT_ **closurevariable = NULL;
9595 trace.prev = tracehead; tracehead = &trace;
9596 trace.file = LOCATE_parser_prod;
9597 /* Register variable[0]: Local variable */
9598 variable[0] = self;
9599 /* Register variable[1]: Local variable */
9600 variable[1] = param0;
9601 /* Register variable[2]: Local variable */
9602 variable[2] = param1;
9603 /* Register variable[3]: Method return value and escape marker */
9604 /* Register variable[4]: Result */
9605 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9606 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusMethid___replace_child, LOCATE_parser_prod, 3520); nit_exit(1);}
9607 /* Register variable[4]: Result */
9608 variable[4] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/;
9609 /* Register variable[4]: Result */
9610 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9611 if (UNTAG_Bool(variable[4])) { /*if*/
9612 /* Register variable[4]: Result */
9613 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9614 if (UNTAG_Bool(variable[4])) { /*if*/
9615 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
9616 /* Register variable[4]: Result */
9617 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
9618 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusMethid___replace_child, LOCATE_parser_prod, 3524); nit_exit(1);}
9619 ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/ = variable[2] /*new_child*/;
9620 } else { /*if*/
9621 ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/ = NIT_NULL /*null*/;
9622 }
9623 goto return_label296;
9624 }
9625 return_label296: while(false);
9626 tracehead = trace.prev;
9627 return;
9628 }
9629 void parser_prod___AMinusMethid___visit_all(val_t self, val_t param0) {
9630 struct trace_t trace = {NULL, NULL, 3533, LOCATE_parser_prod___AMinusMethid___visit_all};
9631 val_t variable[4];
9632 struct WBT_ **closurevariable = NULL;
9633 trace.prev = tracehead; tracehead = &trace;
9634 trace.file = LOCATE_parser_prod;
9635 /* Register variable[0]: Local variable */
9636 variable[0] = self;
9637 /* Register variable[1]: Local variable */
9638 variable[1] = param0;
9639 /* Register variable[2]: Method return value and escape marker */
9640 /* Register variable[3]: Result */
9641 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/;
9642 /* Register variable[3]: Result */
9643 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::==*/)))))));
9644 if (UNTAG_Bool(variable[3])) { /*if*/
9645 /* Register variable[3]: Result */
9646 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/;
9647 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9648 }
9649 return_label297: while(false);
9650 tracehead = trace.prev;
9651 return;
9652 }
9653 void parser_prod___AMinusMethid___visit_all_reverse(val_t self, val_t param0) {
9654 struct trace_t trace = {NULL, NULL, 3540, LOCATE_parser_prod___AMinusMethid___visit_all_reverse};
9655 val_t variable[4];
9656 struct WBT_ **closurevariable = NULL;
9657 trace.prev = tracehead; tracehead = &trace;
9658 trace.file = LOCATE_parser_prod;
9659 /* Register variable[0]: Local variable */
9660 variable[0] = self;
9661 /* Register variable[1]: Local variable */
9662 variable[1] = param0;
9663 /* Register variable[2]: Method return value and escape marker */
9664 /* Register variable[3]: Result */
9665 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/;
9666 /* Register variable[3]: Result */
9667 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::==*/)))))));
9668 if (UNTAG_Bool(variable[3])) { /*if*/
9669 /* Register variable[3]: Result */
9670 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/;
9671 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9672 }
9673 return_label298: while(false);
9674 tracehead = trace.prev;
9675 return;
9676 }
9677 void parser_prod___AMinusMethid___empty_init(val_t self, int* init_table) {
9678 struct trace_t trace = {NULL, NULL, 3505, LOCATE_parser_prod___AMinusMethid___empty_init};
9679 val_t variable[2];
9680 struct WBT_ **closurevariable = NULL;
9681 trace.prev = tracehead; tracehead = &trace;
9682 trace.file = LOCATE_parser_prod;
9683 /* Register variable[0]: Local variable */
9684 variable[0] = self;
9685 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
9686 /* Register variable[1]: Method return value and escape marker */
9687 return_label299: while(false);
9688 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
9689 tracehead = trace.prev;
9690 return;
9691 }
9692 void parser_prod___AMinusMethid___init_aminusmethid(val_t self, val_t param0, int* init_table) {
9693 struct trace_t trace = {NULL, NULL, 3507, LOCATE_parser_prod___AMinusMethid___init_aminusmethid};
9694 val_t variable[4];
9695 struct WBT_ **closurevariable = NULL;
9696 trace.prev = tracehead; tracehead = &trace;
9697 trace.file = LOCATE_parser_prod;
9698 /* Register variable[0]: Local variable */
9699 variable[0] = self;
9700 /* Register variable[1]: Local variable */
9701 variable[1] = param0;
9702 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
9703 /* Register variable[2]: Method return value and escape marker */
9704 CALL_parser_prod___AMinusMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AMinusMethid::empty_init*/;
9705 ATTR_parser_nodes___AMinusMethid____n_minus(variable[0]) /*AMinusMethid::_n_minus*/ = variable[1] /*n_minus*/;
9706 /* Register variable[3]: Result */
9707 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minus*/ == NIT_NULL /*null*/) || (( variable[1] /*n_minus*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9708 if (UNTAG_Bool(variable[3])) { /*if*/
9709 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, variable[0]) /*PNode::parent=*/;
9710 }
9711 return_label300: while(false);
9712 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
9713 tracehead = trace.prev;
9714 return;
9715 }
9716 void parser_prod___AStarMethid___n_star__eq(val_t self, val_t param0) {
9717 struct trace_t trace = {NULL, NULL, 3548, LOCATE_parser_prod___AStarMethid___n_star__eq};
9718 val_t variable[4];
9719 struct WBT_ **closurevariable = NULL;
9720 trace.prev = tracehead; tracehead = &trace;
9721 trace.file = LOCATE_parser_prod;
9722 /* Register variable[0]: Local variable */
9723 variable[0] = self;
9724 /* Register variable[1]: Local variable */
9725 variable[1] = param0;
9726 /* Register variable[2]: Method return value and escape marker */
9727 ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/ = variable[1] /*n*/;
9728 /* Register variable[3]: Result */
9729 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9730 if (UNTAG_Bool(variable[3])) { /*if*/
9731 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
9732 }
9733 return_label301: while(false);
9734 tracehead = trace.prev;
9735 return;
9736 }
9737 void parser_prod___AStarMethid___replace_child(val_t self, val_t param0, val_t param1) {
9738 struct trace_t trace = {NULL, NULL, 3569, LOCATE_parser_prod___AStarMethid___replace_child};
9739 val_t variable[5];
9740 struct WBT_ **closurevariable = NULL;
9741 trace.prev = tracehead; tracehead = &trace;
9742 trace.file = LOCATE_parser_prod;
9743 /* Register variable[0]: Local variable */
9744 variable[0] = self;
9745 /* Register variable[1]: Local variable */
9746 variable[1] = param0;
9747 /* Register variable[2]: Local variable */
9748 variable[2] = param1;
9749 /* Register variable[3]: Method return value and escape marker */
9750 /* Register variable[4]: Result */
9751 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9752 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarMethid___replace_child, LOCATE_parser_prod, 3571); nit_exit(1);}
9753 /* Register variable[4]: Result */
9754 variable[4] = ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/;
9755 /* Register variable[4]: Result */
9756 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9757 if (UNTAG_Bool(variable[4])) { /*if*/
9758 /* Register variable[4]: Result */
9759 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9760 if (UNTAG_Bool(variable[4])) { /*if*/
9761 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
9762 /* Register variable[4]: Result */
9763 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStar, ID_TStar)) /*cast TStar*/;
9764 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarMethid___replace_child, LOCATE_parser_prod, 3575); nit_exit(1);}
9765 ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/ = variable[2] /*new_child*/;
9766 } else { /*if*/
9767 ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/ = NIT_NULL /*null*/;
9768 }
9769 goto return_label302;
9770 }
9771 return_label302: while(false);
9772 tracehead = trace.prev;
9773 return;
9774 }
9775 void parser_prod___AStarMethid___visit_all(val_t self, val_t param0) {
9776 struct trace_t trace = {NULL, NULL, 3584, LOCATE_parser_prod___AStarMethid___visit_all};
9777 val_t variable[4];
9778 struct WBT_ **closurevariable = NULL;
9779 trace.prev = tracehead; tracehead = &trace;
9780 trace.file = LOCATE_parser_prod;
9781 /* Register variable[0]: Local variable */
9782 variable[0] = self;
9783 /* Register variable[1]: Local variable */
9784 variable[1] = param0;
9785 /* Register variable[2]: Method return value and escape marker */
9786 /* Register variable[3]: Result */
9787 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/;
9788 /* Register variable[3]: Result */
9789 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::==*/)))))));
9790 if (UNTAG_Bool(variable[3])) { /*if*/
9791 /* Register variable[3]: Result */
9792 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/;
9793 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9794 }
9795 return_label303: while(false);
9796 tracehead = trace.prev;
9797 return;
9798 }
9799 void parser_prod___AStarMethid___visit_all_reverse(val_t self, val_t param0) {
9800 struct trace_t trace = {NULL, NULL, 3591, LOCATE_parser_prod___AStarMethid___visit_all_reverse};
9801 val_t variable[4];
9802 struct WBT_ **closurevariable = NULL;
9803 trace.prev = tracehead; tracehead = &trace;
9804 trace.file = LOCATE_parser_prod;
9805 /* Register variable[0]: Local variable */
9806 variable[0] = self;
9807 /* Register variable[1]: Local variable */
9808 variable[1] = param0;
9809 /* Register variable[2]: Method return value and escape marker */
9810 /* Register variable[3]: Result */
9811 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/;
9812 /* Register variable[3]: Result */
9813 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::==*/)))))));
9814 if (UNTAG_Bool(variable[3])) { /*if*/
9815 /* Register variable[3]: Result */
9816 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/;
9817 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9818 }
9819 return_label304: while(false);
9820 tracehead = trace.prev;
9821 return;
9822 }
9823 void parser_prod___AStarMethid___empty_init(val_t self, int* init_table) {
9824 struct trace_t trace = {NULL, NULL, 3556, LOCATE_parser_prod___AStarMethid___empty_init};
9825 val_t variable[2];
9826 struct WBT_ **closurevariable = NULL;
9827 trace.prev = tracehead; tracehead = &trace;
9828 trace.file = LOCATE_parser_prod;
9829 /* Register variable[0]: Local variable */
9830 variable[0] = self;
9831 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i]) return;
9832 /* Register variable[1]: Method return value and escape marker */
9833 return_label305: while(false);
9834 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
9835 tracehead = trace.prev;
9836 return;
9837 }
9838 void parser_prod___AStarMethid___init_astarmethid(val_t self, val_t param0, int* init_table) {
9839 struct trace_t trace = {NULL, NULL, 3558, LOCATE_parser_prod___AStarMethid___init_astarmethid};
9840 val_t variable[4];
9841 struct WBT_ **closurevariable = NULL;
9842 trace.prev = tracehead; tracehead = &trace;
9843 trace.file = LOCATE_parser_prod;
9844 /* Register variable[0]: Local variable */
9845 variable[0] = self;
9846 /* Register variable[1]: Local variable */
9847 variable[1] = param0;
9848 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i]) return;
9849 /* Register variable[2]: Method return value and escape marker */
9850 CALL_parser_prod___AStarMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AStarMethid::empty_init*/;
9851 ATTR_parser_nodes___AStarMethid____n_star(variable[0]) /*AStarMethid::_n_star*/ = variable[1] /*n_star*/;
9852 /* Register variable[3]: Result */
9853 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_star*/ == NIT_NULL /*null*/) || (( variable[1] /*n_star*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_star*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_star*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_star*/)( variable[1] /*n_star*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9854 if (UNTAG_Bool(variable[3])) { /*if*/
9855 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_star*/)( variable[1] /*n_star*/, variable[0]) /*PNode::parent=*/;
9856 }
9857 return_label306: while(false);
9858 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
9859 tracehead = trace.prev;
9860 return;
9861 }
9862 void parser_prod___ASlashMethid___n_slash__eq(val_t self, val_t param0) {
9863 struct trace_t trace = {NULL, NULL, 3599, LOCATE_parser_prod___ASlashMethid___n_slash__eq};
9864 val_t variable[4];
9865 struct WBT_ **closurevariable = NULL;
9866 trace.prev = tracehead; tracehead = &trace;
9867 trace.file = LOCATE_parser_prod;
9868 /* Register variable[0]: Local variable */
9869 variable[0] = self;
9870 /* Register variable[1]: Local variable */
9871 variable[1] = param0;
9872 /* Register variable[2]: Method return value and escape marker */
9873 ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/ = variable[1] /*n*/;
9874 /* Register variable[3]: Result */
9875 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9876 if (UNTAG_Bool(variable[3])) { /*if*/
9877 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
9878 }
9879 return_label307: while(false);
9880 tracehead = trace.prev;
9881 return;
9882 }
9883 void parser_prod___ASlashMethid___replace_child(val_t self, val_t param0, val_t param1) {
9884 struct trace_t trace = {NULL, NULL, 3620, LOCATE_parser_prod___ASlashMethid___replace_child};
9885 val_t variable[5];
9886 struct WBT_ **closurevariable = NULL;
9887 trace.prev = tracehead; tracehead = &trace;
9888 trace.file = LOCATE_parser_prod;
9889 /* Register variable[0]: Local variable */
9890 variable[0] = self;
9891 /* Register variable[1]: Local variable */
9892 variable[1] = param0;
9893 /* Register variable[2]: Local variable */
9894 variable[2] = param1;
9895 /* Register variable[3]: Method return value and escape marker */
9896 /* Register variable[4]: Result */
9897 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9898 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashMethid___replace_child, LOCATE_parser_prod, 3622); nit_exit(1);}
9899 /* Register variable[4]: Result */
9900 variable[4] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/;
9901 /* Register variable[4]: Result */
9902 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9903 if (UNTAG_Bool(variable[4])) { /*if*/
9904 /* Register variable[4]: Result */
9905 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9906 if (UNTAG_Bool(variable[4])) { /*if*/
9907 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
9908 /* Register variable[4]: Result */
9909 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
9910 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashMethid___replace_child, LOCATE_parser_prod, 3626); nit_exit(1);}
9911 ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/ = variable[2] /*new_child*/;
9912 } else { /*if*/
9913 ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/ = NIT_NULL /*null*/;
9914 }
9915 goto return_label308;
9916 }
9917 return_label308: while(false);
9918 tracehead = trace.prev;
9919 return;
9920 }
9921 void parser_prod___ASlashMethid___visit_all(val_t self, val_t param0) {
9922 struct trace_t trace = {NULL, NULL, 3635, LOCATE_parser_prod___ASlashMethid___visit_all};
9923 val_t variable[4];
9924 struct WBT_ **closurevariable = NULL;
9925 trace.prev = tracehead; tracehead = &trace;
9926 trace.file = LOCATE_parser_prod;
9927 /* Register variable[0]: Local variable */
9928 variable[0] = self;
9929 /* Register variable[1]: Local variable */
9930 variable[1] = param0;
9931 /* Register variable[2]: Method return value and escape marker */
9932 /* Register variable[3]: Result */
9933 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/;
9934 /* Register variable[3]: Result */
9935 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::==*/)))))));
9936 if (UNTAG_Bool(variable[3])) { /*if*/
9937 /* Register variable[3]: Result */
9938 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/;
9939 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9940 }
9941 return_label309: while(false);
9942 tracehead = trace.prev;
9943 return;
9944 }
9945 void parser_prod___ASlashMethid___visit_all_reverse(val_t self, val_t param0) {
9946 struct trace_t trace = {NULL, NULL, 3642, LOCATE_parser_prod___ASlashMethid___visit_all_reverse};
9947 val_t variable[4];
9948 struct WBT_ **closurevariable = NULL;
9949 trace.prev = tracehead; tracehead = &trace;
9950 trace.file = LOCATE_parser_prod;
9951 /* Register variable[0]: Local variable */
9952 variable[0] = self;
9953 /* Register variable[1]: Local variable */
9954 variable[1] = param0;
9955 /* Register variable[2]: Method return value and escape marker */
9956 /* Register variable[3]: Result */
9957 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/;
9958 /* Register variable[3]: Result */
9959 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::==*/)))))));
9960 if (UNTAG_Bool(variable[3])) { /*if*/
9961 /* Register variable[3]: Result */
9962 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/;
9963 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9964 }
9965 return_label310: while(false);
9966 tracehead = trace.prev;
9967 return;
9968 }
9969 void parser_prod___ASlashMethid___empty_init(val_t self, int* init_table) {
9970 struct trace_t trace = {NULL, NULL, 3607, LOCATE_parser_prod___ASlashMethid___empty_init};
9971 val_t variable[2];
9972 struct WBT_ **closurevariable = NULL;
9973 trace.prev = tracehead; tracehead = &trace;
9974 trace.file = LOCATE_parser_prod;
9975 /* Register variable[0]: Local variable */
9976 variable[0] = self;
9977 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
9978 /* Register variable[1]: Method return value and escape marker */
9979 return_label311: while(false);
9980 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
9981 tracehead = trace.prev;
9982 return;
9983 }
9984 void parser_prod___ASlashMethid___init_aslashmethid(val_t self, val_t param0, int* init_table) {
9985 struct trace_t trace = {NULL, NULL, 3609, LOCATE_parser_prod___ASlashMethid___init_aslashmethid};
9986 val_t variable[4];
9987 struct WBT_ **closurevariable = NULL;
9988 trace.prev = tracehead; tracehead = &trace;
9989 trace.file = LOCATE_parser_prod;
9990 /* Register variable[0]: Local variable */
9991 variable[0] = self;
9992 /* Register variable[1]: Local variable */
9993 variable[1] = param0;
9994 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
9995 /* Register variable[2]: Method return value and escape marker */
9996 CALL_parser_prod___ASlashMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASlashMethid::empty_init*/;
9997 ATTR_parser_nodes___ASlashMethid____n_slash(variable[0]) /*ASlashMethid::_n_slash*/ = variable[1] /*n_slash*/;
9998 /* Register variable[3]: Result */
9999 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_slash*/ == NIT_NULL /*null*/) || (( variable[1] /*n_slash*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_slash*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_slash*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_slash*/)( variable[1] /*n_slash*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10000 if (UNTAG_Bool(variable[3])) { /*if*/
10001 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_slash*/)( variable[1] /*n_slash*/, variable[0]) /*PNode::parent=*/;
10002 }
10003 return_label312: while(false);
10004 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
10005 tracehead = trace.prev;
10006 return;
10007 }
10008 void parser_prod___APercentMethid___n_percent__eq(val_t self, val_t param0) {
10009 struct trace_t trace = {NULL, NULL, 3650, LOCATE_parser_prod___APercentMethid___n_percent__eq};
10010 val_t variable[4];
10011 struct WBT_ **closurevariable = NULL;
10012 trace.prev = tracehead; tracehead = &trace;
10013 trace.file = LOCATE_parser_prod;
10014 /* Register variable[0]: Local variable */
10015 variable[0] = self;
10016 /* Register variable[1]: Local variable */
10017 variable[1] = param0;
10018 /* Register variable[2]: Method return value and escape marker */
10019 ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/ = variable[1] /*n*/;
10020 /* Register variable[3]: Result */
10021 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10022 if (UNTAG_Bool(variable[3])) { /*if*/
10023 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
10024 }
10025 return_label313: while(false);
10026 tracehead = trace.prev;
10027 return;
10028 }
10029 void parser_prod___APercentMethid___replace_child(val_t self, val_t param0, val_t param1) {
10030 struct trace_t trace = {NULL, NULL, 3671, LOCATE_parser_prod___APercentMethid___replace_child};
10031 val_t variable[5];
10032 struct WBT_ **closurevariable = NULL;
10033 trace.prev = tracehead; tracehead = &trace;
10034 trace.file = LOCATE_parser_prod;
10035 /* Register variable[0]: Local variable */
10036 variable[0] = self;
10037 /* Register variable[1]: Local variable */
10038 variable[1] = param0;
10039 /* Register variable[2]: Local variable */
10040 variable[2] = param1;
10041 /* Register variable[3]: Method return value and escape marker */
10042 /* Register variable[4]: Result */
10043 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10044 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentMethid___replace_child, LOCATE_parser_prod, 3673); nit_exit(1);}
10045 /* Register variable[4]: Result */
10046 variable[4] = ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/;
10047 /* Register variable[4]: Result */
10048 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10049 if (UNTAG_Bool(variable[4])) { /*if*/
10050 /* Register variable[4]: Result */
10051 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10052 if (UNTAG_Bool(variable[4])) { /*if*/
10053 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
10054 /* Register variable[4]: Result */
10055 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
10056 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentMethid___replace_child, LOCATE_parser_prod, 3677); nit_exit(1);}
10057 ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/ = variable[2] /*new_child*/;
10058 } else { /*if*/
10059 ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/ = NIT_NULL /*null*/;
10060 }
10061 goto return_label314;
10062 }
10063 return_label314: while(false);
10064 tracehead = trace.prev;
10065 return;
10066 }
10067 void parser_prod___APercentMethid___visit_all(val_t self, val_t param0) {
10068 struct trace_t trace = {NULL, NULL, 3686, LOCATE_parser_prod___APercentMethid___visit_all};
10069 val_t variable[4];
10070 struct WBT_ **closurevariable = NULL;
10071 trace.prev = tracehead; tracehead = &trace;
10072 trace.file = LOCATE_parser_prod;
10073 /* Register variable[0]: Local variable */
10074 variable[0] = self;
10075 /* Register variable[1]: Local variable */
10076 variable[1] = param0;
10077 /* Register variable[2]: Method return value and escape marker */
10078 /* Register variable[3]: Result */
10079 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/;
10080 /* Register variable[3]: Result */
10081 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::==*/)))))));
10082 if (UNTAG_Bool(variable[3])) { /*if*/
10083 /* Register variable[3]: Result */
10084 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/;
10085 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10086 }
10087 return_label315: while(false);
10088 tracehead = trace.prev;
10089 return;
10090 }
10091 void parser_prod___APercentMethid___visit_all_reverse(val_t self, val_t param0) {
10092 struct trace_t trace = {NULL, NULL, 3693, LOCATE_parser_prod___APercentMethid___visit_all_reverse};
10093 val_t variable[4];
10094 struct WBT_ **closurevariable = NULL;
10095 trace.prev = tracehead; tracehead = &trace;
10096 trace.file = LOCATE_parser_prod;
10097 /* Register variable[0]: Local variable */
10098 variable[0] = self;
10099 /* Register variable[1]: Local variable */
10100 variable[1] = param0;
10101 /* Register variable[2]: Method return value and escape marker */
10102 /* Register variable[3]: Result */
10103 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/;
10104 /* Register variable[3]: Result */
10105 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::==*/)))))));
10106 if (UNTAG_Bool(variable[3])) { /*if*/
10107 /* Register variable[3]: Result */
10108 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/;
10109 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10110 }
10111 return_label316: while(false);
10112 tracehead = trace.prev;
10113 return;
10114 }
10115 void parser_prod___APercentMethid___empty_init(val_t self, int* init_table) {
10116 struct trace_t trace = {NULL, NULL, 3658, LOCATE_parser_prod___APercentMethid___empty_init};
10117 val_t variable[2];
10118 struct WBT_ **closurevariable = NULL;
10119 trace.prev = tracehead; tracehead = &trace;
10120 trace.file = LOCATE_parser_prod;
10121 /* Register variable[0]: Local variable */
10122 variable[0] = self;
10123 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i]) return;
10124 /* Register variable[1]: Method return value and escape marker */
10125 return_label317: while(false);
10126 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
10127 tracehead = trace.prev;
10128 return;
10129 }
10130 void parser_prod___APercentMethid___init_apercentmethid(val_t self, val_t param0, int* init_table) {
10131 struct trace_t trace = {NULL, NULL, 3660, LOCATE_parser_prod___APercentMethid___init_apercentmethid};
10132 val_t variable[4];
10133 struct WBT_ **closurevariable = NULL;
10134 trace.prev = tracehead; tracehead = &trace;
10135 trace.file = LOCATE_parser_prod;
10136 /* Register variable[0]: Local variable */
10137 variable[0] = self;
10138 /* Register variable[1]: Local variable */
10139 variable[1] = param0;
10140 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i]) return;
10141 /* Register variable[2]: Method return value and escape marker */
10142 CALL_parser_prod___APercentMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APercentMethid::empty_init*/;
10143 ATTR_parser_nodes___APercentMethid____n_percent(variable[0]) /*APercentMethid::_n_percent*/ = variable[1] /*n_percent*/;
10144 /* Register variable[3]: Result */
10145 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_percent*/ == NIT_NULL /*null*/) || (( variable[1] /*n_percent*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_percent*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_percent*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_percent*/)( variable[1] /*n_percent*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10146 if (UNTAG_Bool(variable[3])) { /*if*/
10147 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_percent*/)( variable[1] /*n_percent*/, variable[0]) /*PNode::parent=*/;
10148 }
10149 return_label318: while(false);
10150 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
10151 tracehead = trace.prev;
10152 return;
10153 }
10154 void parser_prod___AEqMethid___n_eq__eq(val_t self, val_t param0) {
10155 struct trace_t trace = {NULL, NULL, 3701, LOCATE_parser_prod___AEqMethid___n_eq__eq};
10156 val_t variable[4];
10157 struct WBT_ **closurevariable = NULL;
10158 trace.prev = tracehead; tracehead = &trace;
10159 trace.file = LOCATE_parser_prod;
10160 /* Register variable[0]: Local variable */
10161 variable[0] = self;
10162 /* Register variable[1]: Local variable */
10163 variable[1] = param0;
10164 /* Register variable[2]: Method return value and escape marker */
10165 ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/ = variable[1] /*n*/;
10166 /* Register variable[3]: Result */
10167 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10168 if (UNTAG_Bool(variable[3])) { /*if*/
10169 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
10170 }
10171 return_label319: while(false);
10172 tracehead = trace.prev;
10173 return;
10174 }
10175 void parser_prod___AEqMethid___replace_child(val_t self, val_t param0, val_t param1) {
10176 struct trace_t trace = {NULL, NULL, 3722, LOCATE_parser_prod___AEqMethid___replace_child};
10177 val_t variable[5];
10178 struct WBT_ **closurevariable = NULL;
10179 trace.prev = tracehead; tracehead = &trace;
10180 trace.file = LOCATE_parser_prod;
10181 /* Register variable[0]: Local variable */
10182 variable[0] = self;
10183 /* Register variable[1]: Local variable */
10184 variable[1] = param0;
10185 /* Register variable[2]: Local variable */
10186 variable[2] = param1;
10187 /* Register variable[3]: Method return value and escape marker */
10188 /* Register variable[4]: Result */
10189 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10190 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqMethid___replace_child, LOCATE_parser_prod, 3724); nit_exit(1);}
10191 /* Register variable[4]: Result */
10192 variable[4] = ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/;
10193 /* Register variable[4]: Result */
10194 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10195 if (UNTAG_Bool(variable[4])) { /*if*/
10196 /* Register variable[4]: Result */
10197 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10198 if (UNTAG_Bool(variable[4])) { /*if*/
10199 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
10200 /* Register variable[4]: Result */
10201 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TEq, ID_TEq)) /*cast TEq*/;
10202 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqMethid___replace_child, LOCATE_parser_prod, 3728); nit_exit(1);}
10203 ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/ = variable[2] /*new_child*/;
10204 } else { /*if*/
10205 ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/ = NIT_NULL /*null*/;
10206 }
10207 goto return_label320;
10208 }
10209 return_label320: while(false);
10210 tracehead = trace.prev;
10211 return;
10212 }
10213 void parser_prod___AEqMethid___visit_all(val_t self, val_t param0) {
10214 struct trace_t trace = {NULL, NULL, 3737, LOCATE_parser_prod___AEqMethid___visit_all};
10215 val_t variable[4];
10216 struct WBT_ **closurevariable = NULL;
10217 trace.prev = tracehead; tracehead = &trace;
10218 trace.file = LOCATE_parser_prod;
10219 /* Register variable[0]: Local variable */
10220 variable[0] = self;
10221 /* Register variable[1]: Local variable */
10222 variable[1] = param0;
10223 /* Register variable[2]: Method return value and escape marker */
10224 /* Register variable[3]: Result */
10225 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/;
10226 /* Register variable[3]: Result */
10227 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::==*/)))))));
10228 if (UNTAG_Bool(variable[3])) { /*if*/
10229 /* Register variable[3]: Result */
10230 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/;
10231 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10232 }
10233 return_label321: while(false);
10234 tracehead = trace.prev;
10235 return;
10236 }
10237 void parser_prod___AEqMethid___visit_all_reverse(val_t self, val_t param0) {
10238 struct trace_t trace = {NULL, NULL, 3744, LOCATE_parser_prod___AEqMethid___visit_all_reverse};
10239 val_t variable[4];
10240 struct WBT_ **closurevariable = NULL;
10241 trace.prev = tracehead; tracehead = &trace;
10242 trace.file = LOCATE_parser_prod;
10243 /* Register variable[0]: Local variable */
10244 variable[0] = self;
10245 /* Register variable[1]: Local variable */
10246 variable[1] = param0;
10247 /* Register variable[2]: Method return value and escape marker */
10248 /* Register variable[3]: Result */
10249 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/;
10250 /* Register variable[3]: Result */
10251 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::==*/)))))));
10252 if (UNTAG_Bool(variable[3])) { /*if*/
10253 /* Register variable[3]: Result */
10254 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/;
10255 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10256 }
10257 return_label322: while(false);
10258 tracehead = trace.prev;
10259 return;
10260 }
10261 void parser_prod___AEqMethid___empty_init(val_t self, int* init_table) {
10262 struct trace_t trace = {NULL, NULL, 3709, LOCATE_parser_prod___AEqMethid___empty_init};
10263 val_t variable[2];
10264 struct WBT_ **closurevariable = NULL;
10265 trace.prev = tracehead; tracehead = &trace;
10266 trace.file = LOCATE_parser_prod;
10267 /* Register variable[0]: Local variable */
10268 variable[0] = self;
10269 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i]) return;
10270 /* Register variable[1]: Method return value and escape marker */
10271 return_label323: while(false);
10272 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
10273 tracehead = trace.prev;
10274 return;
10275 }
10276 void parser_prod___AEqMethid___init_aeqmethid(val_t self, val_t param0, int* init_table) {
10277 struct trace_t trace = {NULL, NULL, 3711, LOCATE_parser_prod___AEqMethid___init_aeqmethid};
10278 val_t variable[4];
10279 struct WBT_ **closurevariable = NULL;
10280 trace.prev = tracehead; tracehead = &trace;
10281 trace.file = LOCATE_parser_prod;
10282 /* Register variable[0]: Local variable */
10283 variable[0] = self;
10284 /* Register variable[1]: Local variable */
10285 variable[1] = param0;
10286 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i]) return;
10287 /* Register variable[2]: Method return value and escape marker */
10288 CALL_parser_prod___AEqMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AEqMethid::empty_init*/;
10289 ATTR_parser_nodes___AEqMethid____n_eq(variable[0]) /*AEqMethid::_n_eq*/ = variable[1] /*n_eq*/;
10290 /* Register variable[3]: Result */
10291 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_eq*/ == NIT_NULL /*null*/) || (( variable[1] /*n_eq*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_eq*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_eq*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_eq*/)( variable[1] /*n_eq*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10292 if (UNTAG_Bool(variable[3])) { /*if*/
10293 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_eq*/)( variable[1] /*n_eq*/, variable[0]) /*PNode::parent=*/;
10294 }
10295 return_label324: while(false);
10296 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
10297 tracehead = trace.prev;
10298 return;
10299 }
10300 void parser_prod___ANeMethid___n_ne__eq(val_t self, val_t param0) {
10301 struct trace_t trace = {NULL, NULL, 3752, LOCATE_parser_prod___ANeMethid___n_ne__eq};
10302 val_t variable[4];
10303 struct WBT_ **closurevariable = NULL;
10304 trace.prev = tracehead; tracehead = &trace;
10305 trace.file = LOCATE_parser_prod;
10306 /* Register variable[0]: Local variable */
10307 variable[0] = self;
10308 /* Register variable[1]: Local variable */
10309 variable[1] = param0;
10310 /* Register variable[2]: Method return value and escape marker */
10311 ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/ = variable[1] /*n*/;
10312 /* Register variable[3]: Result */
10313 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10314 if (UNTAG_Bool(variable[3])) { /*if*/
10315 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
10316 }
10317 return_label325: while(false);
10318 tracehead = trace.prev;
10319 return;
10320 }
10321 void parser_prod___ANeMethid___replace_child(val_t self, val_t param0, val_t param1) {
10322 struct trace_t trace = {NULL, NULL, 3773, LOCATE_parser_prod___ANeMethid___replace_child};
10323 val_t variable[5];
10324 struct WBT_ **closurevariable = NULL;
10325 trace.prev = tracehead; tracehead = &trace;
10326 trace.file = LOCATE_parser_prod;
10327 /* Register variable[0]: Local variable */
10328 variable[0] = self;
10329 /* Register variable[1]: Local variable */
10330 variable[1] = param0;
10331 /* Register variable[2]: Local variable */
10332 variable[2] = param1;
10333 /* Register variable[3]: Method return value and escape marker */
10334 /* Register variable[4]: Result */
10335 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10336 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeMethid___replace_child, LOCATE_parser_prod, 3775); nit_exit(1);}
10337 /* Register variable[4]: Result */
10338 variable[4] = ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/;
10339 /* Register variable[4]: Result */
10340 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10341 if (UNTAG_Bool(variable[4])) { /*if*/
10342 /* Register variable[4]: Result */
10343 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10344 if (UNTAG_Bool(variable[4])) { /*if*/
10345 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
10346 /* Register variable[4]: Result */
10347 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TNe, ID_TNe)) /*cast TNe*/;
10348 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeMethid___replace_child, LOCATE_parser_prod, 3779); nit_exit(1);}
10349 ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/ = variable[2] /*new_child*/;
10350 } else { /*if*/
10351 ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/ = NIT_NULL /*null*/;
10352 }
10353 goto return_label326;
10354 }
10355 return_label326: while(false);
10356 tracehead = trace.prev;
10357 return;
10358 }
10359 void parser_prod___ANeMethid___visit_all(val_t self, val_t param0) {
10360 struct trace_t trace = {NULL, NULL, 3788, LOCATE_parser_prod___ANeMethid___visit_all};
10361 val_t variable[4];
10362 struct WBT_ **closurevariable = NULL;
10363 trace.prev = tracehead; tracehead = &trace;
10364 trace.file = LOCATE_parser_prod;
10365 /* Register variable[0]: Local variable */
10366 variable[0] = self;
10367 /* Register variable[1]: Local variable */
10368 variable[1] = param0;
10369 /* Register variable[2]: Method return value and escape marker */
10370 /* Register variable[3]: Result */
10371 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/;
10372 /* Register variable[3]: Result */
10373 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::==*/)))))));
10374 if (UNTAG_Bool(variable[3])) { /*if*/
10375 /* Register variable[3]: Result */
10376 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/;
10377 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10378 }
10379 return_label327: while(false);
10380 tracehead = trace.prev;
10381 return;
10382 }
10383 void parser_prod___ANeMethid___visit_all_reverse(val_t self, val_t param0) {
10384 struct trace_t trace = {NULL, NULL, 3795, LOCATE_parser_prod___ANeMethid___visit_all_reverse};
10385 val_t variable[4];
10386 struct WBT_ **closurevariable = NULL;
10387 trace.prev = tracehead; tracehead = &trace;
10388 trace.file = LOCATE_parser_prod;
10389 /* Register variable[0]: Local variable */
10390 variable[0] = self;
10391 /* Register variable[1]: Local variable */
10392 variable[1] = param0;
10393 /* Register variable[2]: Method return value and escape marker */
10394 /* Register variable[3]: Result */
10395 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/;
10396 /* Register variable[3]: Result */
10397 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::==*/)))))));
10398 if (UNTAG_Bool(variable[3])) { /*if*/
10399 /* Register variable[3]: Result */
10400 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/;
10401 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10402 }
10403 return_label328: while(false);
10404 tracehead = trace.prev;
10405 return;
10406 }
10407 void parser_prod___ANeMethid___empty_init(val_t self, int* init_table) {
10408 struct trace_t trace = {NULL, NULL, 3760, LOCATE_parser_prod___ANeMethid___empty_init};
10409 val_t variable[2];
10410 struct WBT_ **closurevariable = NULL;
10411 trace.prev = tracehead; tracehead = &trace;
10412 trace.file = LOCATE_parser_prod;
10413 /* Register variable[0]: Local variable */
10414 variable[0] = self;
10415 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i]) return;
10416 /* Register variable[1]: Method return value and escape marker */
10417 return_label329: while(false);
10418 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
10419 tracehead = trace.prev;
10420 return;
10421 }
10422 void parser_prod___ANeMethid___init_anemethid(val_t self, val_t param0, int* init_table) {
10423 struct trace_t trace = {NULL, NULL, 3762, LOCATE_parser_prod___ANeMethid___init_anemethid};
10424 val_t variable[4];
10425 struct WBT_ **closurevariable = NULL;
10426 trace.prev = tracehead; tracehead = &trace;
10427 trace.file = LOCATE_parser_prod;
10428 /* Register variable[0]: Local variable */
10429 variable[0] = self;
10430 /* Register variable[1]: Local variable */
10431 variable[1] = param0;
10432 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i]) return;
10433 /* Register variable[2]: Method return value and escape marker */
10434 CALL_parser_prod___ANeMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ANeMethid::empty_init*/;
10435 ATTR_parser_nodes___ANeMethid____n_ne(variable[0]) /*ANeMethid::_n_ne*/ = variable[1] /*n_ne*/;
10436 /* Register variable[3]: Result */
10437 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_ne*/ == NIT_NULL /*null*/) || (( variable[1] /*n_ne*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_ne*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_ne*/)( variable[1] /*n_ne*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10438 if (UNTAG_Bool(variable[3])) { /*if*/
10439 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_ne*/)( variable[1] /*n_ne*/, variable[0]) /*PNode::parent=*/;
10440 }
10441 return_label330: while(false);
10442 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
10443 tracehead = trace.prev;
10444 return;
10445 }
10446 void parser_prod___ALeMethid___n_le__eq(val_t self, val_t param0) {
10447 struct trace_t trace = {NULL, NULL, 3803, LOCATE_parser_prod___ALeMethid___n_le__eq};
10448 val_t variable[4];
10449 struct WBT_ **closurevariable = NULL;
10450 trace.prev = tracehead; tracehead = &trace;
10451 trace.file = LOCATE_parser_prod;
10452 /* Register variable[0]: Local variable */
10453 variable[0] = self;
10454 /* Register variable[1]: Local variable */
10455 variable[1] = param0;
10456 /* Register variable[2]: Method return value and escape marker */
10457 ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/ = variable[1] /*n*/;
10458 /* Register variable[3]: Result */
10459 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10460 if (UNTAG_Bool(variable[3])) { /*if*/
10461 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
10462 }
10463 return_label331: while(false);
10464 tracehead = trace.prev;
10465 return;
10466 }
10467 void parser_prod___ALeMethid___replace_child(val_t self, val_t param0, val_t param1) {
10468 struct trace_t trace = {NULL, NULL, 3824, LOCATE_parser_prod___ALeMethid___replace_child};
10469 val_t variable[5];
10470 struct WBT_ **closurevariable = NULL;
10471 trace.prev = tracehead; tracehead = &trace;
10472 trace.file = LOCATE_parser_prod;
10473 /* Register variable[0]: Local variable */
10474 variable[0] = self;
10475 /* Register variable[1]: Local variable */
10476 variable[1] = param0;
10477 /* Register variable[2]: Local variable */
10478 variable[2] = param1;
10479 /* Register variable[3]: Method return value and escape marker */
10480 /* Register variable[4]: Result */
10481 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10482 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeMethid___replace_child, LOCATE_parser_prod, 3826); nit_exit(1);}
10483 /* Register variable[4]: Result */
10484 variable[4] = ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/;
10485 /* Register variable[4]: Result */
10486 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10487 if (UNTAG_Bool(variable[4])) { /*if*/
10488 /* Register variable[4]: Result */
10489 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10490 if (UNTAG_Bool(variable[4])) { /*if*/
10491 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
10492 /* Register variable[4]: Result */
10493 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TLe, ID_TLe)) /*cast TLe*/;
10494 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeMethid___replace_child, LOCATE_parser_prod, 3830); nit_exit(1);}
10495 ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/ = variable[2] /*new_child*/;
10496 } else { /*if*/
10497 ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/ = NIT_NULL /*null*/;
10498 }
10499 goto return_label332;
10500 }
10501 return_label332: while(false);
10502 tracehead = trace.prev;
10503 return;
10504 }
10505 void parser_prod___ALeMethid___visit_all(val_t self, val_t param0) {
10506 struct trace_t trace = {NULL, NULL, 3839, LOCATE_parser_prod___ALeMethid___visit_all};
10507 val_t variable[4];
10508 struct WBT_ **closurevariable = NULL;
10509 trace.prev = tracehead; tracehead = &trace;
10510 trace.file = LOCATE_parser_prod;
10511 /* Register variable[0]: Local variable */
10512 variable[0] = self;
10513 /* Register variable[1]: Local variable */
10514 variable[1] = param0;
10515 /* Register variable[2]: Method return value and escape marker */
10516 /* Register variable[3]: Result */
10517 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/;
10518 /* Register variable[3]: Result */
10519 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::==*/)))))));
10520 if (UNTAG_Bool(variable[3])) { /*if*/
10521 /* Register variable[3]: Result */
10522 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/;
10523 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10524 }
10525 return_label333: while(false);
10526 tracehead = trace.prev;
10527 return;
10528 }
10529 void parser_prod___ALeMethid___visit_all_reverse(val_t self, val_t param0) {
10530 struct trace_t trace = {NULL, NULL, 3846, LOCATE_parser_prod___ALeMethid___visit_all_reverse};
10531 val_t variable[4];
10532 struct WBT_ **closurevariable = NULL;
10533 trace.prev = tracehead; tracehead = &trace;
10534 trace.file = LOCATE_parser_prod;
10535 /* Register variable[0]: Local variable */
10536 variable[0] = self;
10537 /* Register variable[1]: Local variable */
10538 variable[1] = param0;
10539 /* Register variable[2]: Method return value and escape marker */
10540 /* Register variable[3]: Result */
10541 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/;
10542 /* Register variable[3]: Result */
10543 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::==*/)))))));
10544 if (UNTAG_Bool(variable[3])) { /*if*/
10545 /* Register variable[3]: Result */
10546 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/;
10547 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10548 }
10549 return_label334: while(false);
10550 tracehead = trace.prev;
10551 return;
10552 }
10553 void parser_prod___ALeMethid___empty_init(val_t self, int* init_table) {
10554 struct trace_t trace = {NULL, NULL, 3811, LOCATE_parser_prod___ALeMethid___empty_init};
10555 val_t variable[2];
10556 struct WBT_ **closurevariable = NULL;
10557 trace.prev = tracehead; tracehead = &trace;
10558 trace.file = LOCATE_parser_prod;
10559 /* Register variable[0]: Local variable */
10560 variable[0] = self;
10561 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i]) return;
10562 /* Register variable[1]: Method return value and escape marker */
10563 return_label335: while(false);
10564 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
10565 tracehead = trace.prev;
10566 return;
10567 }
10568 void parser_prod___ALeMethid___init_alemethid(val_t self, val_t param0, int* init_table) {
10569 struct trace_t trace = {NULL, NULL, 3813, LOCATE_parser_prod___ALeMethid___init_alemethid};
10570 val_t variable[4];
10571 struct WBT_ **closurevariable = NULL;
10572 trace.prev = tracehead; tracehead = &trace;
10573 trace.file = LOCATE_parser_prod;
10574 /* Register variable[0]: Local variable */
10575 variable[0] = self;
10576 /* Register variable[1]: Local variable */
10577 variable[1] = param0;
10578 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i]) return;
10579 /* Register variable[2]: Method return value and escape marker */
10580 CALL_parser_prod___ALeMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ALeMethid::empty_init*/;
10581 ATTR_parser_nodes___ALeMethid____n_le(variable[0]) /*ALeMethid::_n_le*/ = variable[1] /*n_le*/;
10582 /* Register variable[3]: Result */
10583 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_le*/ == NIT_NULL /*null*/) || (( variable[1] /*n_le*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_le*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_le*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_le*/)( variable[1] /*n_le*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10584 if (UNTAG_Bool(variable[3])) { /*if*/
10585 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_le*/)( variable[1] /*n_le*/, variable[0]) /*PNode::parent=*/;
10586 }
10587 return_label336: while(false);
10588 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
10589 tracehead = trace.prev;
10590 return;
10591 }
10592 void parser_prod___AGeMethid___n_ge__eq(val_t self, val_t param0) {
10593 struct trace_t trace = {NULL, NULL, 3854, LOCATE_parser_prod___AGeMethid___n_ge__eq};
10594 val_t variable[4];
10595 struct WBT_ **closurevariable = NULL;
10596 trace.prev = tracehead; tracehead = &trace;
10597 trace.file = LOCATE_parser_prod;
10598 /* Register variable[0]: Local variable */
10599 variable[0] = self;
10600 /* Register variable[1]: Local variable */
10601 variable[1] = param0;
10602 /* Register variable[2]: Method return value and escape marker */
10603 ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/ = variable[1] /*n*/;
10604 /* Register variable[3]: Result */
10605 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10606 if (UNTAG_Bool(variable[3])) { /*if*/
10607 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
10608 }
10609 return_label337: while(false);
10610 tracehead = trace.prev;
10611 return;
10612 }
10613 void parser_prod___AGeMethid___replace_child(val_t self, val_t param0, val_t param1) {
10614 struct trace_t trace = {NULL, NULL, 3875, LOCATE_parser_prod___AGeMethid___replace_child};
10615 val_t variable[5];
10616 struct WBT_ **closurevariable = NULL;
10617 trace.prev = tracehead; tracehead = &trace;
10618 trace.file = LOCATE_parser_prod;
10619 /* Register variable[0]: Local variable */
10620 variable[0] = self;
10621 /* Register variable[1]: Local variable */
10622 variable[1] = param0;
10623 /* Register variable[2]: Local variable */
10624 variable[2] = param1;
10625 /* Register variable[3]: Method return value and escape marker */
10626 /* Register variable[4]: Result */
10627 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10628 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeMethid___replace_child, LOCATE_parser_prod, 3877); nit_exit(1);}
10629 /* Register variable[4]: Result */
10630 variable[4] = ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/;
10631 /* Register variable[4]: Result */
10632 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10633 if (UNTAG_Bool(variable[4])) { /*if*/
10634 /* Register variable[4]: Result */
10635 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10636 if (UNTAG_Bool(variable[4])) { /*if*/
10637 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
10638 /* Register variable[4]: Result */
10639 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TGe, ID_TGe)) /*cast TGe*/;
10640 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeMethid___replace_child, LOCATE_parser_prod, 3881); nit_exit(1);}
10641 ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/ = variable[2] /*new_child*/;
10642 } else { /*if*/
10643 ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/ = NIT_NULL /*null*/;
10644 }
10645 goto return_label338;
10646 }
10647 return_label338: while(false);
10648 tracehead = trace.prev;
10649 return;
10650 }
10651 void parser_prod___AGeMethid___visit_all(val_t self, val_t param0) {
10652 struct trace_t trace = {NULL, NULL, 3890, LOCATE_parser_prod___AGeMethid___visit_all};
10653 val_t variable[4];
10654 struct WBT_ **closurevariable = NULL;
10655 trace.prev = tracehead; tracehead = &trace;
10656 trace.file = LOCATE_parser_prod;
10657 /* Register variable[0]: Local variable */
10658 variable[0] = self;
10659 /* Register variable[1]: Local variable */
10660 variable[1] = param0;
10661 /* Register variable[2]: Method return value and escape marker */
10662 /* Register variable[3]: Result */
10663 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/;
10664 /* Register variable[3]: Result */
10665 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::==*/)))))));
10666 if (UNTAG_Bool(variable[3])) { /*if*/
10667 /* Register variable[3]: Result */
10668 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/;
10669 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10670 }
10671 return_label339: while(false);
10672 tracehead = trace.prev;
10673 return;
10674 }
10675 void parser_prod___AGeMethid___visit_all_reverse(val_t self, val_t param0) {
10676 struct trace_t trace = {NULL, NULL, 3897, LOCATE_parser_prod___AGeMethid___visit_all_reverse};
10677 val_t variable[4];
10678 struct WBT_ **closurevariable = NULL;
10679 trace.prev = tracehead; tracehead = &trace;
10680 trace.file = LOCATE_parser_prod;
10681 /* Register variable[0]: Local variable */
10682 variable[0] = self;
10683 /* Register variable[1]: Local variable */
10684 variable[1] = param0;
10685 /* Register variable[2]: Method return value and escape marker */
10686 /* Register variable[3]: Result */
10687 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/;
10688 /* Register variable[3]: Result */
10689 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::==*/)))))));
10690 if (UNTAG_Bool(variable[3])) { /*if*/
10691 /* Register variable[3]: Result */
10692 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/;
10693 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10694 }
10695 return_label340: while(false);
10696 tracehead = trace.prev;
10697 return;
10698 }
10699 void parser_prod___AGeMethid___empty_init(val_t self, int* init_table) {
10700 struct trace_t trace = {NULL, NULL, 3862, LOCATE_parser_prod___AGeMethid___empty_init};
10701 val_t variable[2];
10702 struct WBT_ **closurevariable = NULL;
10703 trace.prev = tracehead; tracehead = &trace;
10704 trace.file = LOCATE_parser_prod;
10705 /* Register variable[0]: Local variable */
10706 variable[0] = self;
10707 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i]) return;
10708 /* Register variable[1]: Method return value and escape marker */
10709 return_label341: while(false);
10710 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
10711 tracehead = trace.prev;
10712 return;
10713 }
10714 void parser_prod___AGeMethid___init_agemethid(val_t self, val_t param0, int* init_table) {
10715 struct trace_t trace = {NULL, NULL, 3864, LOCATE_parser_prod___AGeMethid___init_agemethid};
10716 val_t variable[4];
10717 struct WBT_ **closurevariable = NULL;
10718 trace.prev = tracehead; tracehead = &trace;
10719 trace.file = LOCATE_parser_prod;
10720 /* Register variable[0]: Local variable */
10721 variable[0] = self;
10722 /* Register variable[1]: Local variable */
10723 variable[1] = param0;
10724 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i]) return;
10725 /* Register variable[2]: Method return value and escape marker */
10726 CALL_parser_prod___AGeMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AGeMethid::empty_init*/;
10727 ATTR_parser_nodes___AGeMethid____n_ge(variable[0]) /*AGeMethid::_n_ge*/ = variable[1] /*n_ge*/;
10728 /* Register variable[3]: Result */
10729 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_ge*/ == NIT_NULL /*null*/) || (( variable[1] /*n_ge*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_ge*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_ge*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_ge*/)( variable[1] /*n_ge*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10730 if (UNTAG_Bool(variable[3])) { /*if*/
10731 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_ge*/)( variable[1] /*n_ge*/, variable[0]) /*PNode::parent=*/;
10732 }
10733 return_label342: while(false);
10734 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
10735 tracehead = trace.prev;
10736 return;
10737 }
10738 void parser_prod___ALtMethid___n_lt__eq(val_t self, val_t param0) {
10739 struct trace_t trace = {NULL, NULL, 3905, LOCATE_parser_prod___ALtMethid___n_lt__eq};
10740 val_t variable[4];
10741 struct WBT_ **closurevariable = NULL;
10742 trace.prev = tracehead; tracehead = &trace;
10743 trace.file = LOCATE_parser_prod;
10744 /* Register variable[0]: Local variable */
10745 variable[0] = self;
10746 /* Register variable[1]: Local variable */
10747 variable[1] = param0;
10748 /* Register variable[2]: Method return value and escape marker */
10749 ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/ = variable[1] /*n*/;
10750 /* Register variable[3]: Result */
10751 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10752 if (UNTAG_Bool(variable[3])) { /*if*/
10753 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
10754 }
10755 return_label343: while(false);
10756 tracehead = trace.prev;
10757 return;
10758 }
10759 void parser_prod___ALtMethid___replace_child(val_t self, val_t param0, val_t param1) {
10760 struct trace_t trace = {NULL, NULL, 3926, LOCATE_parser_prod___ALtMethid___replace_child};
10761 val_t variable[5];
10762 struct WBT_ **closurevariable = NULL;
10763 trace.prev = tracehead; tracehead = &trace;
10764 trace.file = LOCATE_parser_prod;
10765 /* Register variable[0]: Local variable */
10766 variable[0] = self;
10767 /* Register variable[1]: Local variable */
10768 variable[1] = param0;
10769 /* Register variable[2]: Local variable */
10770 variable[2] = param1;
10771 /* Register variable[3]: Method return value and escape marker */
10772 /* Register variable[4]: Result */
10773 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10774 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtMethid___replace_child, LOCATE_parser_prod, 3928); nit_exit(1);}
10775 /* Register variable[4]: Result */
10776 variable[4] = ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/;
10777 /* Register variable[4]: Result */
10778 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10779 if (UNTAG_Bool(variable[4])) { /*if*/
10780 /* Register variable[4]: Result */
10781 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10782 if (UNTAG_Bool(variable[4])) { /*if*/
10783 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
10784 /* Register variable[4]: Result */
10785 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TLt, ID_TLt)) /*cast TLt*/;
10786 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtMethid___replace_child, LOCATE_parser_prod, 3932); nit_exit(1);}
10787 ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/ = variable[2] /*new_child*/;
10788 } else { /*if*/
10789 ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/ = NIT_NULL /*null*/;
10790 }
10791 goto return_label344;
10792 }
10793 return_label344: while(false);
10794 tracehead = trace.prev;
10795 return;
10796 }
10797 void parser_prod___ALtMethid___visit_all(val_t self, val_t param0) {
10798 struct trace_t trace = {NULL, NULL, 3941, LOCATE_parser_prod___ALtMethid___visit_all};
10799 val_t variable[4];
10800 struct WBT_ **closurevariable = NULL;
10801 trace.prev = tracehead; tracehead = &trace;
10802 trace.file = LOCATE_parser_prod;
10803 /* Register variable[0]: Local variable */
10804 variable[0] = self;
10805 /* Register variable[1]: Local variable */
10806 variable[1] = param0;
10807 /* Register variable[2]: Method return value and escape marker */
10808 /* Register variable[3]: Result */
10809 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/;
10810 /* Register variable[3]: Result */
10811 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::==*/)))))));
10812 if (UNTAG_Bool(variable[3])) { /*if*/
10813 /* Register variable[3]: Result */
10814 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/;
10815 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10816 }
10817 return_label345: while(false);
10818 tracehead = trace.prev;
10819 return;
10820 }
10821 void parser_prod___ALtMethid___visit_all_reverse(val_t self, val_t param0) {
10822 struct trace_t trace = {NULL, NULL, 3948, LOCATE_parser_prod___ALtMethid___visit_all_reverse};
10823 val_t variable[4];
10824 struct WBT_ **closurevariable = NULL;
10825 trace.prev = tracehead; tracehead = &trace;
10826 trace.file = LOCATE_parser_prod;
10827 /* Register variable[0]: Local variable */
10828 variable[0] = self;
10829 /* Register variable[1]: Local variable */
10830 variable[1] = param0;
10831 /* Register variable[2]: Method return value and escape marker */
10832 /* Register variable[3]: Result */
10833 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/;
10834 /* Register variable[3]: Result */
10835 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::==*/)))))));
10836 if (UNTAG_Bool(variable[3])) { /*if*/
10837 /* Register variable[3]: Result */
10838 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/;
10839 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10840 }
10841 return_label346: while(false);
10842 tracehead = trace.prev;
10843 return;
10844 }
10845 void parser_prod___ALtMethid___empty_init(val_t self, int* init_table) {
10846 struct trace_t trace = {NULL, NULL, 3913, LOCATE_parser_prod___ALtMethid___empty_init};
10847 val_t variable[2];
10848 struct WBT_ **closurevariable = NULL;
10849 trace.prev = tracehead; tracehead = &trace;
10850 trace.file = LOCATE_parser_prod;
10851 /* Register variable[0]: Local variable */
10852 variable[0] = self;
10853 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i]) return;
10854 /* Register variable[1]: Method return value and escape marker */
10855 return_label347: while(false);
10856 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
10857 tracehead = trace.prev;
10858 return;
10859 }
10860 void parser_prod___ALtMethid___init_altmethid(val_t self, val_t param0, int* init_table) {
10861 struct trace_t trace = {NULL, NULL, 3915, LOCATE_parser_prod___ALtMethid___init_altmethid};
10862 val_t variable[4];
10863 struct WBT_ **closurevariable = NULL;
10864 trace.prev = tracehead; tracehead = &trace;
10865 trace.file = LOCATE_parser_prod;
10866 /* Register variable[0]: Local variable */
10867 variable[0] = self;
10868 /* Register variable[1]: Local variable */
10869 variable[1] = param0;
10870 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i]) return;
10871 /* Register variable[2]: Method return value and escape marker */
10872 CALL_parser_prod___ALtMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ALtMethid::empty_init*/;
10873 ATTR_parser_nodes___ALtMethid____n_lt(variable[0]) /*ALtMethid::_n_lt*/ = variable[1] /*n_lt*/;
10874 /* Register variable[3]: Result */
10875 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_lt*/ == NIT_NULL /*null*/) || (( variable[1] /*n_lt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_lt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_lt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_lt*/)( variable[1] /*n_lt*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10876 if (UNTAG_Bool(variable[3])) { /*if*/
10877 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_lt*/)( variable[1] /*n_lt*/, variable[0]) /*PNode::parent=*/;
10878 }
10879 return_label348: while(false);
10880 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
10881 tracehead = trace.prev;
10882 return;
10883 }
10884 void parser_prod___AGtMethid___n_gt__eq(val_t self, val_t param0) {
10885 struct trace_t trace = {NULL, NULL, 3956, LOCATE_parser_prod___AGtMethid___n_gt__eq};
10886 val_t variable[4];
10887 struct WBT_ **closurevariable = NULL;
10888 trace.prev = tracehead; tracehead = &trace;
10889 trace.file = LOCATE_parser_prod;
10890 /* Register variable[0]: Local variable */
10891 variable[0] = self;
10892 /* Register variable[1]: Local variable */
10893 variable[1] = param0;
10894 /* Register variable[2]: Method return value and escape marker */
10895 ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/ = variable[1] /*n*/;
10896 /* Register variable[3]: Result */
10897 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10898 if (UNTAG_Bool(variable[3])) { /*if*/
10899 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
10900 }
10901 return_label349: while(false);
10902 tracehead = trace.prev;
10903 return;
10904 }
10905 void parser_prod___AGtMethid___replace_child(val_t self, val_t param0, val_t param1) {
10906 struct trace_t trace = {NULL, NULL, 3977, LOCATE_parser_prod___AGtMethid___replace_child};
10907 val_t variable[5];
10908 struct WBT_ **closurevariable = NULL;
10909 trace.prev = tracehead; tracehead = &trace;
10910 trace.file = LOCATE_parser_prod;
10911 /* Register variable[0]: Local variable */
10912 variable[0] = self;
10913 /* Register variable[1]: Local variable */
10914 variable[1] = param0;
10915 /* Register variable[2]: Local variable */
10916 variable[2] = param1;
10917 /* Register variable[3]: Method return value and escape marker */
10918 /* Register variable[4]: Result */
10919 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10920 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtMethid___replace_child, LOCATE_parser_prod, 3979); nit_exit(1);}
10921 /* Register variable[4]: Result */
10922 variable[4] = ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/;
10923 /* Register variable[4]: Result */
10924 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10925 if (UNTAG_Bool(variable[4])) { /*if*/
10926 /* Register variable[4]: Result */
10927 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10928 if (UNTAG_Bool(variable[4])) { /*if*/
10929 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
10930 /* Register variable[4]: Result */
10931 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TGt, ID_TGt)) /*cast TGt*/;
10932 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtMethid___replace_child, LOCATE_parser_prod, 3983); nit_exit(1);}
10933 ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/ = variable[2] /*new_child*/;
10934 } else { /*if*/
10935 ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/ = NIT_NULL /*null*/;
10936 }
10937 goto return_label350;
10938 }
10939 return_label350: while(false);
10940 tracehead = trace.prev;
10941 return;
10942 }
10943 void parser_prod___AGtMethid___visit_all(val_t self, val_t param0) {
10944 struct trace_t trace = {NULL, NULL, 3992, LOCATE_parser_prod___AGtMethid___visit_all};
10945 val_t variable[4];
10946 struct WBT_ **closurevariable = NULL;
10947 trace.prev = tracehead; tracehead = &trace;
10948 trace.file = LOCATE_parser_prod;
10949 /* Register variable[0]: Local variable */
10950 variable[0] = self;
10951 /* Register variable[1]: Local variable */
10952 variable[1] = param0;
10953 /* Register variable[2]: Method return value and escape marker */
10954 /* Register variable[3]: Result */
10955 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/;
10956 /* Register variable[3]: Result */
10957 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::==*/)))))));
10958 if (UNTAG_Bool(variable[3])) { /*if*/
10959 /* Register variable[3]: Result */
10960 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/;
10961 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10962 }
10963 return_label351: while(false);
10964 tracehead = trace.prev;
10965 return;
10966 }
10967 void parser_prod___AGtMethid___visit_all_reverse(val_t self, val_t param0) {
10968 struct trace_t trace = {NULL, NULL, 3999, LOCATE_parser_prod___AGtMethid___visit_all_reverse};
10969 val_t variable[4];
10970 struct WBT_ **closurevariable = NULL;
10971 trace.prev = tracehead; tracehead = &trace;
10972 trace.file = LOCATE_parser_prod;
10973 /* Register variable[0]: Local variable */
10974 variable[0] = self;
10975 /* Register variable[1]: Local variable */
10976 variable[1] = param0;
10977 /* Register variable[2]: Method return value and escape marker */
10978 /* Register variable[3]: Result */
10979 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/;
10980 /* Register variable[3]: Result */
10981 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::==*/)))))));
10982 if (UNTAG_Bool(variable[3])) { /*if*/
10983 /* Register variable[3]: Result */
10984 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/;
10985 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10986 }
10987 return_label352: while(false);
10988 tracehead = trace.prev;
10989 return;
10990 }
10991 void parser_prod___AGtMethid___empty_init(val_t self, int* init_table) {
10992 struct trace_t trace = {NULL, NULL, 3964, LOCATE_parser_prod___AGtMethid___empty_init};
10993 val_t variable[2];
10994 struct WBT_ **closurevariable = NULL;
10995 trace.prev = tracehead; tracehead = &trace;
10996 trace.file = LOCATE_parser_prod;
10997 /* Register variable[0]: Local variable */
10998 variable[0] = self;
10999 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i]) return;
11000 /* Register variable[1]: Method return value and escape marker */
11001 return_label353: while(false);
11002 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
11003 tracehead = trace.prev;
11004 return;
11005 }
11006 void parser_prod___AGtMethid___init_agtmethid(val_t self, val_t param0, int* init_table) {
11007 struct trace_t trace = {NULL, NULL, 3966, LOCATE_parser_prod___AGtMethid___init_agtmethid};
11008 val_t variable[4];
11009 struct WBT_ **closurevariable = NULL;
11010 trace.prev = tracehead; tracehead = &trace;
11011 trace.file = LOCATE_parser_prod;
11012 /* Register variable[0]: Local variable */
11013 variable[0] = self;
11014 /* Register variable[1]: Local variable */
11015 variable[1] = param0;
11016 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i]) return;
11017 /* Register variable[2]: Method return value and escape marker */
11018 CALL_parser_prod___AGtMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AGtMethid::empty_init*/;
11019 ATTR_parser_nodes___AGtMethid____n_gt(variable[0]) /*AGtMethid::_n_gt*/ = variable[1] /*n_gt*/;
11020 /* Register variable[3]: Result */
11021 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_gt*/ == NIT_NULL /*null*/) || (( variable[1] /*n_gt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_gt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_gt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_gt*/)( variable[1] /*n_gt*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11022 if (UNTAG_Bool(variable[3])) { /*if*/
11023 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_gt*/)( variable[1] /*n_gt*/, variable[0]) /*PNode::parent=*/;
11024 }
11025 return_label354: while(false);
11026 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
11027 tracehead = trace.prev;
11028 return;
11029 }
11030 void parser_prod___ABraMethid___n_obra__eq(val_t self, val_t param0) {
11031 struct trace_t trace = {NULL, NULL, 4007, LOCATE_parser_prod___ABraMethid___n_obra__eq};
11032 val_t variable[4];
11033 struct WBT_ **closurevariable = NULL;
11034 trace.prev = tracehead; tracehead = &trace;
11035 trace.file = LOCATE_parser_prod;
11036 /* Register variable[0]: Local variable */
11037 variable[0] = self;
11038 /* Register variable[1]: Local variable */
11039 variable[1] = param0;
11040 /* Register variable[2]: Method return value and escape marker */
11041 ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/ = variable[1] /*n*/;
11042 /* Register variable[3]: Result */
11043 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11044 if (UNTAG_Bool(variable[3])) { /*if*/
11045 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11046 }
11047 return_label355: while(false);
11048 tracehead = trace.prev;
11049 return;
11050 }
11051 void parser_prod___ABraMethid___n_cbra__eq(val_t self, val_t param0) {
11052 struct trace_t trace = {NULL, NULL, 4014, LOCATE_parser_prod___ABraMethid___n_cbra__eq};
11053 val_t variable[4];
11054 struct WBT_ **closurevariable = NULL;
11055 trace.prev = tracehead; tracehead = &trace;
11056 trace.file = LOCATE_parser_prod;
11057 /* Register variable[0]: Local variable */
11058 variable[0] = self;
11059 /* Register variable[1]: Local variable */
11060 variable[1] = param0;
11061 /* Register variable[2]: Method return value and escape marker */
11062 ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/ = variable[1] /*n*/;
11063 /* Register variable[3]: Result */
11064 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11065 if (UNTAG_Bool(variable[3])) { /*if*/
11066 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11067 }
11068 return_label356: while(false);
11069 tracehead = trace.prev;
11070 return;
11071 }
11072 void parser_prod___ABraMethid___replace_child(val_t self, val_t param0, val_t param1) {
11073 struct trace_t trace = {NULL, NULL, 4040, LOCATE_parser_prod___ABraMethid___replace_child};
11074 val_t variable[5];
11075 struct WBT_ **closurevariable = NULL;
11076 trace.prev = tracehead; tracehead = &trace;
11077 trace.file = LOCATE_parser_prod;
11078 /* Register variable[0]: Local variable */
11079 variable[0] = self;
11080 /* Register variable[1]: Local variable */
11081 variable[1] = param0;
11082 /* Register variable[2]: Local variable */
11083 variable[2] = param1;
11084 /* Register variable[3]: Method return value and escape marker */
11085 /* Register variable[4]: Result */
11086 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11087 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraMethid___replace_child, LOCATE_parser_prod, 4042); nit_exit(1);}
11088 /* Register variable[4]: Result */
11089 variable[4] = ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/;
11090 /* Register variable[4]: Result */
11091 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11092 if (UNTAG_Bool(variable[4])) { /*if*/
11093 /* Register variable[4]: Result */
11094 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11095 if (UNTAG_Bool(variable[4])) { /*if*/
11096 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11097 /* Register variable[4]: Result */
11098 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
11099 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraMethid___replace_child, LOCATE_parser_prod, 4046); nit_exit(1);}
11100 ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/ = variable[2] /*new_child*/;
11101 } else { /*if*/
11102 ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/ = NIT_NULL /*null*/;
11103 }
11104 goto return_label357;
11105 }
11106 /* Register variable[4]: Result */
11107 variable[4] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/;
11108 /* Register variable[4]: Result */
11109 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11110 if (UNTAG_Bool(variable[4])) { /*if*/
11111 /* Register variable[4]: Result */
11112 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11113 if (UNTAG_Bool(variable[4])) { /*if*/
11114 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11115 /* Register variable[4]: Result */
11116 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
11117 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraMethid___replace_child, LOCATE_parser_prod, 4056); nit_exit(1);}
11118 ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/ = variable[2] /*new_child*/;
11119 } else { /*if*/
11120 ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/ = NIT_NULL /*null*/;
11121 }
11122 goto return_label357;
11123 }
11124 return_label357: while(false);
11125 tracehead = trace.prev;
11126 return;
11127 }
11128 void parser_prod___ABraMethid___visit_all(val_t self, val_t param0) {
11129 struct trace_t trace = {NULL, NULL, 4065, LOCATE_parser_prod___ABraMethid___visit_all};
11130 val_t variable[4];
11131 struct WBT_ **closurevariable = NULL;
11132 trace.prev = tracehead; tracehead = &trace;
11133 trace.file = LOCATE_parser_prod;
11134 /* Register variable[0]: Local variable */
11135 variable[0] = self;
11136 /* Register variable[1]: Local variable */
11137 variable[1] = param0;
11138 /* Register variable[2]: Method return value and escape marker */
11139 /* Register variable[3]: Result */
11140 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/;
11141 /* Register variable[3]: Result */
11142 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::==*/)))))));
11143 if (UNTAG_Bool(variable[3])) { /*if*/
11144 /* Register variable[3]: Result */
11145 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/;
11146 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11147 }
11148 /* Register variable[3]: Result */
11149 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/;
11150 /* Register variable[3]: Result */
11151 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::==*/)))))));
11152 if (UNTAG_Bool(variable[3])) { /*if*/
11153 /* Register variable[3]: Result */
11154 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/;
11155 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11156 }
11157 return_label358: while(false);
11158 tracehead = trace.prev;
11159 return;
11160 }
11161 void parser_prod___ABraMethid___visit_all_reverse(val_t self, val_t param0) {
11162 struct trace_t trace = {NULL, NULL, 4075, LOCATE_parser_prod___ABraMethid___visit_all_reverse};
11163 val_t variable[4];
11164 struct WBT_ **closurevariable = NULL;
11165 trace.prev = tracehead; tracehead = &trace;
11166 trace.file = LOCATE_parser_prod;
11167 /* Register variable[0]: Local variable */
11168 variable[0] = self;
11169 /* Register variable[1]: Local variable */
11170 variable[1] = param0;
11171 /* Register variable[2]: Method return value and escape marker */
11172 /* Register variable[3]: Result */
11173 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/;
11174 /* Register variable[3]: Result */
11175 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::==*/)))))));
11176 if (UNTAG_Bool(variable[3])) { /*if*/
11177 /* Register variable[3]: Result */
11178 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/;
11179 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11180 }
11181 /* Register variable[3]: Result */
11182 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/;
11183 /* Register variable[3]: Result */
11184 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::==*/)))))));
11185 if (UNTAG_Bool(variable[3])) { /*if*/
11186 /* Register variable[3]: Result */
11187 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/;
11188 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11189 }
11190 return_label359: while(false);
11191 tracehead = trace.prev;
11192 return;
11193 }
11194 void parser_prod___ABraMethid___empty_init(val_t self, int* init_table) {
11195 struct trace_t trace = {NULL, NULL, 4022, LOCATE_parser_prod___ABraMethid___empty_init};
11196 val_t variable[2];
11197 struct WBT_ **closurevariable = NULL;
11198 trace.prev = tracehead; tracehead = &trace;
11199 trace.file = LOCATE_parser_prod;
11200 /* Register variable[0]: Local variable */
11201 variable[0] = self;
11202 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i]) return;
11203 /* Register variable[1]: Method return value and escape marker */
11204 return_label360: while(false);
11205 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
11206 tracehead = trace.prev;
11207 return;
11208 }
11209 void parser_prod___ABraMethid___init_abramethid(val_t self, val_t param0, val_t param1, int* init_table) {
11210 struct trace_t trace = {NULL, NULL, 4024, LOCATE_parser_prod___ABraMethid___init_abramethid};
11211 val_t variable[5];
11212 struct WBT_ **closurevariable = NULL;
11213 trace.prev = tracehead; tracehead = &trace;
11214 trace.file = LOCATE_parser_prod;
11215 /* Register variable[0]: Local variable */
11216 variable[0] = self;
11217 /* Register variable[1]: Local variable */
11218 variable[1] = param0;
11219 /* Register variable[2]: Local variable */
11220 variable[2] = param1;
11221 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i]) return;
11222 /* Register variable[3]: Method return value and escape marker */
11223 CALL_parser_prod___ABraMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABraMethid::empty_init*/;
11224 ATTR_parser_nodes___ABraMethid____n_obra(variable[0]) /*ABraMethid::_n_obra*/ = variable[1] /*n_obra*/;
11225 /* Register variable[4]: Result */
11226 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_obra*/ == NIT_NULL /*null*/) || (( variable[1] /*n_obra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11227 if (UNTAG_Bool(variable[4])) { /*if*/
11228 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, variable[0]) /*PNode::parent=*/;
11229 }
11230 ATTR_parser_nodes___ABraMethid____n_cbra(variable[0]) /*ABraMethid::_n_cbra*/ = variable[2] /*n_cbra*/;
11231 /* Register variable[4]: Result */
11232 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_cbra*/ == NIT_NULL /*null*/) || (( variable[2] /*n_cbra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11233 if (UNTAG_Bool(variable[4])) { /*if*/
11234 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, variable[0]) /*PNode::parent=*/;
11235 }
11236 return_label361: while(false);
11237 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
11238 tracehead = trace.prev;
11239 return;
11240 }
11241 void parser_prod___AStarshipMethid___n_starship__eq(val_t self, val_t param0) {
11242 struct trace_t trace = {NULL, NULL, 4086, LOCATE_parser_prod___AStarshipMethid___n_starship__eq};
11243 val_t variable[4];
11244 struct WBT_ **closurevariable = NULL;
11245 trace.prev = tracehead; tracehead = &trace;
11246 trace.file = LOCATE_parser_prod;
11247 /* Register variable[0]: Local variable */
11248 variable[0] = self;
11249 /* Register variable[1]: Local variable */
11250 variable[1] = param0;
11251 /* Register variable[2]: Method return value and escape marker */
11252 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/ = variable[1] /*n*/;
11253 /* Register variable[3]: Result */
11254 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11255 if (UNTAG_Bool(variable[3])) { /*if*/
11256 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11257 }
11258 return_label362: while(false);
11259 tracehead = trace.prev;
11260 return;
11261 }
11262 void parser_prod___AStarshipMethid___replace_child(val_t self, val_t param0, val_t param1) {
11263 struct trace_t trace = {NULL, NULL, 4107, LOCATE_parser_prod___AStarshipMethid___replace_child};
11264 val_t variable[5];
11265 struct WBT_ **closurevariable = NULL;
11266 trace.prev = tracehead; tracehead = &trace;
11267 trace.file = LOCATE_parser_prod;
11268 /* Register variable[0]: Local variable */
11269 variable[0] = self;
11270 /* Register variable[1]: Local variable */
11271 variable[1] = param0;
11272 /* Register variable[2]: Local variable */
11273 variable[2] = param1;
11274 /* Register variable[3]: Method return value and escape marker */
11275 /* Register variable[4]: Result */
11276 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11277 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipMethid___replace_child, LOCATE_parser_prod, 4109); nit_exit(1);}
11278 /* Register variable[4]: Result */
11279 variable[4] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/;
11280 /* Register variable[4]: Result */
11281 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11282 if (UNTAG_Bool(variable[4])) { /*if*/
11283 /* Register variable[4]: Result */
11284 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11285 if (UNTAG_Bool(variable[4])) { /*if*/
11286 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11287 /* Register variable[4]: Result */
11288 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
11289 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipMethid___replace_child, LOCATE_parser_prod, 4113); nit_exit(1);}
11290 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/ = variable[2] /*new_child*/;
11291 } else { /*if*/
11292 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/ = NIT_NULL /*null*/;
11293 }
11294 goto return_label363;
11295 }
11296 return_label363: while(false);
11297 tracehead = trace.prev;
11298 return;
11299 }
11300 void parser_prod___AStarshipMethid___visit_all(val_t self, val_t param0) {
11301 struct trace_t trace = {NULL, NULL, 4122, LOCATE_parser_prod___AStarshipMethid___visit_all};
11302 val_t variable[4];
11303 struct WBT_ **closurevariable = NULL;
11304 trace.prev = tracehead; tracehead = &trace;
11305 trace.file = LOCATE_parser_prod;
11306 /* Register variable[0]: Local variable */
11307 variable[0] = self;
11308 /* Register variable[1]: Local variable */
11309 variable[1] = param0;
11310 /* Register variable[2]: Method return value and escape marker */
11311 /* Register variable[3]: Result */
11312 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/;
11313 /* Register variable[3]: Result */
11314 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::==*/)))))));
11315 if (UNTAG_Bool(variable[3])) { /*if*/
11316 /* Register variable[3]: Result */
11317 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/;
11318 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11319 }
11320 return_label364: while(false);
11321 tracehead = trace.prev;
11322 return;
11323 }
11324 void parser_prod___AStarshipMethid___visit_all_reverse(val_t self, val_t param0) {
11325 struct trace_t trace = {NULL, NULL, 4129, LOCATE_parser_prod___AStarshipMethid___visit_all_reverse};
11326 val_t variable[4];
11327 struct WBT_ **closurevariable = NULL;
11328 trace.prev = tracehead; tracehead = &trace;
11329 trace.file = LOCATE_parser_prod;
11330 /* Register variable[0]: Local variable */
11331 variable[0] = self;
11332 /* Register variable[1]: Local variable */
11333 variable[1] = param0;
11334 /* Register variable[2]: Method return value and escape marker */
11335 /* Register variable[3]: Result */
11336 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/;
11337 /* Register variable[3]: Result */
11338 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::==*/)))))));
11339 if (UNTAG_Bool(variable[3])) { /*if*/
11340 /* Register variable[3]: Result */
11341 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/;
11342 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11343 }
11344 return_label365: while(false);
11345 tracehead = trace.prev;
11346 return;
11347 }
11348 void parser_prod___AStarshipMethid___empty_init(val_t self, int* init_table) {
11349 struct trace_t trace = {NULL, NULL, 4094, LOCATE_parser_prod___AStarshipMethid___empty_init};
11350 val_t variable[2];
11351 struct WBT_ **closurevariable = NULL;
11352 trace.prev = tracehead; tracehead = &trace;
11353 trace.file = LOCATE_parser_prod;
11354 /* Register variable[0]: Local variable */
11355 variable[0] = self;
11356 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
11357 /* Register variable[1]: Method return value and escape marker */
11358 return_label366: while(false);
11359 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
11360 tracehead = trace.prev;
11361 return;
11362 }
11363 void parser_prod___AStarshipMethid___init_astarshipmethid(val_t self, val_t param0, int* init_table) {
11364 struct trace_t trace = {NULL, NULL, 4096, LOCATE_parser_prod___AStarshipMethid___init_astarshipmethid};
11365 val_t variable[4];
11366 struct WBT_ **closurevariable = NULL;
11367 trace.prev = tracehead; tracehead = &trace;
11368 trace.file = LOCATE_parser_prod;
11369 /* Register variable[0]: Local variable */
11370 variable[0] = self;
11371 /* Register variable[1]: Local variable */
11372 variable[1] = param0;
11373 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
11374 /* Register variable[2]: Method return value and escape marker */
11375 CALL_parser_prod___AStarshipMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AStarshipMethid::empty_init*/;
11376 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[0]) /*AStarshipMethid::_n_starship*/ = variable[1] /*n_starship*/;
11377 /* Register variable[3]: Result */
11378 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_starship*/ == NIT_NULL /*null*/) || (( variable[1] /*n_starship*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_starship*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_starship*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_starship*/)( variable[1] /*n_starship*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11379 if (UNTAG_Bool(variable[3])) { /*if*/
11380 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_starship*/)( variable[1] /*n_starship*/, variable[0]) /*PNode::parent=*/;
11381 }
11382 return_label367: while(false);
11383 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
11384 tracehead = trace.prev;
11385 return;
11386 }
11387 void parser_prod___AAssignMethid___n_id__eq(val_t self, val_t param0) {
11388 struct trace_t trace = {NULL, NULL, 4137, LOCATE_parser_prod___AAssignMethid___n_id__eq};
11389 val_t variable[4];
11390 struct WBT_ **closurevariable = NULL;
11391 trace.prev = tracehead; tracehead = &trace;
11392 trace.file = LOCATE_parser_prod;
11393 /* Register variable[0]: Local variable */
11394 variable[0] = self;
11395 /* Register variable[1]: Local variable */
11396 variable[1] = param0;
11397 /* Register variable[2]: Method return value and escape marker */
11398 ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/ = variable[1] /*n*/;
11399 /* Register variable[3]: Result */
11400 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11401 if (UNTAG_Bool(variable[3])) { /*if*/
11402 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11403 }
11404 return_label368: while(false);
11405 tracehead = trace.prev;
11406 return;
11407 }
11408 void parser_prod___AAssignMethid___n_assign__eq(val_t self, val_t param0) {
11409 struct trace_t trace = {NULL, NULL, 4144, LOCATE_parser_prod___AAssignMethid___n_assign__eq};
11410 val_t variable[4];
11411 struct WBT_ **closurevariable = NULL;
11412 trace.prev = tracehead; tracehead = &trace;
11413 trace.file = LOCATE_parser_prod;
11414 /* Register variable[0]: Local variable */
11415 variable[0] = self;
11416 /* Register variable[1]: Local variable */
11417 variable[1] = param0;
11418 /* Register variable[2]: Method return value and escape marker */
11419 ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/ = variable[1] /*n*/;
11420 /* Register variable[3]: Result */
11421 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11422 if (UNTAG_Bool(variable[3])) { /*if*/
11423 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11424 }
11425 return_label369: while(false);
11426 tracehead = trace.prev;
11427 return;
11428 }
11429 void parser_prod___AAssignMethid___replace_child(val_t self, val_t param0, val_t param1) {
11430 struct trace_t trace = {NULL, NULL, 4170, LOCATE_parser_prod___AAssignMethid___replace_child};
11431 val_t variable[5];
11432 struct WBT_ **closurevariable = NULL;
11433 trace.prev = tracehead; tracehead = &trace;
11434 trace.file = LOCATE_parser_prod;
11435 /* Register variable[0]: Local variable */
11436 variable[0] = self;
11437 /* Register variable[1]: Local variable */
11438 variable[1] = param0;
11439 /* Register variable[2]: Local variable */
11440 variable[2] = param1;
11441 /* Register variable[3]: Method return value and escape marker */
11442 /* Register variable[4]: Result */
11443 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11444 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssignMethid___replace_child, LOCATE_parser_prod, 4172); nit_exit(1);}
11445 /* Register variable[4]: Result */
11446 variable[4] = ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/;
11447 /* Register variable[4]: Result */
11448 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11449 if (UNTAG_Bool(variable[4])) { /*if*/
11450 /* Register variable[4]: Result */
11451 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11452 if (UNTAG_Bool(variable[4])) { /*if*/
11453 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11454 /* Register variable[4]: Result */
11455 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
11456 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssignMethid___replace_child, LOCATE_parser_prod, 4176); nit_exit(1);}
11457 ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/ = variable[2] /*new_child*/;
11458 } else { /*if*/
11459 ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/ = NIT_NULL /*null*/;
11460 }
11461 goto return_label370;
11462 }
11463 /* Register variable[4]: Result */
11464 variable[4] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/;
11465 /* Register variable[4]: Result */
11466 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11467 if (UNTAG_Bool(variable[4])) { /*if*/
11468 /* Register variable[4]: Result */
11469 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11470 if (UNTAG_Bool(variable[4])) { /*if*/
11471 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11472 /* Register variable[4]: Result */
11473 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
11474 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssignMethid___replace_child, LOCATE_parser_prod, 4186); nit_exit(1);}
11475 ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/ = variable[2] /*new_child*/;
11476 } else { /*if*/
11477 ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/ = NIT_NULL /*null*/;
11478 }
11479 goto return_label370;
11480 }
11481 return_label370: while(false);
11482 tracehead = trace.prev;
11483 return;
11484 }
11485 void parser_prod___AAssignMethid___visit_all(val_t self, val_t param0) {
11486 struct trace_t trace = {NULL, NULL, 4195, LOCATE_parser_prod___AAssignMethid___visit_all};
11487 val_t variable[4];
11488 struct WBT_ **closurevariable = NULL;
11489 trace.prev = tracehead; tracehead = &trace;
11490 trace.file = LOCATE_parser_prod;
11491 /* Register variable[0]: Local variable */
11492 variable[0] = self;
11493 /* Register variable[1]: Local variable */
11494 variable[1] = param0;
11495 /* Register variable[2]: Method return value and escape marker */
11496 /* Register variable[3]: Result */
11497 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/;
11498 /* Register variable[3]: Result */
11499 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::==*/)))))));
11500 if (UNTAG_Bool(variable[3])) { /*if*/
11501 /* Register variable[3]: Result */
11502 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/;
11503 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11504 }
11505 /* Register variable[3]: Result */
11506 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/;
11507 /* Register variable[3]: Result */
11508 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::==*/)))))));
11509 if (UNTAG_Bool(variable[3])) { /*if*/
11510 /* Register variable[3]: Result */
11511 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/;
11512 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11513 }
11514 return_label371: while(false);
11515 tracehead = trace.prev;
11516 return;
11517 }
11518 void parser_prod___AAssignMethid___visit_all_reverse(val_t self, val_t param0) {
11519 struct trace_t trace = {NULL, NULL, 4205, LOCATE_parser_prod___AAssignMethid___visit_all_reverse};
11520 val_t variable[4];
11521 struct WBT_ **closurevariable = NULL;
11522 trace.prev = tracehead; tracehead = &trace;
11523 trace.file = LOCATE_parser_prod;
11524 /* Register variable[0]: Local variable */
11525 variable[0] = self;
11526 /* Register variable[1]: Local variable */
11527 variable[1] = param0;
11528 /* Register variable[2]: Method return value and escape marker */
11529 /* Register variable[3]: Result */
11530 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/;
11531 /* Register variable[3]: Result */
11532 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::==*/)))))));
11533 if (UNTAG_Bool(variable[3])) { /*if*/
11534 /* Register variable[3]: Result */
11535 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/;
11536 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11537 }
11538 /* Register variable[3]: Result */
11539 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/;
11540 /* Register variable[3]: Result */
11541 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::==*/)))))));
11542 if (UNTAG_Bool(variable[3])) { /*if*/
11543 /* Register variable[3]: Result */
11544 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/;
11545 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11546 }
11547 return_label372: while(false);
11548 tracehead = trace.prev;
11549 return;
11550 }
11551 void parser_prod___AAssignMethid___empty_init(val_t self, int* init_table) {
11552 struct trace_t trace = {NULL, NULL, 4152, LOCATE_parser_prod___AAssignMethid___empty_init};
11553 val_t variable[2];
11554 struct WBT_ **closurevariable = NULL;
11555 trace.prev = tracehead; tracehead = &trace;
11556 trace.file = LOCATE_parser_prod;
11557 /* Register variable[0]: Local variable */
11558 variable[0] = self;
11559 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
11560 /* Register variable[1]: Method return value and escape marker */
11561 return_label373: while(false);
11562 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
11563 tracehead = trace.prev;
11564 return;
11565 }
11566 void parser_prod___AAssignMethid___init_aassignmethid(val_t self, val_t param0, val_t param1, int* init_table) {
11567 struct trace_t trace = {NULL, NULL, 4154, LOCATE_parser_prod___AAssignMethid___init_aassignmethid};
11568 val_t variable[5];
11569 struct WBT_ **closurevariable = NULL;
11570 trace.prev = tracehead; tracehead = &trace;
11571 trace.file = LOCATE_parser_prod;
11572 /* Register variable[0]: Local variable */
11573 variable[0] = self;
11574 /* Register variable[1]: Local variable */
11575 variable[1] = param0;
11576 /* Register variable[2]: Local variable */
11577 variable[2] = param1;
11578 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
11579 /* Register variable[3]: Method return value and escape marker */
11580 CALL_parser_prod___AAssignMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAssignMethid::empty_init*/;
11581 ATTR_parser_nodes___AAssignMethid____n_id(variable[0]) /*AAssignMethid::_n_id*/ = variable[1] /*n_id*/;
11582 /* Register variable[4]: Result */
11583 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11584 if (UNTAG_Bool(variable[4])) { /*if*/
11585 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
11586 }
11587 ATTR_parser_nodes___AAssignMethid____n_assign(variable[0]) /*AAssignMethid::_n_assign*/ = variable[2] /*n_assign*/;
11588 /* Register variable[4]: Result */
11589 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign*/ == NIT_NULL /*null*/) || (( variable[2] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11590 if (UNTAG_Bool(variable[4])) { /*if*/
11591 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, variable[0]) /*PNode::parent=*/;
11592 }
11593 return_label374: while(false);
11594 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
11595 tracehead = trace.prev;
11596 return;
11597 }
11598 void parser_prod___ABraassignMethid___n_obra__eq(val_t self, val_t param0) {
11599 struct trace_t trace = {NULL, NULL, 4216, LOCATE_parser_prod___ABraassignMethid___n_obra__eq};
11600 val_t variable[4];
11601 struct WBT_ **closurevariable = NULL;
11602 trace.prev = tracehead; tracehead = &trace;
11603 trace.file = LOCATE_parser_prod;
11604 /* Register variable[0]: Local variable */
11605 variable[0] = self;
11606 /* Register variable[1]: Local variable */
11607 variable[1] = param0;
11608 /* Register variable[2]: Method return value and escape marker */
11609 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/ = variable[1] /*n*/;
11610 /* Register variable[3]: Result */
11611 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11612 if (UNTAG_Bool(variable[3])) { /*if*/
11613 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11614 }
11615 return_label375: while(false);
11616 tracehead = trace.prev;
11617 return;
11618 }
11619 void parser_prod___ABraassignMethid___n_cbra__eq(val_t self, val_t param0) {
11620 struct trace_t trace = {NULL, NULL, 4223, LOCATE_parser_prod___ABraassignMethid___n_cbra__eq};
11621 val_t variable[4];
11622 struct WBT_ **closurevariable = NULL;
11623 trace.prev = tracehead; tracehead = &trace;
11624 trace.file = LOCATE_parser_prod;
11625 /* Register variable[0]: Local variable */
11626 variable[0] = self;
11627 /* Register variable[1]: Local variable */
11628 variable[1] = param0;
11629 /* Register variable[2]: Method return value and escape marker */
11630 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/ = variable[1] /*n*/;
11631 /* Register variable[3]: Result */
11632 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11633 if (UNTAG_Bool(variable[3])) { /*if*/
11634 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11635 }
11636 return_label376: while(false);
11637 tracehead = trace.prev;
11638 return;
11639 }
11640 void parser_prod___ABraassignMethid___n_assign__eq(val_t self, val_t param0) {
11641 struct trace_t trace = {NULL, NULL, 4230, LOCATE_parser_prod___ABraassignMethid___n_assign__eq};
11642 val_t variable[4];
11643 struct WBT_ **closurevariable = NULL;
11644 trace.prev = tracehead; tracehead = &trace;
11645 trace.file = LOCATE_parser_prod;
11646 /* Register variable[0]: Local variable */
11647 variable[0] = self;
11648 /* Register variable[1]: Local variable */
11649 variable[1] = param0;
11650 /* Register variable[2]: Method return value and escape marker */
11651 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/ = variable[1] /*n*/;
11652 /* Register variable[3]: Result */
11653 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11654 if (UNTAG_Bool(variable[3])) { /*if*/
11655 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11656 }
11657 return_label377: while(false);
11658 tracehead = trace.prev;
11659 return;
11660 }
11661 void parser_prod___ABraassignMethid___replace_child(val_t self, val_t param0, val_t param1) {
11662 struct trace_t trace = {NULL, NULL, 4261, LOCATE_parser_prod___ABraassignMethid___replace_child};
11663 val_t variable[5];
11664 struct WBT_ **closurevariable = NULL;
11665 trace.prev = tracehead; tracehead = &trace;
11666 trace.file = LOCATE_parser_prod;
11667 /* Register variable[0]: Local variable */
11668 variable[0] = self;
11669 /* Register variable[1]: Local variable */
11670 variable[1] = param0;
11671 /* Register variable[2]: Local variable */
11672 variable[2] = param1;
11673 /* Register variable[3]: Method return value and escape marker */
11674 /* Register variable[4]: Result */
11675 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11676 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4263); nit_exit(1);}
11677 /* Register variable[4]: Result */
11678 variable[4] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/;
11679 /* Register variable[4]: Result */
11680 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11681 if (UNTAG_Bool(variable[4])) { /*if*/
11682 /* Register variable[4]: Result */
11683 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11684 if (UNTAG_Bool(variable[4])) { /*if*/
11685 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11686 /* Register variable[4]: Result */
11687 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
11688 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4267); nit_exit(1);}
11689 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/ = variable[2] /*new_child*/;
11690 } else { /*if*/
11691 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/ = NIT_NULL /*null*/;
11692 }
11693 goto return_label378;
11694 }
11695 /* Register variable[4]: Result */
11696 variable[4] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/;
11697 /* Register variable[4]: Result */
11698 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11699 if (UNTAG_Bool(variable[4])) { /*if*/
11700 /* Register variable[4]: Result */
11701 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11702 if (UNTAG_Bool(variable[4])) { /*if*/
11703 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11704 /* Register variable[4]: Result */
11705 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
11706 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4277); nit_exit(1);}
11707 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/ = variable[2] /*new_child*/;
11708 } else { /*if*/
11709 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/ = NIT_NULL /*null*/;
11710 }
11711 goto return_label378;
11712 }
11713 /* Register variable[4]: Result */
11714 variable[4] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/;
11715 /* Register variable[4]: Result */
11716 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11717 if (UNTAG_Bool(variable[4])) { /*if*/
11718 /* Register variable[4]: Result */
11719 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11720 if (UNTAG_Bool(variable[4])) { /*if*/
11721 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11722 /* Register variable[4]: Result */
11723 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
11724 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4287); nit_exit(1);}
11725 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/ = variable[2] /*new_child*/;
11726 } else { /*if*/
11727 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/ = NIT_NULL /*null*/;
11728 }
11729 goto return_label378;
11730 }
11731 return_label378: while(false);
11732 tracehead = trace.prev;
11733 return;
11734 }
11735 void parser_prod___ABraassignMethid___visit_all(val_t self, val_t param0) {
11736 struct trace_t trace = {NULL, NULL, 4296, LOCATE_parser_prod___ABraassignMethid___visit_all};
11737 val_t variable[4];
11738 struct WBT_ **closurevariable = NULL;
11739 trace.prev = tracehead; tracehead = &trace;
11740 trace.file = LOCATE_parser_prod;
11741 /* Register variable[0]: Local variable */
11742 variable[0] = self;
11743 /* Register variable[1]: Local variable */
11744 variable[1] = param0;
11745 /* Register variable[2]: Method return value and escape marker */
11746 /* Register variable[3]: Result */
11747 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/;
11748 /* Register variable[3]: Result */
11749 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::==*/)))))));
11750 if (UNTAG_Bool(variable[3])) { /*if*/
11751 /* Register variable[3]: Result */
11752 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/;
11753 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11754 }
11755 /* Register variable[3]: Result */
11756 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/;
11757 /* Register variable[3]: Result */
11758 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::==*/)))))));
11759 if (UNTAG_Bool(variable[3])) { /*if*/
11760 /* Register variable[3]: Result */
11761 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/;
11762 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11763 }
11764 /* Register variable[3]: Result */
11765 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/;
11766 /* Register variable[3]: Result */
11767 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::==*/)))))));
11768 if (UNTAG_Bool(variable[3])) { /*if*/
11769 /* Register variable[3]: Result */
11770 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/;
11771 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11772 }
11773 return_label379: while(false);
11774 tracehead = trace.prev;
11775 return;
11776 }
11777 void parser_prod___ABraassignMethid___visit_all_reverse(val_t self, val_t param0) {
11778 struct trace_t trace = {NULL, NULL, 4309, LOCATE_parser_prod___ABraassignMethid___visit_all_reverse};
11779 val_t variable[4];
11780 struct WBT_ **closurevariable = NULL;
11781 trace.prev = tracehead; tracehead = &trace;
11782 trace.file = LOCATE_parser_prod;
11783 /* Register variable[0]: Local variable */
11784 variable[0] = self;
11785 /* Register variable[1]: Local variable */
11786 variable[1] = param0;
11787 /* Register variable[2]: Method return value and escape marker */
11788 /* Register variable[3]: Result */
11789 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/;
11790 /* Register variable[3]: Result */
11791 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::==*/)))))));
11792 if (UNTAG_Bool(variable[3])) { /*if*/
11793 /* Register variable[3]: Result */
11794 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/;
11795 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11796 }
11797 /* Register variable[3]: Result */
11798 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/;
11799 /* Register variable[3]: Result */
11800 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::==*/)))))));
11801 if (UNTAG_Bool(variable[3])) { /*if*/
11802 /* Register variable[3]: Result */
11803 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/;
11804 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11805 }
11806 /* Register variable[3]: Result */
11807 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/;
11808 /* Register variable[3]: Result */
11809 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::==*/)))))));
11810 if (UNTAG_Bool(variable[3])) { /*if*/
11811 /* Register variable[3]: Result */
11812 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/;
11813 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11814 }
11815 return_label380: while(false);
11816 tracehead = trace.prev;
11817 return;
11818 }
11819 void parser_prod___ABraassignMethid___empty_init(val_t self, int* init_table) {
11820 struct trace_t trace = {NULL, NULL, 4238, LOCATE_parser_prod___ABraassignMethid___empty_init};
11821 val_t variable[2];
11822 struct WBT_ **closurevariable = NULL;
11823 trace.prev = tracehead; tracehead = &trace;
11824 trace.file = LOCATE_parser_prod;
11825 /* Register variable[0]: Local variable */
11826 variable[0] = self;
11827 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
11828 /* Register variable[1]: Method return value and escape marker */
11829 return_label381: while(false);
11830 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
11831 tracehead = trace.prev;
11832 return;
11833 }
11834 void parser_prod___ABraassignMethid___init_abraassignmethid(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
11835 struct trace_t trace = {NULL, NULL, 4240, LOCATE_parser_prod___ABraassignMethid___init_abraassignmethid};
11836 val_t variable[6];
11837 struct WBT_ **closurevariable = NULL;
11838 trace.prev = tracehead; tracehead = &trace;
11839 trace.file = LOCATE_parser_prod;
11840 /* Register variable[0]: Local variable */
11841 variable[0] = self;
11842 /* Register variable[1]: Local variable */
11843 variable[1] = param0;
11844 /* Register variable[2]: Local variable */
11845 variable[2] = param1;
11846 /* Register variable[3]: Local variable */
11847 variable[3] = param2;
11848 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
11849 /* Register variable[4]: Method return value and escape marker */
11850 CALL_parser_prod___ABraassignMethid___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABraassignMethid::empty_init*/;
11851 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[0]) /*ABraassignMethid::_n_obra*/ = variable[1] /*n_obra*/;
11852 /* Register variable[5]: Result */
11853 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_obra*/ == NIT_NULL /*null*/) || (( variable[1] /*n_obra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11854 if (UNTAG_Bool(variable[5])) { /*if*/
11855 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, variable[0]) /*PNode::parent=*/;
11856 }
11857 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[0]) /*ABraassignMethid::_n_cbra*/ = variable[2] /*n_cbra*/;
11858 /* Register variable[5]: Result */
11859 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_cbra*/ == NIT_NULL /*null*/) || (( variable[2] /*n_cbra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11860 if (UNTAG_Bool(variable[5])) { /*if*/
11861 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, variable[0]) /*PNode::parent=*/;
11862 }
11863 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[0]) /*ABraassignMethid::_n_assign*/ = variable[3] /*n_assign*/;
11864 /* Register variable[5]: Result */
11865 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ == NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11866 if (UNTAG_Bool(variable[5])) { /*if*/
11867 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[0]) /*PNode::parent=*/;
11868 }
11869 return_label382: while(false);
11870 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
11871 tracehead = trace.prev;
11872 return;
11873 }
11874 void parser_prod___ASignature___n_type__eq(val_t self, val_t param0) {
11875 struct trace_t trace = {NULL, NULL, 4323, LOCATE_parser_prod___ASignature___n_type__eq};
11876 val_t variable[4];
11877 struct WBT_ **closurevariable = NULL;
11878 trace.prev = tracehead; tracehead = &trace;
11879 trace.file = LOCATE_parser_prod;
11880 /* Register variable[0]: Local variable */
11881 variable[0] = self;
11882 /* Register variable[1]: Local variable */
11883 variable[1] = param0;
11884 /* Register variable[2]: Method return value and escape marker */
11885 ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/ = variable[1] /*n*/;
11886 /* Register variable[3]: Result */
11887 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11888 if (UNTAG_Bool(variable[3])) { /*if*/
11889 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
11890 }
11891 return_label383: while(false);
11892 tracehead = trace.prev;
11893 return;
11894 }
11895 void parser_prod___ASignature___replace_child(val_t self, val_t param0, val_t param1) {
11896 struct trace_t trace = {NULL, NULL, 4358, LOCATE_parser_prod___ASignature___replace_child};
11897 val_t variable[8];
11898 struct WBT_ **closurevariable = NULL;
11899 trace.prev = tracehead; tracehead = &trace;
11900 trace.file = LOCATE_parser_prod;
11901 /* Register variable[0]: Local variable */
11902 variable[0] = self;
11903 /* Register variable[1]: Local variable */
11904 variable[1] = param0;
11905 /* Register variable[2]: Local variable */
11906 variable[2] = param1;
11907 /* Register variable[3]: Method return value and escape marker */
11908 /* Register variable[4]: Result */
11909 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11910 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4360); nit_exit(1);}
11911 /* Register variable[4]: Result */
11912 variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
11913 /* Register variable[4]: Result */
11914 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
11915 /* Register variable[4]: Result */
11916 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
11917 /* Register variable[4]: For iterator */
11918 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
11919 while (true) { /*for*/
11920 /* Register variable[5]: For 'is_ok' result */
11921 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
11922 if (!UNTAG_Bool(variable[5])) break; /*for*/
11923 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
11924 /* Register variable[6]: Local variable */
11925 variable[6] = variable[5];
11926 /* Register variable[7]: Result */
11927 variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
11928 /* Register variable[7]: Result */
11929 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
11930 /* Register variable[7]: Result */
11931 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
11932 if (UNTAG_Bool(variable[7])) { /*if*/
11933 /* Register variable[7]: Result */
11934 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11935 if (UNTAG_Bool(variable[7])) { /*if*/
11936 /* Register variable[7]: Result */
11937 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
11938 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4364); nit_exit(1);}
11939 /* Register variable[7]: Result */
11940 variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
11941 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
11942 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11943 } else { /*if*/
11944 /* Register variable[7]: Result */
11945 variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
11946 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
11947 }
11948 goto return_label384;
11949 }
11950 continue_385: while(0);
11951 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
11952 }
11953 break_385: while(0);
11954 /* Register variable[4]: Result */
11955 variable[4] = ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/;
11956 /* Register variable[4]: Result */
11957 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11958 if (UNTAG_Bool(variable[4])) { /*if*/
11959 /* Register variable[4]: Result */
11960 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11961 if (UNTAG_Bool(variable[4])) { /*if*/
11962 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
11963 /* Register variable[4]: Result */
11964 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
11965 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4376); nit_exit(1);}
11966 ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/ = variable[2] /*new_child*/;
11967 } else { /*if*/
11968 ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/ = NIT_NULL /*null*/;
11969 }
11970 goto return_label384;
11971 }
11972 /* Register variable[4]: Result */
11973 variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
11974 /* Register variable[4]: Result */
11975 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
11976 /* Register variable[4]: Result */
11977 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
11978 /* Register variable[4]: For iterator */
11979 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
11980 while (true) { /*for*/
11981 /* Register variable[5]: For 'is_ok' result */
11982 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
11983 if (!UNTAG_Bool(variable[5])) break; /*for*/
11984 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
11985 /* Register variable[6]: Local variable */
11986 variable[6] = variable[5];
11987 /* Register variable[7]: Result */
11988 variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
11989 /* Register variable[7]: Result */
11990 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
11991 /* Register variable[7]: Result */
11992 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
11993 if (UNTAG_Bool(variable[7])) { /*if*/
11994 /* Register variable[7]: Result */
11995 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11996 if (UNTAG_Bool(variable[7])) { /*if*/
11997 /* Register variable[7]: Result */
11998 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
11999 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4386); nit_exit(1);}
12000 /* Register variable[7]: Result */
12001 variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
12002 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
12003 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12004 } else { /*if*/
12005 /* Register variable[7]: Result */
12006 variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
12007 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
12008 }
12009 goto return_label384;
12010 }
12011 continue_386: while(0);
12012 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
12013 }
12014 break_386: while(0);
12015 return_label384: while(false);
12016 tracehead = trace.prev;
12017 return;
12018 }
12019 void parser_prod___ASignature___visit_all(val_t self, val_t param0) {
12020 struct trace_t trace = {NULL, NULL, 4397, LOCATE_parser_prod___ASignature___visit_all};
12021 val_t variable[6];
12022 struct WBT_ **closurevariable = NULL;
12023 trace.prev = tracehead; tracehead = &trace;
12024 trace.file = LOCATE_parser_prod;
12025 /* Register variable[0]: Local variable */
12026 variable[0] = self;
12027 /* Register variable[1]: Local variable */
12028 variable[1] = param0;
12029 /* Register variable[2]: Method return value and escape marker */
12030 /* Register variable[3]: Result */
12031 variable[3] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
12032 /* Register variable[3]: For iterator */
12033 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
12034 while (true) { /*for*/
12035 /* Register variable[4]: For 'is_ok' result */
12036 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
12037 if (!UNTAG_Bool(variable[4])) break; /*for*/
12038 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
12039 /* Register variable[5]: Local variable */
12040 variable[5] = variable[4];
12041 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
12042 continue_388: while(0);
12043 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
12044 }
12045 break_388: while(0);
12046 /* Register variable[3]: Result */
12047 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/;
12048 /* Register variable[3]: Result */
12049 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::==*/)))))));
12050 if (UNTAG_Bool(variable[3])) { /*if*/
12051 /* Register variable[3]: Result */
12052 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/;
12053 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12054 }
12055 /* Register variable[3]: Result */
12056 variable[3] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
12057 /* Register variable[3]: For iterator */
12058 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
12059 while (true) { /*for*/
12060 /* Register variable[4]: For 'is_ok' result */
12061 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
12062 if (!UNTAG_Bool(variable[4])) break; /*for*/
12063 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
12064 /* Register variable[5]: Local variable */
12065 variable[5] = variable[4];
12066 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
12067 continue_389: while(0);
12068 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
12069 }
12070 break_389: while(0);
12071 return_label387: while(false);
12072 tracehead = trace.prev;
12073 return;
12074 }
12075 void parser_prod___ASignature___visit_all_reverse(val_t self, val_t param0) {
12076 struct trace_t trace = {NULL, NULL, 4410, LOCATE_parser_prod___ASignature___visit_all_reverse};
12077 val_t variable[5];
12078 struct WBT_ **closurevariable = NULL;
12079 trace.prev = tracehead; tracehead = &trace;
12080 trace.file = LOCATE_parser_prod;
12081 /* Register variable[0]: Local variable */
12082 variable[0] = self;
12083 /* Register variable[1]: Local variable */
12084 variable[1] = param0;
12085 /* Register variable[2]: Method return value and escape marker */
12086 /* Register variable[3]: Local variable */
12087 /* Register variable[4]: Result */
12088 variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
12089 /* Register variable[4]: Result */
12090 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
12091 variable[3] = variable[4];
12092 while (true) { /*while*/
12093 /* Register variable[4]: Result */
12094 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
12095 if (!UNTAG_Bool(variable[4])) break; /* while*/
12096 /* Register variable[4]: Result */
12097 variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
12098 /* Register variable[4]: Result */
12099 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
12100 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
12101 /* Register variable[4]: Result */
12102 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
12103 variable[3] = variable[4] /*i=*/;
12104 continue_391: while(0);
12105 }
12106 break_391: while(0);
12107 /* Register variable[3]: Result */
12108 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/;
12109 /* Register variable[3]: Result */
12110 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::==*/)))))));
12111 if (UNTAG_Bool(variable[3])) { /*if*/
12112 /* Register variable[3]: Result */
12113 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/;
12114 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12115 }
12116 /* Register variable[3]: Local variable */
12117 /* Register variable[4]: Result */
12118 variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
12119 /* Register variable[4]: Result */
12120 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
12121 variable[3] = variable[4];
12122 while (true) { /*while*/
12123 /* Register variable[4]: Result */
12124 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
12125 if (!UNTAG_Bool(variable[4])) break; /* while*/
12126 /* Register variable[4]: Result */
12127 variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
12128 /* Register variable[4]: Result */
12129 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
12130 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
12131 /* Register variable[4]: Result */
12132 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
12133 variable[3] = variable[4] /*i=*/;
12134 continue_392: while(0);
12135 }
12136 break_392: while(0);
12137 return_label390: while(false);
12138 tracehead = trace.prev;
12139 return;
12140 }
12141 void parser_prod___ASignature___empty_init(val_t self, int* init_table) {
12142 struct trace_t trace = {NULL, NULL, 4331, LOCATE_parser_prod___ASignature___empty_init};
12143 val_t variable[2];
12144 struct WBT_ **closurevariable = NULL;
12145 trace.prev = tracehead; tracehead = &trace;
12146 trace.file = LOCATE_parser_prod;
12147 /* Register variable[0]: Local variable */
12148 variable[0] = self;
12149 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i]) return;
12150 /* Register variable[1]: Method return value and escape marker */
12151 return_label393: while(false);
12152 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i] = 1;
12153 tracehead = trace.prev;
12154 return;
12155 }
12156 void parser_prod___ASignature___init_asignature(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
12157 struct trace_t trace = {NULL, NULL, 4333, LOCATE_parser_prod___ASignature___init_asignature};
12158 val_t variable[9];
12159 struct WBT_ **closurevariable = NULL;
12160 trace.prev = tracehead; tracehead = &trace;
12161 trace.file = LOCATE_parser_prod;
12162 /* Register variable[0]: Local variable */
12163 variable[0] = self;
12164 /* Register variable[1]: Local variable */
12165 variable[1] = param0;
12166 /* Register variable[2]: Local variable */
12167 variable[2] = param1;
12168 /* Register variable[3]: Local variable */
12169 variable[3] = param2;
12170 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i]) return;
12171 /* Register variable[4]: Method return value and escape marker */
12172 CALL_parser_prod___ASignature___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASignature::empty_init*/;
12173 /* Register variable[5]: Result */
12174 variable[5] = NEW_List_list___List___init() /*new List[PParam]*/;
12175 ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/ = variable[5];
12176 /* Register variable[5]: For iterator */
12177 variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_params*/)( variable[1] /*n_params*/) /*Collection::iterator*/;
12178 while (true) { /*for*/
12179 /* Register variable[6]: For 'is_ok' result */
12180 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
12181 if (!UNTAG_Bool(variable[6])) break; /*for*/
12182 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
12183 /* Register variable[7]: Local variable */
12184 variable[7] = variable[6];
12185 /* Register variable[8]: Result */
12186 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
12187 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___init_asignature, LOCATE_parser_prod, 4342); nit_exit(1);}
12188 /* Register variable[8]: Result */
12189 variable[8] = ATTR_parser_nodes___ASignature____n_params(variable[0]) /*ASignature::_n_params*/;
12190 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
12191 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
12192 continue_395: while(0);
12193 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
12194 }
12195 break_395: while(0);
12196 ATTR_parser_nodes___ASignature____n_type(variable[0]) /*ASignature::_n_type*/ = variable[2] /*n_type*/;
12197 /* Register variable[5]: Result */
12198 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ == NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12199 if (UNTAG_Bool(variable[5])) { /*if*/
12200 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[0]) /*PNode::parent=*/;
12201 }
12202 /* Register variable[5]: Result */
12203 variable[5] = NEW_List_list___List___init() /*new List[PClosureDecl]*/;
12204 ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/ = variable[5];
12205 /* Register variable[5]: For iterator */
12206 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_closure_decls*/)( variable[3] /*n_closure_decls*/) /*Collection::iterator*/;
12207 while (true) { /*for*/
12208 /* Register variable[6]: For 'is_ok' result */
12209 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
12210 if (!UNTAG_Bool(variable[6])) break; /*for*/
12211 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
12212 /* Register variable[7]: Local variable */
12213 variable[7] = variable[6];
12214 /* Register variable[8]: Result */
12215 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
12216 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___init_asignature, LOCATE_parser_prod, 4352); nit_exit(1);}
12217 /* Register variable[8]: Result */
12218 variable[8] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[0]) /*ASignature::_n_closure_decls*/;
12219 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
12220 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
12221 continue_396: while(0);
12222 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
12223 }
12224 break_396: while(0);
12225 return_label394: while(false);
12226 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i] = 1;
12227 tracehead = trace.prev;
12228 return;
12229 }
12230 void parser_prod___AParam___n_id__eq(val_t self, val_t param0) {
12231 struct trace_t trace = {NULL, NULL, 4432, LOCATE_parser_prod___AParam___n_id__eq};
12232 val_t variable[4];
12233 struct WBT_ **closurevariable = NULL;
12234 trace.prev = tracehead; tracehead = &trace;
12235 trace.file = LOCATE_parser_prod;
12236 /* Register variable[0]: Local variable */
12237 variable[0] = self;
12238 /* Register variable[1]: Local variable */
12239 variable[1] = param0;
12240 /* Register variable[2]: Method return value and escape marker */
12241 ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/ = variable[1] /*n*/;
12242 /* Register variable[3]: Result */
12243 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12244 if (UNTAG_Bool(variable[3])) { /*if*/
12245 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12246 }
12247 return_label397: while(false);
12248 tracehead = trace.prev;
12249 return;
12250 }
12251 void parser_prod___AParam___n_type__eq(val_t self, val_t param0) {
12252 struct trace_t trace = {NULL, NULL, 4439, LOCATE_parser_prod___AParam___n_type__eq};
12253 val_t variable[4];
12254 struct WBT_ **closurevariable = NULL;
12255 trace.prev = tracehead; tracehead = &trace;
12256 trace.file = LOCATE_parser_prod;
12257 /* Register variable[0]: Local variable */
12258 variable[0] = self;
12259 /* Register variable[1]: Local variable */
12260 variable[1] = param0;
12261 /* Register variable[2]: Method return value and escape marker */
12262 ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/ = variable[1] /*n*/;
12263 /* Register variable[3]: Result */
12264 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12265 if (UNTAG_Bool(variable[3])) { /*if*/
12266 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12267 }
12268 return_label398: while(false);
12269 tracehead = trace.prev;
12270 return;
12271 }
12272 void parser_prod___AParam___n_dotdotdot__eq(val_t self, val_t param0) {
12273 struct trace_t trace = {NULL, NULL, 4446, LOCATE_parser_prod___AParam___n_dotdotdot__eq};
12274 val_t variable[4];
12275 struct WBT_ **closurevariable = NULL;
12276 trace.prev = tracehead; tracehead = &trace;
12277 trace.file = LOCATE_parser_prod;
12278 /* Register variable[0]: Local variable */
12279 variable[0] = self;
12280 /* Register variable[1]: Local variable */
12281 variable[1] = param0;
12282 /* Register variable[2]: Method return value and escape marker */
12283 ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/ = variable[1] /*n*/;
12284 /* Register variable[3]: Result */
12285 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12286 if (UNTAG_Bool(variable[3])) { /*if*/
12287 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12288 }
12289 return_label399: while(false);
12290 tracehead = trace.prev;
12291 return;
12292 }
12293 void parser_prod___AParam___replace_child(val_t self, val_t param0, val_t param1) {
12294 struct trace_t trace = {NULL, NULL, 4477, LOCATE_parser_prod___AParam___replace_child};
12295 val_t variable[5];
12296 struct WBT_ **closurevariable = NULL;
12297 trace.prev = tracehead; tracehead = &trace;
12298 trace.file = LOCATE_parser_prod;
12299 /* Register variable[0]: Local variable */
12300 variable[0] = self;
12301 /* Register variable[1]: Local variable */
12302 variable[1] = param0;
12303 /* Register variable[2]: Local variable */
12304 variable[2] = param1;
12305 /* Register variable[3]: Method return value and escape marker */
12306 /* Register variable[4]: Result */
12307 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12308 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4479); nit_exit(1);}
12309 /* Register variable[4]: Result */
12310 variable[4] = ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/;
12311 /* Register variable[4]: Result */
12312 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12313 if (UNTAG_Bool(variable[4])) { /*if*/
12314 /* Register variable[4]: Result */
12315 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12316 if (UNTAG_Bool(variable[4])) { /*if*/
12317 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12318 /* Register variable[4]: Result */
12319 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
12320 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4483); nit_exit(1);}
12321 ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/ = variable[2] /*new_child*/;
12322 } else { /*if*/
12323 ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/ = NIT_NULL /*null*/;
12324 }
12325 goto return_label400;
12326 }
12327 /* Register variable[4]: Result */
12328 variable[4] = ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/;
12329 /* Register variable[4]: Result */
12330 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12331 if (UNTAG_Bool(variable[4])) { /*if*/
12332 /* Register variable[4]: Result */
12333 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12334 if (UNTAG_Bool(variable[4])) { /*if*/
12335 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12336 /* Register variable[4]: Result */
12337 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
12338 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4493); nit_exit(1);}
12339 ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/ = variable[2] /*new_child*/;
12340 } else { /*if*/
12341 ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/ = NIT_NULL /*null*/;
12342 }
12343 goto return_label400;
12344 }
12345 /* Register variable[4]: Result */
12346 variable[4] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/;
12347 /* Register variable[4]: Result */
12348 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12349 if (UNTAG_Bool(variable[4])) { /*if*/
12350 /* Register variable[4]: Result */
12351 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12352 if (UNTAG_Bool(variable[4])) { /*if*/
12353 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12354 /* Register variable[4]: Result */
12355 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
12356 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4503); nit_exit(1);}
12357 ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/ = variable[2] /*new_child*/;
12358 } else { /*if*/
12359 ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/ = NIT_NULL /*null*/;
12360 }
12361 goto return_label400;
12362 }
12363 return_label400: while(false);
12364 tracehead = trace.prev;
12365 return;
12366 }
12367 void parser_prod___AParam___visit_all(val_t self, val_t param0) {
12368 struct trace_t trace = {NULL, NULL, 4512, LOCATE_parser_prod___AParam___visit_all};
12369 val_t variable[4];
12370 struct WBT_ **closurevariable = NULL;
12371 trace.prev = tracehead; tracehead = &trace;
12372 trace.file = LOCATE_parser_prod;
12373 /* Register variable[0]: Local variable */
12374 variable[0] = self;
12375 /* Register variable[1]: Local variable */
12376 variable[1] = param0;
12377 /* Register variable[2]: Method return value and escape marker */
12378 /* Register variable[3]: Result */
12379 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/;
12380 /* Register variable[3]: Result */
12381 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::==*/)))))));
12382 if (UNTAG_Bool(variable[3])) { /*if*/
12383 /* Register variable[3]: Result */
12384 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/;
12385 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12386 }
12387 /* Register variable[3]: Result */
12388 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/;
12389 /* Register variable[3]: Result */
12390 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::==*/)))))));
12391 if (UNTAG_Bool(variable[3])) { /*if*/
12392 /* Register variable[3]: Result */
12393 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/;
12394 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12395 }
12396 /* Register variable[3]: Result */
12397 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/;
12398 /* Register variable[3]: Result */
12399 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::==*/)))))));
12400 if (UNTAG_Bool(variable[3])) { /*if*/
12401 /* Register variable[3]: Result */
12402 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/;
12403 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12404 }
12405 return_label401: while(false);
12406 tracehead = trace.prev;
12407 return;
12408 }
12409 void parser_prod___AParam___visit_all_reverse(val_t self, val_t param0) {
12410 struct trace_t trace = {NULL, NULL, 4525, LOCATE_parser_prod___AParam___visit_all_reverse};
12411 val_t variable[4];
12412 struct WBT_ **closurevariable = NULL;
12413 trace.prev = tracehead; tracehead = &trace;
12414 trace.file = LOCATE_parser_prod;
12415 /* Register variable[0]: Local variable */
12416 variable[0] = self;
12417 /* Register variable[1]: Local variable */
12418 variable[1] = param0;
12419 /* Register variable[2]: Method return value and escape marker */
12420 /* Register variable[3]: Result */
12421 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/;
12422 /* Register variable[3]: Result */
12423 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::==*/)))))));
12424 if (UNTAG_Bool(variable[3])) { /*if*/
12425 /* Register variable[3]: Result */
12426 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/;
12427 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12428 }
12429 /* Register variable[3]: Result */
12430 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/;
12431 /* Register variable[3]: Result */
12432 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::==*/)))))));
12433 if (UNTAG_Bool(variable[3])) { /*if*/
12434 /* Register variable[3]: Result */
12435 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/;
12436 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12437 }
12438 /* Register variable[3]: Result */
12439 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/;
12440 /* Register variable[3]: Result */
12441 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::==*/)))))));
12442 if (UNTAG_Bool(variable[3])) { /*if*/
12443 /* Register variable[3]: Result */
12444 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/;
12445 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12446 }
12447 return_label402: while(false);
12448 tracehead = trace.prev;
12449 return;
12450 }
12451 void parser_prod___AParam___empty_init(val_t self, int* init_table) {
12452 struct trace_t trace = {NULL, NULL, 4454, LOCATE_parser_prod___AParam___empty_init};
12453 val_t variable[2];
12454 struct WBT_ **closurevariable = NULL;
12455 trace.prev = tracehead; tracehead = &trace;
12456 trace.file = LOCATE_parser_prod;
12457 /* Register variable[0]: Local variable */
12458 variable[0] = self;
12459 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i]) return;
12460 /* Register variable[1]: Method return value and escape marker */
12461 return_label403: while(false);
12462 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i] = 1;
12463 tracehead = trace.prev;
12464 return;
12465 }
12466 void parser_prod___AParam___init_aparam(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
12467 struct trace_t trace = {NULL, NULL, 4456, LOCATE_parser_prod___AParam___init_aparam};
12468 val_t variable[6];
12469 struct WBT_ **closurevariable = NULL;
12470 trace.prev = tracehead; tracehead = &trace;
12471 trace.file = LOCATE_parser_prod;
12472 /* Register variable[0]: Local variable */
12473 variable[0] = self;
12474 /* Register variable[1]: Local variable */
12475 variable[1] = param0;
12476 /* Register variable[2]: Local variable */
12477 variable[2] = param1;
12478 /* Register variable[3]: Local variable */
12479 variable[3] = param2;
12480 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i]) return;
12481 /* Register variable[4]: Method return value and escape marker */
12482 CALL_parser_prod___AParam___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AParam::empty_init*/;
12483 ATTR_parser_nodes___PParam____n_id(variable[0]) /*PParam::_n_id*/ = variable[1] /*n_id*/;
12484 /* Register variable[5]: Result */
12485 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12486 if (UNTAG_Bool(variable[5])) { /*if*/
12487 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
12488 }
12489 ATTR_parser_nodes___PParam____n_type(variable[0]) /*PParam::_n_type*/ = variable[2] /*n_type*/;
12490 /* Register variable[5]: Result */
12491 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ == NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12492 if (UNTAG_Bool(variable[5])) { /*if*/
12493 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[0]) /*PNode::parent=*/;
12494 }
12495 ATTR_parser_nodes___AParam____n_dotdotdot(variable[0]) /*AParam::_n_dotdotdot*/ = variable[3] /*n_dotdotdot*/;
12496 /* Register variable[5]: Result */
12497 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_dotdotdot*/ == NIT_NULL /*null*/) || (( variable[3] /*n_dotdotdot*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_dotdotdot*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_dotdotdot*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_dotdotdot*/)( variable[3] /*n_dotdotdot*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12498 if (UNTAG_Bool(variable[5])) { /*if*/
12499 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_dotdotdot*/)( variable[3] /*n_dotdotdot*/, variable[0]) /*PNode::parent=*/;
12500 }
12501 return_label404: while(false);
12502 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i] = 1;
12503 tracehead = trace.prev;
12504 return;
12505 }
12506 void parser_prod___AClosureDecl___n_kwwith__eq(val_t self, val_t param0) {
12507 struct trace_t trace = {NULL, NULL, 4539, LOCATE_parser_prod___AClosureDecl___n_kwwith__eq};
12508 val_t variable[4];
12509 struct WBT_ **closurevariable = NULL;
12510 trace.prev = tracehead; tracehead = &trace;
12511 trace.file = LOCATE_parser_prod;
12512 /* Register variable[0]: Local variable */
12513 variable[0] = self;
12514 /* Register variable[1]: Local variable */
12515 variable[1] = param0;
12516 /* Register variable[2]: Method return value and escape marker */
12517 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/ = variable[1] /*n*/;
12518 /* Register variable[3]: Result */
12519 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12520 if (UNTAG_Bool(variable[3])) { /*if*/
12521 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12522 }
12523 return_label405: while(false);
12524 tracehead = trace.prev;
12525 return;
12526 }
12527 void parser_prod___AClosureDecl___n_kwbreak__eq(val_t self, val_t param0) {
12528 struct trace_t trace = {NULL, NULL, 4546, LOCATE_parser_prod___AClosureDecl___n_kwbreak__eq};
12529 val_t variable[4];
12530 struct WBT_ **closurevariable = NULL;
12531 trace.prev = tracehead; tracehead = &trace;
12532 trace.file = LOCATE_parser_prod;
12533 /* Register variable[0]: Local variable */
12534 variable[0] = self;
12535 /* Register variable[1]: Local variable */
12536 variable[1] = param0;
12537 /* Register variable[2]: Method return value and escape marker */
12538 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/ = variable[1] /*n*/;
12539 /* Register variable[3]: Result */
12540 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12541 if (UNTAG_Bool(variable[3])) { /*if*/
12542 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12543 }
12544 return_label406: while(false);
12545 tracehead = trace.prev;
12546 return;
12547 }
12548 void parser_prod___AClosureDecl___n_id__eq(val_t self, val_t param0) {
12549 struct trace_t trace = {NULL, NULL, 4553, LOCATE_parser_prod___AClosureDecl___n_id__eq};
12550 val_t variable[4];
12551 struct WBT_ **closurevariable = NULL;
12552 trace.prev = tracehead; tracehead = &trace;
12553 trace.file = LOCATE_parser_prod;
12554 /* Register variable[0]: Local variable */
12555 variable[0] = self;
12556 /* Register variable[1]: Local variable */
12557 variable[1] = param0;
12558 /* Register variable[2]: Method return value and escape marker */
12559 ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/ = variable[1] /*n*/;
12560 /* Register variable[3]: Result */
12561 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12562 if (UNTAG_Bool(variable[3])) { /*if*/
12563 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12564 }
12565 return_label407: while(false);
12566 tracehead = trace.prev;
12567 return;
12568 }
12569 void parser_prod___AClosureDecl___n_signature__eq(val_t self, val_t param0) {
12570 struct trace_t trace = {NULL, NULL, 4560, LOCATE_parser_prod___AClosureDecl___n_signature__eq};
12571 val_t variable[4];
12572 struct WBT_ **closurevariable = NULL;
12573 trace.prev = tracehead; tracehead = &trace;
12574 trace.file = LOCATE_parser_prod;
12575 /* Register variable[0]: Local variable */
12576 variable[0] = self;
12577 /* Register variable[1]: Local variable */
12578 variable[1] = param0;
12579 /* Register variable[2]: Method return value and escape marker */
12580 ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/ = variable[1] /*n*/;
12581 /* Register variable[3]: Result */
12582 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12583 if (UNTAG_Bool(variable[3])) { /*if*/
12584 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12585 }
12586 return_label408: while(false);
12587 tracehead = trace.prev;
12588 return;
12589 }
12590 void parser_prod___AClosureDecl___n_expr__eq(val_t self, val_t param0) {
12591 struct trace_t trace = {NULL, NULL, 4567, LOCATE_parser_prod___AClosureDecl___n_expr__eq};
12592 val_t variable[4];
12593 struct WBT_ **closurevariable = NULL;
12594 trace.prev = tracehead; tracehead = &trace;
12595 trace.file = LOCATE_parser_prod;
12596 /* Register variable[0]: Local variable */
12597 variable[0] = self;
12598 /* Register variable[1]: Local variable */
12599 variable[1] = param0;
12600 /* Register variable[2]: Method return value and escape marker */
12601 ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/ = variable[1] /*n*/;
12602 /* Register variable[3]: Result */
12603 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12604 if (UNTAG_Bool(variable[3])) { /*if*/
12605 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12606 }
12607 return_label409: while(false);
12608 tracehead = trace.prev;
12609 return;
12610 }
12611 void parser_prod___AClosureDecl___replace_child(val_t self, val_t param0, val_t param1) {
12612 struct trace_t trace = {NULL, NULL, 4608, LOCATE_parser_prod___AClosureDecl___replace_child};
12613 val_t variable[5];
12614 struct WBT_ **closurevariable = NULL;
12615 trace.prev = tracehead; tracehead = &trace;
12616 trace.file = LOCATE_parser_prod;
12617 /* Register variable[0]: Local variable */
12618 variable[0] = self;
12619 /* Register variable[1]: Local variable */
12620 variable[1] = param0;
12621 /* Register variable[2]: Local variable */
12622 variable[2] = param1;
12623 /* Register variable[3]: Method return value and escape marker */
12624 /* Register variable[4]: Result */
12625 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12626 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4610); nit_exit(1);}
12627 /* Register variable[4]: Result */
12628 variable[4] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/;
12629 /* Register variable[4]: Result */
12630 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12631 if (UNTAG_Bool(variable[4])) { /*if*/
12632 /* Register variable[4]: Result */
12633 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12634 if (UNTAG_Bool(variable[4])) { /*if*/
12635 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12636 /* Register variable[4]: Result */
12637 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
12638 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4614); nit_exit(1);}
12639 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/ = variable[2] /*new_child*/;
12640 } else { /*if*/
12641 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/ = NIT_NULL /*null*/;
12642 }
12643 goto return_label410;
12644 }
12645 /* Register variable[4]: Result */
12646 variable[4] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/;
12647 /* Register variable[4]: Result */
12648 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12649 if (UNTAG_Bool(variable[4])) { /*if*/
12650 /* Register variable[4]: Result */
12651 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12652 if (UNTAG_Bool(variable[4])) { /*if*/
12653 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12654 /* Register variable[4]: Result */
12655 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
12656 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4624); nit_exit(1);}
12657 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/ = variable[2] /*new_child*/;
12658 } else { /*if*/
12659 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/ = NIT_NULL /*null*/;
12660 }
12661 goto return_label410;
12662 }
12663 /* Register variable[4]: Result */
12664 variable[4] = ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/;
12665 /* Register variable[4]: Result */
12666 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12667 if (UNTAG_Bool(variable[4])) { /*if*/
12668 /* Register variable[4]: Result */
12669 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12670 if (UNTAG_Bool(variable[4])) { /*if*/
12671 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12672 /* Register variable[4]: Result */
12673 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
12674 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4634); nit_exit(1);}
12675 ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/ = variable[2] /*new_child*/;
12676 } else { /*if*/
12677 ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/ = NIT_NULL /*null*/;
12678 }
12679 goto return_label410;
12680 }
12681 /* Register variable[4]: Result */
12682 variable[4] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/;
12683 /* Register variable[4]: Result */
12684 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12685 if (UNTAG_Bool(variable[4])) { /*if*/
12686 /* Register variable[4]: Result */
12687 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12688 if (UNTAG_Bool(variable[4])) { /*if*/
12689 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12690 /* Register variable[4]: Result */
12691 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
12692 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4644); nit_exit(1);}
12693 ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/ = variable[2] /*new_child*/;
12694 } else { /*if*/
12695 ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/ = NIT_NULL /*null*/;
12696 }
12697 goto return_label410;
12698 }
12699 /* Register variable[4]: Result */
12700 variable[4] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/;
12701 /* Register variable[4]: Result */
12702 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12703 if (UNTAG_Bool(variable[4])) { /*if*/
12704 /* Register variable[4]: Result */
12705 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12706 if (UNTAG_Bool(variable[4])) { /*if*/
12707 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12708 /* Register variable[4]: Result */
12709 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12710 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4654); nit_exit(1);}
12711 ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/ = variable[2] /*new_child*/;
12712 } else { /*if*/
12713 ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/ = NIT_NULL /*null*/;
12714 }
12715 goto return_label410;
12716 }
12717 return_label410: while(false);
12718 tracehead = trace.prev;
12719 return;
12720 }
12721 void parser_prod___AClosureDecl___visit_all(val_t self, val_t param0) {
12722 struct trace_t trace = {NULL, NULL, 4663, LOCATE_parser_prod___AClosureDecl___visit_all};
12723 val_t variable[4];
12724 struct WBT_ **closurevariable = NULL;
12725 trace.prev = tracehead; tracehead = &trace;
12726 trace.file = LOCATE_parser_prod;
12727 /* Register variable[0]: Local variable */
12728 variable[0] = self;
12729 /* Register variable[1]: Local variable */
12730 variable[1] = param0;
12731 /* Register variable[2]: Method return value and escape marker */
12732 /* Register variable[3]: Result */
12733 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/;
12734 /* Register variable[3]: Result */
12735 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::==*/)))))));
12736 if (UNTAG_Bool(variable[3])) { /*if*/
12737 /* Register variable[3]: Result */
12738 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/;
12739 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12740 }
12741 /* Register variable[3]: Result */
12742 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/;
12743 /* Register variable[3]: Result */
12744 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::==*/)))))));
12745 if (UNTAG_Bool(variable[3])) { /*if*/
12746 /* Register variable[3]: Result */
12747 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/;
12748 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12749 }
12750 /* Register variable[3]: Result */
12751 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/;
12752 /* Register variable[3]: Result */
12753 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::==*/)))))));
12754 if (UNTAG_Bool(variable[3])) { /*if*/
12755 /* Register variable[3]: Result */
12756 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/;
12757 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12758 }
12759 /* Register variable[3]: Result */
12760 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/;
12761 /* Register variable[3]: Result */
12762 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::==*/)))))));
12763 if (UNTAG_Bool(variable[3])) { /*if*/
12764 /* Register variable[3]: Result */
12765 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/;
12766 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12767 }
12768 /* Register variable[3]: Result */
12769 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/;
12770 /* Register variable[3]: Result */
12771 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::==*/)))))));
12772 if (UNTAG_Bool(variable[3])) { /*if*/
12773 /* Register variable[3]: Result */
12774 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/;
12775 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12776 }
12777 return_label411: while(false);
12778 tracehead = trace.prev;
12779 return;
12780 }
12781 void parser_prod___AClosureDecl___visit_all_reverse(val_t self, val_t param0) {
12782 struct trace_t trace = {NULL, NULL, 4682, LOCATE_parser_prod___AClosureDecl___visit_all_reverse};
12783 val_t variable[4];
12784 struct WBT_ **closurevariable = NULL;
12785 trace.prev = tracehead; tracehead = &trace;
12786 trace.file = LOCATE_parser_prod;
12787 /* Register variable[0]: Local variable */
12788 variable[0] = self;
12789 /* Register variable[1]: Local variable */
12790 variable[1] = param0;
12791 /* Register variable[2]: Method return value and escape marker */
12792 /* Register variable[3]: Result */
12793 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/;
12794 /* Register variable[3]: Result */
12795 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::==*/)))))));
12796 if (UNTAG_Bool(variable[3])) { /*if*/
12797 /* Register variable[3]: Result */
12798 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/;
12799 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12800 }
12801 /* Register variable[3]: Result */
12802 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/;
12803 /* Register variable[3]: Result */
12804 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::==*/)))))));
12805 if (UNTAG_Bool(variable[3])) { /*if*/
12806 /* Register variable[3]: Result */
12807 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/;
12808 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12809 }
12810 /* Register variable[3]: Result */
12811 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/;
12812 /* Register variable[3]: Result */
12813 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::==*/)))))));
12814 if (UNTAG_Bool(variable[3])) { /*if*/
12815 /* Register variable[3]: Result */
12816 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/;
12817 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12818 }
12819 /* Register variable[3]: Result */
12820 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/;
12821 /* Register variable[3]: Result */
12822 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::==*/)))))));
12823 if (UNTAG_Bool(variable[3])) { /*if*/
12824 /* Register variable[3]: Result */
12825 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/;
12826 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12827 }
12828 /* Register variable[3]: Result */
12829 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/;
12830 /* Register variable[3]: Result */
12831 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::==*/)))))));
12832 if (UNTAG_Bool(variable[3])) { /*if*/
12833 /* Register variable[3]: Result */
12834 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/;
12835 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12836 }
12837 return_label412: while(false);
12838 tracehead = trace.prev;
12839 return;
12840 }
12841 void parser_prod___AClosureDecl___empty_init(val_t self, int* init_table) {
12842 struct trace_t trace = {NULL, NULL, 4575, LOCATE_parser_prod___AClosureDecl___empty_init};
12843 val_t variable[2];
12844 struct WBT_ **closurevariable = NULL;
12845 trace.prev = tracehead; tracehead = &trace;
12846 trace.file = LOCATE_parser_prod;
12847 /* Register variable[0]: Local variable */
12848 variable[0] = self;
12849 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i]) return;
12850 /* Register variable[1]: Method return value and escape marker */
12851 return_label413: while(false);
12852 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i] = 1;
12853 tracehead = trace.prev;
12854 return;
12855 }
12856 void parser_prod___AClosureDecl___init_aclosuredecl(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, int* init_table) {
12857 struct trace_t trace = {NULL, NULL, 4577, LOCATE_parser_prod___AClosureDecl___init_aclosuredecl};
12858 val_t variable[8];
12859 struct WBT_ **closurevariable = NULL;
12860 trace.prev = tracehead; tracehead = &trace;
12861 trace.file = LOCATE_parser_prod;
12862 /* Register variable[0]: Local variable */
12863 variable[0] = self;
12864 /* Register variable[1]: Local variable */
12865 variable[1] = param0;
12866 /* Register variable[2]: Local variable */
12867 variable[2] = param1;
12868 /* Register variable[3]: Local variable */
12869 variable[3] = param2;
12870 /* Register variable[4]: Local variable */
12871 variable[4] = param3;
12872 /* Register variable[5]: Local variable */
12873 variable[5] = param4;
12874 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i]) return;
12875 /* Register variable[6]: Method return value and escape marker */
12876 CALL_parser_prod___AClosureDecl___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AClosureDecl::empty_init*/;
12877 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[0]) /*AClosureDecl::_n_kwwith*/ = variable[1] /*n_kwwith*/;
12878 /* Register variable[7]: Result */
12879 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwith*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwwith*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwith*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12880 if (UNTAG_Bool(variable[7])) { /*if*/
12881 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, variable[0]) /*PNode::parent=*/;
12882 }
12883 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[0]) /*AClosureDecl::_n_kwbreak*/ = variable[2] /*n_kwbreak*/;
12884 /* Register variable[7]: Result */
12885 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwbreak*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwbreak*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwbreak*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwbreak*/)( variable[2] /*n_kwbreak*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12886 if (UNTAG_Bool(variable[7])) { /*if*/
12887 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwbreak*/)( variable[2] /*n_kwbreak*/, variable[0]) /*PNode::parent=*/;
12888 }
12889 ATTR_parser_nodes___AClosureDecl____n_id(variable[0]) /*AClosureDecl::_n_id*/ = variable[3] /*n_id*/;
12890 /* Register variable[7]: Result */
12891 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ == NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12892 if (UNTAG_Bool(variable[7])) { /*if*/
12893 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[0]) /*PNode::parent=*/;
12894 }
12895 ATTR_parser_nodes___AClosureDecl____n_signature(variable[0]) /*AClosureDecl::_n_signature*/ = variable[4] /*n_signature*/;
12896 /* Register variable[7]: Result */
12897 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_signature*/ == NIT_NULL /*null*/) || (( variable[4] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_signature*/)( variable[4] /*n_signature*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12898 if (UNTAG_Bool(variable[7])) { /*if*/
12899 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_signature*/)( variable[4] /*n_signature*/, variable[0]) /*PNode::parent=*/;
12900 }
12901 ATTR_parser_nodes___AClosureDecl____n_expr(variable[0]) /*AClosureDecl::_n_expr*/ = variable[5] /*n_expr*/;
12902 /* Register variable[7]: Result */
12903 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[5] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12904 if (UNTAG_Bool(variable[7])) { /*if*/
12905 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, variable[0]) /*PNode::parent=*/;
12906 }
12907 return_label414: while(false);
12908 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i] = 1;
12909 tracehead = trace.prev;
12910 return;
12911 }
12912 void parser_prod___AType___n_kwnullable__eq(val_t self, val_t param0) {
12913 struct trace_t trace = {NULL, NULL, 4702, LOCATE_parser_prod___AType___n_kwnullable__eq};
12914 val_t variable[4];
12915 struct WBT_ **closurevariable = NULL;
12916 trace.prev = tracehead; tracehead = &trace;
12917 trace.file = LOCATE_parser_prod;
12918 /* Register variable[0]: Local variable */
12919 variable[0] = self;
12920 /* Register variable[1]: Local variable */
12921 variable[1] = param0;
12922 /* Register variable[2]: Method return value and escape marker */
12923 ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/ = variable[1] /*n*/;
12924 /* Register variable[3]: Result */
12925 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12926 if (UNTAG_Bool(variable[3])) { /*if*/
12927 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12928 }
12929 return_label415: while(false);
12930 tracehead = trace.prev;
12931 return;
12932 }
12933 void parser_prod___AType___n_id__eq(val_t self, val_t param0) {
12934 struct trace_t trace = {NULL, NULL, 4709, LOCATE_parser_prod___AType___n_id__eq};
12935 val_t variable[4];
12936 struct WBT_ **closurevariable = NULL;
12937 trace.prev = tracehead; tracehead = &trace;
12938 trace.file = LOCATE_parser_prod;
12939 /* Register variable[0]: Local variable */
12940 variable[0] = self;
12941 /* Register variable[1]: Local variable */
12942 variable[1] = param0;
12943 /* Register variable[2]: Method return value and escape marker */
12944 ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/ = variable[1] /*n*/;
12945 /* Register variable[3]: Result */
12946 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12947 if (UNTAG_Bool(variable[3])) { /*if*/
12948 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
12949 }
12950 return_label416: while(false);
12951 tracehead = trace.prev;
12952 return;
12953 }
12954 void parser_prod___AType___replace_child(val_t self, val_t param0, val_t param1) {
12955 struct trace_t trace = {NULL, NULL, 4742, LOCATE_parser_prod___AType___replace_child};
12956 val_t variable[8];
12957 struct WBT_ **closurevariable = NULL;
12958 trace.prev = tracehead; tracehead = &trace;
12959 trace.file = LOCATE_parser_prod;
12960 /* Register variable[0]: Local variable */
12961 variable[0] = self;
12962 /* Register variable[1]: Local variable */
12963 variable[1] = param0;
12964 /* Register variable[2]: Local variable */
12965 variable[2] = param1;
12966 /* Register variable[3]: Method return value and escape marker */
12967 /* Register variable[4]: Result */
12968 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12969 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___replace_child, LOCATE_parser_prod, 4744); nit_exit(1);}
12970 /* Register variable[4]: Result */
12971 variable[4] = ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/;
12972 /* Register variable[4]: Result */
12973 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12974 if (UNTAG_Bool(variable[4])) { /*if*/
12975 /* Register variable[4]: Result */
12976 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12977 if (UNTAG_Bool(variable[4])) { /*if*/
12978 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12979 /* Register variable[4]: Result */
12980 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnullable, ID_TKwnullable)) /*cast TKwnullable*/;
12981 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___replace_child, LOCATE_parser_prod, 4748); nit_exit(1);}
12982 ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/ = variable[2] /*new_child*/;
12983 } else { /*if*/
12984 ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/ = NIT_NULL /*null*/;
12985 }
12986 goto return_label417;
12987 }
12988 /* Register variable[4]: Result */
12989 variable[4] = ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/;
12990 /* Register variable[4]: Result */
12991 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12992 if (UNTAG_Bool(variable[4])) { /*if*/
12993 /* Register variable[4]: Result */
12994 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12995 if (UNTAG_Bool(variable[4])) { /*if*/
12996 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
12997 /* Register variable[4]: Result */
12998 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
12999 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___replace_child, LOCATE_parser_prod, 4758); nit_exit(1);}
13000 ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/ = variable[2] /*new_child*/;
13001 } else { /*if*/
13002 ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/ = NIT_NULL /*null*/;
13003 }
13004 goto return_label417;
13005 }
13006 /* Register variable[4]: Result */
13007 variable[4] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13008 /* Register variable[4]: Result */
13009 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
13010 /* Register variable[4]: Result */
13011 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
13012 /* Register variable[4]: For iterator */
13013 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
13014 while (true) { /*for*/
13015 /* Register variable[5]: For 'is_ok' result */
13016 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
13017 if (!UNTAG_Bool(variable[5])) break; /*for*/
13018 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
13019 /* Register variable[6]: Local variable */
13020 variable[6] = variable[5];
13021 /* Register variable[7]: Result */
13022 variable[7] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13023 /* Register variable[7]: Result */
13024 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
13025 /* Register variable[7]: Result */
13026 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
13027 if (UNTAG_Bool(variable[7])) { /*if*/
13028 /* Register variable[7]: Result */
13029 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13030 if (UNTAG_Bool(variable[7])) { /*if*/
13031 /* Register variable[7]: Result */
13032 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
13033 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___replace_child, LOCATE_parser_prod, 4768); nit_exit(1);}
13034 /* Register variable[7]: Result */
13035 variable[7] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13036 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
13037 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13038 } else { /*if*/
13039 /* Register variable[7]: Result */
13040 variable[7] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13041 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
13042 }
13043 goto return_label417;
13044 }
13045 continue_418: while(0);
13046 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
13047 }
13048 break_418: while(0);
13049 return_label417: while(false);
13050 tracehead = trace.prev;
13051 return;
13052 }
13053 void parser_prod___AType___visit_all(val_t self, val_t param0) {
13054 struct trace_t trace = {NULL, NULL, 4779, LOCATE_parser_prod___AType___visit_all};
13055 val_t variable[6];
13056 struct WBT_ **closurevariable = NULL;
13057 trace.prev = tracehead; tracehead = &trace;
13058 trace.file = LOCATE_parser_prod;
13059 /* Register variable[0]: Local variable */
13060 variable[0] = self;
13061 /* Register variable[1]: Local variable */
13062 variable[1] = param0;
13063 /* Register variable[2]: Method return value and escape marker */
13064 /* Register variable[3]: Result */
13065 variable[3] = ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/;
13066 /* Register variable[3]: Result */
13067 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::==*/)))))));
13068 if (UNTAG_Bool(variable[3])) { /*if*/
13069 /* Register variable[3]: Result */
13070 variable[3] = ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/;
13071 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13072 }
13073 /* Register variable[3]: Result */
13074 variable[3] = ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/;
13075 /* Register variable[3]: Result */
13076 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::==*/)))))));
13077 if (UNTAG_Bool(variable[3])) { /*if*/
13078 /* Register variable[3]: Result */
13079 variable[3] = ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/;
13080 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13081 }
13082 /* Register variable[3]: Result */
13083 variable[3] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13084 /* Register variable[3]: For iterator */
13085 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
13086 while (true) { /*for*/
13087 /* Register variable[4]: For 'is_ok' result */
13088 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
13089 if (!UNTAG_Bool(variable[4])) break; /*for*/
13090 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
13091 /* Register variable[5]: Local variable */
13092 variable[5] = variable[4];
13093 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
13094 continue_420: while(0);
13095 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
13096 }
13097 break_420: while(0);
13098 return_label419: while(false);
13099 tracehead = trace.prev;
13100 return;
13101 }
13102 void parser_prod___AType___visit_all_reverse(val_t self, val_t param0) {
13103 struct trace_t trace = {NULL, NULL, 4792, LOCATE_parser_prod___AType___visit_all_reverse};
13104 val_t variable[5];
13105 struct WBT_ **closurevariable = NULL;
13106 trace.prev = tracehead; tracehead = &trace;
13107 trace.file = LOCATE_parser_prod;
13108 /* Register variable[0]: Local variable */
13109 variable[0] = self;
13110 /* Register variable[1]: Local variable */
13111 variable[1] = param0;
13112 /* Register variable[2]: Method return value and escape marker */
13113 /* Register variable[3]: Result */
13114 variable[3] = ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/;
13115 /* Register variable[3]: Result */
13116 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::==*/)))))));
13117 if (UNTAG_Bool(variable[3])) { /*if*/
13118 /* Register variable[3]: Result */
13119 variable[3] = ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/;
13120 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13121 }
13122 /* Register variable[3]: Result */
13123 variable[3] = ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/;
13124 /* Register variable[3]: Result */
13125 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::==*/)))))));
13126 if (UNTAG_Bool(variable[3])) { /*if*/
13127 /* Register variable[3]: Result */
13128 variable[3] = ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/;
13129 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13130 }
13131 /* Register variable[3]: Local variable */
13132 /* Register variable[4]: Result */
13133 variable[4] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13134 /* Register variable[4]: Result */
13135 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
13136 variable[3] = variable[4];
13137 while (true) { /*while*/
13138 /* Register variable[4]: Result */
13139 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
13140 if (!UNTAG_Bool(variable[4])) break; /* while*/
13141 /* Register variable[4]: Result */
13142 variable[4] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13143 /* Register variable[4]: Result */
13144 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
13145 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
13146 /* Register variable[4]: Result */
13147 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
13148 variable[3] = variable[4] /*i=*/;
13149 continue_422: while(0);
13150 }
13151 break_422: while(0);
13152 return_label421: while(false);
13153 tracehead = trace.prev;
13154 return;
13155 }
13156 void parser_prod___AType___empty_init(val_t self, int* init_table) {
13157 struct trace_t trace = {NULL, NULL, 4717, LOCATE_parser_prod___AType___empty_init};
13158 val_t variable[2];
13159 struct WBT_ **closurevariable = NULL;
13160 trace.prev = tracehead; tracehead = &trace;
13161 trace.file = LOCATE_parser_prod;
13162 /* Register variable[0]: Local variable */
13163 variable[0] = self;
13164 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i]) return;
13165 /* Register variable[1]: Method return value and escape marker */
13166 return_label423: while(false);
13167 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i] = 1;
13168 tracehead = trace.prev;
13169 return;
13170 }
13171 void parser_prod___AType___init_atype(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
13172 struct trace_t trace = {NULL, NULL, 4719, LOCATE_parser_prod___AType___init_atype};
13173 val_t variable[9];
13174 struct WBT_ **closurevariable = NULL;
13175 trace.prev = tracehead; tracehead = &trace;
13176 trace.file = LOCATE_parser_prod;
13177 /* Register variable[0]: Local variable */
13178 variable[0] = self;
13179 /* Register variable[1]: Local variable */
13180 variable[1] = param0;
13181 /* Register variable[2]: Local variable */
13182 variable[2] = param1;
13183 /* Register variable[3]: Local variable */
13184 variable[3] = param2;
13185 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i]) return;
13186 /* Register variable[4]: Method return value and escape marker */
13187 CALL_parser_prod___AType___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AType::empty_init*/;
13188 ATTR_parser_nodes___AType____n_kwnullable(variable[0]) /*AType::_n_kwnullable*/ = variable[1] /*n_kwnullable*/;
13189 /* Register variable[5]: Result */
13190 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnullable*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwnullable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwnullable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnullable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwnullable*/)( variable[1] /*n_kwnullable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13191 if (UNTAG_Bool(variable[5])) { /*if*/
13192 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnullable*/)( variable[1] /*n_kwnullable*/, variable[0]) /*PNode::parent=*/;
13193 }
13194 ATTR_parser_nodes___AType____n_id(variable[0]) /*AType::_n_id*/ = variable[2] /*n_id*/;
13195 /* Register variable[5]: Result */
13196 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13197 if (UNTAG_Bool(variable[5])) { /*if*/
13198 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
13199 }
13200 /* Register variable[5]: Result */
13201 variable[5] = NEW_List_list___List___init() /*new List[PType]*/;
13202 ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/ = variable[5];
13203 /* Register variable[5]: For iterator */
13204 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_types*/)( variable[3] /*n_types*/) /*Collection::iterator*/;
13205 while (true) { /*for*/
13206 /* Register variable[6]: For 'is_ok' result */
13207 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
13208 if (!UNTAG_Bool(variable[6])) break; /*for*/
13209 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
13210 /* Register variable[7]: Local variable */
13211 variable[7] = variable[6];
13212 /* Register variable[8]: Result */
13213 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PType, ID_PType)) /*cast PType*/;
13214 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___init_atype, LOCATE_parser_prod, 4736); nit_exit(1);}
13215 /* Register variable[8]: Result */
13216 variable[8] = ATTR_parser_nodes___AType____n_types(variable[0]) /*AType::_n_types*/;
13217 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
13218 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
13219 continue_425: while(0);
13220 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
13221 }
13222 break_425: while(0);
13223 return_label424: while(false);
13224 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i] = 1;
13225 tracehead = trace.prev;
13226 return;
13227 }
13228 void parser_prod___ABlockExpr___replace_child(val_t self, val_t param0, val_t param1) {
13229 struct trace_t trace = {NULL, NULL, 4826, LOCATE_parser_prod___ABlockExpr___replace_child};
13230 val_t variable[8];
13231 struct WBT_ **closurevariable = NULL;
13232 trace.prev = tracehead; tracehead = &trace;
13233 trace.file = LOCATE_parser_prod;
13234 /* Register variable[0]: Local variable */
13235 variable[0] = self;
13236 /* Register variable[1]: Local variable */
13237 variable[1] = param0;
13238 /* Register variable[2]: Local variable */
13239 variable[2] = param1;
13240 /* Register variable[3]: Method return value and escape marker */
13241 /* Register variable[4]: Result */
13242 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13243 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABlockExpr___replace_child, LOCATE_parser_prod, 4828); nit_exit(1);}
13244 /* Register variable[4]: Result */
13245 variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13246 /* Register variable[4]: Result */
13247 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
13248 /* Register variable[4]: Result */
13249 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
13250 /* Register variable[4]: For iterator */
13251 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
13252 while (true) { /*for*/
13253 /* Register variable[5]: For 'is_ok' result */
13254 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
13255 if (!UNTAG_Bool(variable[5])) break; /*for*/
13256 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
13257 /* Register variable[6]: Local variable */
13258 variable[6] = variable[5];
13259 /* Register variable[7]: Result */
13260 variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13261 /* Register variable[7]: Result */
13262 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
13263 /* Register variable[7]: Result */
13264 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
13265 if (UNTAG_Bool(variable[7])) { /*if*/
13266 /* Register variable[7]: Result */
13267 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13268 if (UNTAG_Bool(variable[7])) { /*if*/
13269 /* Register variable[7]: Result */
13270 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13271 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABlockExpr___replace_child, LOCATE_parser_prod, 4832); nit_exit(1);}
13272 /* Register variable[7]: Result */
13273 variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13274 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
13275 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13276 } else { /*if*/
13277 /* Register variable[7]: Result */
13278 variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13279 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
13280 }
13281 goto return_label426;
13282 }
13283 continue_427: while(0);
13284 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
13285 }
13286 break_427: while(0);
13287 return_label426: while(false);
13288 tracehead = trace.prev;
13289 return;
13290 }
13291 void parser_prod___ABlockExpr___visit_all(val_t self, val_t param0) {
13292 struct trace_t trace = {NULL, NULL, 4843, LOCATE_parser_prod___ABlockExpr___visit_all};
13293 val_t variable[6];
13294 struct WBT_ **closurevariable = NULL;
13295 trace.prev = tracehead; tracehead = &trace;
13296 trace.file = LOCATE_parser_prod;
13297 /* Register variable[0]: Local variable */
13298 variable[0] = self;
13299 /* Register variable[1]: Local variable */
13300 variable[1] = param0;
13301 /* Register variable[2]: Method return value and escape marker */
13302 /* Register variable[3]: Result */
13303 variable[3] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13304 /* Register variable[3]: For iterator */
13305 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
13306 while (true) { /*for*/
13307 /* Register variable[4]: For 'is_ok' result */
13308 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
13309 if (!UNTAG_Bool(variable[4])) break; /*for*/
13310 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
13311 /* Register variable[5]: Local variable */
13312 variable[5] = variable[4];
13313 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
13314 continue_429: while(0);
13315 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
13316 }
13317 break_429: while(0);
13318 return_label428: while(false);
13319 tracehead = trace.prev;
13320 return;
13321 }
13322 void parser_prod___ABlockExpr___visit_all_reverse(val_t self, val_t param0) {
13323 struct trace_t trace = {NULL, NULL, 4850, LOCATE_parser_prod___ABlockExpr___visit_all_reverse};
13324 val_t variable[5];
13325 struct WBT_ **closurevariable = NULL;
13326 trace.prev = tracehead; tracehead = &trace;
13327 trace.file = LOCATE_parser_prod;
13328 /* Register variable[0]: Local variable */
13329 variable[0] = self;
13330 /* Register variable[1]: Local variable */
13331 variable[1] = param0;
13332 /* Register variable[2]: Method return value and escape marker */
13333 /* Register variable[3]: Local variable */
13334 /* Register variable[4]: Result */
13335 variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13336 /* Register variable[4]: Result */
13337 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
13338 variable[3] = variable[4];
13339 while (true) { /*while*/
13340 /* Register variable[4]: Result */
13341 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
13342 if (!UNTAG_Bool(variable[4])) break; /* while*/
13343 /* Register variable[4]: Result */
13344 variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13345 /* Register variable[4]: Result */
13346 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
13347 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
13348 /* Register variable[4]: Result */
13349 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
13350 variable[3] = variable[4] /*i=*/;
13351 continue_431: while(0);
13352 }
13353 break_431: while(0);
13354 return_label430: while(false);
13355 tracehead = trace.prev;
13356 return;
13357 }
13358 void parser_prod___ABlockExpr___empty_init(val_t self, int* init_table) {
13359 struct trace_t trace = {NULL, NULL, 4811, LOCATE_parser_prod___ABlockExpr___empty_init};
13360 val_t variable[2];
13361 struct WBT_ **closurevariable = NULL;
13362 trace.prev = tracehead; tracehead = &trace;
13363 trace.file = LOCATE_parser_prod;
13364 /* Register variable[0]: Local variable */
13365 variable[0] = self;
13366 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
13367 /* Register variable[1]: Method return value and escape marker */
13368 return_label432: while(false);
13369 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
13370 tracehead = trace.prev;
13371 return;
13372 }
13373 void parser_prod___ABlockExpr___init_ablockexpr(val_t self, val_t param0, int* init_table) {
13374 struct trace_t trace = {NULL, NULL, 4813, LOCATE_parser_prod___ABlockExpr___init_ablockexpr};
13375 val_t variable[7];
13376 struct WBT_ **closurevariable = NULL;
13377 trace.prev = tracehead; tracehead = &trace;
13378 trace.file = LOCATE_parser_prod;
13379 /* Register variable[0]: Local variable */
13380 variable[0] = self;
13381 /* Register variable[1]: Local variable */
13382 variable[1] = param0;
13383 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
13384 /* Register variable[2]: Method return value and escape marker */
13385 CALL_parser_prod___ABlockExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABlockExpr::empty_init*/;
13386 /* Register variable[3]: Result */
13387 variable[3] = NEW_List_list___List___init() /*new List[PExpr]*/;
13388 ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/ = variable[3];
13389 /* Register variable[3]: For iterator */
13390 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_expr*/)( variable[1] /*n_expr*/) /*Collection::iterator*/;
13391 while (true) { /*for*/
13392 /* Register variable[4]: For 'is_ok' result */
13393 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
13394 if (!UNTAG_Bool(variable[4])) break; /*for*/
13395 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
13396 /* Register variable[5]: Local variable */
13397 variable[5] = variable[4];
13398 /* Register variable[6]: Result */
13399 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13400 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABlockExpr___init_ablockexpr, LOCATE_parser_prod, 4820); nit_exit(1);}
13401 /* Register variable[6]: Result */
13402 variable[6] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[0]) /*ABlockExpr::_n_expr*/;
13403 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
13404 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[0]) /*PNode::parent=*/;
13405 continue_434: while(0);
13406 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
13407 }
13408 break_434: while(0);
13409 return_label433: while(false);
13410 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
13411 tracehead = trace.prev;
13412 return;
13413 }
13414 void parser_prod___AVardeclExpr___n_kwvar__eq(val_t self, val_t param0) {
13415 struct trace_t trace = {NULL, NULL, 4862, LOCATE_parser_prod___AVardeclExpr___n_kwvar__eq};
13416 val_t variable[4];
13417 struct WBT_ **closurevariable = NULL;
13418 trace.prev = tracehead; tracehead = &trace;
13419 trace.file = LOCATE_parser_prod;
13420 /* Register variable[0]: Local variable */
13421 variable[0] = self;
13422 /* Register variable[1]: Local variable */
13423 variable[1] = param0;
13424 /* Register variable[2]: Method return value and escape marker */
13425 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/ = variable[1] /*n*/;
13426 /* Register variable[3]: Result */
13427 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13428 if (UNTAG_Bool(variable[3])) { /*if*/
13429 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
13430 }
13431 return_label435: while(false);
13432 tracehead = trace.prev;
13433 return;
13434 }
13435 void parser_prod___AVardeclExpr___n_id__eq(val_t self, val_t param0) {
13436 struct trace_t trace = {NULL, NULL, 4869, LOCATE_parser_prod___AVardeclExpr___n_id__eq};
13437 val_t variable[4];
13438 struct WBT_ **closurevariable = NULL;
13439 trace.prev = tracehead; tracehead = &trace;
13440 trace.file = LOCATE_parser_prod;
13441 /* Register variable[0]: Local variable */
13442 variable[0] = self;
13443 /* Register variable[1]: Local variable */
13444 variable[1] = param0;
13445 /* Register variable[2]: Method return value and escape marker */
13446 ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/ = variable[1] /*n*/;
13447 /* Register variable[3]: Result */
13448 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13449 if (UNTAG_Bool(variable[3])) { /*if*/
13450 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
13451 }
13452 return_label436: while(false);
13453 tracehead = trace.prev;
13454 return;
13455 }
13456 void parser_prod___AVardeclExpr___n_type__eq(val_t self, val_t param0) {
13457 struct trace_t trace = {NULL, NULL, 4876, LOCATE_parser_prod___AVardeclExpr___n_type__eq};
13458 val_t variable[4];
13459 struct WBT_ **closurevariable = NULL;
13460 trace.prev = tracehead; tracehead = &trace;
13461 trace.file = LOCATE_parser_prod;
13462 /* Register variable[0]: Local variable */
13463 variable[0] = self;
13464 /* Register variable[1]: Local variable */
13465 variable[1] = param0;
13466 /* Register variable[2]: Method return value and escape marker */
13467 ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/ = variable[1] /*n*/;
13468 /* Register variable[3]: Result */
13469 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13470 if (UNTAG_Bool(variable[3])) { /*if*/
13471 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
13472 }
13473 return_label437: while(false);
13474 tracehead = trace.prev;
13475 return;
13476 }
13477 void parser_prod___AVardeclExpr___n_assign__eq(val_t self, val_t param0) {
13478 struct trace_t trace = {NULL, NULL, 4883, LOCATE_parser_prod___AVardeclExpr___n_assign__eq};
13479 val_t variable[4];
13480 struct WBT_ **closurevariable = NULL;
13481 trace.prev = tracehead; tracehead = &trace;
13482 trace.file = LOCATE_parser_prod;
13483 /* Register variable[0]: Local variable */
13484 variable[0] = self;
13485 /* Register variable[1]: Local variable */
13486 variable[1] = param0;
13487 /* Register variable[2]: Method return value and escape marker */
13488 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/ = variable[1] /*n*/;
13489 /* Register variable[3]: Result */
13490 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13491 if (UNTAG_Bool(variable[3])) { /*if*/
13492 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
13493 }
13494 return_label438: while(false);
13495 tracehead = trace.prev;
13496 return;
13497 }
13498 void parser_prod___AVardeclExpr___n_expr__eq(val_t self, val_t param0) {
13499 struct trace_t trace = {NULL, NULL, 4890, LOCATE_parser_prod___AVardeclExpr___n_expr__eq};
13500 val_t variable[4];
13501 struct WBT_ **closurevariable = NULL;
13502 trace.prev = tracehead; tracehead = &trace;
13503 trace.file = LOCATE_parser_prod;
13504 /* Register variable[0]: Local variable */
13505 variable[0] = self;
13506 /* Register variable[1]: Local variable */
13507 variable[1] = param0;
13508 /* Register variable[2]: Method return value and escape marker */
13509 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/ = variable[1] /*n*/;
13510 /* Register variable[3]: Result */
13511 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13512 if (UNTAG_Bool(variable[3])) { /*if*/
13513 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
13514 }
13515 return_label439: while(false);
13516 tracehead = trace.prev;
13517 return;
13518 }
13519 void parser_prod___AVardeclExpr___replace_child(val_t self, val_t param0, val_t param1) {
13520 struct trace_t trace = {NULL, NULL, 4931, LOCATE_parser_prod___AVardeclExpr___replace_child};
13521 val_t variable[5];
13522 struct WBT_ **closurevariable = NULL;
13523 trace.prev = tracehead; tracehead = &trace;
13524 trace.file = LOCATE_parser_prod;
13525 /* Register variable[0]: Local variable */
13526 variable[0] = self;
13527 /* Register variable[1]: Local variable */
13528 variable[1] = param0;
13529 /* Register variable[2]: Local variable */
13530 variable[2] = param1;
13531 /* Register variable[3]: Method return value and escape marker */
13532 /* Register variable[4]: Result */
13533 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13534 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4933); nit_exit(1);}
13535 /* Register variable[4]: Result */
13536 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/;
13537 /* Register variable[4]: Result */
13538 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13539 if (UNTAG_Bool(variable[4])) { /*if*/
13540 /* Register variable[4]: Result */
13541 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13542 if (UNTAG_Bool(variable[4])) { /*if*/
13543 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13544 /* Register variable[4]: Result */
13545 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
13546 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4937); nit_exit(1);}
13547 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/ = variable[2] /*new_child*/;
13548 } else { /*if*/
13549 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/ = NIT_NULL /*null*/;
13550 }
13551 goto return_label440;
13552 }
13553 /* Register variable[4]: Result */
13554 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/;
13555 /* Register variable[4]: Result */
13556 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13557 if (UNTAG_Bool(variable[4])) { /*if*/
13558 /* Register variable[4]: Result */
13559 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13560 if (UNTAG_Bool(variable[4])) { /*if*/
13561 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13562 /* Register variable[4]: Result */
13563 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
13564 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4947); nit_exit(1);}
13565 ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/ = variable[2] /*new_child*/;
13566 } else { /*if*/
13567 ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/ = NIT_NULL /*null*/;
13568 }
13569 goto return_label440;
13570 }
13571 /* Register variable[4]: Result */
13572 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/;
13573 /* Register variable[4]: Result */
13574 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13575 if (UNTAG_Bool(variable[4])) { /*if*/
13576 /* Register variable[4]: Result */
13577 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13578 if (UNTAG_Bool(variable[4])) { /*if*/
13579 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13580 /* Register variable[4]: Result */
13581 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
13582 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4957); nit_exit(1);}
13583 ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/ = variable[2] /*new_child*/;
13584 } else { /*if*/
13585 ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/ = NIT_NULL /*null*/;
13586 }
13587 goto return_label440;
13588 }
13589 /* Register variable[4]: Result */
13590 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/;
13591 /* Register variable[4]: Result */
13592 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13593 if (UNTAG_Bool(variable[4])) { /*if*/
13594 /* Register variable[4]: Result */
13595 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13596 if (UNTAG_Bool(variable[4])) { /*if*/
13597 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13598 /* Register variable[4]: Result */
13599 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
13600 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4967); nit_exit(1);}
13601 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/ = variable[2] /*new_child*/;
13602 } else { /*if*/
13603 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/ = NIT_NULL /*null*/;
13604 }
13605 goto return_label440;
13606 }
13607 /* Register variable[4]: Result */
13608 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/;
13609 /* Register variable[4]: Result */
13610 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13611 if (UNTAG_Bool(variable[4])) { /*if*/
13612 /* Register variable[4]: Result */
13613 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13614 if (UNTAG_Bool(variable[4])) { /*if*/
13615 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13616 /* Register variable[4]: Result */
13617 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13618 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4977); nit_exit(1);}
13619 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/ = variable[2] /*new_child*/;
13620 } else { /*if*/
13621 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/ = NIT_NULL /*null*/;
13622 }
13623 goto return_label440;
13624 }
13625 return_label440: while(false);
13626 tracehead = trace.prev;
13627 return;
13628 }
13629 void parser_prod___AVardeclExpr___visit_all(val_t self, val_t param0) {
13630 struct trace_t trace = {NULL, NULL, 4986, LOCATE_parser_prod___AVardeclExpr___visit_all};
13631 val_t variable[4];
13632 struct WBT_ **closurevariable = NULL;
13633 trace.prev = tracehead; tracehead = &trace;
13634 trace.file = LOCATE_parser_prod;
13635 /* Register variable[0]: Local variable */
13636 variable[0] = self;
13637 /* Register variable[1]: Local variable */
13638 variable[1] = param0;
13639 /* Register variable[2]: Method return value and escape marker */
13640 /* Register variable[3]: Result */
13641 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/;
13642 /* Register variable[3]: Result */
13643 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::==*/)))))));
13644 if (UNTAG_Bool(variable[3])) { /*if*/
13645 /* Register variable[3]: Result */
13646 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/;
13647 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13648 }
13649 /* Register variable[3]: Result */
13650 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/;
13651 /* Register variable[3]: Result */
13652 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::==*/)))))));
13653 if (UNTAG_Bool(variable[3])) { /*if*/
13654 /* Register variable[3]: Result */
13655 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/;
13656 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13657 }
13658 /* Register variable[3]: Result */
13659 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/;
13660 /* Register variable[3]: Result */
13661 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::==*/)))))));
13662 if (UNTAG_Bool(variable[3])) { /*if*/
13663 /* Register variable[3]: Result */
13664 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/;
13665 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13666 }
13667 /* Register variable[3]: Result */
13668 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/;
13669 /* Register variable[3]: Result */
13670 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::==*/)))))));
13671 if (UNTAG_Bool(variable[3])) { /*if*/
13672 /* Register variable[3]: Result */
13673 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/;
13674 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13675 }
13676 /* Register variable[3]: Result */
13677 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/;
13678 /* Register variable[3]: Result */
13679 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::==*/)))))));
13680 if (UNTAG_Bool(variable[3])) { /*if*/
13681 /* Register variable[3]: Result */
13682 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/;
13683 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13684 }
13685 return_label441: while(false);
13686 tracehead = trace.prev;
13687 return;
13688 }
13689 void parser_prod___AVardeclExpr___visit_all_reverse(val_t self, val_t param0) {
13690 struct trace_t trace = {NULL, NULL, 5005, LOCATE_parser_prod___AVardeclExpr___visit_all_reverse};
13691 val_t variable[4];
13692 struct WBT_ **closurevariable = NULL;
13693 trace.prev = tracehead; tracehead = &trace;
13694 trace.file = LOCATE_parser_prod;
13695 /* Register variable[0]: Local variable */
13696 variable[0] = self;
13697 /* Register variable[1]: Local variable */
13698 variable[1] = param0;
13699 /* Register variable[2]: Method return value and escape marker */
13700 /* Register variable[3]: Result */
13701 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/;
13702 /* Register variable[3]: Result */
13703 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::==*/)))))));
13704 if (UNTAG_Bool(variable[3])) { /*if*/
13705 /* Register variable[3]: Result */
13706 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/;
13707 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13708 }
13709 /* Register variable[3]: Result */
13710 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/;
13711 /* Register variable[3]: Result */
13712 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::==*/)))))));
13713 if (UNTAG_Bool(variable[3])) { /*if*/
13714 /* Register variable[3]: Result */
13715 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/;
13716 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13717 }
13718 /* Register variable[3]: Result */
13719 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/;
13720 /* Register variable[3]: Result */
13721 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::==*/)))))));
13722 if (UNTAG_Bool(variable[3])) { /*if*/
13723 /* Register variable[3]: Result */
13724 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/;
13725 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13726 }
13727 /* Register variable[3]: Result */
13728 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/;
13729 /* Register variable[3]: Result */
13730 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::==*/)))))));
13731 if (UNTAG_Bool(variable[3])) { /*if*/
13732 /* Register variable[3]: Result */
13733 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/;
13734 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13735 }
13736 /* Register variable[3]: Result */
13737 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/;
13738 /* Register variable[3]: Result */
13739 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::==*/)))))));
13740 if (UNTAG_Bool(variable[3])) { /*if*/
13741 /* Register variable[3]: Result */
13742 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/;
13743 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13744 }
13745 return_label442: while(false);
13746 tracehead = trace.prev;
13747 return;
13748 }
13749 void parser_prod___AVardeclExpr___empty_init(val_t self, int* init_table) {
13750 struct trace_t trace = {NULL, NULL, 4898, LOCATE_parser_prod___AVardeclExpr___empty_init};
13751 val_t variable[2];
13752 struct WBT_ **closurevariable = NULL;
13753 trace.prev = tracehead; tracehead = &trace;
13754 trace.file = LOCATE_parser_prod;
13755 /* Register variable[0]: Local variable */
13756 variable[0] = self;
13757 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
13758 /* Register variable[1]: Method return value and escape marker */
13759 return_label443: while(false);
13760 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
13761 tracehead = trace.prev;
13762 return;
13763 }
13764 void parser_prod___AVardeclExpr___init_avardeclexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, int* init_table) {
13765 struct trace_t trace = {NULL, NULL, 4900, LOCATE_parser_prod___AVardeclExpr___init_avardeclexpr};
13766 val_t variable[8];
13767 struct WBT_ **closurevariable = NULL;
13768 trace.prev = tracehead; tracehead = &trace;
13769 trace.file = LOCATE_parser_prod;
13770 /* Register variable[0]: Local variable */
13771 variable[0] = self;
13772 /* Register variable[1]: Local variable */
13773 variable[1] = param0;
13774 /* Register variable[2]: Local variable */
13775 variable[2] = param1;
13776 /* Register variable[3]: Local variable */
13777 variable[3] = param2;
13778 /* Register variable[4]: Local variable */
13779 variable[4] = param3;
13780 /* Register variable[5]: Local variable */
13781 variable[5] = param4;
13782 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
13783 /* Register variable[6]: Method return value and escape marker */
13784 CALL_parser_prod___AVardeclExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AVardeclExpr::empty_init*/;
13785 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[0]) /*AVardeclExpr::_n_kwvar*/ = variable[1] /*n_kwvar*/;
13786 /* Register variable[7]: Result */
13787 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwvar*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwvar*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwvar*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwvar*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwvar*/)( variable[1] /*n_kwvar*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13788 if (UNTAG_Bool(variable[7])) { /*if*/
13789 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwvar*/)( variable[1] /*n_kwvar*/, variable[0]) /*PNode::parent=*/;
13790 }
13791 ATTR_parser_nodes___AVardeclExpr____n_id(variable[0]) /*AVardeclExpr::_n_id*/ = variable[2] /*n_id*/;
13792 /* Register variable[7]: Result */
13793 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13794 if (UNTAG_Bool(variable[7])) { /*if*/
13795 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
13796 }
13797 ATTR_parser_nodes___AVardeclExpr____n_type(variable[0]) /*AVardeclExpr::_n_type*/ = variable[3] /*n_type*/;
13798 /* Register variable[7]: Result */
13799 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_type*/ == NIT_NULL /*null*/) || (( variable[3] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)( variable[3] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13800 if (UNTAG_Bool(variable[7])) { /*if*/
13801 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_type*/)( variable[3] /*n_type*/, variable[0]) /*PNode::parent=*/;
13802 }
13803 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[0]) /*AVardeclExpr::_n_assign*/ = variable[4] /*n_assign*/;
13804 /* Register variable[7]: Result */
13805 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign*/ == NIT_NULL /*null*/) || (( variable[4] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13806 if (UNTAG_Bool(variable[7])) { /*if*/
13807 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, variable[0]) /*PNode::parent=*/;
13808 }
13809 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[0]) /*AVardeclExpr::_n_expr*/ = variable[5] /*n_expr*/;
13810 /* Register variable[7]: Result */
13811 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[5] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13812 if (UNTAG_Bool(variable[7])) { /*if*/
13813 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, variable[0]) /*PNode::parent=*/;
13814 }
13815 return_label444: while(false);
13816 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
13817 tracehead = trace.prev;
13818 return;
13819 }
13820 void parser_prod___AReturnExpr___n_kwreturn__eq(val_t self, val_t param0) {
13821 struct trace_t trace = {NULL, NULL, 5025, LOCATE_parser_prod___AReturnExpr___n_kwreturn__eq};
13822 val_t variable[4];
13823 struct WBT_ **closurevariable = NULL;
13824 trace.prev = tracehead; tracehead = &trace;
13825 trace.file = LOCATE_parser_prod;
13826 /* Register variable[0]: Local variable */
13827 variable[0] = self;
13828 /* Register variable[1]: Local variable */
13829 variable[1] = param0;
13830 /* Register variable[2]: Method return value and escape marker */
13831 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/ = variable[1] /*n*/;
13832 /* Register variable[3]: Result */
13833 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13834 if (UNTAG_Bool(variable[3])) { /*if*/
13835 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
13836 }
13837 return_label445: while(false);
13838 tracehead = trace.prev;
13839 return;
13840 }
13841 void parser_prod___AReturnExpr___n_expr__eq(val_t self, val_t param0) {
13842 struct trace_t trace = {NULL, NULL, 5032, LOCATE_parser_prod___AReturnExpr___n_expr__eq};
13843 val_t variable[4];
13844 struct WBT_ **closurevariable = NULL;
13845 trace.prev = tracehead; tracehead = &trace;
13846 trace.file = LOCATE_parser_prod;
13847 /* Register variable[0]: Local variable */
13848 variable[0] = self;
13849 /* Register variable[1]: Local variable */
13850 variable[1] = param0;
13851 /* Register variable[2]: Method return value and escape marker */
13852 ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/ = variable[1] /*n*/;
13853 /* Register variable[3]: Result */
13854 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13855 if (UNTAG_Bool(variable[3])) { /*if*/
13856 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
13857 }
13858 return_label446: while(false);
13859 tracehead = trace.prev;
13860 return;
13861 }
13862 void parser_prod___AReturnExpr___replace_child(val_t self, val_t param0, val_t param1) {
13863 struct trace_t trace = {NULL, NULL, 5058, LOCATE_parser_prod___AReturnExpr___replace_child};
13864 val_t variable[5];
13865 struct WBT_ **closurevariable = NULL;
13866 trace.prev = tracehead; tracehead = &trace;
13867 trace.file = LOCATE_parser_prod;
13868 /* Register variable[0]: Local variable */
13869 variable[0] = self;
13870 /* Register variable[1]: Local variable */
13871 variable[1] = param0;
13872 /* Register variable[2]: Local variable */
13873 variable[2] = param1;
13874 /* Register variable[3]: Method return value and escape marker */
13875 /* Register variable[4]: Result */
13876 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13877 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReturnExpr___replace_child, LOCATE_parser_prod, 5060); nit_exit(1);}
13878 /* Register variable[4]: Result */
13879 variable[4] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/;
13880 /* Register variable[4]: Result */
13881 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13882 if (UNTAG_Bool(variable[4])) { /*if*/
13883 /* Register variable[4]: Result */
13884 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13885 if (UNTAG_Bool(variable[4])) { /*if*/
13886 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13887 /* Register variable[4]: Result */
13888 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
13889 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReturnExpr___replace_child, LOCATE_parser_prod, 5064); nit_exit(1);}
13890 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/ = variable[2] /*new_child*/;
13891 } else { /*if*/
13892 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/ = NIT_NULL /*null*/;
13893 }
13894 goto return_label447;
13895 }
13896 /* Register variable[4]: Result */
13897 variable[4] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/;
13898 /* Register variable[4]: Result */
13899 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13900 if (UNTAG_Bool(variable[4])) { /*if*/
13901 /* Register variable[4]: Result */
13902 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13903 if (UNTAG_Bool(variable[4])) { /*if*/
13904 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
13905 /* Register variable[4]: Result */
13906 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13907 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReturnExpr___replace_child, LOCATE_parser_prod, 5074); nit_exit(1);}
13908 ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/ = variable[2] /*new_child*/;
13909 } else { /*if*/
13910 ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/ = NIT_NULL /*null*/;
13911 }
13912 goto return_label447;
13913 }
13914 return_label447: while(false);
13915 tracehead = trace.prev;
13916 return;
13917 }
13918 void parser_prod___AReturnExpr___visit_all(val_t self, val_t param0) {
13919 struct trace_t trace = {NULL, NULL, 5083, LOCATE_parser_prod___AReturnExpr___visit_all};
13920 val_t variable[4];
13921 struct WBT_ **closurevariable = NULL;
13922 trace.prev = tracehead; tracehead = &trace;
13923 trace.file = LOCATE_parser_prod;
13924 /* Register variable[0]: Local variable */
13925 variable[0] = self;
13926 /* Register variable[1]: Local variable */
13927 variable[1] = param0;
13928 /* Register variable[2]: Method return value and escape marker */
13929 /* Register variable[3]: Result */
13930 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/;
13931 /* Register variable[3]: Result */
13932 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::==*/)))))));
13933 if (UNTAG_Bool(variable[3])) { /*if*/
13934 /* Register variable[3]: Result */
13935 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/;
13936 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13937 }
13938 /* Register variable[3]: Result */
13939 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/;
13940 /* Register variable[3]: Result */
13941 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::==*/)))))));
13942 if (UNTAG_Bool(variable[3])) { /*if*/
13943 /* Register variable[3]: Result */
13944 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/;
13945 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13946 }
13947 return_label448: while(false);
13948 tracehead = trace.prev;
13949 return;
13950 }
13951 void parser_prod___AReturnExpr___visit_all_reverse(val_t self, val_t param0) {
13952 struct trace_t trace = {NULL, NULL, 5093, LOCATE_parser_prod___AReturnExpr___visit_all_reverse};
13953 val_t variable[4];
13954 struct WBT_ **closurevariable = NULL;
13955 trace.prev = tracehead; tracehead = &trace;
13956 trace.file = LOCATE_parser_prod;
13957 /* Register variable[0]: Local variable */
13958 variable[0] = self;
13959 /* Register variable[1]: Local variable */
13960 variable[1] = param0;
13961 /* Register variable[2]: Method return value and escape marker */
13962 /* Register variable[3]: Result */
13963 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/;
13964 /* Register variable[3]: Result */
13965 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::==*/)))))));
13966 if (UNTAG_Bool(variable[3])) { /*if*/
13967 /* Register variable[3]: Result */
13968 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/;
13969 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13970 }
13971 /* Register variable[3]: Result */
13972 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/;
13973 /* Register variable[3]: Result */
13974 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::==*/)))))));
13975 if (UNTAG_Bool(variable[3])) { /*if*/
13976 /* Register variable[3]: Result */
13977 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/;
13978 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13979 }
13980 return_label449: while(false);
13981 tracehead = trace.prev;
13982 return;
13983 }
13984 void parser_prod___AReturnExpr___empty_init(val_t self, int* init_table) {
13985 struct trace_t trace = {NULL, NULL, 5040, LOCATE_parser_prod___AReturnExpr___empty_init};
13986 val_t variable[2];
13987 struct WBT_ **closurevariable = NULL;
13988 trace.prev = tracehead; tracehead = &trace;
13989 trace.file = LOCATE_parser_prod;
13990 /* Register variable[0]: Local variable */
13991 variable[0] = self;
13992 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
13993 /* Register variable[1]: Method return value and escape marker */
13994 return_label450: while(false);
13995 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
13996 tracehead = trace.prev;
13997 return;
13998 }
13999 void parser_prod___AReturnExpr___init_areturnexpr(val_t self, val_t param0, val_t param1, int* init_table) {
14000 struct trace_t trace = {NULL, NULL, 5042, LOCATE_parser_prod___AReturnExpr___init_areturnexpr};
14001 val_t variable[5];
14002 struct WBT_ **closurevariable = NULL;
14003 trace.prev = tracehead; tracehead = &trace;
14004 trace.file = LOCATE_parser_prod;
14005 /* Register variable[0]: Local variable */
14006 variable[0] = self;
14007 /* Register variable[1]: Local variable */
14008 variable[1] = param0;
14009 /* Register variable[2]: Local variable */
14010 variable[2] = param1;
14011 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
14012 /* Register variable[3]: Method return value and escape marker */
14013 CALL_parser_prod___AReturnExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AReturnExpr::empty_init*/;
14014 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[0]) /*AReturnExpr::_n_kwreturn*/ = variable[1] /*n_kwreturn*/;
14015 /* Register variable[4]: Result */
14016 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwreturn*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwreturn*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwreturn*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwreturn*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwreturn*/)( variable[1] /*n_kwreturn*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14017 if (UNTAG_Bool(variable[4])) { /*if*/
14018 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwreturn*/)( variable[1] /*n_kwreturn*/, variable[0]) /*PNode::parent=*/;
14019 }
14020 ATTR_parser_nodes___AReturnExpr____n_expr(variable[0]) /*AReturnExpr::_n_expr*/ = variable[2] /*n_expr*/;
14021 /* Register variable[4]: Result */
14022 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14023 if (UNTAG_Bool(variable[4])) { /*if*/
14024 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
14025 }
14026 return_label451: while(false);
14027 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
14028 tracehead = trace.prev;
14029 return;
14030 }
14031 void parser_prod___ABreakExpr___n_kwbreak__eq(val_t self, val_t param0) {
14032 struct trace_t trace = {NULL, NULL, 5104, LOCATE_parser_prod___ABreakExpr___n_kwbreak__eq};
14033 val_t variable[4];
14034 struct WBT_ **closurevariable = NULL;
14035 trace.prev = tracehead; tracehead = &trace;
14036 trace.file = LOCATE_parser_prod;
14037 /* Register variable[0]: Local variable */
14038 variable[0] = self;
14039 /* Register variable[1]: Local variable */
14040 variable[1] = param0;
14041 /* Register variable[2]: Method return value and escape marker */
14042 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/ = variable[1] /*n*/;
14043 /* Register variable[3]: Result */
14044 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14045 if (UNTAG_Bool(variable[3])) { /*if*/
14046 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14047 }
14048 return_label452: while(false);
14049 tracehead = trace.prev;
14050 return;
14051 }
14052 void parser_prod___ABreakExpr___n_expr__eq(val_t self, val_t param0) {
14053 struct trace_t trace = {NULL, NULL, 5111, LOCATE_parser_prod___ABreakExpr___n_expr__eq};
14054 val_t variable[4];
14055 struct WBT_ **closurevariable = NULL;
14056 trace.prev = tracehead; tracehead = &trace;
14057 trace.file = LOCATE_parser_prod;
14058 /* Register variable[0]: Local variable */
14059 variable[0] = self;
14060 /* Register variable[1]: Local variable */
14061 variable[1] = param0;
14062 /* Register variable[2]: Method return value and escape marker */
14063 ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/ = variable[1] /*n*/;
14064 /* Register variable[3]: Result */
14065 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14066 if (UNTAG_Bool(variable[3])) { /*if*/
14067 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14068 }
14069 return_label453: while(false);
14070 tracehead = trace.prev;
14071 return;
14072 }
14073 void parser_prod___ABreakExpr___replace_child(val_t self, val_t param0, val_t param1) {
14074 struct trace_t trace = {NULL, NULL, 5137, LOCATE_parser_prod___ABreakExpr___replace_child};
14075 val_t variable[5];
14076 struct WBT_ **closurevariable = NULL;
14077 trace.prev = tracehead; tracehead = &trace;
14078 trace.file = LOCATE_parser_prod;
14079 /* Register variable[0]: Local variable */
14080 variable[0] = self;
14081 /* Register variable[1]: Local variable */
14082 variable[1] = param0;
14083 /* Register variable[2]: Local variable */
14084 variable[2] = param1;
14085 /* Register variable[3]: Method return value and escape marker */
14086 /* Register variable[4]: Result */
14087 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14088 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABreakExpr___replace_child, LOCATE_parser_prod, 5139); nit_exit(1);}
14089 /* Register variable[4]: Result */
14090 variable[4] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/;
14091 /* Register variable[4]: Result */
14092 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14093 if (UNTAG_Bool(variable[4])) { /*if*/
14094 /* Register variable[4]: Result */
14095 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14096 if (UNTAG_Bool(variable[4])) { /*if*/
14097 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14098 /* Register variable[4]: Result */
14099 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
14100 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABreakExpr___replace_child, LOCATE_parser_prod, 5143); nit_exit(1);}
14101 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/ = variable[2] /*new_child*/;
14102 } else { /*if*/
14103 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/ = NIT_NULL /*null*/;
14104 }
14105 goto return_label454;
14106 }
14107 /* Register variable[4]: Result */
14108 variable[4] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/;
14109 /* Register variable[4]: Result */
14110 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14111 if (UNTAG_Bool(variable[4])) { /*if*/
14112 /* Register variable[4]: Result */
14113 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14114 if (UNTAG_Bool(variable[4])) { /*if*/
14115 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14116 /* Register variable[4]: Result */
14117 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14118 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABreakExpr___replace_child, LOCATE_parser_prod, 5153); nit_exit(1);}
14119 ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/ = variable[2] /*new_child*/;
14120 } else { /*if*/
14121 ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/ = NIT_NULL /*null*/;
14122 }
14123 goto return_label454;
14124 }
14125 return_label454: while(false);
14126 tracehead = trace.prev;
14127 return;
14128 }
14129 void parser_prod___ABreakExpr___visit_all(val_t self, val_t param0) {
14130 struct trace_t trace = {NULL, NULL, 5162, LOCATE_parser_prod___ABreakExpr___visit_all};
14131 val_t variable[4];
14132 struct WBT_ **closurevariable = NULL;
14133 trace.prev = tracehead; tracehead = &trace;
14134 trace.file = LOCATE_parser_prod;
14135 /* Register variable[0]: Local variable */
14136 variable[0] = self;
14137 /* Register variable[1]: Local variable */
14138 variable[1] = param0;
14139 /* Register variable[2]: Method return value and escape marker */
14140 /* Register variable[3]: Result */
14141 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/;
14142 /* Register variable[3]: Result */
14143 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::==*/)))))));
14144 if (UNTAG_Bool(variable[3])) { /*if*/
14145 /* Register variable[3]: Result */
14146 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/;
14147 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14148 }
14149 /* Register variable[3]: Result */
14150 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/;
14151 /* Register variable[3]: Result */
14152 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::==*/)))))));
14153 if (UNTAG_Bool(variable[3])) { /*if*/
14154 /* Register variable[3]: Result */
14155 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/;
14156 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14157 }
14158 return_label455: while(false);
14159 tracehead = trace.prev;
14160 return;
14161 }
14162 void parser_prod___ABreakExpr___visit_all_reverse(val_t self, val_t param0) {
14163 struct trace_t trace = {NULL, NULL, 5172, LOCATE_parser_prod___ABreakExpr___visit_all_reverse};
14164 val_t variable[4];
14165 struct WBT_ **closurevariable = NULL;
14166 trace.prev = tracehead; tracehead = &trace;
14167 trace.file = LOCATE_parser_prod;
14168 /* Register variable[0]: Local variable */
14169 variable[0] = self;
14170 /* Register variable[1]: Local variable */
14171 variable[1] = param0;
14172 /* Register variable[2]: Method return value and escape marker */
14173 /* Register variable[3]: Result */
14174 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/;
14175 /* Register variable[3]: Result */
14176 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::==*/)))))));
14177 if (UNTAG_Bool(variable[3])) { /*if*/
14178 /* Register variable[3]: Result */
14179 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/;
14180 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14181 }
14182 /* Register variable[3]: Result */
14183 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/;
14184 /* Register variable[3]: Result */
14185 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::==*/)))))));
14186 if (UNTAG_Bool(variable[3])) { /*if*/
14187 /* Register variable[3]: Result */
14188 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/;
14189 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14190 }
14191 return_label456: while(false);
14192 tracehead = trace.prev;
14193 return;
14194 }
14195 void parser_prod___ABreakExpr___empty_init(val_t self, int* init_table) {
14196 struct trace_t trace = {NULL, NULL, 5119, LOCATE_parser_prod___ABreakExpr___empty_init};
14197 val_t variable[2];
14198 struct WBT_ **closurevariable = NULL;
14199 trace.prev = tracehead; tracehead = &trace;
14200 trace.file = LOCATE_parser_prod;
14201 /* Register variable[0]: Local variable */
14202 variable[0] = self;
14203 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
14204 /* Register variable[1]: Method return value and escape marker */
14205 return_label457: while(false);
14206 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
14207 tracehead = trace.prev;
14208 return;
14209 }
14210 void parser_prod___ABreakExpr___init_abreakexpr(val_t self, val_t param0, val_t param1, int* init_table) {
14211 struct trace_t trace = {NULL, NULL, 5121, LOCATE_parser_prod___ABreakExpr___init_abreakexpr};
14212 val_t variable[5];
14213 struct WBT_ **closurevariable = NULL;
14214 trace.prev = tracehead; tracehead = &trace;
14215 trace.file = LOCATE_parser_prod;
14216 /* Register variable[0]: Local variable */
14217 variable[0] = self;
14218 /* Register variable[1]: Local variable */
14219 variable[1] = param0;
14220 /* Register variable[2]: Local variable */
14221 variable[2] = param1;
14222 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
14223 /* Register variable[3]: Method return value and escape marker */
14224 CALL_parser_prod___ABreakExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABreakExpr::empty_init*/;
14225 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[0]) /*ABreakExpr::_n_kwbreak*/ = variable[1] /*n_kwbreak*/;
14226 /* Register variable[4]: Result */
14227 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwbreak*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwbreak*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwbreak*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwbreak*/)( variable[1] /*n_kwbreak*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14228 if (UNTAG_Bool(variable[4])) { /*if*/
14229 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwbreak*/)( variable[1] /*n_kwbreak*/, variable[0]) /*PNode::parent=*/;
14230 }
14231 ATTR_parser_nodes___ABreakExpr____n_expr(variable[0]) /*ABreakExpr::_n_expr*/ = variable[2] /*n_expr*/;
14232 /* Register variable[4]: Result */
14233 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14234 if (UNTAG_Bool(variable[4])) { /*if*/
14235 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
14236 }
14237 return_label458: while(false);
14238 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
14239 tracehead = trace.prev;
14240 return;
14241 }
14242 void parser_prod___AAbortExpr___n_kwabort__eq(val_t self, val_t param0) {
14243 struct trace_t trace = {NULL, NULL, 5183, LOCATE_parser_prod___AAbortExpr___n_kwabort__eq};
14244 val_t variable[4];
14245 struct WBT_ **closurevariable = NULL;
14246 trace.prev = tracehead; tracehead = &trace;
14247 trace.file = LOCATE_parser_prod;
14248 /* Register variable[0]: Local variable */
14249 variable[0] = self;
14250 /* Register variable[1]: Local variable */
14251 variable[1] = param0;
14252 /* Register variable[2]: Method return value and escape marker */
14253 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/ = variable[1] /*n*/;
14254 /* Register variable[3]: Result */
14255 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14256 if (UNTAG_Bool(variable[3])) { /*if*/
14257 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14258 }
14259 return_label459: while(false);
14260 tracehead = trace.prev;
14261 return;
14262 }
14263 void parser_prod___AAbortExpr___replace_child(val_t self, val_t param0, val_t param1) {
14264 struct trace_t trace = {NULL, NULL, 5204, LOCATE_parser_prod___AAbortExpr___replace_child};
14265 val_t variable[5];
14266 struct WBT_ **closurevariable = NULL;
14267 trace.prev = tracehead; tracehead = &trace;
14268 trace.file = LOCATE_parser_prod;
14269 /* Register variable[0]: Local variable */
14270 variable[0] = self;
14271 /* Register variable[1]: Local variable */
14272 variable[1] = param0;
14273 /* Register variable[2]: Local variable */
14274 variable[2] = param1;
14275 /* Register variable[3]: Method return value and escape marker */
14276 /* Register variable[4]: Result */
14277 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14278 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbortExpr___replace_child, LOCATE_parser_prod, 5206); nit_exit(1);}
14279 /* Register variable[4]: Result */
14280 variable[4] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/;
14281 /* Register variable[4]: Result */
14282 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14283 if (UNTAG_Bool(variable[4])) { /*if*/
14284 /* Register variable[4]: Result */
14285 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14286 if (UNTAG_Bool(variable[4])) { /*if*/
14287 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14288 /* Register variable[4]: Result */
14289 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
14290 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbortExpr___replace_child, LOCATE_parser_prod, 5210); nit_exit(1);}
14291 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/ = variable[2] /*new_child*/;
14292 } else { /*if*/
14293 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/ = NIT_NULL /*null*/;
14294 }
14295 goto return_label460;
14296 }
14297 return_label460: while(false);
14298 tracehead = trace.prev;
14299 return;
14300 }
14301 void parser_prod___AAbortExpr___visit_all(val_t self, val_t param0) {
14302 struct trace_t trace = {NULL, NULL, 5219, LOCATE_parser_prod___AAbortExpr___visit_all};
14303 val_t variable[4];
14304 struct WBT_ **closurevariable = NULL;
14305 trace.prev = tracehead; tracehead = &trace;
14306 trace.file = LOCATE_parser_prod;
14307 /* Register variable[0]: Local variable */
14308 variable[0] = self;
14309 /* Register variable[1]: Local variable */
14310 variable[1] = param0;
14311 /* Register variable[2]: Method return value and escape marker */
14312 /* Register variable[3]: Result */
14313 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/;
14314 /* Register variable[3]: Result */
14315 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::==*/)))))));
14316 if (UNTAG_Bool(variable[3])) { /*if*/
14317 /* Register variable[3]: Result */
14318 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/;
14319 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14320 }
14321 return_label461: while(false);
14322 tracehead = trace.prev;
14323 return;
14324 }
14325 void parser_prod___AAbortExpr___visit_all_reverse(val_t self, val_t param0) {
14326 struct trace_t trace = {NULL, NULL, 5226, LOCATE_parser_prod___AAbortExpr___visit_all_reverse};
14327 val_t variable[4];
14328 struct WBT_ **closurevariable = NULL;
14329 trace.prev = tracehead; tracehead = &trace;
14330 trace.file = LOCATE_parser_prod;
14331 /* Register variable[0]: Local variable */
14332 variable[0] = self;
14333 /* Register variable[1]: Local variable */
14334 variable[1] = param0;
14335 /* Register variable[2]: Method return value and escape marker */
14336 /* Register variable[3]: Result */
14337 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/;
14338 /* Register variable[3]: Result */
14339 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::==*/)))))));
14340 if (UNTAG_Bool(variable[3])) { /*if*/
14341 /* Register variable[3]: Result */
14342 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/;
14343 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14344 }
14345 return_label462: while(false);
14346 tracehead = trace.prev;
14347 return;
14348 }
14349 void parser_prod___AAbortExpr___empty_init(val_t self, int* init_table) {
14350 struct trace_t trace = {NULL, NULL, 5191, LOCATE_parser_prod___AAbortExpr___empty_init};
14351 val_t variable[2];
14352 struct WBT_ **closurevariable = NULL;
14353 trace.prev = tracehead; tracehead = &trace;
14354 trace.file = LOCATE_parser_prod;
14355 /* Register variable[0]: Local variable */
14356 variable[0] = self;
14357 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
14358 /* Register variable[1]: Method return value and escape marker */
14359 return_label463: while(false);
14360 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
14361 tracehead = trace.prev;
14362 return;
14363 }
14364 void parser_prod___AAbortExpr___init_aabortexpr(val_t self, val_t param0, int* init_table) {
14365 struct trace_t trace = {NULL, NULL, 5193, LOCATE_parser_prod___AAbortExpr___init_aabortexpr};
14366 val_t variable[4];
14367 struct WBT_ **closurevariable = NULL;
14368 trace.prev = tracehead; tracehead = &trace;
14369 trace.file = LOCATE_parser_prod;
14370 /* Register variable[0]: Local variable */
14371 variable[0] = self;
14372 /* Register variable[1]: Local variable */
14373 variable[1] = param0;
14374 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
14375 /* Register variable[2]: Method return value and escape marker */
14376 CALL_parser_prod___AAbortExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAbortExpr::empty_init*/;
14377 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[0]) /*AAbortExpr::_n_kwabort*/ = variable[1] /*n_kwabort*/;
14378 /* Register variable[3]: Result */
14379 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwabort*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwabort*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwabort*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwabort*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwabort*/)( variable[1] /*n_kwabort*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14380 if (UNTAG_Bool(variable[3])) { /*if*/
14381 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwabort*/)( variable[1] /*n_kwabort*/, variable[0]) /*PNode::parent=*/;
14382 }
14383 return_label464: while(false);
14384 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
14385 tracehead = trace.prev;
14386 return;
14387 }
14388 void parser_prod___AContinueExpr___n_kwcontinue__eq(val_t self, val_t param0) {
14389 struct trace_t trace = {NULL, NULL, 5234, LOCATE_parser_prod___AContinueExpr___n_kwcontinue__eq};
14390 val_t variable[4];
14391 struct WBT_ **closurevariable = NULL;
14392 trace.prev = tracehead; tracehead = &trace;
14393 trace.file = LOCATE_parser_prod;
14394 /* Register variable[0]: Local variable */
14395 variable[0] = self;
14396 /* Register variable[1]: Local variable */
14397 variable[1] = param0;
14398 /* Register variable[2]: Method return value and escape marker */
14399 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/ = variable[1] /*n*/;
14400 /* Register variable[3]: Result */
14401 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14402 if (UNTAG_Bool(variable[3])) { /*if*/
14403 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14404 }
14405 return_label465: while(false);
14406 tracehead = trace.prev;
14407 return;
14408 }
14409 void parser_prod___AContinueExpr___n_expr__eq(val_t self, val_t param0) {
14410 struct trace_t trace = {NULL, NULL, 5241, LOCATE_parser_prod___AContinueExpr___n_expr__eq};
14411 val_t variable[4];
14412 struct WBT_ **closurevariable = NULL;
14413 trace.prev = tracehead; tracehead = &trace;
14414 trace.file = LOCATE_parser_prod;
14415 /* Register variable[0]: Local variable */
14416 variable[0] = self;
14417 /* Register variable[1]: Local variable */
14418 variable[1] = param0;
14419 /* Register variable[2]: Method return value and escape marker */
14420 ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/ = variable[1] /*n*/;
14421 /* Register variable[3]: Result */
14422 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14423 if (UNTAG_Bool(variable[3])) { /*if*/
14424 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14425 }
14426 return_label466: while(false);
14427 tracehead = trace.prev;
14428 return;
14429 }
14430 void parser_prod___AContinueExpr___replace_child(val_t self, val_t param0, val_t param1) {
14431 struct trace_t trace = {NULL, NULL, 5267, LOCATE_parser_prod___AContinueExpr___replace_child};
14432 val_t variable[5];
14433 struct WBT_ **closurevariable = NULL;
14434 trace.prev = tracehead; tracehead = &trace;
14435 trace.file = LOCATE_parser_prod;
14436 /* Register variable[0]: Local variable */
14437 variable[0] = self;
14438 /* Register variable[1]: Local variable */
14439 variable[1] = param0;
14440 /* Register variable[2]: Local variable */
14441 variable[2] = param1;
14442 /* Register variable[3]: Method return value and escape marker */
14443 /* Register variable[4]: Result */
14444 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14445 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AContinueExpr___replace_child, LOCATE_parser_prod, 5269); nit_exit(1);}
14446 /* Register variable[4]: Result */
14447 variable[4] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/;
14448 /* Register variable[4]: Result */
14449 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14450 if (UNTAG_Bool(variable[4])) { /*if*/
14451 /* Register variable[4]: Result */
14452 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14453 if (UNTAG_Bool(variable[4])) { /*if*/
14454 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14455 /* Register variable[4]: Result */
14456 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
14457 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AContinueExpr___replace_child, LOCATE_parser_prod, 5273); nit_exit(1);}
14458 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/ = variable[2] /*new_child*/;
14459 } else { /*if*/
14460 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/ = NIT_NULL /*null*/;
14461 }
14462 goto return_label467;
14463 }
14464 /* Register variable[4]: Result */
14465 variable[4] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/;
14466 /* Register variable[4]: Result */
14467 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14468 if (UNTAG_Bool(variable[4])) { /*if*/
14469 /* Register variable[4]: Result */
14470 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14471 if (UNTAG_Bool(variable[4])) { /*if*/
14472 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14473 /* Register variable[4]: Result */
14474 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14475 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AContinueExpr___replace_child, LOCATE_parser_prod, 5283); nit_exit(1);}
14476 ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/ = variable[2] /*new_child*/;
14477 } else { /*if*/
14478 ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/ = NIT_NULL /*null*/;
14479 }
14480 goto return_label467;
14481 }
14482 return_label467: while(false);
14483 tracehead = trace.prev;
14484 return;
14485 }
14486 void parser_prod___AContinueExpr___visit_all(val_t self, val_t param0) {
14487 struct trace_t trace = {NULL, NULL, 5292, LOCATE_parser_prod___AContinueExpr___visit_all};
14488 val_t variable[4];
14489 struct WBT_ **closurevariable = NULL;
14490 trace.prev = tracehead; tracehead = &trace;
14491 trace.file = LOCATE_parser_prod;
14492 /* Register variable[0]: Local variable */
14493 variable[0] = self;
14494 /* Register variable[1]: Local variable */
14495 variable[1] = param0;
14496 /* Register variable[2]: Method return value and escape marker */
14497 /* Register variable[3]: Result */
14498 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/;
14499 /* Register variable[3]: Result */
14500 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::==*/)))))));
14501 if (UNTAG_Bool(variable[3])) { /*if*/
14502 /* Register variable[3]: Result */
14503 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/;
14504 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14505 }
14506 /* Register variable[3]: Result */
14507 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/;
14508 /* Register variable[3]: Result */
14509 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::==*/)))))));
14510 if (UNTAG_Bool(variable[3])) { /*if*/
14511 /* Register variable[3]: Result */
14512 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/;
14513 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14514 }
14515 return_label468: while(false);
14516 tracehead = trace.prev;
14517 return;
14518 }
14519 void parser_prod___AContinueExpr___visit_all_reverse(val_t self, val_t param0) {
14520 struct trace_t trace = {NULL, NULL, 5302, LOCATE_parser_prod___AContinueExpr___visit_all_reverse};
14521 val_t variable[4];
14522 struct WBT_ **closurevariable = NULL;
14523 trace.prev = tracehead; tracehead = &trace;
14524 trace.file = LOCATE_parser_prod;
14525 /* Register variable[0]: Local variable */
14526 variable[0] = self;
14527 /* Register variable[1]: Local variable */
14528 variable[1] = param0;
14529 /* Register variable[2]: Method return value and escape marker */
14530 /* Register variable[3]: Result */
14531 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/;
14532 /* Register variable[3]: Result */
14533 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::==*/)))))));
14534 if (UNTAG_Bool(variable[3])) { /*if*/
14535 /* Register variable[3]: Result */
14536 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/;
14537 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14538 }
14539 /* Register variable[3]: Result */
14540 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/;
14541 /* Register variable[3]: Result */
14542 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::==*/)))))));
14543 if (UNTAG_Bool(variable[3])) { /*if*/
14544 /* Register variable[3]: Result */
14545 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/;
14546 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14547 }
14548 return_label469: while(false);
14549 tracehead = trace.prev;
14550 return;
14551 }
14552 void parser_prod___AContinueExpr___empty_init(val_t self, int* init_table) {
14553 struct trace_t trace = {NULL, NULL, 5249, LOCATE_parser_prod___AContinueExpr___empty_init};
14554 val_t variable[2];
14555 struct WBT_ **closurevariable = NULL;
14556 trace.prev = tracehead; tracehead = &trace;
14557 trace.file = LOCATE_parser_prod;
14558 /* Register variable[0]: Local variable */
14559 variable[0] = self;
14560 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
14561 /* Register variable[1]: Method return value and escape marker */
14562 return_label470: while(false);
14563 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
14564 tracehead = trace.prev;
14565 return;
14566 }
14567 void parser_prod___AContinueExpr___init_acontinueexpr(val_t self, val_t param0, val_t param1, int* init_table) {
14568 struct trace_t trace = {NULL, NULL, 5251, LOCATE_parser_prod___AContinueExpr___init_acontinueexpr};
14569 val_t variable[5];
14570 struct WBT_ **closurevariable = NULL;
14571 trace.prev = tracehead; tracehead = &trace;
14572 trace.file = LOCATE_parser_prod;
14573 /* Register variable[0]: Local variable */
14574 variable[0] = self;
14575 /* Register variable[1]: Local variable */
14576 variable[1] = param0;
14577 /* Register variable[2]: Local variable */
14578 variable[2] = param1;
14579 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
14580 /* Register variable[3]: Method return value and escape marker */
14581 CALL_parser_prod___AContinueExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AContinueExpr::empty_init*/;
14582 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[0]) /*AContinueExpr::_n_kwcontinue*/ = variable[1] /*n_kwcontinue*/;
14583 /* Register variable[4]: Result */
14584 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwcontinue*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwcontinue*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwcontinue*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwcontinue*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwcontinue*/)( variable[1] /*n_kwcontinue*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14585 if (UNTAG_Bool(variable[4])) { /*if*/
14586 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwcontinue*/)( variable[1] /*n_kwcontinue*/, variable[0]) /*PNode::parent=*/;
14587 }
14588 ATTR_parser_nodes___AContinueExpr____n_expr(variable[0]) /*AContinueExpr::_n_expr*/ = variable[2] /*n_expr*/;
14589 /* Register variable[4]: Result */
14590 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14591 if (UNTAG_Bool(variable[4])) { /*if*/
14592 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
14593 }
14594 return_label471: while(false);
14595 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
14596 tracehead = trace.prev;
14597 return;
14598 }
14599 void parser_prod___ADoExpr___n_kwdo__eq(val_t self, val_t param0) {
14600 struct trace_t trace = {NULL, NULL, 5313, LOCATE_parser_prod___ADoExpr___n_kwdo__eq};
14601 val_t variable[4];
14602 struct WBT_ **closurevariable = NULL;
14603 trace.prev = tracehead; tracehead = &trace;
14604 trace.file = LOCATE_parser_prod;
14605 /* Register variable[0]: Local variable */
14606 variable[0] = self;
14607 /* Register variable[1]: Local variable */
14608 variable[1] = param0;
14609 /* Register variable[2]: Method return value and escape marker */
14610 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/ = variable[1] /*n*/;
14611 /* Register variable[3]: Result */
14612 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14613 if (UNTAG_Bool(variable[3])) { /*if*/
14614 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14615 }
14616 return_label472: while(false);
14617 tracehead = trace.prev;
14618 return;
14619 }
14620 void parser_prod___ADoExpr___n_block__eq(val_t self, val_t param0) {
14621 struct trace_t trace = {NULL, NULL, 5320, LOCATE_parser_prod___ADoExpr___n_block__eq};
14622 val_t variable[4];
14623 struct WBT_ **closurevariable = NULL;
14624 trace.prev = tracehead; tracehead = &trace;
14625 trace.file = LOCATE_parser_prod;
14626 /* Register variable[0]: Local variable */
14627 variable[0] = self;
14628 /* Register variable[1]: Local variable */
14629 variable[1] = param0;
14630 /* Register variable[2]: Method return value and escape marker */
14631 ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/ = variable[1] /*n*/;
14632 /* Register variable[3]: Result */
14633 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14634 if (UNTAG_Bool(variable[3])) { /*if*/
14635 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14636 }
14637 return_label473: while(false);
14638 tracehead = trace.prev;
14639 return;
14640 }
14641 void parser_prod___ADoExpr___replace_child(val_t self, val_t param0, val_t param1) {
14642 struct trace_t trace = {NULL, NULL, 5346, LOCATE_parser_prod___ADoExpr___replace_child};
14643 val_t variable[5];
14644 struct WBT_ **closurevariable = NULL;
14645 trace.prev = tracehead; tracehead = &trace;
14646 trace.file = LOCATE_parser_prod;
14647 /* Register variable[0]: Local variable */
14648 variable[0] = self;
14649 /* Register variable[1]: Local variable */
14650 variable[1] = param0;
14651 /* Register variable[2]: Local variable */
14652 variable[2] = param1;
14653 /* Register variable[3]: Method return value and escape marker */
14654 /* Register variable[4]: Result */
14655 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14656 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoExpr___replace_child, LOCATE_parser_prod, 5348); nit_exit(1);}
14657 /* Register variable[4]: Result */
14658 variable[4] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/;
14659 /* Register variable[4]: Result */
14660 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14661 if (UNTAG_Bool(variable[4])) { /*if*/
14662 /* Register variable[4]: Result */
14663 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14664 if (UNTAG_Bool(variable[4])) { /*if*/
14665 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14666 /* Register variable[4]: Result */
14667 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
14668 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoExpr___replace_child, LOCATE_parser_prod, 5352); nit_exit(1);}
14669 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/ = variable[2] /*new_child*/;
14670 } else { /*if*/
14671 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/ = NIT_NULL /*null*/;
14672 }
14673 goto return_label474;
14674 }
14675 /* Register variable[4]: Result */
14676 variable[4] = ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/;
14677 /* Register variable[4]: Result */
14678 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14679 if (UNTAG_Bool(variable[4])) { /*if*/
14680 /* Register variable[4]: Result */
14681 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14682 if (UNTAG_Bool(variable[4])) { /*if*/
14683 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14684 /* Register variable[4]: Result */
14685 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14686 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoExpr___replace_child, LOCATE_parser_prod, 5362); nit_exit(1);}
14687 ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/ = variable[2] /*new_child*/;
14688 } else { /*if*/
14689 ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/ = NIT_NULL /*null*/;
14690 }
14691 goto return_label474;
14692 }
14693 return_label474: while(false);
14694 tracehead = trace.prev;
14695 return;
14696 }
14697 void parser_prod___ADoExpr___visit_all(val_t self, val_t param0) {
14698 struct trace_t trace = {NULL, NULL, 5371, LOCATE_parser_prod___ADoExpr___visit_all};
14699 val_t variable[4];
14700 struct WBT_ **closurevariable = NULL;
14701 trace.prev = tracehead; tracehead = &trace;
14702 trace.file = LOCATE_parser_prod;
14703 /* Register variable[0]: Local variable */
14704 variable[0] = self;
14705 /* Register variable[1]: Local variable */
14706 variable[1] = param0;
14707 /* Register variable[2]: Method return value and escape marker */
14708 /* Register variable[3]: Result */
14709 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/;
14710 /* Register variable[3]: Result */
14711 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::==*/)))))));
14712 if (UNTAG_Bool(variable[3])) { /*if*/
14713 /* Register variable[3]: Result */
14714 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/;
14715 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14716 }
14717 /* Register variable[3]: Result */
14718 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/;
14719 /* Register variable[3]: Result */
14720 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::==*/)))))));
14721 if (UNTAG_Bool(variable[3])) { /*if*/
14722 /* Register variable[3]: Result */
14723 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/;
14724 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14725 }
14726 return_label475: while(false);
14727 tracehead = trace.prev;
14728 return;
14729 }
14730 void parser_prod___ADoExpr___visit_all_reverse(val_t self, val_t param0) {
14731 struct trace_t trace = {NULL, NULL, 5381, LOCATE_parser_prod___ADoExpr___visit_all_reverse};
14732 val_t variable[4];
14733 struct WBT_ **closurevariable = NULL;
14734 trace.prev = tracehead; tracehead = &trace;
14735 trace.file = LOCATE_parser_prod;
14736 /* Register variable[0]: Local variable */
14737 variable[0] = self;
14738 /* Register variable[1]: Local variable */
14739 variable[1] = param0;
14740 /* Register variable[2]: Method return value and escape marker */
14741 /* Register variable[3]: Result */
14742 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/;
14743 /* Register variable[3]: Result */
14744 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::==*/)))))));
14745 if (UNTAG_Bool(variable[3])) { /*if*/
14746 /* Register variable[3]: Result */
14747 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/;
14748 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14749 }
14750 /* Register variable[3]: Result */
14751 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/;
14752 /* Register variable[3]: Result */
14753 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::==*/)))))));
14754 if (UNTAG_Bool(variable[3])) { /*if*/
14755 /* Register variable[3]: Result */
14756 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/;
14757 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14758 }
14759 return_label476: while(false);
14760 tracehead = trace.prev;
14761 return;
14762 }
14763 void parser_prod___ADoExpr___empty_init(val_t self, int* init_table) {
14764 struct trace_t trace = {NULL, NULL, 5328, LOCATE_parser_prod___ADoExpr___empty_init};
14765 val_t variable[2];
14766 struct WBT_ **closurevariable = NULL;
14767 trace.prev = tracehead; tracehead = &trace;
14768 trace.file = LOCATE_parser_prod;
14769 /* Register variable[0]: Local variable */
14770 variable[0] = self;
14771 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i]) return;
14772 /* Register variable[1]: Method return value and escape marker */
14773 return_label477: while(false);
14774 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
14775 tracehead = trace.prev;
14776 return;
14777 }
14778 void parser_prod___ADoExpr___init_adoexpr(val_t self, val_t param0, val_t param1, int* init_table) {
14779 struct trace_t trace = {NULL, NULL, 5330, LOCATE_parser_prod___ADoExpr___init_adoexpr};
14780 val_t variable[5];
14781 struct WBT_ **closurevariable = NULL;
14782 trace.prev = tracehead; tracehead = &trace;
14783 trace.file = LOCATE_parser_prod;
14784 /* Register variable[0]: Local variable */
14785 variable[0] = self;
14786 /* Register variable[1]: Local variable */
14787 variable[1] = param0;
14788 /* Register variable[2]: Local variable */
14789 variable[2] = param1;
14790 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i]) return;
14791 /* Register variable[3]: Method return value and escape marker */
14792 CALL_parser_prod___ADoExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ADoExpr::empty_init*/;
14793 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[0]) /*ADoExpr::_n_kwdo*/ = variable[1] /*n_kwdo*/;
14794 /* Register variable[4]: Result */
14795 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwdo*/)( variable[1] /*n_kwdo*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14796 if (UNTAG_Bool(variable[4])) { /*if*/
14797 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwdo*/)( variable[1] /*n_kwdo*/, variable[0]) /*PNode::parent=*/;
14798 }
14799 ATTR_parser_nodes___ADoExpr____n_block(variable[0]) /*ADoExpr::_n_block*/ = variable[2] /*n_block*/;
14800 /* Register variable[4]: Result */
14801 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_block*/ == NIT_NULL /*null*/) || (( variable[2] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)( variable[2] /*n_block*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14802 if (UNTAG_Bool(variable[4])) { /*if*/
14803 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_block*/)( variable[2] /*n_block*/, variable[0]) /*PNode::parent=*/;
14804 }
14805 return_label478: while(false);
14806 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
14807 tracehead = trace.prev;
14808 return;
14809 }
14810 void parser_prod___AIfExpr___n_kwif__eq(val_t self, val_t param0) {
14811 struct trace_t trace = {NULL, NULL, 5392, LOCATE_parser_prod___AIfExpr___n_kwif__eq};
14812 val_t variable[4];
14813 struct WBT_ **closurevariable = NULL;
14814 trace.prev = tracehead; tracehead = &trace;
14815 trace.file = LOCATE_parser_prod;
14816 /* Register variable[0]: Local variable */
14817 variable[0] = self;
14818 /* Register variable[1]: Local variable */
14819 variable[1] = param0;
14820 /* Register variable[2]: Method return value and escape marker */
14821 ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/ = variable[1] /*n*/;
14822 /* Register variable[3]: Result */
14823 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14824 if (UNTAG_Bool(variable[3])) { /*if*/
14825 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14826 }
14827 return_label479: while(false);
14828 tracehead = trace.prev;
14829 return;
14830 }
14831 void parser_prod___AIfExpr___n_expr__eq(val_t self, val_t param0) {
14832 struct trace_t trace = {NULL, NULL, 5399, LOCATE_parser_prod___AIfExpr___n_expr__eq};
14833 val_t variable[4];
14834 struct WBT_ **closurevariable = NULL;
14835 trace.prev = tracehead; tracehead = &trace;
14836 trace.file = LOCATE_parser_prod;
14837 /* Register variable[0]: Local variable */
14838 variable[0] = self;
14839 /* Register variable[1]: Local variable */
14840 variable[1] = param0;
14841 /* Register variable[2]: Method return value and escape marker */
14842 ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/ = variable[1] /*n*/;
14843 /* Register variable[3]: Result */
14844 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14845 if (UNTAG_Bool(variable[3])) { /*if*/
14846 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14847 }
14848 return_label480: while(false);
14849 tracehead = trace.prev;
14850 return;
14851 }
14852 void parser_prod___AIfExpr___n_then__eq(val_t self, val_t param0) {
14853 struct trace_t trace = {NULL, NULL, 5406, LOCATE_parser_prod___AIfExpr___n_then__eq};
14854 val_t variable[4];
14855 struct WBT_ **closurevariable = NULL;
14856 trace.prev = tracehead; tracehead = &trace;
14857 trace.file = LOCATE_parser_prod;
14858 /* Register variable[0]: Local variable */
14859 variable[0] = self;
14860 /* Register variable[1]: Local variable */
14861 variable[1] = param0;
14862 /* Register variable[2]: Method return value and escape marker */
14863 ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/ = variable[1] /*n*/;
14864 /* Register variable[3]: Result */
14865 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14866 if (UNTAG_Bool(variable[3])) { /*if*/
14867 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14868 }
14869 return_label481: while(false);
14870 tracehead = trace.prev;
14871 return;
14872 }
14873 void parser_prod___AIfExpr___n_else__eq(val_t self, val_t param0) {
14874 struct trace_t trace = {NULL, NULL, 5413, LOCATE_parser_prod___AIfExpr___n_else__eq};
14875 val_t variable[4];
14876 struct WBT_ **closurevariable = NULL;
14877 trace.prev = tracehead; tracehead = &trace;
14878 trace.file = LOCATE_parser_prod;
14879 /* Register variable[0]: Local variable */
14880 variable[0] = self;
14881 /* Register variable[1]: Local variable */
14882 variable[1] = param0;
14883 /* Register variable[2]: Method return value and escape marker */
14884 ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/ = variable[1] /*n*/;
14885 /* Register variable[3]: Result */
14886 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14887 if (UNTAG_Bool(variable[3])) { /*if*/
14888 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
14889 }
14890 return_label482: while(false);
14891 tracehead = trace.prev;
14892 return;
14893 }
14894 void parser_prod___AIfExpr___replace_child(val_t self, val_t param0, val_t param1) {
14895 struct trace_t trace = {NULL, NULL, 5449, LOCATE_parser_prod___AIfExpr___replace_child};
14896 val_t variable[5];
14897 struct WBT_ **closurevariable = NULL;
14898 trace.prev = tracehead; tracehead = &trace;
14899 trace.file = LOCATE_parser_prod;
14900 /* Register variable[0]: Local variable */
14901 variable[0] = self;
14902 /* Register variable[1]: Local variable */
14903 variable[1] = param0;
14904 /* Register variable[2]: Local variable */
14905 variable[2] = param1;
14906 /* Register variable[3]: Method return value and escape marker */
14907 /* Register variable[4]: Result */
14908 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14909 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5451); nit_exit(1);}
14910 /* Register variable[4]: Result */
14911 variable[4] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/;
14912 /* Register variable[4]: Result */
14913 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14914 if (UNTAG_Bool(variable[4])) { /*if*/
14915 /* Register variable[4]: Result */
14916 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14917 if (UNTAG_Bool(variable[4])) { /*if*/
14918 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14919 /* Register variable[4]: Result */
14920 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
14921 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5455); nit_exit(1);}
14922 ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/ = variable[2] /*new_child*/;
14923 } else { /*if*/
14924 ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/ = NIT_NULL /*null*/;
14925 }
14926 goto return_label483;
14927 }
14928 /* Register variable[4]: Result */
14929 variable[4] = ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/;
14930 /* Register variable[4]: Result */
14931 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14932 if (UNTAG_Bool(variable[4])) { /*if*/
14933 /* Register variable[4]: Result */
14934 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14935 if (UNTAG_Bool(variable[4])) { /*if*/
14936 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14937 /* Register variable[4]: Result */
14938 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14939 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5465); nit_exit(1);}
14940 ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/ = variable[2] /*new_child*/;
14941 } else { /*if*/
14942 ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/ = NIT_NULL /*null*/;
14943 }
14944 goto return_label483;
14945 }
14946 /* Register variable[4]: Result */
14947 variable[4] = ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/;
14948 /* Register variable[4]: Result */
14949 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14950 if (UNTAG_Bool(variable[4])) { /*if*/
14951 /* Register variable[4]: Result */
14952 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14953 if (UNTAG_Bool(variable[4])) { /*if*/
14954 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14955 /* Register variable[4]: Result */
14956 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14957 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5475); nit_exit(1);}
14958 ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/ = variable[2] /*new_child*/;
14959 } else { /*if*/
14960 ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/ = NIT_NULL /*null*/;
14961 }
14962 goto return_label483;
14963 }
14964 /* Register variable[4]: Result */
14965 variable[4] = ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/;
14966 /* Register variable[4]: Result */
14967 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14968 if (UNTAG_Bool(variable[4])) { /*if*/
14969 /* Register variable[4]: Result */
14970 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14971 if (UNTAG_Bool(variable[4])) { /*if*/
14972 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
14973 /* Register variable[4]: Result */
14974 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14975 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5485); nit_exit(1);}
14976 ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/ = variable[2] /*new_child*/;
14977 } else { /*if*/
14978 ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/ = NIT_NULL /*null*/;
14979 }
14980 goto return_label483;
14981 }
14982 return_label483: while(false);
14983 tracehead = trace.prev;
14984 return;
14985 }
14986 void parser_prod___AIfExpr___visit_all(val_t self, val_t param0) {
14987 struct trace_t trace = {NULL, NULL, 5494, LOCATE_parser_prod___AIfExpr___visit_all};
14988 val_t variable[4];
14989 struct WBT_ **closurevariable = NULL;
14990 trace.prev = tracehead; tracehead = &trace;
14991 trace.file = LOCATE_parser_prod;
14992 /* Register variable[0]: Local variable */
14993 variable[0] = self;
14994 /* Register variable[1]: Local variable */
14995 variable[1] = param0;
14996 /* Register variable[2]: Method return value and escape marker */
14997 /* Register variable[3]: Result */
14998 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/;
14999 /* Register variable[3]: Result */
15000 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::==*/)))))));
15001 if (UNTAG_Bool(variable[3])) { /*if*/
15002 /* Register variable[3]: Result */
15003 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/;
15004 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15005 }
15006 /* Register variable[3]: Result */
15007 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/;
15008 /* Register variable[3]: Result */
15009 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::==*/)))))));
15010 if (UNTAG_Bool(variable[3])) { /*if*/
15011 /* Register variable[3]: Result */
15012 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/;
15013 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15014 }
15015 /* Register variable[3]: Result */
15016 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/;
15017 /* Register variable[3]: Result */
15018 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::==*/)))))));
15019 if (UNTAG_Bool(variable[3])) { /*if*/
15020 /* Register variable[3]: Result */
15021 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/;
15022 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15023 }
15024 /* Register variable[3]: Result */
15025 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/;
15026 /* Register variable[3]: Result */
15027 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::==*/)))))));
15028 if (UNTAG_Bool(variable[3])) { /*if*/
15029 /* Register variable[3]: Result */
15030 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/;
15031 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15032 }
15033 return_label484: while(false);
15034 tracehead = trace.prev;
15035 return;
15036 }
15037 void parser_prod___AIfExpr___visit_all_reverse(val_t self, val_t param0) {
15038 struct trace_t trace = {NULL, NULL, 5510, LOCATE_parser_prod___AIfExpr___visit_all_reverse};
15039 val_t variable[4];
15040 struct WBT_ **closurevariable = NULL;
15041 trace.prev = tracehead; tracehead = &trace;
15042 trace.file = LOCATE_parser_prod;
15043 /* Register variable[0]: Local variable */
15044 variable[0] = self;
15045 /* Register variable[1]: Local variable */
15046 variable[1] = param0;
15047 /* Register variable[2]: Method return value and escape marker */
15048 /* Register variable[3]: Result */
15049 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/;
15050 /* Register variable[3]: Result */
15051 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::==*/)))))));
15052 if (UNTAG_Bool(variable[3])) { /*if*/
15053 /* Register variable[3]: Result */
15054 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/;
15055 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15056 }
15057 /* Register variable[3]: Result */
15058 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/;
15059 /* Register variable[3]: Result */
15060 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::==*/)))))));
15061 if (UNTAG_Bool(variable[3])) { /*if*/
15062 /* Register variable[3]: Result */
15063 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/;
15064 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15065 }
15066 /* Register variable[3]: Result */
15067 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/;
15068 /* Register variable[3]: Result */
15069 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::==*/)))))));
15070 if (UNTAG_Bool(variable[3])) { /*if*/
15071 /* Register variable[3]: Result */
15072 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/;
15073 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15074 }
15075 /* Register variable[3]: Result */
15076 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/;
15077 /* Register variable[3]: Result */
15078 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::==*/)))))));
15079 if (UNTAG_Bool(variable[3])) { /*if*/
15080 /* Register variable[3]: Result */
15081 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/;
15082 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15083 }
15084 return_label485: while(false);
15085 tracehead = trace.prev;
15086 return;
15087 }
15088 void parser_prod___AIfExpr___empty_init(val_t self, int* init_table) {
15089 struct trace_t trace = {NULL, NULL, 5421, LOCATE_parser_prod___AIfExpr___empty_init};
15090 val_t variable[2];
15091 struct WBT_ **closurevariable = NULL;
15092 trace.prev = tracehead; tracehead = &trace;
15093 trace.file = LOCATE_parser_prod;
15094 /* Register variable[0]: Local variable */
15095 variable[0] = self;
15096 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i]) return;
15097 /* Register variable[1]: Method return value and escape marker */
15098 return_label486: while(false);
15099 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
15100 tracehead = trace.prev;
15101 return;
15102 }
15103 void parser_prod___AIfExpr___init_aifexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
15104 struct trace_t trace = {NULL, NULL, 5423, LOCATE_parser_prod___AIfExpr___init_aifexpr};
15105 val_t variable[7];
15106 struct WBT_ **closurevariable = NULL;
15107 trace.prev = tracehead; tracehead = &trace;
15108 trace.file = LOCATE_parser_prod;
15109 /* Register variable[0]: Local variable */
15110 variable[0] = self;
15111 /* Register variable[1]: Local variable */
15112 variable[1] = param0;
15113 /* Register variable[2]: Local variable */
15114 variable[2] = param1;
15115 /* Register variable[3]: Local variable */
15116 variable[3] = param2;
15117 /* Register variable[4]: Local variable */
15118 variable[4] = param3;
15119 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i]) return;
15120 /* Register variable[5]: Method return value and escape marker */
15121 CALL_parser_prod___AIfExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AIfExpr::empty_init*/;
15122 ATTR_parser_nodes___AIfExpr____n_kwif(variable[0]) /*AIfExpr::_n_kwif*/ = variable[1] /*n_kwif*/;
15123 /* Register variable[6]: Result */
15124 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwif*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwif*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15125 if (UNTAG_Bool(variable[6])) { /*if*/
15126 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, variable[0]) /*PNode::parent=*/;
15127 }
15128 ATTR_parser_nodes___AIfExpr____n_expr(variable[0]) /*AIfExpr::_n_expr*/ = variable[2] /*n_expr*/;
15129 /* Register variable[6]: Result */
15130 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15131 if (UNTAG_Bool(variable[6])) { /*if*/
15132 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
15133 }
15134 ATTR_parser_nodes___AIfExpr____n_then(variable[0]) /*AIfExpr::_n_then*/ = variable[3] /*n_then*/;
15135 /* Register variable[6]: Result */
15136 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_then*/ == NIT_NULL /*null*/) || (( variable[3] /*n_then*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_then*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_then*/)( variable[3] /*n_then*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15137 if (UNTAG_Bool(variable[6])) { /*if*/
15138 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_then*/)( variable[3] /*n_then*/, variable[0]) /*PNode::parent=*/;
15139 }
15140 ATTR_parser_nodes___AIfExpr____n_else(variable[0]) /*AIfExpr::_n_else*/ = variable[4] /*n_else*/;
15141 /* Register variable[6]: Result */
15142 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_else*/ == NIT_NULL /*null*/) || (( variable[4] /*n_else*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_else*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_else*/)( variable[4] /*n_else*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15143 if (UNTAG_Bool(variable[6])) { /*if*/
15144 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_else*/)( variable[4] /*n_else*/, variable[0]) /*PNode::parent=*/;
15145 }
15146 return_label487: while(false);
15147 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
15148 tracehead = trace.prev;
15149 return;
15150 }
15151 void parser_prod___AIfexprExpr___n_kwif__eq(val_t self, val_t param0) {
15152 struct trace_t trace = {NULL, NULL, 5527, LOCATE_parser_prod___AIfexprExpr___n_kwif__eq};
15153 val_t variable[4];
15154 struct WBT_ **closurevariable = NULL;
15155 trace.prev = tracehead; tracehead = &trace;
15156 trace.file = LOCATE_parser_prod;
15157 /* Register variable[0]: Local variable */
15158 variable[0] = self;
15159 /* Register variable[1]: Local variable */
15160 variable[1] = param0;
15161 /* Register variable[2]: Method return value and escape marker */
15162 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/ = variable[1] /*n*/;
15163 /* Register variable[3]: Result */
15164 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15165 if (UNTAG_Bool(variable[3])) { /*if*/
15166 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15167 }
15168 return_label488: while(false);
15169 tracehead = trace.prev;
15170 return;
15171 }
15172 void parser_prod___AIfexprExpr___n_expr__eq(val_t self, val_t param0) {
15173 struct trace_t trace = {NULL, NULL, 5534, LOCATE_parser_prod___AIfexprExpr___n_expr__eq};
15174 val_t variable[4];
15175 struct WBT_ **closurevariable = NULL;
15176 trace.prev = tracehead; tracehead = &trace;
15177 trace.file = LOCATE_parser_prod;
15178 /* Register variable[0]: Local variable */
15179 variable[0] = self;
15180 /* Register variable[1]: Local variable */
15181 variable[1] = param0;
15182 /* Register variable[2]: Method return value and escape marker */
15183 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/ = variable[1] /*n*/;
15184 /* Register variable[3]: Result */
15185 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15186 if (UNTAG_Bool(variable[3])) { /*if*/
15187 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15188 }
15189 return_label489: while(false);
15190 tracehead = trace.prev;
15191 return;
15192 }
15193 void parser_prod___AIfexprExpr___n_kwthen__eq(val_t self, val_t param0) {
15194 struct trace_t trace = {NULL, NULL, 5541, LOCATE_parser_prod___AIfexprExpr___n_kwthen__eq};
15195 val_t variable[4];
15196 struct WBT_ **closurevariable = NULL;
15197 trace.prev = tracehead; tracehead = &trace;
15198 trace.file = LOCATE_parser_prod;
15199 /* Register variable[0]: Local variable */
15200 variable[0] = self;
15201 /* Register variable[1]: Local variable */
15202 variable[1] = param0;
15203 /* Register variable[2]: Method return value and escape marker */
15204 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/ = variable[1] /*n*/;
15205 /* Register variable[3]: Result */
15206 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15207 if (UNTAG_Bool(variable[3])) { /*if*/
15208 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15209 }
15210 return_label490: while(false);
15211 tracehead = trace.prev;
15212 return;
15213 }
15214 void parser_prod___AIfexprExpr___n_then__eq(val_t self, val_t param0) {
15215 struct trace_t trace = {NULL, NULL, 5548, LOCATE_parser_prod___AIfexprExpr___n_then__eq};
15216 val_t variable[4];
15217 struct WBT_ **closurevariable = NULL;
15218 trace.prev = tracehead; tracehead = &trace;
15219 trace.file = LOCATE_parser_prod;
15220 /* Register variable[0]: Local variable */
15221 variable[0] = self;
15222 /* Register variable[1]: Local variable */
15223 variable[1] = param0;
15224 /* Register variable[2]: Method return value and escape marker */
15225 ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/ = variable[1] /*n*/;
15226 /* Register variable[3]: Result */
15227 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15228 if (UNTAG_Bool(variable[3])) { /*if*/
15229 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15230 }
15231 return_label491: while(false);
15232 tracehead = trace.prev;
15233 return;
15234 }
15235 void parser_prod___AIfexprExpr___n_kwelse__eq(val_t self, val_t param0) {
15236 struct trace_t trace = {NULL, NULL, 5555, LOCATE_parser_prod___AIfexprExpr___n_kwelse__eq};
15237 val_t variable[4];
15238 struct WBT_ **closurevariable = NULL;
15239 trace.prev = tracehead; tracehead = &trace;
15240 trace.file = LOCATE_parser_prod;
15241 /* Register variable[0]: Local variable */
15242 variable[0] = self;
15243 /* Register variable[1]: Local variable */
15244 variable[1] = param0;
15245 /* Register variable[2]: Method return value and escape marker */
15246 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/ = variable[1] /*n*/;
15247 /* Register variable[3]: Result */
15248 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15249 if (UNTAG_Bool(variable[3])) { /*if*/
15250 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15251 }
15252 return_label492: while(false);
15253 tracehead = trace.prev;
15254 return;
15255 }
15256 void parser_prod___AIfexprExpr___n_else__eq(val_t self, val_t param0) {
15257 struct trace_t trace = {NULL, NULL, 5562, LOCATE_parser_prod___AIfexprExpr___n_else__eq};
15258 val_t variable[4];
15259 struct WBT_ **closurevariable = NULL;
15260 trace.prev = tracehead; tracehead = &trace;
15261 trace.file = LOCATE_parser_prod;
15262 /* Register variable[0]: Local variable */
15263 variable[0] = self;
15264 /* Register variable[1]: Local variable */
15265 variable[1] = param0;
15266 /* Register variable[2]: Method return value and escape marker */
15267 ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/ = variable[1] /*n*/;
15268 /* Register variable[3]: Result */
15269 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15270 if (UNTAG_Bool(variable[3])) { /*if*/
15271 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15272 }
15273 return_label493: while(false);
15274 tracehead = trace.prev;
15275 return;
15276 }
15277 void parser_prod___AIfexprExpr___replace_child(val_t self, val_t param0, val_t param1) {
15278 struct trace_t trace = {NULL, NULL, 5608, LOCATE_parser_prod___AIfexprExpr___replace_child};
15279 val_t variable[5];
15280 struct WBT_ **closurevariable = NULL;
15281 trace.prev = tracehead; tracehead = &trace;
15282 trace.file = LOCATE_parser_prod;
15283 /* Register variable[0]: Local variable */
15284 variable[0] = self;
15285 /* Register variable[1]: Local variable */
15286 variable[1] = param0;
15287 /* Register variable[2]: Local variable */
15288 variable[2] = param1;
15289 /* Register variable[3]: Method return value and escape marker */
15290 /* Register variable[4]: Result */
15291 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15292 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5610); nit_exit(1);}
15293 /* Register variable[4]: Result */
15294 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/;
15295 /* Register variable[4]: Result */
15296 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15297 if (UNTAG_Bool(variable[4])) { /*if*/
15298 /* Register variable[4]: Result */
15299 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15300 if (UNTAG_Bool(variable[4])) { /*if*/
15301 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15302 /* Register variable[4]: Result */
15303 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
15304 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5614); nit_exit(1);}
15305 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/ = variable[2] /*new_child*/;
15306 } else { /*if*/
15307 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/ = NIT_NULL /*null*/;
15308 }
15309 goto return_label494;
15310 }
15311 /* Register variable[4]: Result */
15312 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/;
15313 /* Register variable[4]: Result */
15314 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15315 if (UNTAG_Bool(variable[4])) { /*if*/
15316 /* Register variable[4]: Result */
15317 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15318 if (UNTAG_Bool(variable[4])) { /*if*/
15319 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15320 /* Register variable[4]: Result */
15321 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15322 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5624); nit_exit(1);}
15323 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/ = variable[2] /*new_child*/;
15324 } else { /*if*/
15325 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/ = NIT_NULL /*null*/;
15326 }
15327 goto return_label494;
15328 }
15329 /* Register variable[4]: Result */
15330 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/;
15331 /* Register variable[4]: Result */
15332 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15333 if (UNTAG_Bool(variable[4])) { /*if*/
15334 /* Register variable[4]: Result */
15335 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15336 if (UNTAG_Bool(variable[4])) { /*if*/
15337 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15338 /* Register variable[4]: Result */
15339 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
15340 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5634); nit_exit(1);}
15341 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/ = variable[2] /*new_child*/;
15342 } else { /*if*/
15343 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/ = NIT_NULL /*null*/;
15344 }
15345 goto return_label494;
15346 }
15347 /* Register variable[4]: Result */
15348 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/;
15349 /* Register variable[4]: Result */
15350 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15351 if (UNTAG_Bool(variable[4])) { /*if*/
15352 /* Register variable[4]: Result */
15353 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15354 if (UNTAG_Bool(variable[4])) { /*if*/
15355 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15356 /* Register variable[4]: Result */
15357 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15358 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5644); nit_exit(1);}
15359 ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/ = variable[2] /*new_child*/;
15360 } else { /*if*/
15361 ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/ = NIT_NULL /*null*/;
15362 }
15363 goto return_label494;
15364 }
15365 /* Register variable[4]: Result */
15366 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/;
15367 /* Register variable[4]: Result */
15368 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15369 if (UNTAG_Bool(variable[4])) { /*if*/
15370 /* Register variable[4]: Result */
15371 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15372 if (UNTAG_Bool(variable[4])) { /*if*/
15373 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15374 /* Register variable[4]: Result */
15375 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
15376 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5654); nit_exit(1);}
15377 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/ = variable[2] /*new_child*/;
15378 } else { /*if*/
15379 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/ = NIT_NULL /*null*/;
15380 }
15381 goto return_label494;
15382 }
15383 /* Register variable[4]: Result */
15384 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/;
15385 /* Register variable[4]: Result */
15386 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15387 if (UNTAG_Bool(variable[4])) { /*if*/
15388 /* Register variable[4]: Result */
15389 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15390 if (UNTAG_Bool(variable[4])) { /*if*/
15391 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15392 /* Register variable[4]: Result */
15393 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15394 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5664); nit_exit(1);}
15395 ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/ = variable[2] /*new_child*/;
15396 } else { /*if*/
15397 ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/ = NIT_NULL /*null*/;
15398 }
15399 goto return_label494;
15400 }
15401 return_label494: while(false);
15402 tracehead = trace.prev;
15403 return;
15404 }
15405 void parser_prod___AIfexprExpr___visit_all(val_t self, val_t param0) {
15406 struct trace_t trace = {NULL, NULL, 5673, LOCATE_parser_prod___AIfexprExpr___visit_all};
15407 val_t variable[4];
15408 struct WBT_ **closurevariable = NULL;
15409 trace.prev = tracehead; tracehead = &trace;
15410 trace.file = LOCATE_parser_prod;
15411 /* Register variable[0]: Local variable */
15412 variable[0] = self;
15413 /* Register variable[1]: Local variable */
15414 variable[1] = param0;
15415 /* Register variable[2]: Method return value and escape marker */
15416 /* Register variable[3]: Result */
15417 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/;
15418 /* Register variable[3]: Result */
15419 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::==*/)))))));
15420 if (UNTAG_Bool(variable[3])) { /*if*/
15421 /* Register variable[3]: Result */
15422 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/;
15423 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15424 }
15425 /* Register variable[3]: Result */
15426 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/;
15427 /* Register variable[3]: Result */
15428 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::==*/)))))));
15429 if (UNTAG_Bool(variable[3])) { /*if*/
15430 /* Register variable[3]: Result */
15431 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/;
15432 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15433 }
15434 /* Register variable[3]: Result */
15435 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/;
15436 /* Register variable[3]: Result */
15437 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::==*/)))))));
15438 if (UNTAG_Bool(variable[3])) { /*if*/
15439 /* Register variable[3]: Result */
15440 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/;
15441 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15442 }
15443 /* Register variable[3]: Result */
15444 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/;
15445 /* Register variable[3]: Result */
15446 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::==*/)))))));
15447 if (UNTAG_Bool(variable[3])) { /*if*/
15448 /* Register variable[3]: Result */
15449 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/;
15450 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15451 }
15452 /* Register variable[3]: Result */
15453 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/;
15454 /* Register variable[3]: Result */
15455 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::==*/)))))));
15456 if (UNTAG_Bool(variable[3])) { /*if*/
15457 /* Register variable[3]: Result */
15458 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/;
15459 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15460 }
15461 /* Register variable[3]: Result */
15462 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/;
15463 /* Register variable[3]: Result */
15464 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::==*/)))))));
15465 if (UNTAG_Bool(variable[3])) { /*if*/
15466 /* Register variable[3]: Result */
15467 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/;
15468 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15469 }
15470 return_label495: while(false);
15471 tracehead = trace.prev;
15472 return;
15473 }
15474 void parser_prod___AIfexprExpr___visit_all_reverse(val_t self, val_t param0) {
15475 struct trace_t trace = {NULL, NULL, 5695, LOCATE_parser_prod___AIfexprExpr___visit_all_reverse};
15476 val_t variable[4];
15477 struct WBT_ **closurevariable = NULL;
15478 trace.prev = tracehead; tracehead = &trace;
15479 trace.file = LOCATE_parser_prod;
15480 /* Register variable[0]: Local variable */
15481 variable[0] = self;
15482 /* Register variable[1]: Local variable */
15483 variable[1] = param0;
15484 /* Register variable[2]: Method return value and escape marker */
15485 /* Register variable[3]: Result */
15486 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/;
15487 /* Register variable[3]: Result */
15488 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::==*/)))))));
15489 if (UNTAG_Bool(variable[3])) { /*if*/
15490 /* Register variable[3]: Result */
15491 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/;
15492 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15493 }
15494 /* Register variable[3]: Result */
15495 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/;
15496 /* Register variable[3]: Result */
15497 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::==*/)))))));
15498 if (UNTAG_Bool(variable[3])) { /*if*/
15499 /* Register variable[3]: Result */
15500 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/;
15501 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15502 }
15503 /* Register variable[3]: Result */
15504 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/;
15505 /* Register variable[3]: Result */
15506 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::==*/)))))));
15507 if (UNTAG_Bool(variable[3])) { /*if*/
15508 /* Register variable[3]: Result */
15509 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/;
15510 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15511 }
15512 /* Register variable[3]: Result */
15513 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/;
15514 /* Register variable[3]: Result */
15515 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::==*/)))))));
15516 if (UNTAG_Bool(variable[3])) { /*if*/
15517 /* Register variable[3]: Result */
15518 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/;
15519 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15520 }
15521 /* Register variable[3]: Result */
15522 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/;
15523 /* Register variable[3]: Result */
15524 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::==*/)))))));
15525 if (UNTAG_Bool(variable[3])) { /*if*/
15526 /* Register variable[3]: Result */
15527 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/;
15528 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15529 }
15530 /* Register variable[3]: Result */
15531 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/;
15532 /* Register variable[3]: Result */
15533 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::==*/)))))));
15534 if (UNTAG_Bool(variable[3])) { /*if*/
15535 /* Register variable[3]: Result */
15536 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/;
15537 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15538 }
15539 return_label496: while(false);
15540 tracehead = trace.prev;
15541 return;
15542 }
15543 void parser_prod___AIfexprExpr___empty_init(val_t self, int* init_table) {
15544 struct trace_t trace = {NULL, NULL, 5570, LOCATE_parser_prod___AIfexprExpr___empty_init};
15545 val_t variable[2];
15546 struct WBT_ **closurevariable = NULL;
15547 trace.prev = tracehead; tracehead = &trace;
15548 trace.file = LOCATE_parser_prod;
15549 /* Register variable[0]: Local variable */
15550 variable[0] = self;
15551 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
15552 /* Register variable[1]: Method return value and escape marker */
15553 return_label497: while(false);
15554 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
15555 tracehead = trace.prev;
15556 return;
15557 }
15558 void parser_prod___AIfexprExpr___init_aifexprexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, val_t param5, int* init_table) {
15559 struct trace_t trace = {NULL, NULL, 5572, LOCATE_parser_prod___AIfexprExpr___init_aifexprexpr};
15560 val_t variable[9];
15561 struct WBT_ **closurevariable = NULL;
15562 trace.prev = tracehead; tracehead = &trace;
15563 trace.file = LOCATE_parser_prod;
15564 /* Register variable[0]: Local variable */
15565 variable[0] = self;
15566 /* Register variable[1]: Local variable */
15567 variable[1] = param0;
15568 /* Register variable[2]: Local variable */
15569 variable[2] = param1;
15570 /* Register variable[3]: Local variable */
15571 variable[3] = param2;
15572 /* Register variable[4]: Local variable */
15573 variable[4] = param3;
15574 /* Register variable[5]: Local variable */
15575 variable[5] = param4;
15576 /* Register variable[6]: Local variable */
15577 variable[6] = param5;
15578 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
15579 /* Register variable[7]: Method return value and escape marker */
15580 CALL_parser_prod___AIfexprExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AIfexprExpr::empty_init*/;
15581 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[0]) /*AIfexprExpr::_n_kwif*/ = variable[1] /*n_kwif*/;
15582 /* Register variable[8]: Result */
15583 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwif*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwif*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15584 if (UNTAG_Bool(variable[8])) { /*if*/
15585 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, variable[0]) /*PNode::parent=*/;
15586 }
15587 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[0]) /*AIfexprExpr::_n_expr*/ = variable[2] /*n_expr*/;
15588 /* Register variable[8]: Result */
15589 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15590 if (UNTAG_Bool(variable[8])) { /*if*/
15591 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
15592 }
15593 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[0]) /*AIfexprExpr::_n_kwthen*/ = variable[3] /*n_kwthen*/;
15594 /* Register variable[8]: Result */
15595 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwthen*/ == NIT_NULL /*null*/) || (( variable[3] /*n_kwthen*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwthen*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwthen*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwthen*/)( variable[3] /*n_kwthen*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15596 if (UNTAG_Bool(variable[8])) { /*if*/
15597 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwthen*/)( variable[3] /*n_kwthen*/, variable[0]) /*PNode::parent=*/;
15598 }
15599 ATTR_parser_nodes___AIfexprExpr____n_then(variable[0]) /*AIfexprExpr::_n_then*/ = variable[4] /*n_then*/;
15600 /* Register variable[8]: Result */
15601 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_then*/ == NIT_NULL /*null*/) || (( variable[4] /*n_then*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_then*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_then*/)( variable[4] /*n_then*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15602 if (UNTAG_Bool(variable[8])) { /*if*/
15603 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_then*/)( variable[4] /*n_then*/, variable[0]) /*PNode::parent=*/;
15604 }
15605 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[0]) /*AIfexprExpr::_n_kwelse*/ = variable[5] /*n_kwelse*/;
15606 /* Register variable[8]: Result */
15607 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_kwelse*/ == NIT_NULL /*null*/) || (( variable[5] /*n_kwelse*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_kwelse*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_kwelse*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_kwelse*/)( variable[5] /*n_kwelse*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15608 if (UNTAG_Bool(variable[8])) { /*if*/
15609 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_kwelse*/)( variable[5] /*n_kwelse*/, variable[0]) /*PNode::parent=*/;
15610 }
15611 ATTR_parser_nodes___AIfexprExpr____n_else(variable[0]) /*AIfexprExpr::_n_else*/ = variable[6] /*n_else*/;
15612 /* Register variable[8]: Result */
15613 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_else*/ == NIT_NULL /*null*/) || (( variable[6] /*n_else*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_else*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_else*/)( variable[6] /*n_else*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15614 if (UNTAG_Bool(variable[8])) { /*if*/
15615 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_else*/)( variable[6] /*n_else*/, variable[0]) /*PNode::parent=*/;
15616 }
15617 return_label498: while(false);
15618 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
15619 tracehead = trace.prev;
15620 return;
15621 }
15622 void parser_prod___AWhileExpr___n_kwwhile__eq(val_t self, val_t param0) {
15623 struct trace_t trace = {NULL, NULL, 5718, LOCATE_parser_prod___AWhileExpr___n_kwwhile__eq};
15624 val_t variable[4];
15625 struct WBT_ **closurevariable = NULL;
15626 trace.prev = tracehead; tracehead = &trace;
15627 trace.file = LOCATE_parser_prod;
15628 /* Register variable[0]: Local variable */
15629 variable[0] = self;
15630 /* Register variable[1]: Local variable */
15631 variable[1] = param0;
15632 /* Register variable[2]: Method return value and escape marker */
15633 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/ = variable[1] /*n*/;
15634 /* Register variable[3]: Result */
15635 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15636 if (UNTAG_Bool(variable[3])) { /*if*/
15637 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15638 }
15639 return_label499: while(false);
15640 tracehead = trace.prev;
15641 return;
15642 }
15643 void parser_prod___AWhileExpr___n_expr__eq(val_t self, val_t param0) {
15644 struct trace_t trace = {NULL, NULL, 5725, LOCATE_parser_prod___AWhileExpr___n_expr__eq};
15645 val_t variable[4];
15646 struct WBT_ **closurevariable = NULL;
15647 trace.prev = tracehead; tracehead = &trace;
15648 trace.file = LOCATE_parser_prod;
15649 /* Register variable[0]: Local variable */
15650 variable[0] = self;
15651 /* Register variable[1]: Local variable */
15652 variable[1] = param0;
15653 /* Register variable[2]: Method return value and escape marker */
15654 ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/ = variable[1] /*n*/;
15655 /* Register variable[3]: Result */
15656 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15657 if (UNTAG_Bool(variable[3])) { /*if*/
15658 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15659 }
15660 return_label500: while(false);
15661 tracehead = trace.prev;
15662 return;
15663 }
15664 void parser_prod___AWhileExpr___n_kwdo__eq(val_t self, val_t param0) {
15665 struct trace_t trace = {NULL, NULL, 5732, LOCATE_parser_prod___AWhileExpr___n_kwdo__eq};
15666 val_t variable[4];
15667 struct WBT_ **closurevariable = NULL;
15668 trace.prev = tracehead; tracehead = &trace;
15669 trace.file = LOCATE_parser_prod;
15670 /* Register variable[0]: Local variable */
15671 variable[0] = self;
15672 /* Register variable[1]: Local variable */
15673 variable[1] = param0;
15674 /* Register variable[2]: Method return value and escape marker */
15675 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/ = variable[1] /*n*/;
15676 /* Register variable[3]: Result */
15677 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15678 if (UNTAG_Bool(variable[3])) { /*if*/
15679 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15680 }
15681 return_label501: while(false);
15682 tracehead = trace.prev;
15683 return;
15684 }
15685 void parser_prod___AWhileExpr___n_block__eq(val_t self, val_t param0) {
15686 struct trace_t trace = {NULL, NULL, 5739, LOCATE_parser_prod___AWhileExpr___n_block__eq};
15687 val_t variable[4];
15688 struct WBT_ **closurevariable = NULL;
15689 trace.prev = tracehead; tracehead = &trace;
15690 trace.file = LOCATE_parser_prod;
15691 /* Register variable[0]: Local variable */
15692 variable[0] = self;
15693 /* Register variable[1]: Local variable */
15694 variable[1] = param0;
15695 /* Register variable[2]: Method return value and escape marker */
15696 ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/ = variable[1] /*n*/;
15697 /* Register variable[3]: Result */
15698 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15699 if (UNTAG_Bool(variable[3])) { /*if*/
15700 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15701 }
15702 return_label502: while(false);
15703 tracehead = trace.prev;
15704 return;
15705 }
15706 void parser_prod___AWhileExpr___replace_child(val_t self, val_t param0, val_t param1) {
15707 struct trace_t trace = {NULL, NULL, 5775, LOCATE_parser_prod___AWhileExpr___replace_child};
15708 val_t variable[5];
15709 struct WBT_ **closurevariable = NULL;
15710 trace.prev = tracehead; tracehead = &trace;
15711 trace.file = LOCATE_parser_prod;
15712 /* Register variable[0]: Local variable */
15713 variable[0] = self;
15714 /* Register variable[1]: Local variable */
15715 variable[1] = param0;
15716 /* Register variable[2]: Local variable */
15717 variable[2] = param1;
15718 /* Register variable[3]: Method return value and escape marker */
15719 /* Register variable[4]: Result */
15720 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15721 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5777); nit_exit(1);}
15722 /* Register variable[4]: Result */
15723 variable[4] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/;
15724 /* Register variable[4]: Result */
15725 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15726 if (UNTAG_Bool(variable[4])) { /*if*/
15727 /* Register variable[4]: Result */
15728 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15729 if (UNTAG_Bool(variable[4])) { /*if*/
15730 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15731 /* Register variable[4]: Result */
15732 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
15733 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5781); nit_exit(1);}
15734 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/ = variable[2] /*new_child*/;
15735 } else { /*if*/
15736 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/ = NIT_NULL /*null*/;
15737 }
15738 goto return_label503;
15739 }
15740 /* Register variable[4]: Result */
15741 variable[4] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/;
15742 /* Register variable[4]: Result */
15743 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15744 if (UNTAG_Bool(variable[4])) { /*if*/
15745 /* Register variable[4]: Result */
15746 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15747 if (UNTAG_Bool(variable[4])) { /*if*/
15748 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15749 /* Register variable[4]: Result */
15750 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15751 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5791); nit_exit(1);}
15752 ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/ = variable[2] /*new_child*/;
15753 } else { /*if*/
15754 ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/ = NIT_NULL /*null*/;
15755 }
15756 goto return_label503;
15757 }
15758 /* Register variable[4]: Result */
15759 variable[4] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/;
15760 /* Register variable[4]: Result */
15761 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15762 if (UNTAG_Bool(variable[4])) { /*if*/
15763 /* Register variable[4]: Result */
15764 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15765 if (UNTAG_Bool(variable[4])) { /*if*/
15766 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15767 /* Register variable[4]: Result */
15768 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
15769 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5801); nit_exit(1);}
15770 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/ = variable[2] /*new_child*/;
15771 } else { /*if*/
15772 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/ = NIT_NULL /*null*/;
15773 }
15774 goto return_label503;
15775 }
15776 /* Register variable[4]: Result */
15777 variable[4] = ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/;
15778 /* Register variable[4]: Result */
15779 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15780 if (UNTAG_Bool(variable[4])) { /*if*/
15781 /* Register variable[4]: Result */
15782 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15783 if (UNTAG_Bool(variable[4])) { /*if*/
15784 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
15785 /* Register variable[4]: Result */
15786 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15787 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5811); nit_exit(1);}
15788 ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/ = variable[2] /*new_child*/;
15789 } else { /*if*/
15790 ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/ = NIT_NULL /*null*/;
15791 }
15792 goto return_label503;
15793 }
15794 return_label503: while(false);
15795 tracehead = trace.prev;
15796 return;
15797 }
15798 void parser_prod___AWhileExpr___visit_all(val_t self, val_t param0) {
15799 struct trace_t trace = {NULL, NULL, 5820, LOCATE_parser_prod___AWhileExpr___visit_all};
15800 val_t variable[4];
15801 struct WBT_ **closurevariable = NULL;
15802 trace.prev = tracehead; tracehead = &trace;
15803 trace.file = LOCATE_parser_prod;
15804 /* Register variable[0]: Local variable */
15805 variable[0] = self;
15806 /* Register variable[1]: Local variable */
15807 variable[1] = param0;
15808 /* Register variable[2]: Method return value and escape marker */
15809 /* Register variable[3]: Result */
15810 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/;
15811 /* Register variable[3]: Result */
15812 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::==*/)))))));
15813 if (UNTAG_Bool(variable[3])) { /*if*/
15814 /* Register variable[3]: Result */
15815 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/;
15816 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15817 }
15818 /* Register variable[3]: Result */
15819 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/;
15820 /* Register variable[3]: Result */
15821 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::==*/)))))));
15822 if (UNTAG_Bool(variable[3])) { /*if*/
15823 /* Register variable[3]: Result */
15824 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/;
15825 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15826 }
15827 /* Register variable[3]: Result */
15828 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/;
15829 /* Register variable[3]: Result */
15830 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::==*/)))))));
15831 if (UNTAG_Bool(variable[3])) { /*if*/
15832 /* Register variable[3]: Result */
15833 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/;
15834 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15835 }
15836 /* Register variable[3]: Result */
15837 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/;
15838 /* Register variable[3]: Result */
15839 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::==*/)))))));
15840 if (UNTAG_Bool(variable[3])) { /*if*/
15841 /* Register variable[3]: Result */
15842 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/;
15843 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15844 }
15845 return_label504: while(false);
15846 tracehead = trace.prev;
15847 return;
15848 }
15849 void parser_prod___AWhileExpr___visit_all_reverse(val_t self, val_t param0) {
15850 struct trace_t trace = {NULL, NULL, 5836, LOCATE_parser_prod___AWhileExpr___visit_all_reverse};
15851 val_t variable[4];
15852 struct WBT_ **closurevariable = NULL;
15853 trace.prev = tracehead; tracehead = &trace;
15854 trace.file = LOCATE_parser_prod;
15855 /* Register variable[0]: Local variable */
15856 variable[0] = self;
15857 /* Register variable[1]: Local variable */
15858 variable[1] = param0;
15859 /* Register variable[2]: Method return value and escape marker */
15860 /* Register variable[3]: Result */
15861 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/;
15862 /* Register variable[3]: Result */
15863 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::==*/)))))));
15864 if (UNTAG_Bool(variable[3])) { /*if*/
15865 /* Register variable[3]: Result */
15866 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/;
15867 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15868 }
15869 /* Register variable[3]: Result */
15870 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/;
15871 /* Register variable[3]: Result */
15872 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::==*/)))))));
15873 if (UNTAG_Bool(variable[3])) { /*if*/
15874 /* Register variable[3]: Result */
15875 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/;
15876 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15877 }
15878 /* Register variable[3]: Result */
15879 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/;
15880 /* Register variable[3]: Result */
15881 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::==*/)))))));
15882 if (UNTAG_Bool(variable[3])) { /*if*/
15883 /* Register variable[3]: Result */
15884 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/;
15885 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15886 }
15887 /* Register variable[3]: Result */
15888 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/;
15889 /* Register variable[3]: Result */
15890 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::==*/)))))));
15891 if (UNTAG_Bool(variable[3])) { /*if*/
15892 /* Register variable[3]: Result */
15893 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/;
15894 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15895 }
15896 return_label505: while(false);
15897 tracehead = trace.prev;
15898 return;
15899 }
15900 void parser_prod___AWhileExpr___empty_init(val_t self, int* init_table) {
15901 struct trace_t trace = {NULL, NULL, 5747, LOCATE_parser_prod___AWhileExpr___empty_init};
15902 val_t variable[2];
15903 struct WBT_ **closurevariable = NULL;
15904 trace.prev = tracehead; tracehead = &trace;
15905 trace.file = LOCATE_parser_prod;
15906 /* Register variable[0]: Local variable */
15907 variable[0] = self;
15908 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
15909 /* Register variable[1]: Method return value and escape marker */
15910 return_label506: while(false);
15911 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
15912 tracehead = trace.prev;
15913 return;
15914 }
15915 void parser_prod___AWhileExpr___init_awhileexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
15916 struct trace_t trace = {NULL, NULL, 5749, LOCATE_parser_prod___AWhileExpr___init_awhileexpr};
15917 val_t variable[7];
15918 struct WBT_ **closurevariable = NULL;
15919 trace.prev = tracehead; tracehead = &trace;
15920 trace.file = LOCATE_parser_prod;
15921 /* Register variable[0]: Local variable */
15922 variable[0] = self;
15923 /* Register variable[1]: Local variable */
15924 variable[1] = param0;
15925 /* Register variable[2]: Local variable */
15926 variable[2] = param1;
15927 /* Register variable[3]: Local variable */
15928 variable[3] = param2;
15929 /* Register variable[4]: Local variable */
15930 variable[4] = param3;
15931 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
15932 /* Register variable[5]: Method return value and escape marker */
15933 CALL_parser_prod___AWhileExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AWhileExpr::empty_init*/;
15934 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[0]) /*AWhileExpr::_n_kwwhile*/ = variable[1] /*n_kwwhile*/;
15935 /* Register variable[6]: Result */
15936 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwhile*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwwhile*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwwhile*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwhile*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwwhile*/)( variable[1] /*n_kwwhile*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15937 if (UNTAG_Bool(variable[6])) { /*if*/
15938 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwhile*/)( variable[1] /*n_kwwhile*/, variable[0]) /*PNode::parent=*/;
15939 }
15940 ATTR_parser_nodes___AWhileExpr____n_expr(variable[0]) /*AWhileExpr::_n_expr*/ = variable[2] /*n_expr*/;
15941 /* Register variable[6]: Result */
15942 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15943 if (UNTAG_Bool(variable[6])) { /*if*/
15944 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
15945 }
15946 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[0]) /*AWhileExpr::_n_kwdo*/ = variable[3] /*n_kwdo*/;
15947 /* Register variable[6]: Result */
15948 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable[3] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15949 if (UNTAG_Bool(variable[6])) { /*if*/
15950 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, variable[0]) /*PNode::parent=*/;
15951 }
15952 ATTR_parser_nodes___AWhileExpr____n_block(variable[0]) /*AWhileExpr::_n_block*/ = variable[4] /*n_block*/;
15953 /* Register variable[6]: Result */
15954 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_block*/ == NIT_NULL /*null*/) || (( variable[4] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_block*/)( variable[4] /*n_block*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15955 if (UNTAG_Bool(variable[6])) { /*if*/
15956 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_block*/)( variable[4] /*n_block*/, variable[0]) /*PNode::parent=*/;
15957 }
15958 return_label507: while(false);
15959 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
15960 tracehead = trace.prev;
15961 return;
15962 }
15963 void parser_prod___AForExpr___n_kwfor__eq(val_t self, val_t param0) {
15964 struct trace_t trace = {NULL, NULL, 5853, LOCATE_parser_prod___AForExpr___n_kwfor__eq};
15965 val_t variable[4];
15966 struct WBT_ **closurevariable = NULL;
15967 trace.prev = tracehead; tracehead = &trace;
15968 trace.file = LOCATE_parser_prod;
15969 /* Register variable[0]: Local variable */
15970 variable[0] = self;
15971 /* Register variable[1]: Local variable */
15972 variable[1] = param0;
15973 /* Register variable[2]: Method return value and escape marker */
15974 ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/ = variable[1] /*n*/;
15975 /* Register variable[3]: Result */
15976 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15977 if (UNTAG_Bool(variable[3])) { /*if*/
15978 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
15979 }
15980 return_label508: while(false);
15981 tracehead = trace.prev;
15982 return;
15983 }
15984 void parser_prod___AForExpr___n_id__eq(val_t self, val_t param0) {
15985 struct trace_t trace = {NULL, NULL, 5860, LOCATE_parser_prod___AForExpr___n_id__eq};
15986 val_t variable[4];
15987 struct WBT_ **closurevariable = NULL;
15988 trace.prev = tracehead; tracehead = &trace;
15989 trace.file = LOCATE_parser_prod;
15990 /* Register variable[0]: Local variable */
15991 variable[0] = self;
15992 /* Register variable[1]: Local variable */
15993 variable[1] = param0;
15994 /* Register variable[2]: Method return value and escape marker */
15995 ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/ = variable[1] /*n*/;
15996 /* Register variable[3]: Result */
15997 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15998 if (UNTAG_Bool(variable[3])) { /*if*/
15999 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16000 }
16001 return_label509: while(false);
16002 tracehead = trace.prev;
16003 return;
16004 }
16005 void parser_prod___AForExpr___n_expr__eq(val_t self, val_t param0) {
16006 struct trace_t trace = {NULL, NULL, 5867, LOCATE_parser_prod___AForExpr___n_expr__eq};
16007 val_t variable[4];
16008 struct WBT_ **closurevariable = NULL;
16009 trace.prev = tracehead; tracehead = &trace;
16010 trace.file = LOCATE_parser_prod;
16011 /* Register variable[0]: Local variable */
16012 variable[0] = self;
16013 /* Register variable[1]: Local variable */
16014 variable[1] = param0;
16015 /* Register variable[2]: Method return value and escape marker */
16016 ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/ = variable[1] /*n*/;
16017 /* Register variable[3]: Result */
16018 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16019 if (UNTAG_Bool(variable[3])) { /*if*/
16020 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16021 }
16022 return_label510: while(false);
16023 tracehead = trace.prev;
16024 return;
16025 }
16026 void parser_prod___AForExpr___n_kwdo__eq(val_t self, val_t param0) {
16027 struct trace_t trace = {NULL, NULL, 5874, LOCATE_parser_prod___AForExpr___n_kwdo__eq};
16028 val_t variable[4];
16029 struct WBT_ **closurevariable = NULL;
16030 trace.prev = tracehead; tracehead = &trace;
16031 trace.file = LOCATE_parser_prod;
16032 /* Register variable[0]: Local variable */
16033 variable[0] = self;
16034 /* Register variable[1]: Local variable */
16035 variable[1] = param0;
16036 /* Register variable[2]: Method return value and escape marker */
16037 ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/ = variable[1] /*n*/;
16038 /* Register variable[3]: Result */
16039 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16040 if (UNTAG_Bool(variable[3])) { /*if*/
16041 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16042 }
16043 return_label511: while(false);
16044 tracehead = trace.prev;
16045 return;
16046 }
16047 void parser_prod___AForExpr___n_block__eq(val_t self, val_t param0) {
16048 struct trace_t trace = {NULL, NULL, 5881, LOCATE_parser_prod___AForExpr___n_block__eq};
16049 val_t variable[4];
16050 struct WBT_ **closurevariable = NULL;
16051 trace.prev = tracehead; tracehead = &trace;
16052 trace.file = LOCATE_parser_prod;
16053 /* Register variable[0]: Local variable */
16054 variable[0] = self;
16055 /* Register variable[1]: Local variable */
16056 variable[1] = param0;
16057 /* Register variable[2]: Method return value and escape marker */
16058 ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/ = variable[1] /*n*/;
16059 /* Register variable[3]: Result */
16060 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16061 if (UNTAG_Bool(variable[3])) { /*if*/
16062 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16063 }
16064 return_label512: while(false);
16065 tracehead = trace.prev;
16066 return;
16067 }
16068 void parser_prod___AForExpr___replace_child(val_t self, val_t param0, val_t param1) {
16069 struct trace_t trace = {NULL, NULL, 5922, LOCATE_parser_prod___AForExpr___replace_child};
16070 val_t variable[5];
16071 struct WBT_ **closurevariable = NULL;
16072 trace.prev = tracehead; tracehead = &trace;
16073 trace.file = LOCATE_parser_prod;
16074 /* Register variable[0]: Local variable */
16075 variable[0] = self;
16076 /* Register variable[1]: Local variable */
16077 variable[1] = param0;
16078 /* Register variable[2]: Local variable */
16079 variable[2] = param1;
16080 /* Register variable[3]: Method return value and escape marker */
16081 /* Register variable[4]: Result */
16082 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16083 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5924); nit_exit(1);}
16084 /* Register variable[4]: Result */
16085 variable[4] = ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/;
16086 /* Register variable[4]: Result */
16087 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16088 if (UNTAG_Bool(variable[4])) { /*if*/
16089 /* Register variable[4]: Result */
16090 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16091 if (UNTAG_Bool(variable[4])) { /*if*/
16092 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16093 /* Register variable[4]: Result */
16094 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
16095 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5928); nit_exit(1);}
16096 ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/ = variable[2] /*new_child*/;
16097 } else { /*if*/
16098 ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/ = NIT_NULL /*null*/;
16099 }
16100 goto return_label513;
16101 }
16102 /* Register variable[4]: Result */
16103 variable[4] = ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/;
16104 /* Register variable[4]: Result */
16105 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16106 if (UNTAG_Bool(variable[4])) { /*if*/
16107 /* Register variable[4]: Result */
16108 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16109 if (UNTAG_Bool(variable[4])) { /*if*/
16110 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16111 /* Register variable[4]: Result */
16112 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
16113 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5938); nit_exit(1);}
16114 ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/ = variable[2] /*new_child*/;
16115 } else { /*if*/
16116 ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/ = NIT_NULL /*null*/;
16117 }
16118 goto return_label513;
16119 }
16120 /* Register variable[4]: Result */
16121 variable[4] = ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/;
16122 /* Register variable[4]: Result */
16123 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16124 if (UNTAG_Bool(variable[4])) { /*if*/
16125 /* Register variable[4]: Result */
16126 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16127 if (UNTAG_Bool(variable[4])) { /*if*/
16128 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16129 /* Register variable[4]: Result */
16130 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16131 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5948); nit_exit(1);}
16132 ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/ = variable[2] /*new_child*/;
16133 } else { /*if*/
16134 ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/ = NIT_NULL /*null*/;
16135 }
16136 goto return_label513;
16137 }
16138 /* Register variable[4]: Result */
16139 variable[4] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/;
16140 /* Register variable[4]: Result */
16141 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16142 if (UNTAG_Bool(variable[4])) { /*if*/
16143 /* Register variable[4]: Result */
16144 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16145 if (UNTAG_Bool(variable[4])) { /*if*/
16146 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16147 /* Register variable[4]: Result */
16148 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
16149 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5958); nit_exit(1);}
16150 ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/ = variable[2] /*new_child*/;
16151 } else { /*if*/
16152 ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/ = NIT_NULL /*null*/;
16153 }
16154 goto return_label513;
16155 }
16156 /* Register variable[4]: Result */
16157 variable[4] = ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/;
16158 /* Register variable[4]: Result */
16159 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16160 if (UNTAG_Bool(variable[4])) { /*if*/
16161 /* Register variable[4]: Result */
16162 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16163 if (UNTAG_Bool(variable[4])) { /*if*/
16164 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16165 /* Register variable[4]: Result */
16166 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16167 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5968); nit_exit(1);}
16168 ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/ = variable[2] /*new_child*/;
16169 } else { /*if*/
16170 ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/ = NIT_NULL /*null*/;
16171 }
16172 goto return_label513;
16173 }
16174 return_label513: while(false);
16175 tracehead = trace.prev;
16176 return;
16177 }
16178 void parser_prod___AForExpr___visit_all(val_t self, val_t param0) {
16179 struct trace_t trace = {NULL, NULL, 5977, LOCATE_parser_prod___AForExpr___visit_all};
16180 val_t variable[4];
16181 struct WBT_ **closurevariable = NULL;
16182 trace.prev = tracehead; tracehead = &trace;
16183 trace.file = LOCATE_parser_prod;
16184 /* Register variable[0]: Local variable */
16185 variable[0] = self;
16186 /* Register variable[1]: Local variable */
16187 variable[1] = param0;
16188 /* Register variable[2]: Method return value and escape marker */
16189 /* Register variable[3]: Result */
16190 variable[3] = ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/;
16191 /* Register variable[3]: Result */
16192 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::==*/)))))));
16193 if (UNTAG_Bool(variable[3])) { /*if*/
16194 /* Register variable[3]: Result */
16195 variable[3] = ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/;
16196 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16197 }
16198 /* Register variable[3]: Result */
16199 variable[3] = ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/;
16200 /* Register variable[3]: Result */
16201 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::==*/)))))));
16202 if (UNTAG_Bool(variable[3])) { /*if*/
16203 /* Register variable[3]: Result */
16204 variable[3] = ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/;
16205 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16206 }
16207 /* Register variable[3]: Result */
16208 variable[3] = ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/;
16209 /* Register variable[3]: Result */
16210 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::==*/)))))));
16211 if (UNTAG_Bool(variable[3])) { /*if*/
16212 /* Register variable[3]: Result */
16213 variable[3] = ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/;
16214 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16215 }
16216 /* Register variable[3]: Result */
16217 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/;
16218 /* Register variable[3]: Result */
16219 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::==*/)))))));
16220 if (UNTAG_Bool(variable[3])) { /*if*/
16221 /* Register variable[3]: Result */
16222 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/;
16223 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16224 }
16225 /* Register variable[3]: Result */
16226 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/;
16227 /* Register variable[3]: Result */
16228 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::==*/)))))));
16229 if (UNTAG_Bool(variable[3])) { /*if*/
16230 /* Register variable[3]: Result */
16231 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/;
16232 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16233 }
16234 return_label514: while(false);
16235 tracehead = trace.prev;
16236 return;
16237 }
16238 void parser_prod___AForExpr___visit_all_reverse(val_t self, val_t param0) {
16239 struct trace_t trace = {NULL, NULL, 5996, LOCATE_parser_prod___AForExpr___visit_all_reverse};
16240 val_t variable[4];
16241 struct WBT_ **closurevariable = NULL;
16242 trace.prev = tracehead; tracehead = &trace;
16243 trace.file = LOCATE_parser_prod;
16244 /* Register variable[0]: Local variable */
16245 variable[0] = self;
16246 /* Register variable[1]: Local variable */
16247 variable[1] = param0;
16248 /* Register variable[2]: Method return value and escape marker */
16249 /* Register variable[3]: Result */
16250 variable[3] = ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/;
16251 /* Register variable[3]: Result */
16252 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::==*/)))))));
16253 if (UNTAG_Bool(variable[3])) { /*if*/
16254 /* Register variable[3]: Result */
16255 variable[3] = ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/;
16256 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16257 }
16258 /* Register variable[3]: Result */
16259 variable[3] = ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/;
16260 /* Register variable[3]: Result */
16261 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::==*/)))))));
16262 if (UNTAG_Bool(variable[3])) { /*if*/
16263 /* Register variable[3]: Result */
16264 variable[3] = ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/;
16265 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16266 }
16267 /* Register variable[3]: Result */
16268 variable[3] = ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/;
16269 /* Register variable[3]: Result */
16270 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::==*/)))))));
16271 if (UNTAG_Bool(variable[3])) { /*if*/
16272 /* Register variable[3]: Result */
16273 variable[3] = ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/;
16274 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16275 }
16276 /* Register variable[3]: Result */
16277 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/;
16278 /* Register variable[3]: Result */
16279 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::==*/)))))));
16280 if (UNTAG_Bool(variable[3])) { /*if*/
16281 /* Register variable[3]: Result */
16282 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/;
16283 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16284 }
16285 /* Register variable[3]: Result */
16286 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/;
16287 /* Register variable[3]: Result */
16288 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::==*/)))))));
16289 if (UNTAG_Bool(variable[3])) { /*if*/
16290 /* Register variable[3]: Result */
16291 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/;
16292 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16293 }
16294 return_label515: while(false);
16295 tracehead = trace.prev;
16296 return;
16297 }
16298 void parser_prod___AForExpr___empty_init(val_t self, int* init_table) {
16299 struct trace_t trace = {NULL, NULL, 5889, LOCATE_parser_prod___AForExpr___empty_init};
16300 val_t variable[2];
16301 struct WBT_ **closurevariable = NULL;
16302 trace.prev = tracehead; tracehead = &trace;
16303 trace.file = LOCATE_parser_prod;
16304 /* Register variable[0]: Local variable */
16305 variable[0] = self;
16306 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i]) return;
16307 /* Register variable[1]: Method return value and escape marker */
16308 return_label516: while(false);
16309 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i] = 1;
16310 tracehead = trace.prev;
16311 return;
16312 }
16313 void parser_prod___AForExpr___init_aforexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, int* init_table) {
16314 struct trace_t trace = {NULL, NULL, 5891, LOCATE_parser_prod___AForExpr___init_aforexpr};
16315 val_t variable[8];
16316 struct WBT_ **closurevariable = NULL;
16317 trace.prev = tracehead; tracehead = &trace;
16318 trace.file = LOCATE_parser_prod;
16319 /* Register variable[0]: Local variable */
16320 variable[0] = self;
16321 /* Register variable[1]: Local variable */
16322 variable[1] = param0;
16323 /* Register variable[2]: Local variable */
16324 variable[2] = param1;
16325 /* Register variable[3]: Local variable */
16326 variable[3] = param2;
16327 /* Register variable[4]: Local variable */
16328 variable[4] = param3;
16329 /* Register variable[5]: Local variable */
16330 variable[5] = param4;
16331 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i]) return;
16332 /* Register variable[6]: Method return value and escape marker */
16333 CALL_parser_prod___AForExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AForExpr::empty_init*/;
16334 ATTR_parser_nodes___AForExpr____n_kwfor(variable[0]) /*AForExpr::_n_kwfor*/ = variable[1] /*n_kwfor*/;
16335 /* Register variable[7]: Result */
16336 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwfor*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwfor*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwfor*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwfor*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwfor*/)( variable[1] /*n_kwfor*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16337 if (UNTAG_Bool(variable[7])) { /*if*/
16338 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwfor*/)( variable[1] /*n_kwfor*/, variable[0]) /*PNode::parent=*/;
16339 }
16340 ATTR_parser_nodes___AForExpr____n_id(variable[0]) /*AForExpr::_n_id*/ = variable[2] /*n_id*/;
16341 /* Register variable[7]: Result */
16342 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16343 if (UNTAG_Bool(variable[7])) { /*if*/
16344 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
16345 }
16346 ATTR_parser_nodes___AForExpr____n_expr(variable[0]) /*AForExpr::_n_expr*/ = variable[3] /*n_expr*/;
16347 /* Register variable[7]: Result */
16348 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[3] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16349 if (UNTAG_Bool(variable[7])) { /*if*/
16350 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, variable[0]) /*PNode::parent=*/;
16351 }
16352 ATTR_parser_nodes___AForExpr____n_kwdo(variable[0]) /*AForExpr::_n_kwdo*/ = variable[4] /*n_kwdo*/;
16353 /* Register variable[7]: Result */
16354 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwdo*/)( variable[4] /*n_kwdo*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16355 if (UNTAG_Bool(variable[7])) { /*if*/
16356 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwdo*/)( variable[4] /*n_kwdo*/, variable[0]) /*PNode::parent=*/;
16357 }
16358 ATTR_parser_nodes___AForExpr____n_block(variable[0]) /*AForExpr::_n_block*/ = variable[5] /*n_block*/;
16359 /* Register variable[7]: Result */
16360 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_block*/ == NIT_NULL /*null*/) || (( variable[5] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_block*/)( variable[5] /*n_block*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16361 if (UNTAG_Bool(variable[7])) { /*if*/
16362 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_block*/)( variable[5] /*n_block*/, variable[0]) /*PNode::parent=*/;
16363 }
16364 return_label517: while(false);
16365 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i] = 1;
16366 tracehead = trace.prev;
16367 return;
16368 }
16369 void parser_prod___AAssertExpr___n_kwassert__eq(val_t self, val_t param0) {
16370 struct trace_t trace = {NULL, NULL, 6016, LOCATE_parser_prod___AAssertExpr___n_kwassert__eq};
16371 val_t variable[4];
16372 struct WBT_ **closurevariable = NULL;
16373 trace.prev = tracehead; tracehead = &trace;
16374 trace.file = LOCATE_parser_prod;
16375 /* Register variable[0]: Local variable */
16376 variable[0] = self;
16377 /* Register variable[1]: Local variable */
16378 variable[1] = param0;
16379 /* Register variable[2]: Method return value and escape marker */
16380 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/ = variable[1] /*n*/;
16381 /* Register variable[3]: Result */
16382 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16383 if (UNTAG_Bool(variable[3])) { /*if*/
16384 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16385 }
16386 return_label518: while(false);
16387 tracehead = trace.prev;
16388 return;
16389 }
16390 void parser_prod___AAssertExpr___n_id__eq(val_t self, val_t param0) {
16391 struct trace_t trace = {NULL, NULL, 6023, LOCATE_parser_prod___AAssertExpr___n_id__eq};
16392 val_t variable[4];
16393 struct WBT_ **closurevariable = NULL;
16394 trace.prev = tracehead; tracehead = &trace;
16395 trace.file = LOCATE_parser_prod;
16396 /* Register variable[0]: Local variable */
16397 variable[0] = self;
16398 /* Register variable[1]: Local variable */
16399 variable[1] = param0;
16400 /* Register variable[2]: Method return value and escape marker */
16401 ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/ = variable[1] /*n*/;
16402 /* Register variable[3]: Result */
16403 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16404 if (UNTAG_Bool(variable[3])) { /*if*/
16405 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16406 }
16407 return_label519: while(false);
16408 tracehead = trace.prev;
16409 return;
16410 }
16411 void parser_prod___AAssertExpr___n_expr__eq(val_t self, val_t param0) {
16412 struct trace_t trace = {NULL, NULL, 6030, LOCATE_parser_prod___AAssertExpr___n_expr__eq};
16413 val_t variable[4];
16414 struct WBT_ **closurevariable = NULL;
16415 trace.prev = tracehead; tracehead = &trace;
16416 trace.file = LOCATE_parser_prod;
16417 /* Register variable[0]: Local variable */
16418 variable[0] = self;
16419 /* Register variable[1]: Local variable */
16420 variable[1] = param0;
16421 /* Register variable[2]: Method return value and escape marker */
16422 ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/ = variable[1] /*n*/;
16423 /* Register variable[3]: Result */
16424 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16425 if (UNTAG_Bool(variable[3])) { /*if*/
16426 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16427 }
16428 return_label520: while(false);
16429 tracehead = trace.prev;
16430 return;
16431 }
16432 void parser_prod___AAssertExpr___replace_child(val_t self, val_t param0, val_t param1) {
16433 struct trace_t trace = {NULL, NULL, 6061, LOCATE_parser_prod___AAssertExpr___replace_child};
16434 val_t variable[5];
16435 struct WBT_ **closurevariable = NULL;
16436 trace.prev = tracehead; tracehead = &trace;
16437 trace.file = LOCATE_parser_prod;
16438 /* Register variable[0]: Local variable */
16439 variable[0] = self;
16440 /* Register variable[1]: Local variable */
16441 variable[1] = param0;
16442 /* Register variable[2]: Local variable */
16443 variable[2] = param1;
16444 /* Register variable[3]: Method return value and escape marker */
16445 /* Register variable[4]: Result */
16446 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16447 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6063); nit_exit(1);}
16448 /* Register variable[4]: Result */
16449 variable[4] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/;
16450 /* Register variable[4]: Result */
16451 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16452 if (UNTAG_Bool(variable[4])) { /*if*/
16453 /* Register variable[4]: Result */
16454 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16455 if (UNTAG_Bool(variable[4])) { /*if*/
16456 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16457 /* Register variable[4]: Result */
16458 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
16459 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6067); nit_exit(1);}
16460 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/ = variable[2] /*new_child*/;
16461 } else { /*if*/
16462 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/ = NIT_NULL /*null*/;
16463 }
16464 goto return_label521;
16465 }
16466 /* Register variable[4]: Result */
16467 variable[4] = ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/;
16468 /* Register variable[4]: Result */
16469 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16470 if (UNTAG_Bool(variable[4])) { /*if*/
16471 /* Register variable[4]: Result */
16472 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16473 if (UNTAG_Bool(variable[4])) { /*if*/
16474 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16475 /* Register variable[4]: Result */
16476 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
16477 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6077); nit_exit(1);}
16478 ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/ = variable[2] /*new_child*/;
16479 } else { /*if*/
16480 ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/ = NIT_NULL /*null*/;
16481 }
16482 goto return_label521;
16483 }
16484 /* Register variable[4]: Result */
16485 variable[4] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/;
16486 /* Register variable[4]: Result */
16487 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16488 if (UNTAG_Bool(variable[4])) { /*if*/
16489 /* Register variable[4]: Result */
16490 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16491 if (UNTAG_Bool(variable[4])) { /*if*/
16492 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16493 /* Register variable[4]: Result */
16494 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16495 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6087); nit_exit(1);}
16496 ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/ = variable[2] /*new_child*/;
16497 } else { /*if*/
16498 ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/ = NIT_NULL /*null*/;
16499 }
16500 goto return_label521;
16501 }
16502 return_label521: while(false);
16503 tracehead = trace.prev;
16504 return;
16505 }
16506 void parser_prod___AAssertExpr___visit_all(val_t self, val_t param0) {
16507 struct trace_t trace = {NULL, NULL, 6096, LOCATE_parser_prod___AAssertExpr___visit_all};
16508 val_t variable[4];
16509 struct WBT_ **closurevariable = NULL;
16510 trace.prev = tracehead; tracehead = &trace;
16511 trace.file = LOCATE_parser_prod;
16512 /* Register variable[0]: Local variable */
16513 variable[0] = self;
16514 /* Register variable[1]: Local variable */
16515 variable[1] = param0;
16516 /* Register variable[2]: Method return value and escape marker */
16517 /* Register variable[3]: Result */
16518 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/;
16519 /* Register variable[3]: Result */
16520 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::==*/)))))));
16521 if (UNTAG_Bool(variable[3])) { /*if*/
16522 /* Register variable[3]: Result */
16523 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/;
16524 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16525 }
16526 /* Register variable[3]: Result */
16527 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/;
16528 /* Register variable[3]: Result */
16529 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::==*/)))))));
16530 if (UNTAG_Bool(variable[3])) { /*if*/
16531 /* Register variable[3]: Result */
16532 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/;
16533 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16534 }
16535 /* Register variable[3]: Result */
16536 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/;
16537 /* Register variable[3]: Result */
16538 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::==*/)))))));
16539 if (UNTAG_Bool(variable[3])) { /*if*/
16540 /* Register variable[3]: Result */
16541 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/;
16542 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16543 }
16544 return_label522: while(false);
16545 tracehead = trace.prev;
16546 return;
16547 }
16548 void parser_prod___AAssertExpr___visit_all_reverse(val_t self, val_t param0) {
16549 struct trace_t trace = {NULL, NULL, 6109, LOCATE_parser_prod___AAssertExpr___visit_all_reverse};
16550 val_t variable[4];
16551 struct WBT_ **closurevariable = NULL;
16552 trace.prev = tracehead; tracehead = &trace;
16553 trace.file = LOCATE_parser_prod;
16554 /* Register variable[0]: Local variable */
16555 variable[0] = self;
16556 /* Register variable[1]: Local variable */
16557 variable[1] = param0;
16558 /* Register variable[2]: Method return value and escape marker */
16559 /* Register variable[3]: Result */
16560 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/;
16561 /* Register variable[3]: Result */
16562 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::==*/)))))));
16563 if (UNTAG_Bool(variable[3])) { /*if*/
16564 /* Register variable[3]: Result */
16565 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/;
16566 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16567 }
16568 /* Register variable[3]: Result */
16569 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/;
16570 /* Register variable[3]: Result */
16571 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::==*/)))))));
16572 if (UNTAG_Bool(variable[3])) { /*if*/
16573 /* Register variable[3]: Result */
16574 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/;
16575 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16576 }
16577 /* Register variable[3]: Result */
16578 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/;
16579 /* Register variable[3]: Result */
16580 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::==*/)))))));
16581 if (UNTAG_Bool(variable[3])) { /*if*/
16582 /* Register variable[3]: Result */
16583 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/;
16584 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16585 }
16586 return_label523: while(false);
16587 tracehead = trace.prev;
16588 return;
16589 }
16590 void parser_prod___AAssertExpr___empty_init(val_t self, int* init_table) {
16591 struct trace_t trace = {NULL, NULL, 6038, LOCATE_parser_prod___AAssertExpr___empty_init};
16592 val_t variable[2];
16593 struct WBT_ **closurevariable = NULL;
16594 trace.prev = tracehead; tracehead = &trace;
16595 trace.file = LOCATE_parser_prod;
16596 /* Register variable[0]: Local variable */
16597 variable[0] = self;
16598 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
16599 /* Register variable[1]: Method return value and escape marker */
16600 return_label524: while(false);
16601 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
16602 tracehead = trace.prev;
16603 return;
16604 }
16605 void parser_prod___AAssertExpr___init_aassertexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
16606 struct trace_t trace = {NULL, NULL, 6040, LOCATE_parser_prod___AAssertExpr___init_aassertexpr};
16607 val_t variable[6];
16608 struct WBT_ **closurevariable = NULL;
16609 trace.prev = tracehead; tracehead = &trace;
16610 trace.file = LOCATE_parser_prod;
16611 /* Register variable[0]: Local variable */
16612 variable[0] = self;
16613 /* Register variable[1]: Local variable */
16614 variable[1] = param0;
16615 /* Register variable[2]: Local variable */
16616 variable[2] = param1;
16617 /* Register variable[3]: Local variable */
16618 variable[3] = param2;
16619 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
16620 /* Register variable[4]: Method return value and escape marker */
16621 CALL_parser_prod___AAssertExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAssertExpr::empty_init*/;
16622 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[0]) /*AAssertExpr::_n_kwassert*/ = variable[1] /*n_kwassert*/;
16623 /* Register variable[5]: Result */
16624 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwassert*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwassert*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwassert*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwassert*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwassert*/)( variable[1] /*n_kwassert*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16625 if (UNTAG_Bool(variable[5])) { /*if*/
16626 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwassert*/)( variable[1] /*n_kwassert*/, variable[0]) /*PNode::parent=*/;
16627 }
16628 ATTR_parser_nodes___AAssertExpr____n_id(variable[0]) /*AAssertExpr::_n_id*/ = variable[2] /*n_id*/;
16629 /* Register variable[5]: Result */
16630 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16631 if (UNTAG_Bool(variable[5])) { /*if*/
16632 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
16633 }
16634 ATTR_parser_nodes___AAssertExpr____n_expr(variable[0]) /*AAssertExpr::_n_expr*/ = variable[3] /*n_expr*/;
16635 /* Register variable[5]: Result */
16636 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[3] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16637 if (UNTAG_Bool(variable[5])) { /*if*/
16638 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, variable[0]) /*PNode::parent=*/;
16639 }
16640 return_label525: while(false);
16641 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
16642 tracehead = trace.prev;
16643 return;
16644 }
16645 void parser_prod___AOnceExpr___n_expr__eq(val_t self, val_t param0) {
16646 struct trace_t trace = {NULL, NULL, 6130, LOCATE_parser_prod___AOnceExpr___n_expr__eq};
16647 val_t variable[4];
16648 struct WBT_ **closurevariable = NULL;
16649 trace.prev = tracehead; tracehead = &trace;
16650 trace.file = LOCATE_parser_prod;
16651 /* Register variable[0]: Local variable */
16652 variable[0] = self;
16653 /* Register variable[1]: Local variable */
16654 variable[1] = param0;
16655 /* Register variable[2]: Method return value and escape marker */
16656 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = variable[1] /*n*/;
16657 /* Register variable[3]: Result */
16658 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16659 if (UNTAG_Bool(variable[3])) { /*if*/
16660 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16661 }
16662 return_label526: while(false);
16663 tracehead = trace.prev;
16664 return;
16665 }
16666 void parser_prod___AOnceExpr___n_kwonce__eq(val_t self, val_t param0) {
16667 struct trace_t trace = {NULL, NULL, 6123, LOCATE_parser_prod___AOnceExpr___n_kwonce__eq};
16668 val_t variable[4];
16669 struct WBT_ **closurevariable = NULL;
16670 trace.prev = tracehead; tracehead = &trace;
16671 trace.file = LOCATE_parser_prod;
16672 /* Register variable[0]: Local variable */
16673 variable[0] = self;
16674 /* Register variable[1]: Local variable */
16675 variable[1] = param0;
16676 /* Register variable[2]: Method return value and escape marker */
16677 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/ = variable[1] /*n*/;
16678 /* Register variable[3]: Result */
16679 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16680 if (UNTAG_Bool(variable[3])) { /*if*/
16681 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16682 }
16683 return_label527: while(false);
16684 tracehead = trace.prev;
16685 return;
16686 }
16687 void parser_prod___AOnceExpr___replace_child(val_t self, val_t param0, val_t param1) {
16688 struct trace_t trace = {NULL, NULL, 6156, LOCATE_parser_prod___AOnceExpr___replace_child};
16689 val_t variable[5];
16690 struct WBT_ **closurevariable = NULL;
16691 trace.prev = tracehead; tracehead = &trace;
16692 trace.file = LOCATE_parser_prod;
16693 /* Register variable[0]: Local variable */
16694 variable[0] = self;
16695 /* Register variable[1]: Local variable */
16696 variable[1] = param0;
16697 /* Register variable[2]: Local variable */
16698 variable[2] = param1;
16699 /* Register variable[3]: Method return value and escape marker */
16700 /* Register variable[4]: Result */
16701 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16702 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOnceExpr___replace_child, LOCATE_parser_prod, 6158); nit_exit(1);}
16703 /* Register variable[4]: Result */
16704 variable[4] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/;
16705 /* Register variable[4]: Result */
16706 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16707 if (UNTAG_Bool(variable[4])) { /*if*/
16708 /* Register variable[4]: Result */
16709 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16710 if (UNTAG_Bool(variable[4])) { /*if*/
16711 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16712 /* Register variable[4]: Result */
16713 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
16714 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOnceExpr___replace_child, LOCATE_parser_prod, 6162); nit_exit(1);}
16715 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/ = variable[2] /*new_child*/;
16716 } else { /*if*/
16717 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/ = NIT_NULL /*null*/;
16718 }
16719 goto return_label528;
16720 }
16721 /* Register variable[4]: Result */
16722 variable[4] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
16723 /* Register variable[4]: Result */
16724 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16725 if (UNTAG_Bool(variable[4])) { /*if*/
16726 /* Register variable[4]: Result */
16727 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16728 if (UNTAG_Bool(variable[4])) { /*if*/
16729 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16730 /* Register variable[4]: Result */
16731 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16732 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOnceExpr___replace_child, LOCATE_parser_prod, 6172); nit_exit(1);}
16733 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = variable[2] /*new_child*/;
16734 } else { /*if*/
16735 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = NIT_NULL /*null*/;
16736 }
16737 goto return_label528;
16738 }
16739 return_label528: while(false);
16740 tracehead = trace.prev;
16741 return;
16742 }
16743 void parser_prod___AOnceExpr___visit_all(val_t self, val_t param0) {
16744 struct trace_t trace = {NULL, NULL, 6181, LOCATE_parser_prod___AOnceExpr___visit_all};
16745 val_t variable[4];
16746 struct WBT_ **closurevariable = NULL;
16747 trace.prev = tracehead; tracehead = &trace;
16748 trace.file = LOCATE_parser_prod;
16749 /* Register variable[0]: Local variable */
16750 variable[0] = self;
16751 /* Register variable[1]: Local variable */
16752 variable[1] = param0;
16753 /* Register variable[2]: Method return value and escape marker */
16754 /* Register variable[3]: Result */
16755 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/;
16756 /* Register variable[3]: Result */
16757 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::==*/)))))));
16758 if (UNTAG_Bool(variable[3])) { /*if*/
16759 /* Register variable[3]: Result */
16760 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/;
16761 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16762 }
16763 /* Register variable[3]: Result */
16764 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
16765 /* Register variable[3]: Result */
16766 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::==*/)))))));
16767 if (UNTAG_Bool(variable[3])) { /*if*/
16768 /* Register variable[3]: Result */
16769 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
16770 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16771 }
16772 return_label529: while(false);
16773 tracehead = trace.prev;
16774 return;
16775 }
16776 void parser_prod___AOnceExpr___visit_all_reverse(val_t self, val_t param0) {
16777 struct trace_t trace = {NULL, NULL, 6191, LOCATE_parser_prod___AOnceExpr___visit_all_reverse};
16778 val_t variable[4];
16779 struct WBT_ **closurevariable = NULL;
16780 trace.prev = tracehead; tracehead = &trace;
16781 trace.file = LOCATE_parser_prod;
16782 /* Register variable[0]: Local variable */
16783 variable[0] = self;
16784 /* Register variable[1]: Local variable */
16785 variable[1] = param0;
16786 /* Register variable[2]: Method return value and escape marker */
16787 /* Register variable[3]: Result */
16788 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/;
16789 /* Register variable[3]: Result */
16790 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::==*/)))))));
16791 if (UNTAG_Bool(variable[3])) { /*if*/
16792 /* Register variable[3]: Result */
16793 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/;
16794 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16795 }
16796 /* Register variable[3]: Result */
16797 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
16798 /* Register variable[3]: Result */
16799 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::==*/)))))));
16800 if (UNTAG_Bool(variable[3])) { /*if*/
16801 /* Register variable[3]: Result */
16802 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
16803 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16804 }
16805 return_label530: while(false);
16806 tracehead = trace.prev;
16807 return;
16808 }
16809 void parser_prod___AOnceExpr___empty_init(val_t self, int* init_table) {
16810 struct trace_t trace = {NULL, NULL, 6138, LOCATE_parser_prod___AOnceExpr___empty_init};
16811 val_t variable[2];
16812 struct WBT_ **closurevariable = NULL;
16813 trace.prev = tracehead; tracehead = &trace;
16814 trace.file = LOCATE_parser_prod;
16815 /* Register variable[0]: Local variable */
16816 variable[0] = self;
16817 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
16818 /* Register variable[1]: Method return value and escape marker */
16819 return_label531: while(false);
16820 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
16821 tracehead = trace.prev;
16822 return;
16823 }
16824 void parser_prod___AOnceExpr___init_aonceexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16825 struct trace_t trace = {NULL, NULL, 6140, LOCATE_parser_prod___AOnceExpr___init_aonceexpr};
16826 val_t variable[5];
16827 struct WBT_ **closurevariable = NULL;
16828 trace.prev = tracehead; tracehead = &trace;
16829 trace.file = LOCATE_parser_prod;
16830 /* Register variable[0]: Local variable */
16831 variable[0] = self;
16832 /* Register variable[1]: Local variable */
16833 variable[1] = param0;
16834 /* Register variable[2]: Local variable */
16835 variable[2] = param1;
16836 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
16837 /* Register variable[3]: Method return value and escape marker */
16838 CALL_parser_prod___AOnceExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AOnceExpr::empty_init*/;
16839 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[0]) /*AOnceExpr::_n_kwonce*/ = variable[1] /*n_kwonce*/;
16840 /* Register variable[4]: Result */
16841 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwonce*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwonce*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwonce*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwonce*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwonce*/)( variable[1] /*n_kwonce*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16842 if (UNTAG_Bool(variable[4])) { /*if*/
16843 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwonce*/)( variable[1] /*n_kwonce*/, variable[0]) /*PNode::parent=*/;
16844 }
16845 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = variable[2] /*n_expr*/;
16846 /* Register variable[4]: Result */
16847 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16848 if (UNTAG_Bool(variable[4])) { /*if*/
16849 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
16850 }
16851 return_label532: while(false);
16852 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
16853 tracehead = trace.prev;
16854 return;
16855 }
16856 void parser_prod___ASendExpr___n_expr__eq(val_t self, val_t param0) {
16857 struct trace_t trace = {NULL, NULL, 6202, LOCATE_parser_prod___ASendExpr___n_expr__eq};
16858 val_t variable[4];
16859 struct WBT_ **closurevariable = NULL;
16860 trace.prev = tracehead; tracehead = &trace;
16861 trace.file = LOCATE_parser_prod;
16862 /* Register variable[0]: Local variable */
16863 variable[0] = self;
16864 /* Register variable[1]: Local variable */
16865 variable[1] = param0;
16866 /* Register variable[2]: Method return value and escape marker */
16867 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
16868 /* Register variable[3]: Result */
16869 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16870 if (UNTAG_Bool(variable[3])) { /*if*/
16871 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
16872 }
16873 return_label533: while(false);
16874 tracehead = trace.prev;
16875 return;
16876 }
16877 void parser_prod___ASendExpr___replace_child(val_t self, val_t param0, val_t param1) {
16878 struct trace_t trace = {NULL, NULL, 6223, LOCATE_parser_prod___ASendExpr___replace_child};
16879 val_t variable[5];
16880 struct WBT_ **closurevariable = NULL;
16881 trace.prev = tracehead; tracehead = &trace;
16882 trace.file = LOCATE_parser_prod;
16883 /* Register variable[0]: Local variable */
16884 variable[0] = self;
16885 /* Register variable[1]: Local variable */
16886 variable[1] = param0;
16887 /* Register variable[2]: Local variable */
16888 variable[2] = param1;
16889 /* Register variable[3]: Method return value and escape marker */
16890 /* Register variable[4]: Result */
16891 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16892 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASendExpr___replace_child, LOCATE_parser_prod, 6225); nit_exit(1);}
16893 /* Register variable[4]: Result */
16894 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
16895 /* Register variable[4]: Result */
16896 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16897 if (UNTAG_Bool(variable[4])) { /*if*/
16898 /* Register variable[4]: Result */
16899 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16900 if (UNTAG_Bool(variable[4])) { /*if*/
16901 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
16902 /* Register variable[4]: Result */
16903 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16904 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASendExpr___replace_child, LOCATE_parser_prod, 6229); nit_exit(1);}
16905 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
16906 } else { /*if*/
16907 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
16908 }
16909 goto return_label534;
16910 }
16911 return_label534: while(false);
16912 tracehead = trace.prev;
16913 return;
16914 }
16915 void parser_prod___ASendExpr___visit_all(val_t self, val_t param0) {
16916 struct trace_t trace = {NULL, NULL, 6238, LOCATE_parser_prod___ASendExpr___visit_all};
16917 val_t variable[4];
16918 struct WBT_ **closurevariable = NULL;
16919 trace.prev = tracehead; tracehead = &trace;
16920 trace.file = LOCATE_parser_prod;
16921 /* Register variable[0]: Local variable */
16922 variable[0] = self;
16923 /* Register variable[1]: Local variable */
16924 variable[1] = param0;
16925 /* Register variable[2]: Method return value and escape marker */
16926 /* Register variable[3]: Result */
16927 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
16928 /* Register variable[3]: Result */
16929 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::==*/)))))));
16930 if (UNTAG_Bool(variable[3])) { /*if*/
16931 /* Register variable[3]: Result */
16932 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
16933 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16934 }
16935 return_label535: while(false);
16936 tracehead = trace.prev;
16937 return;
16938 }
16939 void parser_prod___ASendExpr___visit_all_reverse(val_t self, val_t param0) {
16940 struct trace_t trace = {NULL, NULL, 6245, LOCATE_parser_prod___ASendExpr___visit_all_reverse};
16941 val_t variable[4];
16942 struct WBT_ **closurevariable = NULL;
16943 trace.prev = tracehead; tracehead = &trace;
16944 trace.file = LOCATE_parser_prod;
16945 /* Register variable[0]: Local variable */
16946 variable[0] = self;
16947 /* Register variable[1]: Local variable */
16948 variable[1] = param0;
16949 /* Register variable[2]: Method return value and escape marker */
16950 /* Register variable[3]: Result */
16951 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
16952 /* Register variable[3]: Result */
16953 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::==*/)))))));
16954 if (UNTAG_Bool(variable[3])) { /*if*/
16955 /* Register variable[3]: Result */
16956 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
16957 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16958 }
16959 return_label536: while(false);
16960 tracehead = trace.prev;
16961 return;
16962 }
16963 void parser_prod___ASendExpr___empty_init(val_t self, int* init_table) {
16964 struct trace_t trace = {NULL, NULL, 6210, LOCATE_parser_prod___ASendExpr___empty_init};
16965 val_t variable[2];
16966 struct WBT_ **closurevariable = NULL;
16967 trace.prev = tracehead; tracehead = &trace;
16968 trace.file = LOCATE_parser_prod;
16969 /* Register variable[0]: Local variable */
16970 variable[0] = self;
16971 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i]) return;
16972 /* Register variable[1]: Method return value and escape marker */
16973 return_label537: while(false);
16974 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
16975 tracehead = trace.prev;
16976 return;
16977 }
16978 void parser_prod___ASendExpr___init_asendexpr(val_t self, val_t param0, int* init_table) {
16979 struct trace_t trace = {NULL, NULL, 6212, LOCATE_parser_prod___ASendExpr___init_asendexpr};
16980 val_t variable[4];
16981 struct WBT_ **closurevariable = NULL;
16982 trace.prev = tracehead; tracehead = &trace;
16983 trace.file = LOCATE_parser_prod;
16984 /* Register variable[0]: Local variable */
16985 variable[0] = self;
16986 /* Register variable[1]: Local variable */
16987 variable[1] = param0;
16988 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i]) return;
16989 /* Register variable[2]: Method return value and escape marker */
16990 CALL_parser_prod___ASendExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASendExpr::empty_init*/;
16991 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
16992 /* Register variable[3]: Result */
16993 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16994 if (UNTAG_Bool(variable[3])) { /*if*/
16995 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
16996 }
16997 return_label538: while(false);
16998 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
16999 tracehead = trace.prev;
17000 return;
17001 }
17002 void parser_prod___ABinopExpr___n_expr__eq(val_t self, val_t param0) {
17003 struct trace_t trace = {NULL, NULL, 6253, LOCATE_parser_prod___ABinopExpr___n_expr__eq};
17004 val_t variable[4];
17005 struct WBT_ **closurevariable = NULL;
17006 trace.prev = tracehead; tracehead = &trace;
17007 trace.file = LOCATE_parser_prod;
17008 /* Register variable[0]: Local variable */
17009 variable[0] = self;
17010 /* Register variable[1]: Local variable */
17011 variable[1] = param0;
17012 /* Register variable[2]: Method return value and escape marker */
17013 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
17014 /* Register variable[3]: Result */
17015 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17016 if (UNTAG_Bool(variable[3])) { /*if*/
17017 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17018 }
17019 return_label539: while(false);
17020 tracehead = trace.prev;
17021 return;
17022 }
17023 void parser_prod___ABinopExpr___n_expr2__eq(val_t self, val_t param0) {
17024 struct trace_t trace = {NULL, NULL, 6260, LOCATE_parser_prod___ABinopExpr___n_expr2__eq};
17025 val_t variable[4];
17026 struct WBT_ **closurevariable = NULL;
17027 trace.prev = tracehead; tracehead = &trace;
17028 trace.file = LOCATE_parser_prod;
17029 /* Register variable[0]: Local variable */
17030 variable[0] = self;
17031 /* Register variable[1]: Local variable */
17032 variable[1] = param0;
17033 /* Register variable[2]: Method return value and escape marker */
17034 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
17035 /* Register variable[3]: Result */
17036 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17037 if (UNTAG_Bool(variable[3])) { /*if*/
17038 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17039 }
17040 return_label540: while(false);
17041 tracehead = trace.prev;
17042 return;
17043 }
17044 void parser_prod___ABinopExpr___replace_child(val_t self, val_t param0, val_t param1) {
17045 struct trace_t trace = {NULL, NULL, 6286, LOCATE_parser_prod___ABinopExpr___replace_child};
17046 val_t variable[5];
17047 struct WBT_ **closurevariable = NULL;
17048 trace.prev = tracehead; tracehead = &trace;
17049 trace.file = LOCATE_parser_prod;
17050 /* Register variable[0]: Local variable */
17051 variable[0] = self;
17052 /* Register variable[1]: Local variable */
17053 variable[1] = param0;
17054 /* Register variable[2]: Local variable */
17055 variable[2] = param1;
17056 /* Register variable[3]: Method return value and escape marker */
17057 /* Register variable[4]: Result */
17058 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17059 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABinopExpr___replace_child, LOCATE_parser_prod, 6288); nit_exit(1);}
17060 /* Register variable[4]: Result */
17061 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17062 /* Register variable[4]: Result */
17063 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17064 if (UNTAG_Bool(variable[4])) { /*if*/
17065 /* Register variable[4]: Result */
17066 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17067 if (UNTAG_Bool(variable[4])) { /*if*/
17068 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17069 /* Register variable[4]: Result */
17070 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17071 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABinopExpr___replace_child, LOCATE_parser_prod, 6292); nit_exit(1);}
17072 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
17073 } else { /*if*/
17074 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
17075 }
17076 goto return_label541;
17077 }
17078 /* Register variable[4]: Result */
17079 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17080 /* Register variable[4]: Result */
17081 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17082 if (UNTAG_Bool(variable[4])) { /*if*/
17083 /* Register variable[4]: Result */
17084 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17085 if (UNTAG_Bool(variable[4])) { /*if*/
17086 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17087 /* Register variable[4]: Result */
17088 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17089 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABinopExpr___replace_child, LOCATE_parser_prod, 6302); nit_exit(1);}
17090 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
17091 } else { /*if*/
17092 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
17093 }
17094 goto return_label541;
17095 }
17096 return_label541: while(false);
17097 tracehead = trace.prev;
17098 return;
17099 }
17100 void parser_prod___ABinopExpr___visit_all(val_t self, val_t param0) {
17101 struct trace_t trace = {NULL, NULL, 6311, LOCATE_parser_prod___ABinopExpr___visit_all};
17102 val_t variable[4];
17103 struct WBT_ **closurevariable = NULL;
17104 trace.prev = tracehead; tracehead = &trace;
17105 trace.file = LOCATE_parser_prod;
17106 /* Register variable[0]: Local variable */
17107 variable[0] = self;
17108 /* Register variable[1]: Local variable */
17109 variable[1] = param0;
17110 /* Register variable[2]: Method return value and escape marker */
17111 /* Register variable[3]: Result */
17112 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17113 /* Register variable[3]: Result */
17114 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::==*/)))))));
17115 if (UNTAG_Bool(variable[3])) { /*if*/
17116 /* Register variable[3]: Result */
17117 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17118 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17119 }
17120 /* Register variable[3]: Result */
17121 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17122 /* Register variable[3]: Result */
17123 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::==*/)))))));
17124 if (UNTAG_Bool(variable[3])) { /*if*/
17125 /* Register variable[3]: Result */
17126 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17127 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17128 }
17129 return_label542: while(false);
17130 tracehead = trace.prev;
17131 return;
17132 }
17133 void parser_prod___ABinopExpr___visit_all_reverse(val_t self, val_t param0) {
17134 struct trace_t trace = {NULL, NULL, 6321, LOCATE_parser_prod___ABinopExpr___visit_all_reverse};
17135 val_t variable[4];
17136 struct WBT_ **closurevariable = NULL;
17137 trace.prev = tracehead; tracehead = &trace;
17138 trace.file = LOCATE_parser_prod;
17139 /* Register variable[0]: Local variable */
17140 variable[0] = self;
17141 /* Register variable[1]: Local variable */
17142 variable[1] = param0;
17143 /* Register variable[2]: Method return value and escape marker */
17144 /* Register variable[3]: Result */
17145 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17146 /* Register variable[3]: Result */
17147 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::==*/)))))));
17148 if (UNTAG_Bool(variable[3])) { /*if*/
17149 /* Register variable[3]: Result */
17150 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17151 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17152 }
17153 /* Register variable[3]: Result */
17154 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17155 /* Register variable[3]: Result */
17156 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::==*/)))))));
17157 if (UNTAG_Bool(variable[3])) { /*if*/
17158 /* Register variable[3]: Result */
17159 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17160 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17161 }
17162 return_label543: while(false);
17163 tracehead = trace.prev;
17164 return;
17165 }
17166 void parser_prod___ABinopExpr___empty_init(val_t self, int* init_table) {
17167 struct trace_t trace = {NULL, NULL, 6268, LOCATE_parser_prod___ABinopExpr___empty_init};
17168 val_t variable[2];
17169 struct WBT_ **closurevariable = NULL;
17170 trace.prev = tracehead; tracehead = &trace;
17171 trace.file = LOCATE_parser_prod;
17172 /* Register variable[0]: Local variable */
17173 variable[0] = self;
17174 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
17175 /* Register variable[1]: Method return value and escape marker */
17176 return_label544: while(false);
17177 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
17178 tracehead = trace.prev;
17179 return;
17180 }
17181 void parser_prod___ABinopExpr___init_abinopexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17182 struct trace_t trace = {NULL, NULL, 6270, LOCATE_parser_prod___ABinopExpr___init_abinopexpr};
17183 val_t variable[5];
17184 struct WBT_ **closurevariable = NULL;
17185 trace.prev = tracehead; tracehead = &trace;
17186 trace.file = LOCATE_parser_prod;
17187 /* Register variable[0]: Local variable */
17188 variable[0] = self;
17189 /* Register variable[1]: Local variable */
17190 variable[1] = param0;
17191 /* Register variable[2]: Local variable */
17192 variable[2] = param1;
17193 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
17194 /* Register variable[3]: Method return value and escape marker */
17195 CALL_parser_prod___ABinopExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABinopExpr::empty_init*/;
17196 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
17197 /* Register variable[4]: Result */
17198 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17199 if (UNTAG_Bool(variable[4])) { /*if*/
17200 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
17201 }
17202 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
17203 /* Register variable[4]: Result */
17204 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17205 if (UNTAG_Bool(variable[4])) { /*if*/
17206 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
17207 }
17208 return_label545: while(false);
17209 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
17210 tracehead = trace.prev;
17211 return;
17212 }
17213 void parser_prod___AOrExpr___n_expr__eq(val_t self, val_t param0) {
17214 struct trace_t trace = {NULL, NULL, 6332, LOCATE_parser_prod___AOrExpr___n_expr__eq};
17215 val_t variable[4];
17216 struct WBT_ **closurevariable = NULL;
17217 trace.prev = tracehead; tracehead = &trace;
17218 trace.file = LOCATE_parser_prod;
17219 /* Register variable[0]: Local variable */
17220 variable[0] = self;
17221 /* Register variable[1]: Local variable */
17222 variable[1] = param0;
17223 /* Register variable[2]: Method return value and escape marker */
17224 ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/ = variable[1] /*n*/;
17225 /* Register variable[3]: Result */
17226 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17227 if (UNTAG_Bool(variable[3])) { /*if*/
17228 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17229 }
17230 return_label546: while(false);
17231 tracehead = trace.prev;
17232 return;
17233 }
17234 void parser_prod___AOrExpr___n_expr2__eq(val_t self, val_t param0) {
17235 struct trace_t trace = {NULL, NULL, 6339, LOCATE_parser_prod___AOrExpr___n_expr2__eq};
17236 val_t variable[4];
17237 struct WBT_ **closurevariable = NULL;
17238 trace.prev = tracehead; tracehead = &trace;
17239 trace.file = LOCATE_parser_prod;
17240 /* Register variable[0]: Local variable */
17241 variable[0] = self;
17242 /* Register variable[1]: Local variable */
17243 variable[1] = param0;
17244 /* Register variable[2]: Method return value and escape marker */
17245 ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/ = variable[1] /*n*/;
17246 /* Register variable[3]: Result */
17247 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17248 if (UNTAG_Bool(variable[3])) { /*if*/
17249 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17250 }
17251 return_label547: while(false);
17252 tracehead = trace.prev;
17253 return;
17254 }
17255 void parser_prod___AOrExpr___replace_child(val_t self, val_t param0, val_t param1) {
17256 struct trace_t trace = {NULL, NULL, 6365, LOCATE_parser_prod___AOrExpr___replace_child};
17257 val_t variable[5];
17258 struct WBT_ **closurevariable = NULL;
17259 trace.prev = tracehead; tracehead = &trace;
17260 trace.file = LOCATE_parser_prod;
17261 /* Register variable[0]: Local variable */
17262 variable[0] = self;
17263 /* Register variable[1]: Local variable */
17264 variable[1] = param0;
17265 /* Register variable[2]: Local variable */
17266 variable[2] = param1;
17267 /* Register variable[3]: Method return value and escape marker */
17268 /* Register variable[4]: Result */
17269 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17270 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrExpr___replace_child, LOCATE_parser_prod, 6367); nit_exit(1);}
17271 /* Register variable[4]: Result */
17272 variable[4] = ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/;
17273 /* Register variable[4]: Result */
17274 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17275 if (UNTAG_Bool(variable[4])) { /*if*/
17276 /* Register variable[4]: Result */
17277 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17278 if (UNTAG_Bool(variable[4])) { /*if*/
17279 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17280 /* Register variable[4]: Result */
17281 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17282 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrExpr___replace_child, LOCATE_parser_prod, 6371); nit_exit(1);}
17283 ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/ = variable[2] /*new_child*/;
17284 } else { /*if*/
17285 ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/ = NIT_NULL /*null*/;
17286 }
17287 goto return_label548;
17288 }
17289 /* Register variable[4]: Result */
17290 variable[4] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/;
17291 /* Register variable[4]: Result */
17292 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17293 if (UNTAG_Bool(variable[4])) { /*if*/
17294 /* Register variable[4]: Result */
17295 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17296 if (UNTAG_Bool(variable[4])) { /*if*/
17297 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17298 /* Register variable[4]: Result */
17299 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17300 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrExpr___replace_child, LOCATE_parser_prod, 6381); nit_exit(1);}
17301 ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/ = variable[2] /*new_child*/;
17302 } else { /*if*/
17303 ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/ = NIT_NULL /*null*/;
17304 }
17305 goto return_label548;
17306 }
17307 return_label548: while(false);
17308 tracehead = trace.prev;
17309 return;
17310 }
17311 void parser_prod___AOrExpr___visit_all(val_t self, val_t param0) {
17312 struct trace_t trace = {NULL, NULL, 6390, LOCATE_parser_prod___AOrExpr___visit_all};
17313 val_t variable[4];
17314 struct WBT_ **closurevariable = NULL;
17315 trace.prev = tracehead; tracehead = &trace;
17316 trace.file = LOCATE_parser_prod;
17317 /* Register variable[0]: Local variable */
17318 variable[0] = self;
17319 /* Register variable[1]: Local variable */
17320 variable[1] = param0;
17321 /* Register variable[2]: Method return value and escape marker */
17322 /* Register variable[3]: Result */
17323 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/;
17324 /* Register variable[3]: Result */
17325 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::==*/)))))));
17326 if (UNTAG_Bool(variable[3])) { /*if*/
17327 /* Register variable[3]: Result */
17328 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/;
17329 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17330 }
17331 /* Register variable[3]: Result */
17332 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/;
17333 /* Register variable[3]: Result */
17334 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::==*/)))))));
17335 if (UNTAG_Bool(variable[3])) { /*if*/
17336 /* Register variable[3]: Result */
17337 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/;
17338 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17339 }
17340 return_label549: while(false);
17341 tracehead = trace.prev;
17342 return;
17343 }
17344 void parser_prod___AOrExpr___visit_all_reverse(val_t self, val_t param0) {
17345 struct trace_t trace = {NULL, NULL, 6400, LOCATE_parser_prod___AOrExpr___visit_all_reverse};
17346 val_t variable[4];
17347 struct WBT_ **closurevariable = NULL;
17348 trace.prev = tracehead; tracehead = &trace;
17349 trace.file = LOCATE_parser_prod;
17350 /* Register variable[0]: Local variable */
17351 variable[0] = self;
17352 /* Register variable[1]: Local variable */
17353 variable[1] = param0;
17354 /* Register variable[2]: Method return value and escape marker */
17355 /* Register variable[3]: Result */
17356 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/;
17357 /* Register variable[3]: Result */
17358 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::==*/)))))));
17359 if (UNTAG_Bool(variable[3])) { /*if*/
17360 /* Register variable[3]: Result */
17361 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/;
17362 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17363 }
17364 /* Register variable[3]: Result */
17365 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/;
17366 /* Register variable[3]: Result */
17367 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::==*/)))))));
17368 if (UNTAG_Bool(variable[3])) { /*if*/
17369 /* Register variable[3]: Result */
17370 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/;
17371 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17372 }
17373 return_label550: while(false);
17374 tracehead = trace.prev;
17375 return;
17376 }
17377 void parser_prod___AOrExpr___empty_init(val_t self, int* init_table) {
17378 struct trace_t trace = {NULL, NULL, 6347, LOCATE_parser_prod___AOrExpr___empty_init};
17379 val_t variable[2];
17380 struct WBT_ **closurevariable = NULL;
17381 trace.prev = tracehead; tracehead = &trace;
17382 trace.file = LOCATE_parser_prod;
17383 /* Register variable[0]: Local variable */
17384 variable[0] = self;
17385 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i]) return;
17386 /* Register variable[1]: Method return value and escape marker */
17387 return_label551: while(false);
17388 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
17389 tracehead = trace.prev;
17390 return;
17391 }
17392 void parser_prod___AOrExpr___init_aorexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17393 struct trace_t trace = {NULL, NULL, 6349, LOCATE_parser_prod___AOrExpr___init_aorexpr};
17394 val_t variable[5];
17395 struct WBT_ **closurevariable = NULL;
17396 trace.prev = tracehead; tracehead = &trace;
17397 trace.file = LOCATE_parser_prod;
17398 /* Register variable[0]: Local variable */
17399 variable[0] = self;
17400 /* Register variable[1]: Local variable */
17401 variable[1] = param0;
17402 /* Register variable[2]: Local variable */
17403 variable[2] = param1;
17404 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i]) return;
17405 /* Register variable[3]: Method return value and escape marker */
17406 CALL_parser_prod___AOrExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AOrExpr::empty_init*/;
17407 ATTR_parser_nodes___AOrExpr____n_expr(variable[0]) /*AOrExpr::_n_expr*/ = variable[1] /*n_expr*/;
17408 /* Register variable[4]: Result */
17409 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17410 if (UNTAG_Bool(variable[4])) { /*if*/
17411 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
17412 }
17413 ATTR_parser_nodes___AOrExpr____n_expr2(variable[0]) /*AOrExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
17414 /* Register variable[4]: Result */
17415 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17416 if (UNTAG_Bool(variable[4])) { /*if*/
17417 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
17418 }
17419 return_label552: while(false);
17420 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
17421 tracehead = trace.prev;
17422 return;
17423 }
17424 void parser_prod___AAndExpr___n_expr__eq(val_t self, val_t param0) {
17425 struct trace_t trace = {NULL, NULL, 6411, LOCATE_parser_prod___AAndExpr___n_expr__eq};
17426 val_t variable[4];
17427 struct WBT_ **closurevariable = NULL;
17428 trace.prev = tracehead; tracehead = &trace;
17429 trace.file = LOCATE_parser_prod;
17430 /* Register variable[0]: Local variable */
17431 variable[0] = self;
17432 /* Register variable[1]: Local variable */
17433 variable[1] = param0;
17434 /* Register variable[2]: Method return value and escape marker */
17435 ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/ = variable[1] /*n*/;
17436 /* Register variable[3]: Result */
17437 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17438 if (UNTAG_Bool(variable[3])) { /*if*/
17439 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17440 }
17441 return_label553: while(false);
17442 tracehead = trace.prev;
17443 return;
17444 }
17445 void parser_prod___AAndExpr___n_expr2__eq(val_t self, val_t param0) {
17446 struct trace_t trace = {NULL, NULL, 6418, LOCATE_parser_prod___AAndExpr___n_expr2__eq};
17447 val_t variable[4];
17448 struct WBT_ **closurevariable = NULL;
17449 trace.prev = tracehead; tracehead = &trace;
17450 trace.file = LOCATE_parser_prod;
17451 /* Register variable[0]: Local variable */
17452 variable[0] = self;
17453 /* Register variable[1]: Local variable */
17454 variable[1] = param0;
17455 /* Register variable[2]: Method return value and escape marker */
17456 ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/ = variable[1] /*n*/;
17457 /* Register variable[3]: Result */
17458 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17459 if (UNTAG_Bool(variable[3])) { /*if*/
17460 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17461 }
17462 return_label554: while(false);
17463 tracehead = trace.prev;
17464 return;
17465 }
17466 void parser_prod___AAndExpr___replace_child(val_t self, val_t param0, val_t param1) {
17467 struct trace_t trace = {NULL, NULL, 6444, LOCATE_parser_prod___AAndExpr___replace_child};
17468 val_t variable[5];
17469 struct WBT_ **closurevariable = NULL;
17470 trace.prev = tracehead; tracehead = &trace;
17471 trace.file = LOCATE_parser_prod;
17472 /* Register variable[0]: Local variable */
17473 variable[0] = self;
17474 /* Register variable[1]: Local variable */
17475 variable[1] = param0;
17476 /* Register variable[2]: Local variable */
17477 variable[2] = param1;
17478 /* Register variable[3]: Method return value and escape marker */
17479 /* Register variable[4]: Result */
17480 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17481 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAndExpr___replace_child, LOCATE_parser_prod, 6446); nit_exit(1);}
17482 /* Register variable[4]: Result */
17483 variable[4] = ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/;
17484 /* Register variable[4]: Result */
17485 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17486 if (UNTAG_Bool(variable[4])) { /*if*/
17487 /* Register variable[4]: Result */
17488 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17489 if (UNTAG_Bool(variable[4])) { /*if*/
17490 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17491 /* Register variable[4]: Result */
17492 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17493 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAndExpr___replace_child, LOCATE_parser_prod, 6450); nit_exit(1);}
17494 ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/ = variable[2] /*new_child*/;
17495 } else { /*if*/
17496 ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/ = NIT_NULL /*null*/;
17497 }
17498 goto return_label555;
17499 }
17500 /* Register variable[4]: Result */
17501 variable[4] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/;
17502 /* Register variable[4]: Result */
17503 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17504 if (UNTAG_Bool(variable[4])) { /*if*/
17505 /* Register variable[4]: Result */
17506 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17507 if (UNTAG_Bool(variable[4])) { /*if*/
17508 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17509 /* Register variable[4]: Result */
17510 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17511 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAndExpr___replace_child, LOCATE_parser_prod, 6460); nit_exit(1);}
17512 ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/ = variable[2] /*new_child*/;
17513 } else { /*if*/
17514 ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/ = NIT_NULL /*null*/;
17515 }
17516 goto return_label555;
17517 }
17518 return_label555: while(false);
17519 tracehead = trace.prev;
17520 return;
17521 }
17522 void parser_prod___AAndExpr___visit_all(val_t self, val_t param0) {
17523 struct trace_t trace = {NULL, NULL, 6469, LOCATE_parser_prod___AAndExpr___visit_all};
17524 val_t variable[4];
17525 struct WBT_ **closurevariable = NULL;
17526 trace.prev = tracehead; tracehead = &trace;
17527 trace.file = LOCATE_parser_prod;
17528 /* Register variable[0]: Local variable */
17529 variable[0] = self;
17530 /* Register variable[1]: Local variable */
17531 variable[1] = param0;
17532 /* Register variable[2]: Method return value and escape marker */
17533 /* Register variable[3]: Result */
17534 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/;
17535 /* Register variable[3]: Result */
17536 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::==*/)))))));
17537 if (UNTAG_Bool(variable[3])) { /*if*/
17538 /* Register variable[3]: Result */
17539 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/;
17540 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17541 }
17542 /* Register variable[3]: Result */
17543 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/;
17544 /* Register variable[3]: Result */
17545 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::==*/)))))));
17546 if (UNTAG_Bool(variable[3])) { /*if*/
17547 /* Register variable[3]: Result */
17548 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/;
17549 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17550 }
17551 return_label556: while(false);
17552 tracehead = trace.prev;
17553 return;
17554 }
17555 void parser_prod___AAndExpr___visit_all_reverse(val_t self, val_t param0) {
17556 struct trace_t trace = {NULL, NULL, 6479, LOCATE_parser_prod___AAndExpr___visit_all_reverse};
17557 val_t variable[4];
17558 struct WBT_ **closurevariable = NULL;
17559 trace.prev = tracehead; tracehead = &trace;
17560 trace.file = LOCATE_parser_prod;
17561 /* Register variable[0]: Local variable */
17562 variable[0] = self;
17563 /* Register variable[1]: Local variable */
17564 variable[1] = param0;
17565 /* Register variable[2]: Method return value and escape marker */
17566 /* Register variable[3]: Result */
17567 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/;
17568 /* Register variable[3]: Result */
17569 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::==*/)))))));
17570 if (UNTAG_Bool(variable[3])) { /*if*/
17571 /* Register variable[3]: Result */
17572 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/;
17573 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17574 }
17575 /* Register variable[3]: Result */
17576 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/;
17577 /* Register variable[3]: Result */
17578 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::==*/)))))));
17579 if (UNTAG_Bool(variable[3])) { /*if*/
17580 /* Register variable[3]: Result */
17581 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/;
17582 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17583 }
17584 return_label557: while(false);
17585 tracehead = trace.prev;
17586 return;
17587 }
17588 void parser_prod___AAndExpr___empty_init(val_t self, int* init_table) {
17589 struct trace_t trace = {NULL, NULL, 6426, LOCATE_parser_prod___AAndExpr___empty_init};
17590 val_t variable[2];
17591 struct WBT_ **closurevariable = NULL;
17592 trace.prev = tracehead; tracehead = &trace;
17593 trace.file = LOCATE_parser_prod;
17594 /* Register variable[0]: Local variable */
17595 variable[0] = self;
17596 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i]) return;
17597 /* Register variable[1]: Method return value and escape marker */
17598 return_label558: while(false);
17599 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
17600 tracehead = trace.prev;
17601 return;
17602 }
17603 void parser_prod___AAndExpr___init_aandexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17604 struct trace_t trace = {NULL, NULL, 6428, LOCATE_parser_prod___AAndExpr___init_aandexpr};
17605 val_t variable[5];
17606 struct WBT_ **closurevariable = NULL;
17607 trace.prev = tracehead; tracehead = &trace;
17608 trace.file = LOCATE_parser_prod;
17609 /* Register variable[0]: Local variable */
17610 variable[0] = self;
17611 /* Register variable[1]: Local variable */
17612 variable[1] = param0;
17613 /* Register variable[2]: Local variable */
17614 variable[2] = param1;
17615 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i]) return;
17616 /* Register variable[3]: Method return value and escape marker */
17617 CALL_parser_prod___AAndExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAndExpr::empty_init*/;
17618 ATTR_parser_nodes___AAndExpr____n_expr(variable[0]) /*AAndExpr::_n_expr*/ = variable[1] /*n_expr*/;
17619 /* Register variable[4]: Result */
17620 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17621 if (UNTAG_Bool(variable[4])) { /*if*/
17622 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
17623 }
17624 ATTR_parser_nodes___AAndExpr____n_expr2(variable[0]) /*AAndExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
17625 /* Register variable[4]: Result */
17626 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17627 if (UNTAG_Bool(variable[4])) { /*if*/
17628 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
17629 }
17630 return_label559: while(false);
17631 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
17632 tracehead = trace.prev;
17633 return;
17634 }
17635 void parser_prod___ANotExpr___n_kwnot__eq(val_t self, val_t param0) {
17636 struct trace_t trace = {NULL, NULL, 6490, LOCATE_parser_prod___ANotExpr___n_kwnot__eq};
17637 val_t variable[4];
17638 struct WBT_ **closurevariable = NULL;
17639 trace.prev = tracehead; tracehead = &trace;
17640 trace.file = LOCATE_parser_prod;
17641 /* Register variable[0]: Local variable */
17642 variable[0] = self;
17643 /* Register variable[1]: Local variable */
17644 variable[1] = param0;
17645 /* Register variable[2]: Method return value and escape marker */
17646 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/ = variable[1] /*n*/;
17647 /* Register variable[3]: Result */
17648 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17649 if (UNTAG_Bool(variable[3])) { /*if*/
17650 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17651 }
17652 return_label560: while(false);
17653 tracehead = trace.prev;
17654 return;
17655 }
17656 void parser_prod___ANotExpr___n_expr__eq(val_t self, val_t param0) {
17657 struct trace_t trace = {NULL, NULL, 6497, LOCATE_parser_prod___ANotExpr___n_expr__eq};
17658 val_t variable[4];
17659 struct WBT_ **closurevariable = NULL;
17660 trace.prev = tracehead; tracehead = &trace;
17661 trace.file = LOCATE_parser_prod;
17662 /* Register variable[0]: Local variable */
17663 variable[0] = self;
17664 /* Register variable[1]: Local variable */
17665 variable[1] = param0;
17666 /* Register variable[2]: Method return value and escape marker */
17667 ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/ = variable[1] /*n*/;
17668 /* Register variable[3]: Result */
17669 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17670 if (UNTAG_Bool(variable[3])) { /*if*/
17671 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17672 }
17673 return_label561: while(false);
17674 tracehead = trace.prev;
17675 return;
17676 }
17677 void parser_prod___ANotExpr___replace_child(val_t self, val_t param0, val_t param1) {
17678 struct trace_t trace = {NULL, NULL, 6523, LOCATE_parser_prod___ANotExpr___replace_child};
17679 val_t variable[5];
17680 struct WBT_ **closurevariable = NULL;
17681 trace.prev = tracehead; tracehead = &trace;
17682 trace.file = LOCATE_parser_prod;
17683 /* Register variable[0]: Local variable */
17684 variable[0] = self;
17685 /* Register variable[1]: Local variable */
17686 variable[1] = param0;
17687 /* Register variable[2]: Local variable */
17688 variable[2] = param1;
17689 /* Register variable[3]: Method return value and escape marker */
17690 /* Register variable[4]: Result */
17691 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17692 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANotExpr___replace_child, LOCATE_parser_prod, 6525); nit_exit(1);}
17693 /* Register variable[4]: Result */
17694 variable[4] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/;
17695 /* Register variable[4]: Result */
17696 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17697 if (UNTAG_Bool(variable[4])) { /*if*/
17698 /* Register variable[4]: Result */
17699 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17700 if (UNTAG_Bool(variable[4])) { /*if*/
17701 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17702 /* Register variable[4]: Result */
17703 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
17704 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANotExpr___replace_child, LOCATE_parser_prod, 6529); nit_exit(1);}
17705 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/ = variable[2] /*new_child*/;
17706 } else { /*if*/
17707 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/ = NIT_NULL /*null*/;
17708 }
17709 goto return_label562;
17710 }
17711 /* Register variable[4]: Result */
17712 variable[4] = ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/;
17713 /* Register variable[4]: Result */
17714 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17715 if (UNTAG_Bool(variable[4])) { /*if*/
17716 /* Register variable[4]: Result */
17717 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17718 if (UNTAG_Bool(variable[4])) { /*if*/
17719 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17720 /* Register variable[4]: Result */
17721 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17722 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANotExpr___replace_child, LOCATE_parser_prod, 6539); nit_exit(1);}
17723 ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/ = variable[2] /*new_child*/;
17724 } else { /*if*/
17725 ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/ = NIT_NULL /*null*/;
17726 }
17727 goto return_label562;
17728 }
17729 return_label562: while(false);
17730 tracehead = trace.prev;
17731 return;
17732 }
17733 void parser_prod___ANotExpr___visit_all(val_t self, val_t param0) {
17734 struct trace_t trace = {NULL, NULL, 6548, LOCATE_parser_prod___ANotExpr___visit_all};
17735 val_t variable[4];
17736 struct WBT_ **closurevariable = NULL;
17737 trace.prev = tracehead; tracehead = &trace;
17738 trace.file = LOCATE_parser_prod;
17739 /* Register variable[0]: Local variable */
17740 variable[0] = self;
17741 /* Register variable[1]: Local variable */
17742 variable[1] = param0;
17743 /* Register variable[2]: Method return value and escape marker */
17744 /* Register variable[3]: Result */
17745 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/;
17746 /* Register variable[3]: Result */
17747 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::==*/)))))));
17748 if (UNTAG_Bool(variable[3])) { /*if*/
17749 /* Register variable[3]: Result */
17750 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/;
17751 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17752 }
17753 /* Register variable[3]: Result */
17754 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/;
17755 /* Register variable[3]: Result */
17756 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::==*/)))))));
17757 if (UNTAG_Bool(variable[3])) { /*if*/
17758 /* Register variable[3]: Result */
17759 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/;
17760 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17761 }
17762 return_label563: while(false);
17763 tracehead = trace.prev;
17764 return;
17765 }
17766 void parser_prod___ANotExpr___visit_all_reverse(val_t self, val_t param0) {
17767 struct trace_t trace = {NULL, NULL, 6558, LOCATE_parser_prod___ANotExpr___visit_all_reverse};
17768 val_t variable[4];
17769 struct WBT_ **closurevariable = NULL;
17770 trace.prev = tracehead; tracehead = &trace;
17771 trace.file = LOCATE_parser_prod;
17772 /* Register variable[0]: Local variable */
17773 variable[0] = self;
17774 /* Register variable[1]: Local variable */
17775 variable[1] = param0;
17776 /* Register variable[2]: Method return value and escape marker */
17777 /* Register variable[3]: Result */
17778 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/;
17779 /* Register variable[3]: Result */
17780 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::==*/)))))));
17781 if (UNTAG_Bool(variable[3])) { /*if*/
17782 /* Register variable[3]: Result */
17783 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/;
17784 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17785 }
17786 /* Register variable[3]: Result */
17787 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/;
17788 /* Register variable[3]: Result */
17789 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::==*/)))))));
17790 if (UNTAG_Bool(variable[3])) { /*if*/
17791 /* Register variable[3]: Result */
17792 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/;
17793 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17794 }
17795 return_label564: while(false);
17796 tracehead = trace.prev;
17797 return;
17798 }
17799 void parser_prod___ANotExpr___empty_init(val_t self, int* init_table) {
17800 struct trace_t trace = {NULL, NULL, 6505, LOCATE_parser_prod___ANotExpr___empty_init};
17801 val_t variable[2];
17802 struct WBT_ **closurevariable = NULL;
17803 trace.prev = tracehead; tracehead = &trace;
17804 trace.file = LOCATE_parser_prod;
17805 /* Register variable[0]: Local variable */
17806 variable[0] = self;
17807 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i]) return;
17808 /* Register variable[1]: Method return value and escape marker */
17809 return_label565: while(false);
17810 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
17811 tracehead = trace.prev;
17812 return;
17813 }
17814 void parser_prod___ANotExpr___init_anotexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17815 struct trace_t trace = {NULL, NULL, 6507, LOCATE_parser_prod___ANotExpr___init_anotexpr};
17816 val_t variable[5];
17817 struct WBT_ **closurevariable = NULL;
17818 trace.prev = tracehead; tracehead = &trace;
17819 trace.file = LOCATE_parser_prod;
17820 /* Register variable[0]: Local variable */
17821 variable[0] = self;
17822 /* Register variable[1]: Local variable */
17823 variable[1] = param0;
17824 /* Register variable[2]: Local variable */
17825 variable[2] = param1;
17826 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i]) return;
17827 /* Register variable[3]: Method return value and escape marker */
17828 CALL_parser_prod___ANotExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ANotExpr::empty_init*/;
17829 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[0]) /*ANotExpr::_n_kwnot*/ = variable[1] /*n_kwnot*/;
17830 /* Register variable[4]: Result */
17831 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnot*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwnot*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwnot*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnot*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwnot*/)( variable[1] /*n_kwnot*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17832 if (UNTAG_Bool(variable[4])) { /*if*/
17833 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnot*/)( variable[1] /*n_kwnot*/, variable[0]) /*PNode::parent=*/;
17834 }
17835 ATTR_parser_nodes___ANotExpr____n_expr(variable[0]) /*ANotExpr::_n_expr*/ = variable[2] /*n_expr*/;
17836 /* Register variable[4]: Result */
17837 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17838 if (UNTAG_Bool(variable[4])) { /*if*/
17839 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
17840 }
17841 return_label566: while(false);
17842 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
17843 tracehead = trace.prev;
17844 return;
17845 }
17846 void parser_prod___AEqExpr___n_expr__eq(val_t self, val_t param0) {
17847 struct trace_t trace = {NULL, NULL, 6569, LOCATE_parser_prod___AEqExpr___n_expr__eq};
17848 val_t variable[4];
17849 struct WBT_ **closurevariable = NULL;
17850 trace.prev = tracehead; tracehead = &trace;
17851 trace.file = LOCATE_parser_prod;
17852 /* Register variable[0]: Local variable */
17853 variable[0] = self;
17854 /* Register variable[1]: Local variable */
17855 variable[1] = param0;
17856 /* Register variable[2]: Method return value and escape marker */
17857 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
17858 /* Register variable[3]: Result */
17859 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17860 if (UNTAG_Bool(variable[3])) { /*if*/
17861 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17862 }
17863 return_label567: while(false);
17864 tracehead = trace.prev;
17865 return;
17866 }
17867 void parser_prod___AEqExpr___n_expr2__eq(val_t self, val_t param0) {
17868 struct trace_t trace = {NULL, NULL, 6576, LOCATE_parser_prod___AEqExpr___n_expr2__eq};
17869 val_t variable[4];
17870 struct WBT_ **closurevariable = NULL;
17871 trace.prev = tracehead; tracehead = &trace;
17872 trace.file = LOCATE_parser_prod;
17873 /* Register variable[0]: Local variable */
17874 variable[0] = self;
17875 /* Register variable[1]: Local variable */
17876 variable[1] = param0;
17877 /* Register variable[2]: Method return value and escape marker */
17878 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
17879 /* Register variable[3]: Result */
17880 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17881 if (UNTAG_Bool(variable[3])) { /*if*/
17882 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
17883 }
17884 return_label568: while(false);
17885 tracehead = trace.prev;
17886 return;
17887 }
17888 void parser_prod___AEqExpr___replace_child(val_t self, val_t param0, val_t param1) {
17889 struct trace_t trace = {NULL, NULL, 6602, LOCATE_parser_prod___AEqExpr___replace_child};
17890 val_t variable[5];
17891 struct WBT_ **closurevariable = NULL;
17892 trace.prev = tracehead; tracehead = &trace;
17893 trace.file = LOCATE_parser_prod;
17894 /* Register variable[0]: Local variable */
17895 variable[0] = self;
17896 /* Register variable[1]: Local variable */
17897 variable[1] = param0;
17898 /* Register variable[2]: Local variable */
17899 variable[2] = param1;
17900 /* Register variable[3]: Method return value and escape marker */
17901 /* Register variable[4]: Result */
17902 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17903 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqExpr___replace_child, LOCATE_parser_prod, 6604); nit_exit(1);}
17904 /* Register variable[4]: Result */
17905 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17906 /* Register variable[4]: Result */
17907 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17908 if (UNTAG_Bool(variable[4])) { /*if*/
17909 /* Register variable[4]: Result */
17910 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17911 if (UNTAG_Bool(variable[4])) { /*if*/
17912 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17913 /* Register variable[4]: Result */
17914 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17915 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqExpr___replace_child, LOCATE_parser_prod, 6608); nit_exit(1);}
17916 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
17917 } else { /*if*/
17918 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
17919 }
17920 goto return_label569;
17921 }
17922 /* Register variable[4]: Result */
17923 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17924 /* Register variable[4]: Result */
17925 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17926 if (UNTAG_Bool(variable[4])) { /*if*/
17927 /* Register variable[4]: Result */
17928 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17929 if (UNTAG_Bool(variable[4])) { /*if*/
17930 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
17931 /* Register variable[4]: Result */
17932 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17933 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqExpr___replace_child, LOCATE_parser_prod, 6618); nit_exit(1);}
17934 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
17935 } else { /*if*/
17936 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
17937 }
17938 goto return_label569;
17939 }
17940 return_label569: while(false);
17941 tracehead = trace.prev;
17942 return;
17943 }
17944 void parser_prod___AEqExpr___visit_all(val_t self, val_t param0) {
17945 struct trace_t trace = {NULL, NULL, 6627, LOCATE_parser_prod___AEqExpr___visit_all};
17946 val_t variable[4];
17947 struct WBT_ **closurevariable = NULL;
17948 trace.prev = tracehead; tracehead = &trace;
17949 trace.file = LOCATE_parser_prod;
17950 /* Register variable[0]: Local variable */
17951 variable[0] = self;
17952 /* Register variable[1]: Local variable */
17953 variable[1] = param0;
17954 /* Register variable[2]: Method return value and escape marker */
17955 /* Register variable[3]: Result */
17956 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17957 /* Register variable[3]: Result */
17958 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::==*/)))))));
17959 if (UNTAG_Bool(variable[3])) { /*if*/
17960 /* Register variable[3]: Result */
17961 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17962 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17963 }
17964 /* Register variable[3]: Result */
17965 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17966 /* Register variable[3]: Result */
17967 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::==*/)))))));
17968 if (UNTAG_Bool(variable[3])) { /*if*/
17969 /* Register variable[3]: Result */
17970 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17971 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17972 }
17973 return_label570: while(false);
17974 tracehead = trace.prev;
17975 return;
17976 }
17977 void parser_prod___AEqExpr___visit_all_reverse(val_t self, val_t param0) {
17978 struct trace_t trace = {NULL, NULL, 6637, LOCATE_parser_prod___AEqExpr___visit_all_reverse};
17979 val_t variable[4];
17980 struct WBT_ **closurevariable = NULL;
17981 trace.prev = tracehead; tracehead = &trace;
17982 trace.file = LOCATE_parser_prod;
17983 /* Register variable[0]: Local variable */
17984 variable[0] = self;
17985 /* Register variable[1]: Local variable */
17986 variable[1] = param0;
17987 /* Register variable[2]: Method return value and escape marker */
17988 /* Register variable[3]: Result */
17989 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17990 /* Register variable[3]: Result */
17991 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::==*/)))))));
17992 if (UNTAG_Bool(variable[3])) { /*if*/
17993 /* Register variable[3]: Result */
17994 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
17995 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17996 }
17997 /* Register variable[3]: Result */
17998 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
17999 /* Register variable[3]: Result */
18000 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::==*/)))))));
18001 if (UNTAG_Bool(variable[3])) { /*if*/
18002 /* Register variable[3]: Result */
18003 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18004 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18005 }
18006 return_label571: while(false);
18007 tracehead = trace.prev;
18008 return;
18009 }
18010 void parser_prod___AEqExpr___empty_init(val_t self, int* init_table) {
18011 struct trace_t trace = {NULL, NULL, 6584, LOCATE_parser_prod___AEqExpr___empty_init};
18012 val_t variable[2];
18013 struct WBT_ **closurevariable = NULL;
18014 trace.prev = tracehead; tracehead = &trace;
18015 trace.file = LOCATE_parser_prod;
18016 /* Register variable[0]: Local variable */
18017 variable[0] = self;
18018 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i]) return;
18019 /* Register variable[1]: Method return value and escape marker */
18020 return_label572: while(false);
18021 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
18022 tracehead = trace.prev;
18023 return;
18024 }
18025 void parser_prod___AEqExpr___init_aeqexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18026 struct trace_t trace = {NULL, NULL, 6586, LOCATE_parser_prod___AEqExpr___init_aeqexpr};
18027 val_t variable[5];
18028 struct WBT_ **closurevariable = NULL;
18029 trace.prev = tracehead; tracehead = &trace;
18030 trace.file = LOCATE_parser_prod;
18031 /* Register variable[0]: Local variable */
18032 variable[0] = self;
18033 /* Register variable[1]: Local variable */
18034 variable[1] = param0;
18035 /* Register variable[2]: Local variable */
18036 variable[2] = param1;
18037 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i]) return;
18038 /* Register variable[3]: Method return value and escape marker */
18039 CALL_parser_prod___AEqExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AEqExpr::empty_init*/;
18040 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
18041 /* Register variable[4]: Result */
18042 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18043 if (UNTAG_Bool(variable[4])) { /*if*/
18044 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
18045 }
18046 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18047 /* Register variable[4]: Result */
18048 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18049 if (UNTAG_Bool(variable[4])) { /*if*/
18050 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
18051 }
18052 return_label573: while(false);
18053 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
18054 tracehead = trace.prev;
18055 return;
18056 }
18057 void parser_prod___AEeExpr___n_expr__eq(val_t self, val_t param0) {
18058 struct trace_t trace = {NULL, NULL, 6648, LOCATE_parser_prod___AEeExpr___n_expr__eq};
18059 val_t variable[4];
18060 struct WBT_ **closurevariable = NULL;
18061 trace.prev = tracehead; tracehead = &trace;
18062 trace.file = LOCATE_parser_prod;
18063 /* Register variable[0]: Local variable */
18064 variable[0] = self;
18065 /* Register variable[1]: Local variable */
18066 variable[1] = param0;
18067 /* Register variable[2]: Method return value and escape marker */
18068 ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/ = variable[1] /*n*/;
18069 /* Register variable[3]: Result */
18070 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18071 if (UNTAG_Bool(variable[3])) { /*if*/
18072 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18073 }
18074 return_label574: while(false);
18075 tracehead = trace.prev;
18076 return;
18077 }
18078 void parser_prod___AEeExpr___n_expr2__eq(val_t self, val_t param0) {
18079 struct trace_t trace = {NULL, NULL, 6655, LOCATE_parser_prod___AEeExpr___n_expr2__eq};
18080 val_t variable[4];
18081 struct WBT_ **closurevariable = NULL;
18082 trace.prev = tracehead; tracehead = &trace;
18083 trace.file = LOCATE_parser_prod;
18084 /* Register variable[0]: Local variable */
18085 variable[0] = self;
18086 /* Register variable[1]: Local variable */
18087 variable[1] = param0;
18088 /* Register variable[2]: Method return value and escape marker */
18089 ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/ = variable[1] /*n*/;
18090 /* Register variable[3]: Result */
18091 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18092 if (UNTAG_Bool(variable[3])) { /*if*/
18093 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18094 }
18095 return_label575: while(false);
18096 tracehead = trace.prev;
18097 return;
18098 }
18099 void parser_prod___AEeExpr___replace_child(val_t self, val_t param0, val_t param1) {
18100 struct trace_t trace = {NULL, NULL, 6681, LOCATE_parser_prod___AEeExpr___replace_child};
18101 val_t variable[5];
18102 struct WBT_ **closurevariable = NULL;
18103 trace.prev = tracehead; tracehead = &trace;
18104 trace.file = LOCATE_parser_prod;
18105 /* Register variable[0]: Local variable */
18106 variable[0] = self;
18107 /* Register variable[1]: Local variable */
18108 variable[1] = param0;
18109 /* Register variable[2]: Local variable */
18110 variable[2] = param1;
18111 /* Register variable[3]: Method return value and escape marker */
18112 /* Register variable[4]: Result */
18113 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18114 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEeExpr___replace_child, LOCATE_parser_prod, 6683); nit_exit(1);}
18115 /* Register variable[4]: Result */
18116 variable[4] = ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/;
18117 /* Register variable[4]: Result */
18118 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18119 if (UNTAG_Bool(variable[4])) { /*if*/
18120 /* Register variable[4]: Result */
18121 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18122 if (UNTAG_Bool(variable[4])) { /*if*/
18123 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18124 /* Register variable[4]: Result */
18125 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18126 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEeExpr___replace_child, LOCATE_parser_prod, 6687); nit_exit(1);}
18127 ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/ = variable[2] /*new_child*/;
18128 } else { /*if*/
18129 ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/ = NIT_NULL /*null*/;
18130 }
18131 goto return_label576;
18132 }
18133 /* Register variable[4]: Result */
18134 variable[4] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/;
18135 /* Register variable[4]: Result */
18136 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18137 if (UNTAG_Bool(variable[4])) { /*if*/
18138 /* Register variable[4]: Result */
18139 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18140 if (UNTAG_Bool(variable[4])) { /*if*/
18141 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18142 /* Register variable[4]: Result */
18143 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18144 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEeExpr___replace_child, LOCATE_parser_prod, 6697); nit_exit(1);}
18145 ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/ = variable[2] /*new_child*/;
18146 } else { /*if*/
18147 ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/ = NIT_NULL /*null*/;
18148 }
18149 goto return_label576;
18150 }
18151 return_label576: while(false);
18152 tracehead = trace.prev;
18153 return;
18154 }
18155 void parser_prod___AEeExpr___visit_all(val_t self, val_t param0) {
18156 struct trace_t trace = {NULL, NULL, 6706, LOCATE_parser_prod___AEeExpr___visit_all};
18157 val_t variable[4];
18158 struct WBT_ **closurevariable = NULL;
18159 trace.prev = tracehead; tracehead = &trace;
18160 trace.file = LOCATE_parser_prod;
18161 /* Register variable[0]: Local variable */
18162 variable[0] = self;
18163 /* Register variable[1]: Local variable */
18164 variable[1] = param0;
18165 /* Register variable[2]: Method return value and escape marker */
18166 /* Register variable[3]: Result */
18167 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/;
18168 /* Register variable[3]: Result */
18169 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::==*/)))))));
18170 if (UNTAG_Bool(variable[3])) { /*if*/
18171 /* Register variable[3]: Result */
18172 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/;
18173 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18174 }
18175 /* Register variable[3]: Result */
18176 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/;
18177 /* Register variable[3]: Result */
18178 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::==*/)))))));
18179 if (UNTAG_Bool(variable[3])) { /*if*/
18180 /* Register variable[3]: Result */
18181 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/;
18182 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18183 }
18184 return_label577: while(false);
18185 tracehead = trace.prev;
18186 return;
18187 }
18188 void parser_prod___AEeExpr___visit_all_reverse(val_t self, val_t param0) {
18189 struct trace_t trace = {NULL, NULL, 6716, LOCATE_parser_prod___AEeExpr___visit_all_reverse};
18190 val_t variable[4];
18191 struct WBT_ **closurevariable = NULL;
18192 trace.prev = tracehead; tracehead = &trace;
18193 trace.file = LOCATE_parser_prod;
18194 /* Register variable[0]: Local variable */
18195 variable[0] = self;
18196 /* Register variable[1]: Local variable */
18197 variable[1] = param0;
18198 /* Register variable[2]: Method return value and escape marker */
18199 /* Register variable[3]: Result */
18200 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/;
18201 /* Register variable[3]: Result */
18202 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::==*/)))))));
18203 if (UNTAG_Bool(variable[3])) { /*if*/
18204 /* Register variable[3]: Result */
18205 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/;
18206 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18207 }
18208 /* Register variable[3]: Result */
18209 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/;
18210 /* Register variable[3]: Result */
18211 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::==*/)))))));
18212 if (UNTAG_Bool(variable[3])) { /*if*/
18213 /* Register variable[3]: Result */
18214 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/;
18215 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18216 }
18217 return_label578: while(false);
18218 tracehead = trace.prev;
18219 return;
18220 }
18221 void parser_prod___AEeExpr___empty_init(val_t self, int* init_table) {
18222 struct trace_t trace = {NULL, NULL, 6663, LOCATE_parser_prod___AEeExpr___empty_init};
18223 val_t variable[2];
18224 struct WBT_ **closurevariable = NULL;
18225 trace.prev = tracehead; tracehead = &trace;
18226 trace.file = LOCATE_parser_prod;
18227 /* Register variable[0]: Local variable */
18228 variable[0] = self;
18229 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i]) return;
18230 /* Register variable[1]: Method return value and escape marker */
18231 return_label579: while(false);
18232 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
18233 tracehead = trace.prev;
18234 return;
18235 }
18236 void parser_prod___AEeExpr___init_aeeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18237 struct trace_t trace = {NULL, NULL, 6665, LOCATE_parser_prod___AEeExpr___init_aeeexpr};
18238 val_t variable[5];
18239 struct WBT_ **closurevariable = NULL;
18240 trace.prev = tracehead; tracehead = &trace;
18241 trace.file = LOCATE_parser_prod;
18242 /* Register variable[0]: Local variable */
18243 variable[0] = self;
18244 /* Register variable[1]: Local variable */
18245 variable[1] = param0;
18246 /* Register variable[2]: Local variable */
18247 variable[2] = param1;
18248 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i]) return;
18249 /* Register variable[3]: Method return value and escape marker */
18250 CALL_parser_prod___AEeExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AEeExpr::empty_init*/;
18251 ATTR_parser_nodes___AEeExpr____n_expr(variable[0]) /*AEeExpr::_n_expr*/ = variable[1] /*n_expr*/;
18252 /* Register variable[4]: Result */
18253 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18254 if (UNTAG_Bool(variable[4])) { /*if*/
18255 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
18256 }
18257 ATTR_parser_nodes___AEeExpr____n_expr2(variable[0]) /*AEeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18258 /* Register variable[4]: Result */
18259 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18260 if (UNTAG_Bool(variable[4])) { /*if*/
18261 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
18262 }
18263 return_label580: while(false);
18264 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
18265 tracehead = trace.prev;
18266 return;
18267 }
18268 void parser_prod___ANeExpr___n_expr__eq(val_t self, val_t param0) {
18269 struct trace_t trace = {NULL, NULL, 6727, LOCATE_parser_prod___ANeExpr___n_expr__eq};
18270 val_t variable[4];
18271 struct WBT_ **closurevariable = NULL;
18272 trace.prev = tracehead; tracehead = &trace;
18273 trace.file = LOCATE_parser_prod;
18274 /* Register variable[0]: Local variable */
18275 variable[0] = self;
18276 /* Register variable[1]: Local variable */
18277 variable[1] = param0;
18278 /* Register variable[2]: Method return value and escape marker */
18279 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
18280 /* Register variable[3]: Result */
18281 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18282 if (UNTAG_Bool(variable[3])) { /*if*/
18283 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18284 }
18285 return_label581: while(false);
18286 tracehead = trace.prev;
18287 return;
18288 }
18289 void parser_prod___ANeExpr___n_expr2__eq(val_t self, val_t param0) {
18290 struct trace_t trace = {NULL, NULL, 6734, LOCATE_parser_prod___ANeExpr___n_expr2__eq};
18291 val_t variable[4];
18292 struct WBT_ **closurevariable = NULL;
18293 trace.prev = tracehead; tracehead = &trace;
18294 trace.file = LOCATE_parser_prod;
18295 /* Register variable[0]: Local variable */
18296 variable[0] = self;
18297 /* Register variable[1]: Local variable */
18298 variable[1] = param0;
18299 /* Register variable[2]: Method return value and escape marker */
18300 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
18301 /* Register variable[3]: Result */
18302 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18303 if (UNTAG_Bool(variable[3])) { /*if*/
18304 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18305 }
18306 return_label582: while(false);
18307 tracehead = trace.prev;
18308 return;
18309 }
18310 void parser_prod___ANeExpr___replace_child(val_t self, val_t param0, val_t param1) {
18311 struct trace_t trace = {NULL, NULL, 6760, LOCATE_parser_prod___ANeExpr___replace_child};
18312 val_t variable[5];
18313 struct WBT_ **closurevariable = NULL;
18314 trace.prev = tracehead; tracehead = &trace;
18315 trace.file = LOCATE_parser_prod;
18316 /* Register variable[0]: Local variable */
18317 variable[0] = self;
18318 /* Register variable[1]: Local variable */
18319 variable[1] = param0;
18320 /* Register variable[2]: Local variable */
18321 variable[2] = param1;
18322 /* Register variable[3]: Method return value and escape marker */
18323 /* Register variable[4]: Result */
18324 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18325 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeExpr___replace_child, LOCATE_parser_prod, 6762); nit_exit(1);}
18326 /* Register variable[4]: Result */
18327 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18328 /* Register variable[4]: Result */
18329 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18330 if (UNTAG_Bool(variable[4])) { /*if*/
18331 /* Register variable[4]: Result */
18332 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18333 if (UNTAG_Bool(variable[4])) { /*if*/
18334 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18335 /* Register variable[4]: Result */
18336 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18337 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeExpr___replace_child, LOCATE_parser_prod, 6766); nit_exit(1);}
18338 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18339 } else { /*if*/
18340 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18341 }
18342 goto return_label583;
18343 }
18344 /* Register variable[4]: Result */
18345 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18346 /* Register variable[4]: Result */
18347 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18348 if (UNTAG_Bool(variable[4])) { /*if*/
18349 /* Register variable[4]: Result */
18350 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18351 if (UNTAG_Bool(variable[4])) { /*if*/
18352 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18353 /* Register variable[4]: Result */
18354 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18355 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeExpr___replace_child, LOCATE_parser_prod, 6776); nit_exit(1);}
18356 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
18357 } else { /*if*/
18358 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
18359 }
18360 goto return_label583;
18361 }
18362 return_label583: while(false);
18363 tracehead = trace.prev;
18364 return;
18365 }
18366 void parser_prod___ANeExpr___visit_all(val_t self, val_t param0) {
18367 struct trace_t trace = {NULL, NULL, 6785, LOCATE_parser_prod___ANeExpr___visit_all};
18368 val_t variable[4];
18369 struct WBT_ **closurevariable = NULL;
18370 trace.prev = tracehead; tracehead = &trace;
18371 trace.file = LOCATE_parser_prod;
18372 /* Register variable[0]: Local variable */
18373 variable[0] = self;
18374 /* Register variable[1]: Local variable */
18375 variable[1] = param0;
18376 /* Register variable[2]: Method return value and escape marker */
18377 /* Register variable[3]: Result */
18378 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18379 /* Register variable[3]: Result */
18380 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::==*/)))))));
18381 if (UNTAG_Bool(variable[3])) { /*if*/
18382 /* Register variable[3]: Result */
18383 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18384 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18385 }
18386 /* Register variable[3]: Result */
18387 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18388 /* Register variable[3]: Result */
18389 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::==*/)))))));
18390 if (UNTAG_Bool(variable[3])) { /*if*/
18391 /* Register variable[3]: Result */
18392 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18393 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18394 }
18395 return_label584: while(false);
18396 tracehead = trace.prev;
18397 return;
18398 }
18399 void parser_prod___ANeExpr___visit_all_reverse(val_t self, val_t param0) {
18400 struct trace_t trace = {NULL, NULL, 6795, LOCATE_parser_prod___ANeExpr___visit_all_reverse};
18401 val_t variable[4];
18402 struct WBT_ **closurevariable = NULL;
18403 trace.prev = tracehead; tracehead = &trace;
18404 trace.file = LOCATE_parser_prod;
18405 /* Register variable[0]: Local variable */
18406 variable[0] = self;
18407 /* Register variable[1]: Local variable */
18408 variable[1] = param0;
18409 /* Register variable[2]: Method return value and escape marker */
18410 /* Register variable[3]: Result */
18411 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18412 /* Register variable[3]: Result */
18413 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::==*/)))))));
18414 if (UNTAG_Bool(variable[3])) { /*if*/
18415 /* Register variable[3]: Result */
18416 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18417 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18418 }
18419 /* Register variable[3]: Result */
18420 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18421 /* Register variable[3]: Result */
18422 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::==*/)))))));
18423 if (UNTAG_Bool(variable[3])) { /*if*/
18424 /* Register variable[3]: Result */
18425 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18426 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18427 }
18428 return_label585: while(false);
18429 tracehead = trace.prev;
18430 return;
18431 }
18432 void parser_prod___ANeExpr___empty_init(val_t self, int* init_table) {
18433 struct trace_t trace = {NULL, NULL, 6742, LOCATE_parser_prod___ANeExpr___empty_init};
18434 val_t variable[2];
18435 struct WBT_ **closurevariable = NULL;
18436 trace.prev = tracehead; tracehead = &trace;
18437 trace.file = LOCATE_parser_prod;
18438 /* Register variable[0]: Local variable */
18439 variable[0] = self;
18440 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i]) return;
18441 /* Register variable[1]: Method return value and escape marker */
18442 return_label586: while(false);
18443 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
18444 tracehead = trace.prev;
18445 return;
18446 }
18447 void parser_prod___ANeExpr___init_aneexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18448 struct trace_t trace = {NULL, NULL, 6744, LOCATE_parser_prod___ANeExpr___init_aneexpr};
18449 val_t variable[5];
18450 struct WBT_ **closurevariable = NULL;
18451 trace.prev = tracehead; tracehead = &trace;
18452 trace.file = LOCATE_parser_prod;
18453 /* Register variable[0]: Local variable */
18454 variable[0] = self;
18455 /* Register variable[1]: Local variable */
18456 variable[1] = param0;
18457 /* Register variable[2]: Local variable */
18458 variable[2] = param1;
18459 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i]) return;
18460 /* Register variable[3]: Method return value and escape marker */
18461 CALL_parser_prod___ANeExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ANeExpr::empty_init*/;
18462 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
18463 /* Register variable[4]: Result */
18464 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18465 if (UNTAG_Bool(variable[4])) { /*if*/
18466 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
18467 }
18468 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18469 /* Register variable[4]: Result */
18470 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18471 if (UNTAG_Bool(variable[4])) { /*if*/
18472 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
18473 }
18474 return_label587: while(false);
18475 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
18476 tracehead = trace.prev;
18477 return;
18478 }
18479 void parser_prod___ALtExpr___n_expr__eq(val_t self, val_t param0) {
18480 struct trace_t trace = {NULL, NULL, 6806, LOCATE_parser_prod___ALtExpr___n_expr__eq};
18481 val_t variable[4];
18482 struct WBT_ **closurevariable = NULL;
18483 trace.prev = tracehead; tracehead = &trace;
18484 trace.file = LOCATE_parser_prod;
18485 /* Register variable[0]: Local variable */
18486 variable[0] = self;
18487 /* Register variable[1]: Local variable */
18488 variable[1] = param0;
18489 /* Register variable[2]: Method return value and escape marker */
18490 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
18491 /* Register variable[3]: Result */
18492 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18493 if (UNTAG_Bool(variable[3])) { /*if*/
18494 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18495 }
18496 return_label588: while(false);
18497 tracehead = trace.prev;
18498 return;
18499 }
18500 void parser_prod___ALtExpr___n_expr2__eq(val_t self, val_t param0) {
18501 struct trace_t trace = {NULL, NULL, 6813, LOCATE_parser_prod___ALtExpr___n_expr2__eq};
18502 val_t variable[4];
18503 struct WBT_ **closurevariable = NULL;
18504 trace.prev = tracehead; tracehead = &trace;
18505 trace.file = LOCATE_parser_prod;
18506 /* Register variable[0]: Local variable */
18507 variable[0] = self;
18508 /* Register variable[1]: Local variable */
18509 variable[1] = param0;
18510 /* Register variable[2]: Method return value and escape marker */
18511 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
18512 /* Register variable[3]: Result */
18513 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18514 if (UNTAG_Bool(variable[3])) { /*if*/
18515 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18516 }
18517 return_label589: while(false);
18518 tracehead = trace.prev;
18519 return;
18520 }
18521 void parser_prod___ALtExpr___replace_child(val_t self, val_t param0, val_t param1) {
18522 struct trace_t trace = {NULL, NULL, 6839, LOCATE_parser_prod___ALtExpr___replace_child};
18523 val_t variable[5];
18524 struct WBT_ **closurevariable = NULL;
18525 trace.prev = tracehead; tracehead = &trace;
18526 trace.file = LOCATE_parser_prod;
18527 /* Register variable[0]: Local variable */
18528 variable[0] = self;
18529 /* Register variable[1]: Local variable */
18530 variable[1] = param0;
18531 /* Register variable[2]: Local variable */
18532 variable[2] = param1;
18533 /* Register variable[3]: Method return value and escape marker */
18534 /* Register variable[4]: Result */
18535 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18536 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtExpr___replace_child, LOCATE_parser_prod, 6841); nit_exit(1);}
18537 /* Register variable[4]: Result */
18538 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18539 /* Register variable[4]: Result */
18540 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18541 if (UNTAG_Bool(variable[4])) { /*if*/
18542 /* Register variable[4]: Result */
18543 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18544 if (UNTAG_Bool(variable[4])) { /*if*/
18545 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18546 /* Register variable[4]: Result */
18547 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18548 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtExpr___replace_child, LOCATE_parser_prod, 6845); nit_exit(1);}
18549 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18550 } else { /*if*/
18551 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18552 }
18553 goto return_label590;
18554 }
18555 /* Register variable[4]: Result */
18556 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18557 /* Register variable[4]: Result */
18558 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18559 if (UNTAG_Bool(variable[4])) { /*if*/
18560 /* Register variable[4]: Result */
18561 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18562 if (UNTAG_Bool(variable[4])) { /*if*/
18563 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18564 /* Register variable[4]: Result */
18565 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18566 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtExpr___replace_child, LOCATE_parser_prod, 6855); nit_exit(1);}
18567 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
18568 } else { /*if*/
18569 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
18570 }
18571 goto return_label590;
18572 }
18573 return_label590: while(false);
18574 tracehead = trace.prev;
18575 return;
18576 }
18577 void parser_prod___ALtExpr___visit_all(val_t self, val_t param0) {
18578 struct trace_t trace = {NULL, NULL, 6864, LOCATE_parser_prod___ALtExpr___visit_all};
18579 val_t variable[4];
18580 struct WBT_ **closurevariable = NULL;
18581 trace.prev = tracehead; tracehead = &trace;
18582 trace.file = LOCATE_parser_prod;
18583 /* Register variable[0]: Local variable */
18584 variable[0] = self;
18585 /* Register variable[1]: Local variable */
18586 variable[1] = param0;
18587 /* Register variable[2]: Method return value and escape marker */
18588 /* Register variable[3]: Result */
18589 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18590 /* Register variable[3]: Result */
18591 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::==*/)))))));
18592 if (UNTAG_Bool(variable[3])) { /*if*/
18593 /* Register variable[3]: Result */
18594 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18595 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18596 }
18597 /* Register variable[3]: Result */
18598 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18599 /* Register variable[3]: Result */
18600 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::==*/)))))));
18601 if (UNTAG_Bool(variable[3])) { /*if*/
18602 /* Register variable[3]: Result */
18603 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18604 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18605 }
18606 return_label591: while(false);
18607 tracehead = trace.prev;
18608 return;
18609 }
18610 void parser_prod___ALtExpr___visit_all_reverse(val_t self, val_t param0) {
18611 struct trace_t trace = {NULL, NULL, 6874, LOCATE_parser_prod___ALtExpr___visit_all_reverse};
18612 val_t variable[4];
18613 struct WBT_ **closurevariable = NULL;
18614 trace.prev = tracehead; tracehead = &trace;
18615 trace.file = LOCATE_parser_prod;
18616 /* Register variable[0]: Local variable */
18617 variable[0] = self;
18618 /* Register variable[1]: Local variable */
18619 variable[1] = param0;
18620 /* Register variable[2]: Method return value and escape marker */
18621 /* Register variable[3]: Result */
18622 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18623 /* Register variable[3]: Result */
18624 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::==*/)))))));
18625 if (UNTAG_Bool(variable[3])) { /*if*/
18626 /* Register variable[3]: Result */
18627 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18628 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18629 }
18630 /* Register variable[3]: Result */
18631 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18632 /* Register variable[3]: Result */
18633 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::==*/)))))));
18634 if (UNTAG_Bool(variable[3])) { /*if*/
18635 /* Register variable[3]: Result */
18636 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18637 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18638 }
18639 return_label592: while(false);
18640 tracehead = trace.prev;
18641 return;
18642 }
18643 void parser_prod___ALtExpr___empty_init(val_t self, int* init_table) {
18644 struct trace_t trace = {NULL, NULL, 6821, LOCATE_parser_prod___ALtExpr___empty_init};
18645 val_t variable[2];
18646 struct WBT_ **closurevariable = NULL;
18647 trace.prev = tracehead; tracehead = &trace;
18648 trace.file = LOCATE_parser_prod;
18649 /* Register variable[0]: Local variable */
18650 variable[0] = self;
18651 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i]) return;
18652 /* Register variable[1]: Method return value and escape marker */
18653 return_label593: while(false);
18654 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
18655 tracehead = trace.prev;
18656 return;
18657 }
18658 void parser_prod___ALtExpr___init_altexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18659 struct trace_t trace = {NULL, NULL, 6823, LOCATE_parser_prod___ALtExpr___init_altexpr};
18660 val_t variable[5];
18661 struct WBT_ **closurevariable = NULL;
18662 trace.prev = tracehead; tracehead = &trace;
18663 trace.file = LOCATE_parser_prod;
18664 /* Register variable[0]: Local variable */
18665 variable[0] = self;
18666 /* Register variable[1]: Local variable */
18667 variable[1] = param0;
18668 /* Register variable[2]: Local variable */
18669 variable[2] = param1;
18670 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i]) return;
18671 /* Register variable[3]: Method return value and escape marker */
18672 CALL_parser_prod___ALtExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ALtExpr::empty_init*/;
18673 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
18674 /* Register variable[4]: Result */
18675 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18676 if (UNTAG_Bool(variable[4])) { /*if*/
18677 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
18678 }
18679 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18680 /* Register variable[4]: Result */
18681 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18682 if (UNTAG_Bool(variable[4])) { /*if*/
18683 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
18684 }
18685 return_label594: while(false);
18686 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
18687 tracehead = trace.prev;
18688 return;
18689 }
18690 void parser_prod___ALeExpr___n_expr__eq(val_t self, val_t param0) {
18691 struct trace_t trace = {NULL, NULL, 6885, LOCATE_parser_prod___ALeExpr___n_expr__eq};
18692 val_t variable[4];
18693 struct WBT_ **closurevariable = NULL;
18694 trace.prev = tracehead; tracehead = &trace;
18695 trace.file = LOCATE_parser_prod;
18696 /* Register variable[0]: Local variable */
18697 variable[0] = self;
18698 /* Register variable[1]: Local variable */
18699 variable[1] = param0;
18700 /* Register variable[2]: Method return value and escape marker */
18701 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
18702 /* Register variable[3]: Result */
18703 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18704 if (UNTAG_Bool(variable[3])) { /*if*/
18705 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18706 }
18707 return_label595: while(false);
18708 tracehead = trace.prev;
18709 return;
18710 }
18711 void parser_prod___ALeExpr___n_expr2__eq(val_t self, val_t param0) {
18712 struct trace_t trace = {NULL, NULL, 6892, LOCATE_parser_prod___ALeExpr___n_expr2__eq};
18713 val_t variable[4];
18714 struct WBT_ **closurevariable = NULL;
18715 trace.prev = tracehead; tracehead = &trace;
18716 trace.file = LOCATE_parser_prod;
18717 /* Register variable[0]: Local variable */
18718 variable[0] = self;
18719 /* Register variable[1]: Local variable */
18720 variable[1] = param0;
18721 /* Register variable[2]: Method return value and escape marker */
18722 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
18723 /* Register variable[3]: Result */
18724 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18725 if (UNTAG_Bool(variable[3])) { /*if*/
18726 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18727 }
18728 return_label596: while(false);
18729 tracehead = trace.prev;
18730 return;
18731 }
18732 void parser_prod___ALeExpr___replace_child(val_t self, val_t param0, val_t param1) {
18733 struct trace_t trace = {NULL, NULL, 6918, LOCATE_parser_prod___ALeExpr___replace_child};
18734 val_t variable[5];
18735 struct WBT_ **closurevariable = NULL;
18736 trace.prev = tracehead; tracehead = &trace;
18737 trace.file = LOCATE_parser_prod;
18738 /* Register variable[0]: Local variable */
18739 variable[0] = self;
18740 /* Register variable[1]: Local variable */
18741 variable[1] = param0;
18742 /* Register variable[2]: Local variable */
18743 variable[2] = param1;
18744 /* Register variable[3]: Method return value and escape marker */
18745 /* Register variable[4]: Result */
18746 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18747 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeExpr___replace_child, LOCATE_parser_prod, 6920); nit_exit(1);}
18748 /* Register variable[4]: Result */
18749 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18750 /* Register variable[4]: Result */
18751 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18752 if (UNTAG_Bool(variable[4])) { /*if*/
18753 /* Register variable[4]: Result */
18754 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18755 if (UNTAG_Bool(variable[4])) { /*if*/
18756 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18757 /* Register variable[4]: Result */
18758 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18759 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeExpr___replace_child, LOCATE_parser_prod, 6924); nit_exit(1);}
18760 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18761 } else { /*if*/
18762 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18763 }
18764 goto return_label597;
18765 }
18766 /* Register variable[4]: Result */
18767 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18768 /* Register variable[4]: Result */
18769 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18770 if (UNTAG_Bool(variable[4])) { /*if*/
18771 /* Register variable[4]: Result */
18772 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18773 if (UNTAG_Bool(variable[4])) { /*if*/
18774 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18775 /* Register variable[4]: Result */
18776 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18777 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeExpr___replace_child, LOCATE_parser_prod, 6934); nit_exit(1);}
18778 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
18779 } else { /*if*/
18780 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
18781 }
18782 goto return_label597;
18783 }
18784 return_label597: while(false);
18785 tracehead = trace.prev;
18786 return;
18787 }
18788 void parser_prod___ALeExpr___visit_all(val_t self, val_t param0) {
18789 struct trace_t trace = {NULL, NULL, 6943, LOCATE_parser_prod___ALeExpr___visit_all};
18790 val_t variable[4];
18791 struct WBT_ **closurevariable = NULL;
18792 trace.prev = tracehead; tracehead = &trace;
18793 trace.file = LOCATE_parser_prod;
18794 /* Register variable[0]: Local variable */
18795 variable[0] = self;
18796 /* Register variable[1]: Local variable */
18797 variable[1] = param0;
18798 /* Register variable[2]: Method return value and escape marker */
18799 /* Register variable[3]: Result */
18800 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18801 /* Register variable[3]: Result */
18802 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::==*/)))))));
18803 if (UNTAG_Bool(variable[3])) { /*if*/
18804 /* Register variable[3]: Result */
18805 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18806 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18807 }
18808 /* Register variable[3]: Result */
18809 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18810 /* Register variable[3]: Result */
18811 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::==*/)))))));
18812 if (UNTAG_Bool(variable[3])) { /*if*/
18813 /* Register variable[3]: Result */
18814 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18815 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18816 }
18817 return_label598: while(false);
18818 tracehead = trace.prev;
18819 return;
18820 }
18821 void parser_prod___ALeExpr___visit_all_reverse(val_t self, val_t param0) {
18822 struct trace_t trace = {NULL, NULL, 6953, LOCATE_parser_prod___ALeExpr___visit_all_reverse};
18823 val_t variable[4];
18824 struct WBT_ **closurevariable = NULL;
18825 trace.prev = tracehead; tracehead = &trace;
18826 trace.file = LOCATE_parser_prod;
18827 /* Register variable[0]: Local variable */
18828 variable[0] = self;
18829 /* Register variable[1]: Local variable */
18830 variable[1] = param0;
18831 /* Register variable[2]: Method return value and escape marker */
18832 /* Register variable[3]: Result */
18833 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18834 /* Register variable[3]: Result */
18835 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::==*/)))))));
18836 if (UNTAG_Bool(variable[3])) { /*if*/
18837 /* Register variable[3]: Result */
18838 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18839 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18840 }
18841 /* Register variable[3]: Result */
18842 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18843 /* Register variable[3]: Result */
18844 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::==*/)))))));
18845 if (UNTAG_Bool(variable[3])) { /*if*/
18846 /* Register variable[3]: Result */
18847 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18848 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18849 }
18850 return_label599: while(false);
18851 tracehead = trace.prev;
18852 return;
18853 }
18854 void parser_prod___ALeExpr___empty_init(val_t self, int* init_table) {
18855 struct trace_t trace = {NULL, NULL, 6900, LOCATE_parser_prod___ALeExpr___empty_init};
18856 val_t variable[2];
18857 struct WBT_ **closurevariable = NULL;
18858 trace.prev = tracehead; tracehead = &trace;
18859 trace.file = LOCATE_parser_prod;
18860 /* Register variable[0]: Local variable */
18861 variable[0] = self;
18862 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i]) return;
18863 /* Register variable[1]: Method return value and escape marker */
18864 return_label600: while(false);
18865 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
18866 tracehead = trace.prev;
18867 return;
18868 }
18869 void parser_prod___ALeExpr___init_aleexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18870 struct trace_t trace = {NULL, NULL, 6902, LOCATE_parser_prod___ALeExpr___init_aleexpr};
18871 val_t variable[5];
18872 struct WBT_ **closurevariable = NULL;
18873 trace.prev = tracehead; tracehead = &trace;
18874 trace.file = LOCATE_parser_prod;
18875 /* Register variable[0]: Local variable */
18876 variable[0] = self;
18877 /* Register variable[1]: Local variable */
18878 variable[1] = param0;
18879 /* Register variable[2]: Local variable */
18880 variable[2] = param1;
18881 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i]) return;
18882 /* Register variable[3]: Method return value and escape marker */
18883 CALL_parser_prod___ALeExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ALeExpr::empty_init*/;
18884 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
18885 /* Register variable[4]: Result */
18886 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18887 if (UNTAG_Bool(variable[4])) { /*if*/
18888 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
18889 }
18890 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18891 /* Register variable[4]: Result */
18892 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18893 if (UNTAG_Bool(variable[4])) { /*if*/
18894 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
18895 }
18896 return_label601: while(false);
18897 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
18898 tracehead = trace.prev;
18899 return;
18900 }
18901 void parser_prod___AGtExpr___n_expr__eq(val_t self, val_t param0) {
18902 struct trace_t trace = {NULL, NULL, 6964, LOCATE_parser_prod___AGtExpr___n_expr__eq};
18903 val_t variable[4];
18904 struct WBT_ **closurevariable = NULL;
18905 trace.prev = tracehead; tracehead = &trace;
18906 trace.file = LOCATE_parser_prod;
18907 /* Register variable[0]: Local variable */
18908 variable[0] = self;
18909 /* Register variable[1]: Local variable */
18910 variable[1] = param0;
18911 /* Register variable[2]: Method return value and escape marker */
18912 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
18913 /* Register variable[3]: Result */
18914 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18915 if (UNTAG_Bool(variable[3])) { /*if*/
18916 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18917 }
18918 return_label602: while(false);
18919 tracehead = trace.prev;
18920 return;
18921 }
18922 void parser_prod___AGtExpr___n_expr2__eq(val_t self, val_t param0) {
18923 struct trace_t trace = {NULL, NULL, 6971, LOCATE_parser_prod___AGtExpr___n_expr2__eq};
18924 val_t variable[4];
18925 struct WBT_ **closurevariable = NULL;
18926 trace.prev = tracehead; tracehead = &trace;
18927 trace.file = LOCATE_parser_prod;
18928 /* Register variable[0]: Local variable */
18929 variable[0] = self;
18930 /* Register variable[1]: Local variable */
18931 variable[1] = param0;
18932 /* Register variable[2]: Method return value and escape marker */
18933 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
18934 /* Register variable[3]: Result */
18935 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18936 if (UNTAG_Bool(variable[3])) { /*if*/
18937 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
18938 }
18939 return_label603: while(false);
18940 tracehead = trace.prev;
18941 return;
18942 }
18943 void parser_prod___AGtExpr___replace_child(val_t self, val_t param0, val_t param1) {
18944 struct trace_t trace = {NULL, NULL, 6997, LOCATE_parser_prod___AGtExpr___replace_child};
18945 val_t variable[5];
18946 struct WBT_ **closurevariable = NULL;
18947 trace.prev = tracehead; tracehead = &trace;
18948 trace.file = LOCATE_parser_prod;
18949 /* Register variable[0]: Local variable */
18950 variable[0] = self;
18951 /* Register variable[1]: Local variable */
18952 variable[1] = param0;
18953 /* Register variable[2]: Local variable */
18954 variable[2] = param1;
18955 /* Register variable[3]: Method return value and escape marker */
18956 /* Register variable[4]: Result */
18957 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18958 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtExpr___replace_child, LOCATE_parser_prod, 6999); nit_exit(1);}
18959 /* Register variable[4]: Result */
18960 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
18961 /* Register variable[4]: Result */
18962 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18963 if (UNTAG_Bool(variable[4])) { /*if*/
18964 /* Register variable[4]: Result */
18965 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18966 if (UNTAG_Bool(variable[4])) { /*if*/
18967 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18968 /* Register variable[4]: Result */
18969 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18970 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtExpr___replace_child, LOCATE_parser_prod, 7003); nit_exit(1);}
18971 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18972 } else { /*if*/
18973 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18974 }
18975 goto return_label604;
18976 }
18977 /* Register variable[4]: Result */
18978 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
18979 /* Register variable[4]: Result */
18980 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18981 if (UNTAG_Bool(variable[4])) { /*if*/
18982 /* Register variable[4]: Result */
18983 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18984 if (UNTAG_Bool(variable[4])) { /*if*/
18985 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
18986 /* Register variable[4]: Result */
18987 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18988 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtExpr___replace_child, LOCATE_parser_prod, 7013); nit_exit(1);}
18989 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
18990 } else { /*if*/
18991 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
18992 }
18993 goto return_label604;
18994 }
18995 return_label604: while(false);
18996 tracehead = trace.prev;
18997 return;
18998 }
18999 void parser_prod___AGtExpr___visit_all(val_t self, val_t param0) {
19000 struct trace_t trace = {NULL, NULL, 7022, LOCATE_parser_prod___AGtExpr___visit_all};
19001 val_t variable[4];
19002 struct WBT_ **closurevariable = NULL;
19003 trace.prev = tracehead; tracehead = &trace;
19004 trace.file = LOCATE_parser_prod;
19005 /* Register variable[0]: Local variable */
19006 variable[0] = self;
19007 /* Register variable[1]: Local variable */
19008 variable[1] = param0;
19009 /* Register variable[2]: Method return value and escape marker */
19010 /* Register variable[3]: Result */
19011 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19012 /* Register variable[3]: Result */
19013 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::==*/)))))));
19014 if (UNTAG_Bool(variable[3])) { /*if*/
19015 /* Register variable[3]: Result */
19016 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19017 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19018 }
19019 /* Register variable[3]: Result */
19020 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19021 /* Register variable[3]: Result */
19022 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::==*/)))))));
19023 if (UNTAG_Bool(variable[3])) { /*if*/
19024 /* Register variable[3]: Result */
19025 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19026 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19027 }
19028 return_label605: while(false);
19029 tracehead = trace.prev;
19030 return;
19031 }
19032 void parser_prod___AGtExpr___visit_all_reverse(val_t self, val_t param0) {
19033 struct trace_t trace = {NULL, NULL, 7032, LOCATE_parser_prod___AGtExpr___visit_all_reverse};
19034 val_t variable[4];
19035 struct WBT_ **closurevariable = NULL;
19036 trace.prev = tracehead; tracehead = &trace;
19037 trace.file = LOCATE_parser_prod;
19038 /* Register variable[0]: Local variable */
19039 variable[0] = self;
19040 /* Register variable[1]: Local variable */
19041 variable[1] = param0;
19042 /* Register variable[2]: Method return value and escape marker */
19043 /* Register variable[3]: Result */
19044 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19045 /* Register variable[3]: Result */
19046 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::==*/)))))));
19047 if (UNTAG_Bool(variable[3])) { /*if*/
19048 /* Register variable[3]: Result */
19049 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19050 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19051 }
19052 /* Register variable[3]: Result */
19053 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19054 /* Register variable[3]: Result */
19055 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::==*/)))))));
19056 if (UNTAG_Bool(variable[3])) { /*if*/
19057 /* Register variable[3]: Result */
19058 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19059 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19060 }
19061 return_label606: while(false);
19062 tracehead = trace.prev;
19063 return;
19064 }
19065 void parser_prod___AGtExpr___empty_init(val_t self, int* init_table) {
19066 struct trace_t trace = {NULL, NULL, 6979, LOCATE_parser_prod___AGtExpr___empty_init};
19067 val_t variable[2];
19068 struct WBT_ **closurevariable = NULL;
19069 trace.prev = tracehead; tracehead = &trace;
19070 trace.file = LOCATE_parser_prod;
19071 /* Register variable[0]: Local variable */
19072 variable[0] = self;
19073 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i]) return;
19074 /* Register variable[1]: Method return value and escape marker */
19075 return_label607: while(false);
19076 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
19077 tracehead = trace.prev;
19078 return;
19079 }
19080 void parser_prod___AGtExpr___init_agtexpr(val_t self, val_t param0, val_t param1, int* init_table) {
19081 struct trace_t trace = {NULL, NULL, 6981, LOCATE_parser_prod___AGtExpr___init_agtexpr};
19082 val_t variable[5];
19083 struct WBT_ **closurevariable = NULL;
19084 trace.prev = tracehead; tracehead = &trace;
19085 trace.file = LOCATE_parser_prod;
19086 /* Register variable[0]: Local variable */
19087 variable[0] = self;
19088 /* Register variable[1]: Local variable */
19089 variable[1] = param0;
19090 /* Register variable[2]: Local variable */
19091 variable[2] = param1;
19092 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i]) return;
19093 /* Register variable[3]: Method return value and escape marker */
19094 CALL_parser_prod___AGtExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AGtExpr::empty_init*/;
19095 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
19096 /* Register variable[4]: Result */
19097 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19098 if (UNTAG_Bool(variable[4])) { /*if*/
19099 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
19100 }
19101 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
19102 /* Register variable[4]: Result */
19103 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19104 if (UNTAG_Bool(variable[4])) { /*if*/
19105 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
19106 }
19107 return_label608: while(false);
19108 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
19109 tracehead = trace.prev;
19110 return;
19111 }
19112 void parser_prod___AGeExpr___n_expr__eq(val_t self, val_t param0) {
19113 struct trace_t trace = {NULL, NULL, 7043, LOCATE_parser_prod___AGeExpr___n_expr__eq};
19114 val_t variable[4];
19115 struct WBT_ **closurevariable = NULL;
19116 trace.prev = tracehead; tracehead = &trace;
19117 trace.file = LOCATE_parser_prod;
19118 /* Register variable[0]: Local variable */
19119 variable[0] = self;
19120 /* Register variable[1]: Local variable */
19121 variable[1] = param0;
19122 /* Register variable[2]: Method return value and escape marker */
19123 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
19124 /* Register variable[3]: Result */
19125 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19126 if (UNTAG_Bool(variable[3])) { /*if*/
19127 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19128 }
19129 return_label609: while(false);
19130 tracehead = trace.prev;
19131 return;
19132 }
19133 void parser_prod___AGeExpr___n_expr2__eq(val_t self, val_t param0) {
19134 struct trace_t trace = {NULL, NULL, 7050, LOCATE_parser_prod___AGeExpr___n_expr2__eq};
19135 val_t variable[4];
19136 struct WBT_ **closurevariable = NULL;
19137 trace.prev = tracehead; tracehead = &trace;
19138 trace.file = LOCATE_parser_prod;
19139 /* Register variable[0]: Local variable */
19140 variable[0] = self;
19141 /* Register variable[1]: Local variable */
19142 variable[1] = param0;
19143 /* Register variable[2]: Method return value and escape marker */
19144 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
19145 /* Register variable[3]: Result */
19146 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19147 if (UNTAG_Bool(variable[3])) { /*if*/
19148 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19149 }
19150 return_label610: while(false);
19151 tracehead = trace.prev;
19152 return;
19153 }
19154 void parser_prod___AGeExpr___replace_child(val_t self, val_t param0, val_t param1) {
19155 struct trace_t trace = {NULL, NULL, 7076, LOCATE_parser_prod___AGeExpr___replace_child};
19156 val_t variable[5];
19157 struct WBT_ **closurevariable = NULL;
19158 trace.prev = tracehead; tracehead = &trace;
19159 trace.file = LOCATE_parser_prod;
19160 /* Register variable[0]: Local variable */
19161 variable[0] = self;
19162 /* Register variable[1]: Local variable */
19163 variable[1] = param0;
19164 /* Register variable[2]: Local variable */
19165 variable[2] = param1;
19166 /* Register variable[3]: Method return value and escape marker */
19167 /* Register variable[4]: Result */
19168 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19169 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeExpr___replace_child, LOCATE_parser_prod, 7078); nit_exit(1);}
19170 /* Register variable[4]: Result */
19171 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19172 /* Register variable[4]: Result */
19173 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19174 if (UNTAG_Bool(variable[4])) { /*if*/
19175 /* Register variable[4]: Result */
19176 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19177 if (UNTAG_Bool(variable[4])) { /*if*/
19178 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19179 /* Register variable[4]: Result */
19180 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19181 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeExpr___replace_child, LOCATE_parser_prod, 7082); nit_exit(1);}
19182 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
19183 } else { /*if*/
19184 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
19185 }
19186 goto return_label611;
19187 }
19188 /* Register variable[4]: Result */
19189 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19190 /* Register variable[4]: Result */
19191 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19192 if (UNTAG_Bool(variable[4])) { /*if*/
19193 /* Register variable[4]: Result */
19194 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19195 if (UNTAG_Bool(variable[4])) { /*if*/
19196 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19197 /* Register variable[4]: Result */
19198 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19199 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeExpr___replace_child, LOCATE_parser_prod, 7092); nit_exit(1);}
19200 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
19201 } else { /*if*/
19202 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
19203 }
19204 goto return_label611;
19205 }
19206 return_label611: while(false);
19207 tracehead = trace.prev;
19208 return;
19209 }
19210 void parser_prod___AGeExpr___visit_all(val_t self, val_t param0) {
19211 struct trace_t trace = {NULL, NULL, 7101, LOCATE_parser_prod___AGeExpr___visit_all};
19212 val_t variable[4];
19213 struct WBT_ **closurevariable = NULL;
19214 trace.prev = tracehead; tracehead = &trace;
19215 trace.file = LOCATE_parser_prod;
19216 /* Register variable[0]: Local variable */
19217 variable[0] = self;
19218 /* Register variable[1]: Local variable */
19219 variable[1] = param0;
19220 /* Register variable[2]: Method return value and escape marker */
19221 /* Register variable[3]: Result */
19222 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19223 /* Register variable[3]: Result */
19224 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::==*/)))))));
19225 if (UNTAG_Bool(variable[3])) { /*if*/
19226 /* Register variable[3]: Result */
19227 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19228 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19229 }
19230 /* Register variable[3]: Result */
19231 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19232 /* Register variable[3]: Result */
19233 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::==*/)))))));
19234 if (UNTAG_Bool(variable[3])) { /*if*/
19235 /* Register variable[3]: Result */
19236 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19237 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19238 }
19239 return_label612: while(false);
19240 tracehead = trace.prev;
19241 return;
19242 }
19243 void parser_prod___AGeExpr___visit_all_reverse(val_t self, val_t param0) {
19244 struct trace_t trace = {NULL, NULL, 7111, LOCATE_parser_prod___AGeExpr___visit_all_reverse};
19245 val_t variable[4];
19246 struct WBT_ **closurevariable = NULL;
19247 trace.prev = tracehead; tracehead = &trace;
19248 trace.file = LOCATE_parser_prod;
19249 /* Register variable[0]: Local variable */
19250 variable[0] = self;
19251 /* Register variable[1]: Local variable */
19252 variable[1] = param0;
19253 /* Register variable[2]: Method return value and escape marker */
19254 /* Register variable[3]: Result */
19255 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19256 /* Register variable[3]: Result */
19257 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::==*/)))))));
19258 if (UNTAG_Bool(variable[3])) { /*if*/
19259 /* Register variable[3]: Result */
19260 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19261 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19262 }
19263 /* Register variable[3]: Result */
19264 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19265 /* Register variable[3]: Result */
19266 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::==*/)))))));
19267 if (UNTAG_Bool(variable[3])) { /*if*/
19268 /* Register variable[3]: Result */
19269 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19270 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19271 }
19272 return_label613: while(false);
19273 tracehead = trace.prev;
19274 return;
19275 }
19276 void parser_prod___AGeExpr___empty_init(val_t self, int* init_table) {
19277 struct trace_t trace = {NULL, NULL, 7058, LOCATE_parser_prod___AGeExpr___empty_init};
19278 val_t variable[2];
19279 struct WBT_ **closurevariable = NULL;
19280 trace.prev = tracehead; tracehead = &trace;
19281 trace.file = LOCATE_parser_prod;
19282 /* Register variable[0]: Local variable */
19283 variable[0] = self;
19284 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i]) return;
19285 /* Register variable[1]: Method return value and escape marker */
19286 return_label614: while(false);
19287 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
19288 tracehead = trace.prev;
19289 return;
19290 }
19291 void parser_prod___AGeExpr___init_ageexpr(val_t self, val_t param0, val_t param1, int* init_table) {
19292 struct trace_t trace = {NULL, NULL, 7060, LOCATE_parser_prod___AGeExpr___init_ageexpr};
19293 val_t variable[5];
19294 struct WBT_ **closurevariable = NULL;
19295 trace.prev = tracehead; tracehead = &trace;
19296 trace.file = LOCATE_parser_prod;
19297 /* Register variable[0]: Local variable */
19298 variable[0] = self;
19299 /* Register variable[1]: Local variable */
19300 variable[1] = param0;
19301 /* Register variable[2]: Local variable */
19302 variable[2] = param1;
19303 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i]) return;
19304 /* Register variable[3]: Method return value and escape marker */
19305 CALL_parser_prod___AGeExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AGeExpr::empty_init*/;
19306 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
19307 /* Register variable[4]: Result */
19308 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19309 if (UNTAG_Bool(variable[4])) { /*if*/
19310 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
19311 }
19312 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
19313 /* Register variable[4]: Result */
19314 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19315 if (UNTAG_Bool(variable[4])) { /*if*/
19316 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
19317 }
19318 return_label615: while(false);
19319 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
19320 tracehead = trace.prev;
19321 return;
19322 }
19323 void parser_prod___AIsaExpr___n_expr__eq(val_t self, val_t param0) {
19324 struct trace_t trace = {NULL, NULL, 7122, LOCATE_parser_prod___AIsaExpr___n_expr__eq};
19325 val_t variable[4];
19326 struct WBT_ **closurevariable = NULL;
19327 trace.prev = tracehead; tracehead = &trace;
19328 trace.file = LOCATE_parser_prod;
19329 /* Register variable[0]: Local variable */
19330 variable[0] = self;
19331 /* Register variable[1]: Local variable */
19332 variable[1] = param0;
19333 /* Register variable[2]: Method return value and escape marker */
19334 ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/ = variable[1] /*n*/;
19335 /* Register variable[3]: Result */
19336 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19337 if (UNTAG_Bool(variable[3])) { /*if*/
19338 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19339 }
19340 return_label616: while(false);
19341 tracehead = trace.prev;
19342 return;
19343 }
19344 void parser_prod___AIsaExpr___n_type__eq(val_t self, val_t param0) {
19345 struct trace_t trace = {NULL, NULL, 7129, LOCATE_parser_prod___AIsaExpr___n_type__eq};
19346 val_t variable[4];
19347 struct WBT_ **closurevariable = NULL;
19348 trace.prev = tracehead; tracehead = &trace;
19349 trace.file = LOCATE_parser_prod;
19350 /* Register variable[0]: Local variable */
19351 variable[0] = self;
19352 /* Register variable[1]: Local variable */
19353 variable[1] = param0;
19354 /* Register variable[2]: Method return value and escape marker */
19355 ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/ = variable[1] /*n*/;
19356 /* Register variable[3]: Result */
19357 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19358 if (UNTAG_Bool(variable[3])) { /*if*/
19359 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19360 }
19361 return_label617: while(false);
19362 tracehead = trace.prev;
19363 return;
19364 }
19365 void parser_prod___AIsaExpr___replace_child(val_t self, val_t param0, val_t param1) {
19366 struct trace_t trace = {NULL, NULL, 7155, LOCATE_parser_prod___AIsaExpr___replace_child};
19367 val_t variable[5];
19368 struct WBT_ **closurevariable = NULL;
19369 trace.prev = tracehead; tracehead = &trace;
19370 trace.file = LOCATE_parser_prod;
19371 /* Register variable[0]: Local variable */
19372 variable[0] = self;
19373 /* Register variable[1]: Local variable */
19374 variable[1] = param0;
19375 /* Register variable[2]: Local variable */
19376 variable[2] = param1;
19377 /* Register variable[3]: Method return value and escape marker */
19378 /* Register variable[4]: Result */
19379 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19380 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIsaExpr___replace_child, LOCATE_parser_prod, 7157); nit_exit(1);}
19381 /* Register variable[4]: Result */
19382 variable[4] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/;
19383 /* Register variable[4]: Result */
19384 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19385 if (UNTAG_Bool(variable[4])) { /*if*/
19386 /* Register variable[4]: Result */
19387 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19388 if (UNTAG_Bool(variable[4])) { /*if*/
19389 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19390 /* Register variable[4]: Result */
19391 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19392 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIsaExpr___replace_child, LOCATE_parser_prod, 7161); nit_exit(1);}
19393 ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/ = variable[2] /*new_child*/;
19394 } else { /*if*/
19395 ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/ = NIT_NULL /*null*/;
19396 }
19397 goto return_label618;
19398 }
19399 /* Register variable[4]: Result */
19400 variable[4] = ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/;
19401 /* Register variable[4]: Result */
19402 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19403 if (UNTAG_Bool(variable[4])) { /*if*/
19404 /* Register variable[4]: Result */
19405 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19406 if (UNTAG_Bool(variable[4])) { /*if*/
19407 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19408 /* Register variable[4]: Result */
19409 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
19410 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIsaExpr___replace_child, LOCATE_parser_prod, 7171); nit_exit(1);}
19411 ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/ = variable[2] /*new_child*/;
19412 } else { /*if*/
19413 ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/ = NIT_NULL /*null*/;
19414 }
19415 goto return_label618;
19416 }
19417 return_label618: while(false);
19418 tracehead = trace.prev;
19419 return;
19420 }
19421 void parser_prod___AIsaExpr___visit_all(val_t self, val_t param0) {
19422 struct trace_t trace = {NULL, NULL, 7180, LOCATE_parser_prod___AIsaExpr___visit_all};
19423 val_t variable[4];
19424 struct WBT_ **closurevariable = NULL;
19425 trace.prev = tracehead; tracehead = &trace;
19426 trace.file = LOCATE_parser_prod;
19427 /* Register variable[0]: Local variable */
19428 variable[0] = self;
19429 /* Register variable[1]: Local variable */
19430 variable[1] = param0;
19431 /* Register variable[2]: Method return value and escape marker */
19432 /* Register variable[3]: Result */
19433 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/;
19434 /* Register variable[3]: Result */
19435 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::==*/)))))));
19436 if (UNTAG_Bool(variable[3])) { /*if*/
19437 /* Register variable[3]: Result */
19438 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/;
19439 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19440 }
19441 /* Register variable[3]: Result */
19442 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/;
19443 /* Register variable[3]: Result */
19444 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::==*/)))))));
19445 if (UNTAG_Bool(variable[3])) { /*if*/
19446 /* Register variable[3]: Result */
19447 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/;
19448 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19449 }
19450 return_label619: while(false);
19451 tracehead = trace.prev;
19452 return;
19453 }
19454 void parser_prod___AIsaExpr___visit_all_reverse(val_t self, val_t param0) {
19455 struct trace_t trace = {NULL, NULL, 7190, LOCATE_parser_prod___AIsaExpr___visit_all_reverse};
19456 val_t variable[4];
19457 struct WBT_ **closurevariable = NULL;
19458 trace.prev = tracehead; tracehead = &trace;
19459 trace.file = LOCATE_parser_prod;
19460 /* Register variable[0]: Local variable */
19461 variable[0] = self;
19462 /* Register variable[1]: Local variable */
19463 variable[1] = param0;
19464 /* Register variable[2]: Method return value and escape marker */
19465 /* Register variable[3]: Result */
19466 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/;
19467 /* Register variable[3]: Result */
19468 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::==*/)))))));
19469 if (UNTAG_Bool(variable[3])) { /*if*/
19470 /* Register variable[3]: Result */
19471 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/;
19472 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19473 }
19474 /* Register variable[3]: Result */
19475 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/;
19476 /* Register variable[3]: Result */
19477 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::==*/)))))));
19478 if (UNTAG_Bool(variable[3])) { /*if*/
19479 /* Register variable[3]: Result */
19480 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/;
19481 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19482 }
19483 return_label620: while(false);
19484 tracehead = trace.prev;
19485 return;
19486 }
19487 void parser_prod___AIsaExpr___empty_init(val_t self, int* init_table) {
19488 struct trace_t trace = {NULL, NULL, 7137, LOCATE_parser_prod___AIsaExpr___empty_init};
19489 val_t variable[2];
19490 struct WBT_ **closurevariable = NULL;
19491 trace.prev = tracehead; tracehead = &trace;
19492 trace.file = LOCATE_parser_prod;
19493 /* Register variable[0]: Local variable */
19494 variable[0] = self;
19495 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
19496 /* Register variable[1]: Method return value and escape marker */
19497 return_label621: while(false);
19498 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
19499 tracehead = trace.prev;
19500 return;
19501 }
19502 void parser_prod___AIsaExpr___init_aisaexpr(val_t self, val_t param0, val_t param1, int* init_table) {
19503 struct trace_t trace = {NULL, NULL, 7139, LOCATE_parser_prod___AIsaExpr___init_aisaexpr};
19504 val_t variable[5];
19505 struct WBT_ **closurevariable = NULL;
19506 trace.prev = tracehead; tracehead = &trace;
19507 trace.file = LOCATE_parser_prod;
19508 /* Register variable[0]: Local variable */
19509 variable[0] = self;
19510 /* Register variable[1]: Local variable */
19511 variable[1] = param0;
19512 /* Register variable[2]: Local variable */
19513 variable[2] = param1;
19514 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
19515 /* Register variable[3]: Method return value and escape marker */
19516 CALL_parser_prod___AIsaExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AIsaExpr::empty_init*/;
19517 ATTR_parser_nodes___AIsaExpr____n_expr(variable[0]) /*AIsaExpr::_n_expr*/ = variable[1] /*n_expr*/;
19518 /* Register variable[4]: Result */
19519 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19520 if (UNTAG_Bool(variable[4])) { /*if*/
19521 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
19522 }
19523 ATTR_parser_nodes___AIsaExpr____n_type(variable[0]) /*AIsaExpr::_n_type*/ = variable[2] /*n_type*/;
19524 /* Register variable[4]: Result */
19525 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ == NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19526 if (UNTAG_Bool(variable[4])) { /*if*/
19527 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[0]) /*PNode::parent=*/;
19528 }
19529 return_label622: while(false);
19530 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
19531 tracehead = trace.prev;
19532 return;
19533 }
19534 void parser_prod___APlusExpr___n_expr__eq(val_t self, val_t param0) {
19535 struct trace_t trace = {NULL, NULL, 7201, LOCATE_parser_prod___APlusExpr___n_expr__eq};
19536 val_t variable[4];
19537 struct WBT_ **closurevariable = NULL;
19538 trace.prev = tracehead; tracehead = &trace;
19539 trace.file = LOCATE_parser_prod;
19540 /* Register variable[0]: Local variable */
19541 variable[0] = self;
19542 /* Register variable[1]: Local variable */
19543 variable[1] = param0;
19544 /* Register variable[2]: Method return value and escape marker */
19545 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
19546 /* Register variable[3]: Result */
19547 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19548 if (UNTAG_Bool(variable[3])) { /*if*/
19549 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19550 }
19551 return_label623: while(false);
19552 tracehead = trace.prev;
19553 return;
19554 }
19555 void parser_prod___APlusExpr___n_expr2__eq(val_t self, val_t param0) {
19556 struct trace_t trace = {NULL, NULL, 7208, LOCATE_parser_prod___APlusExpr___n_expr2__eq};
19557 val_t variable[4];
19558 struct WBT_ **closurevariable = NULL;
19559 trace.prev = tracehead; tracehead = &trace;
19560 trace.file = LOCATE_parser_prod;
19561 /* Register variable[0]: Local variable */
19562 variable[0] = self;
19563 /* Register variable[1]: Local variable */
19564 variable[1] = param0;
19565 /* Register variable[2]: Method return value and escape marker */
19566 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
19567 /* Register variable[3]: Result */
19568 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19569 if (UNTAG_Bool(variable[3])) { /*if*/
19570 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19571 }
19572 return_label624: while(false);
19573 tracehead = trace.prev;
19574 return;
19575 }
19576 void parser_prod___APlusExpr___replace_child(val_t self, val_t param0, val_t param1) {
19577 struct trace_t trace = {NULL, NULL, 7234, LOCATE_parser_prod___APlusExpr___replace_child};
19578 val_t variable[5];
19579 struct WBT_ **closurevariable = NULL;
19580 trace.prev = tracehead; tracehead = &trace;
19581 trace.file = LOCATE_parser_prod;
19582 /* Register variable[0]: Local variable */
19583 variable[0] = self;
19584 /* Register variable[1]: Local variable */
19585 variable[1] = param0;
19586 /* Register variable[2]: Local variable */
19587 variable[2] = param1;
19588 /* Register variable[3]: Method return value and escape marker */
19589 /* Register variable[4]: Result */
19590 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19591 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusExpr___replace_child, LOCATE_parser_prod, 7236); nit_exit(1);}
19592 /* Register variable[4]: Result */
19593 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19594 /* Register variable[4]: Result */
19595 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19596 if (UNTAG_Bool(variable[4])) { /*if*/
19597 /* Register variable[4]: Result */
19598 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19599 if (UNTAG_Bool(variable[4])) { /*if*/
19600 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19601 /* Register variable[4]: Result */
19602 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19603 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusExpr___replace_child, LOCATE_parser_prod, 7240); nit_exit(1);}
19604 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
19605 } else { /*if*/
19606 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
19607 }
19608 goto return_label625;
19609 }
19610 /* Register variable[4]: Result */
19611 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19612 /* Register variable[4]: Result */
19613 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19614 if (UNTAG_Bool(variable[4])) { /*if*/
19615 /* Register variable[4]: Result */
19616 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19617 if (UNTAG_Bool(variable[4])) { /*if*/
19618 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19619 /* Register variable[4]: Result */
19620 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19621 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusExpr___replace_child, LOCATE_parser_prod, 7250); nit_exit(1);}
19622 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
19623 } else { /*if*/
19624 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
19625 }
19626 goto return_label625;
19627 }
19628 return_label625: while(false);
19629 tracehead = trace.prev;
19630 return;
19631 }
19632 void parser_prod___APlusExpr___visit_all(val_t self, val_t param0) {
19633 struct trace_t trace = {NULL, NULL, 7259, LOCATE_parser_prod___APlusExpr___visit_all};
19634 val_t variable[4];
19635 struct WBT_ **closurevariable = NULL;
19636 trace.prev = tracehead; tracehead = &trace;
19637 trace.file = LOCATE_parser_prod;
19638 /* Register variable[0]: Local variable */
19639 variable[0] = self;
19640 /* Register variable[1]: Local variable */
19641 variable[1] = param0;
19642 /* Register variable[2]: Method return value and escape marker */
19643 /* Register variable[3]: Result */
19644 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19645 /* Register variable[3]: Result */
19646 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::==*/)))))));
19647 if (UNTAG_Bool(variable[3])) { /*if*/
19648 /* Register variable[3]: Result */
19649 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19650 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19651 }
19652 /* Register variable[3]: Result */
19653 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19654 /* Register variable[3]: Result */
19655 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::==*/)))))));
19656 if (UNTAG_Bool(variable[3])) { /*if*/
19657 /* Register variable[3]: Result */
19658 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19659 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19660 }
19661 return_label626: while(false);
19662 tracehead = trace.prev;
19663 return;
19664 }
19665 void parser_prod___APlusExpr___visit_all_reverse(val_t self, val_t param0) {
19666 struct trace_t trace = {NULL, NULL, 7269, LOCATE_parser_prod___APlusExpr___visit_all_reverse};
19667 val_t variable[4];
19668 struct WBT_ **closurevariable = NULL;
19669 trace.prev = tracehead; tracehead = &trace;
19670 trace.file = LOCATE_parser_prod;
19671 /* Register variable[0]: Local variable */
19672 variable[0] = self;
19673 /* Register variable[1]: Local variable */
19674 variable[1] = param0;
19675 /* Register variable[2]: Method return value and escape marker */
19676 /* Register variable[3]: Result */
19677 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19678 /* Register variable[3]: Result */
19679 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::==*/)))))));
19680 if (UNTAG_Bool(variable[3])) { /*if*/
19681 /* Register variable[3]: Result */
19682 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19683 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19684 }
19685 /* Register variable[3]: Result */
19686 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19687 /* Register variable[3]: Result */
19688 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::==*/)))))));
19689 if (UNTAG_Bool(variable[3])) { /*if*/
19690 /* Register variable[3]: Result */
19691 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19692 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19693 }
19694 return_label627: while(false);
19695 tracehead = trace.prev;
19696 return;
19697 }
19698 void parser_prod___APlusExpr___empty_init(val_t self, int* init_table) {
19699 struct trace_t trace = {NULL, NULL, 7216, LOCATE_parser_prod___APlusExpr___empty_init};
19700 val_t variable[2];
19701 struct WBT_ **closurevariable = NULL;
19702 trace.prev = tracehead; tracehead = &trace;
19703 trace.file = LOCATE_parser_prod;
19704 /* Register variable[0]: Local variable */
19705 variable[0] = self;
19706 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i]) return;
19707 /* Register variable[1]: Method return value and escape marker */
19708 return_label628: while(false);
19709 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
19710 tracehead = trace.prev;
19711 return;
19712 }
19713 void parser_prod___APlusExpr___init_aplusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
19714 struct trace_t trace = {NULL, NULL, 7218, LOCATE_parser_prod___APlusExpr___init_aplusexpr};
19715 val_t variable[5];
19716 struct WBT_ **closurevariable = NULL;
19717 trace.prev = tracehead; tracehead = &trace;
19718 trace.file = LOCATE_parser_prod;
19719 /* Register variable[0]: Local variable */
19720 variable[0] = self;
19721 /* Register variable[1]: Local variable */
19722 variable[1] = param0;
19723 /* Register variable[2]: Local variable */
19724 variable[2] = param1;
19725 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i]) return;
19726 /* Register variable[3]: Method return value and escape marker */
19727 CALL_parser_prod___APlusExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APlusExpr::empty_init*/;
19728 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
19729 /* Register variable[4]: Result */
19730 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19731 if (UNTAG_Bool(variable[4])) { /*if*/
19732 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
19733 }
19734 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
19735 /* Register variable[4]: Result */
19736 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19737 if (UNTAG_Bool(variable[4])) { /*if*/
19738 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
19739 }
19740 return_label629: while(false);
19741 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
19742 tracehead = trace.prev;
19743 return;
19744 }
19745 void parser_prod___AMinusExpr___n_expr__eq(val_t self, val_t param0) {
19746 struct trace_t trace = {NULL, NULL, 7280, LOCATE_parser_prod___AMinusExpr___n_expr__eq};
19747 val_t variable[4];
19748 struct WBT_ **closurevariable = NULL;
19749 trace.prev = tracehead; tracehead = &trace;
19750 trace.file = LOCATE_parser_prod;
19751 /* Register variable[0]: Local variable */
19752 variable[0] = self;
19753 /* Register variable[1]: Local variable */
19754 variable[1] = param0;
19755 /* Register variable[2]: Method return value and escape marker */
19756 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
19757 /* Register variable[3]: Result */
19758 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19759 if (UNTAG_Bool(variable[3])) { /*if*/
19760 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19761 }
19762 return_label630: while(false);
19763 tracehead = trace.prev;
19764 return;
19765 }
19766 void parser_prod___AMinusExpr___n_expr2__eq(val_t self, val_t param0) {
19767 struct trace_t trace = {NULL, NULL, 7287, LOCATE_parser_prod___AMinusExpr___n_expr2__eq};
19768 val_t variable[4];
19769 struct WBT_ **closurevariable = NULL;
19770 trace.prev = tracehead; tracehead = &trace;
19771 trace.file = LOCATE_parser_prod;
19772 /* Register variable[0]: Local variable */
19773 variable[0] = self;
19774 /* Register variable[1]: Local variable */
19775 variable[1] = param0;
19776 /* Register variable[2]: Method return value and escape marker */
19777 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
19778 /* Register variable[3]: Result */
19779 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19780 if (UNTAG_Bool(variable[3])) { /*if*/
19781 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19782 }
19783 return_label631: while(false);
19784 tracehead = trace.prev;
19785 return;
19786 }
19787 void parser_prod___AMinusExpr___replace_child(val_t self, val_t param0, val_t param1) {
19788 struct trace_t trace = {NULL, NULL, 7313, LOCATE_parser_prod___AMinusExpr___replace_child};
19789 val_t variable[5];
19790 struct WBT_ **closurevariable = NULL;
19791 trace.prev = tracehead; tracehead = &trace;
19792 trace.file = LOCATE_parser_prod;
19793 /* Register variable[0]: Local variable */
19794 variable[0] = self;
19795 /* Register variable[1]: Local variable */
19796 variable[1] = param0;
19797 /* Register variable[2]: Local variable */
19798 variable[2] = param1;
19799 /* Register variable[3]: Method return value and escape marker */
19800 /* Register variable[4]: Result */
19801 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19802 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusExpr___replace_child, LOCATE_parser_prod, 7315); nit_exit(1);}
19803 /* Register variable[4]: Result */
19804 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19805 /* Register variable[4]: Result */
19806 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19807 if (UNTAG_Bool(variable[4])) { /*if*/
19808 /* Register variable[4]: Result */
19809 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19810 if (UNTAG_Bool(variable[4])) { /*if*/
19811 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19812 /* Register variable[4]: Result */
19813 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19814 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusExpr___replace_child, LOCATE_parser_prod, 7319); nit_exit(1);}
19815 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
19816 } else { /*if*/
19817 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
19818 }
19819 goto return_label632;
19820 }
19821 /* Register variable[4]: Result */
19822 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19823 /* Register variable[4]: Result */
19824 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19825 if (UNTAG_Bool(variable[4])) { /*if*/
19826 /* Register variable[4]: Result */
19827 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19828 if (UNTAG_Bool(variable[4])) { /*if*/
19829 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
19830 /* Register variable[4]: Result */
19831 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19832 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusExpr___replace_child, LOCATE_parser_prod, 7329); nit_exit(1);}
19833 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
19834 } else { /*if*/
19835 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
19836 }
19837 goto return_label632;
19838 }
19839 return_label632: while(false);
19840 tracehead = trace.prev;
19841 return;
19842 }
19843 void parser_prod___AMinusExpr___visit_all(val_t self, val_t param0) {
19844 struct trace_t trace = {NULL, NULL, 7338, LOCATE_parser_prod___AMinusExpr___visit_all};
19845 val_t variable[4];
19846 struct WBT_ **closurevariable = NULL;
19847 trace.prev = tracehead; tracehead = &trace;
19848 trace.file = LOCATE_parser_prod;
19849 /* Register variable[0]: Local variable */
19850 variable[0] = self;
19851 /* Register variable[1]: Local variable */
19852 variable[1] = param0;
19853 /* Register variable[2]: Method return value and escape marker */
19854 /* Register variable[3]: Result */
19855 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19856 /* Register variable[3]: Result */
19857 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::==*/)))))));
19858 if (UNTAG_Bool(variable[3])) { /*if*/
19859 /* Register variable[3]: Result */
19860 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19861 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19862 }
19863 /* Register variable[3]: Result */
19864 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19865 /* Register variable[3]: Result */
19866 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::==*/)))))));
19867 if (UNTAG_Bool(variable[3])) { /*if*/
19868 /* Register variable[3]: Result */
19869 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19870 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19871 }
19872 return_label633: while(false);
19873 tracehead = trace.prev;
19874 return;
19875 }
19876 void parser_prod___AMinusExpr___visit_all_reverse(val_t self, val_t param0) {
19877 struct trace_t trace = {NULL, NULL, 7348, LOCATE_parser_prod___AMinusExpr___visit_all_reverse};
19878 val_t variable[4];
19879 struct WBT_ **closurevariable = NULL;
19880 trace.prev = tracehead; tracehead = &trace;
19881 trace.file = LOCATE_parser_prod;
19882 /* Register variable[0]: Local variable */
19883 variable[0] = self;
19884 /* Register variable[1]: Local variable */
19885 variable[1] = param0;
19886 /* Register variable[2]: Method return value and escape marker */
19887 /* Register variable[3]: Result */
19888 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19889 /* Register variable[3]: Result */
19890 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::==*/)))))));
19891 if (UNTAG_Bool(variable[3])) { /*if*/
19892 /* Register variable[3]: Result */
19893 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
19894 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19895 }
19896 /* Register variable[3]: Result */
19897 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19898 /* Register variable[3]: Result */
19899 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::==*/)))))));
19900 if (UNTAG_Bool(variable[3])) { /*if*/
19901 /* Register variable[3]: Result */
19902 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
19903 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19904 }
19905 return_label634: while(false);
19906 tracehead = trace.prev;
19907 return;
19908 }
19909 void parser_prod___AMinusExpr___empty_init(val_t self, int* init_table) {
19910 struct trace_t trace = {NULL, NULL, 7295, LOCATE_parser_prod___AMinusExpr___empty_init};
19911 val_t variable[2];
19912 struct WBT_ **closurevariable = NULL;
19913 trace.prev = tracehead; tracehead = &trace;
19914 trace.file = LOCATE_parser_prod;
19915 /* Register variable[0]: Local variable */
19916 variable[0] = self;
19917 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
19918 /* Register variable[1]: Method return value and escape marker */
19919 return_label635: while(false);
19920 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
19921 tracehead = trace.prev;
19922 return;
19923 }
19924 void parser_prod___AMinusExpr___init_aminusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
19925 struct trace_t trace = {NULL, NULL, 7297, LOCATE_parser_prod___AMinusExpr___init_aminusexpr};
19926 val_t variable[5];
19927 struct WBT_ **closurevariable = NULL;
19928 trace.prev = tracehead; tracehead = &trace;
19929 trace.file = LOCATE_parser_prod;
19930 /* Register variable[0]: Local variable */
19931 variable[0] = self;
19932 /* Register variable[1]: Local variable */
19933 variable[1] = param0;
19934 /* Register variable[2]: Local variable */
19935 variable[2] = param1;
19936 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
19937 /* Register variable[3]: Method return value and escape marker */
19938 CALL_parser_prod___AMinusExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AMinusExpr::empty_init*/;
19939 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
19940 /* Register variable[4]: Result */
19941 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19942 if (UNTAG_Bool(variable[4])) { /*if*/
19943 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
19944 }
19945 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
19946 /* Register variable[4]: Result */
19947 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19948 if (UNTAG_Bool(variable[4])) { /*if*/
19949 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
19950 }
19951 return_label636: while(false);
19952 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
19953 tracehead = trace.prev;
19954 return;
19955 }
19956 void parser_prod___AStarshipExpr___n_expr__eq(val_t self, val_t param0) {
19957 struct trace_t trace = {NULL, NULL, 7359, LOCATE_parser_prod___AStarshipExpr___n_expr__eq};
19958 val_t variable[4];
19959 struct WBT_ **closurevariable = NULL;
19960 trace.prev = tracehead; tracehead = &trace;
19961 trace.file = LOCATE_parser_prod;
19962 /* Register variable[0]: Local variable */
19963 variable[0] = self;
19964 /* Register variable[1]: Local variable */
19965 variable[1] = param0;
19966 /* Register variable[2]: Method return value and escape marker */
19967 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
19968 /* Register variable[3]: Result */
19969 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19970 if (UNTAG_Bool(variable[3])) { /*if*/
19971 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19972 }
19973 return_label637: while(false);
19974 tracehead = trace.prev;
19975 return;
19976 }
19977 void parser_prod___AStarshipExpr___n_expr2__eq(val_t self, val_t param0) {
19978 struct trace_t trace = {NULL, NULL, 7366, LOCATE_parser_prod___AStarshipExpr___n_expr2__eq};
19979 val_t variable[4];
19980 struct WBT_ **closurevariable = NULL;
19981 trace.prev = tracehead; tracehead = &trace;
19982 trace.file = LOCATE_parser_prod;
19983 /* Register variable[0]: Local variable */
19984 variable[0] = self;
19985 /* Register variable[1]: Local variable */
19986 variable[1] = param0;
19987 /* Register variable[2]: Method return value and escape marker */
19988 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
19989 /* Register variable[3]: Result */
19990 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19991 if (UNTAG_Bool(variable[3])) { /*if*/
19992 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
19993 }
19994 return_label638: while(false);
19995 tracehead = trace.prev;
19996 return;
19997 }
19998 void parser_prod___AStarshipExpr___replace_child(val_t self, val_t param0, val_t param1) {
19999 struct trace_t trace = {NULL, NULL, 7392, LOCATE_parser_prod___AStarshipExpr___replace_child};
20000 val_t variable[5];
20001 struct WBT_ **closurevariable = NULL;
20002 trace.prev = tracehead; tracehead = &trace;
20003 trace.file = LOCATE_parser_prod;
20004 /* Register variable[0]: Local variable */
20005 variable[0] = self;
20006 /* Register variable[1]: Local variable */
20007 variable[1] = param0;
20008 /* Register variable[2]: Local variable */
20009 variable[2] = param1;
20010 /* Register variable[3]: Method return value and escape marker */
20011 /* Register variable[4]: Result */
20012 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20013 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipExpr___replace_child, LOCATE_parser_prod, 7394); nit_exit(1);}
20014 /* Register variable[4]: Result */
20015 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20016 /* Register variable[4]: Result */
20017 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20018 if (UNTAG_Bool(variable[4])) { /*if*/
20019 /* Register variable[4]: Result */
20020 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20021 if (UNTAG_Bool(variable[4])) { /*if*/
20022 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20023 /* Register variable[4]: Result */
20024 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20025 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipExpr___replace_child, LOCATE_parser_prod, 7398); nit_exit(1);}
20026 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
20027 } else { /*if*/
20028 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
20029 }
20030 goto return_label639;
20031 }
20032 /* Register variable[4]: Result */
20033 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20034 /* Register variable[4]: Result */
20035 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20036 if (UNTAG_Bool(variable[4])) { /*if*/
20037 /* Register variable[4]: Result */
20038 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20039 if (UNTAG_Bool(variable[4])) { /*if*/
20040 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20041 /* Register variable[4]: Result */
20042 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20043 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipExpr___replace_child, LOCATE_parser_prod, 7408); nit_exit(1);}
20044 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
20045 } else { /*if*/
20046 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
20047 }
20048 goto return_label639;
20049 }
20050 return_label639: while(false);
20051 tracehead = trace.prev;
20052 return;
20053 }
20054 void parser_prod___AStarshipExpr___visit_all(val_t self, val_t param0) {
20055 struct trace_t trace = {NULL, NULL, 7417, LOCATE_parser_prod___AStarshipExpr___visit_all};
20056 val_t variable[4];
20057 struct WBT_ **closurevariable = NULL;
20058 trace.prev = tracehead; tracehead = &trace;
20059 trace.file = LOCATE_parser_prod;
20060 /* Register variable[0]: Local variable */
20061 variable[0] = self;
20062 /* Register variable[1]: Local variable */
20063 variable[1] = param0;
20064 /* Register variable[2]: Method return value and escape marker */
20065 /* Register variable[3]: Result */
20066 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20067 /* Register variable[3]: Result */
20068 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::==*/)))))));
20069 if (UNTAG_Bool(variable[3])) { /*if*/
20070 /* Register variable[3]: Result */
20071 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20072 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20073 }
20074 /* Register variable[3]: Result */
20075 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20076 /* Register variable[3]: Result */
20077 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::==*/)))))));
20078 if (UNTAG_Bool(variable[3])) { /*if*/
20079 /* Register variable[3]: Result */
20080 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20081 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20082 }
20083 return_label640: while(false);
20084 tracehead = trace.prev;
20085 return;
20086 }
20087 void parser_prod___AStarshipExpr___visit_all_reverse(val_t self, val_t param0) {
20088 struct trace_t trace = {NULL, NULL, 7427, LOCATE_parser_prod___AStarshipExpr___visit_all_reverse};
20089 val_t variable[4];
20090 struct WBT_ **closurevariable = NULL;
20091 trace.prev = tracehead; tracehead = &trace;
20092 trace.file = LOCATE_parser_prod;
20093 /* Register variable[0]: Local variable */
20094 variable[0] = self;
20095 /* Register variable[1]: Local variable */
20096 variable[1] = param0;
20097 /* Register variable[2]: Method return value and escape marker */
20098 /* Register variable[3]: Result */
20099 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20100 /* Register variable[3]: Result */
20101 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::==*/)))))));
20102 if (UNTAG_Bool(variable[3])) { /*if*/
20103 /* Register variable[3]: Result */
20104 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20105 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20106 }
20107 /* Register variable[3]: Result */
20108 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20109 /* Register variable[3]: Result */
20110 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::==*/)))))));
20111 if (UNTAG_Bool(variable[3])) { /*if*/
20112 /* Register variable[3]: Result */
20113 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20114 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20115 }
20116 return_label641: while(false);
20117 tracehead = trace.prev;
20118 return;
20119 }
20120 void parser_prod___AStarshipExpr___empty_init(val_t self, int* init_table) {
20121 struct trace_t trace = {NULL, NULL, 7374, LOCATE_parser_prod___AStarshipExpr___empty_init};
20122 val_t variable[2];
20123 struct WBT_ **closurevariable = NULL;
20124 trace.prev = tracehead; tracehead = &trace;
20125 trace.file = LOCATE_parser_prod;
20126 /* Register variable[0]: Local variable */
20127 variable[0] = self;
20128 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
20129 /* Register variable[1]: Method return value and escape marker */
20130 return_label642: while(false);
20131 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
20132 tracehead = trace.prev;
20133 return;
20134 }
20135 void parser_prod___AStarshipExpr___init_astarshipexpr(val_t self, val_t param0, val_t param1, int* init_table) {
20136 struct trace_t trace = {NULL, NULL, 7376, LOCATE_parser_prod___AStarshipExpr___init_astarshipexpr};
20137 val_t variable[5];
20138 struct WBT_ **closurevariable = NULL;
20139 trace.prev = tracehead; tracehead = &trace;
20140 trace.file = LOCATE_parser_prod;
20141 /* Register variable[0]: Local variable */
20142 variable[0] = self;
20143 /* Register variable[1]: Local variable */
20144 variable[1] = param0;
20145 /* Register variable[2]: Local variable */
20146 variable[2] = param1;
20147 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
20148 /* Register variable[3]: Method return value and escape marker */
20149 CALL_parser_prod___AStarshipExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AStarshipExpr::empty_init*/;
20150 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
20151 /* Register variable[4]: Result */
20152 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20153 if (UNTAG_Bool(variable[4])) { /*if*/
20154 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
20155 }
20156 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
20157 /* Register variable[4]: Result */
20158 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20159 if (UNTAG_Bool(variable[4])) { /*if*/
20160 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
20161 }
20162 return_label643: while(false);
20163 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
20164 tracehead = trace.prev;
20165 return;
20166 }
20167 void parser_prod___AStarExpr___n_expr__eq(val_t self, val_t param0) {
20168 struct trace_t trace = {NULL, NULL, 7438, LOCATE_parser_prod___AStarExpr___n_expr__eq};
20169 val_t variable[4];
20170 struct WBT_ **closurevariable = NULL;
20171 trace.prev = tracehead; tracehead = &trace;
20172 trace.file = LOCATE_parser_prod;
20173 /* Register variable[0]: Local variable */
20174 variable[0] = self;
20175 /* Register variable[1]: Local variable */
20176 variable[1] = param0;
20177 /* Register variable[2]: Method return value and escape marker */
20178 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
20179 /* Register variable[3]: Result */
20180 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20181 if (UNTAG_Bool(variable[3])) { /*if*/
20182 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20183 }
20184 return_label644: while(false);
20185 tracehead = trace.prev;
20186 return;
20187 }
20188 void parser_prod___AStarExpr___n_expr2__eq(val_t self, val_t param0) {
20189 struct trace_t trace = {NULL, NULL, 7445, LOCATE_parser_prod___AStarExpr___n_expr2__eq};
20190 val_t variable[4];
20191 struct WBT_ **closurevariable = NULL;
20192 trace.prev = tracehead; tracehead = &trace;
20193 trace.file = LOCATE_parser_prod;
20194 /* Register variable[0]: Local variable */
20195 variable[0] = self;
20196 /* Register variable[1]: Local variable */
20197 variable[1] = param0;
20198 /* Register variable[2]: Method return value and escape marker */
20199 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
20200 /* Register variable[3]: Result */
20201 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20202 if (UNTAG_Bool(variable[3])) { /*if*/
20203 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20204 }
20205 return_label645: while(false);
20206 tracehead = trace.prev;
20207 return;
20208 }
20209 void parser_prod___AStarExpr___replace_child(val_t self, val_t param0, val_t param1) {
20210 struct trace_t trace = {NULL, NULL, 7471, LOCATE_parser_prod___AStarExpr___replace_child};
20211 val_t variable[5];
20212 struct WBT_ **closurevariable = NULL;
20213 trace.prev = tracehead; tracehead = &trace;
20214 trace.file = LOCATE_parser_prod;
20215 /* Register variable[0]: Local variable */
20216 variable[0] = self;
20217 /* Register variable[1]: Local variable */
20218 variable[1] = param0;
20219 /* Register variable[2]: Local variable */
20220 variable[2] = param1;
20221 /* Register variable[3]: Method return value and escape marker */
20222 /* Register variable[4]: Result */
20223 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20224 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarExpr___replace_child, LOCATE_parser_prod, 7473); nit_exit(1);}
20225 /* Register variable[4]: Result */
20226 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20227 /* Register variable[4]: Result */
20228 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20229 if (UNTAG_Bool(variable[4])) { /*if*/
20230 /* Register variable[4]: Result */
20231 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20232 if (UNTAG_Bool(variable[4])) { /*if*/
20233 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20234 /* Register variable[4]: Result */
20235 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20236 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarExpr___replace_child, LOCATE_parser_prod, 7477); nit_exit(1);}
20237 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
20238 } else { /*if*/
20239 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
20240 }
20241 goto return_label646;
20242 }
20243 /* Register variable[4]: Result */
20244 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20245 /* Register variable[4]: Result */
20246 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20247 if (UNTAG_Bool(variable[4])) { /*if*/
20248 /* Register variable[4]: Result */
20249 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20250 if (UNTAG_Bool(variable[4])) { /*if*/
20251 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20252 /* Register variable[4]: Result */
20253 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20254 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarExpr___replace_child, LOCATE_parser_prod, 7487); nit_exit(1);}
20255 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
20256 } else { /*if*/
20257 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
20258 }
20259 goto return_label646;
20260 }
20261 return_label646: while(false);
20262 tracehead = trace.prev;
20263 return;
20264 }
20265 void parser_prod___AStarExpr___visit_all(val_t self, val_t param0) {
20266 struct trace_t trace = {NULL, NULL, 7496, LOCATE_parser_prod___AStarExpr___visit_all};
20267 val_t variable[4];
20268 struct WBT_ **closurevariable = NULL;
20269 trace.prev = tracehead; tracehead = &trace;
20270 trace.file = LOCATE_parser_prod;
20271 /* Register variable[0]: Local variable */
20272 variable[0] = self;
20273 /* Register variable[1]: Local variable */
20274 variable[1] = param0;
20275 /* Register variable[2]: Method return value and escape marker */
20276 /* Register variable[3]: Result */
20277 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20278 /* Register variable[3]: Result */
20279 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::==*/)))))));
20280 if (UNTAG_Bool(variable[3])) { /*if*/
20281 /* Register variable[3]: Result */
20282 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20283 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20284 }
20285 /* Register variable[3]: Result */
20286 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20287 /* Register variable[3]: Result */
20288 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::==*/)))))));
20289 if (UNTAG_Bool(variable[3])) { /*if*/
20290 /* Register variable[3]: Result */
20291 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20292 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20293 }
20294 return_label647: while(false);
20295 tracehead = trace.prev;
20296 return;
20297 }
20298 void parser_prod___AStarExpr___visit_all_reverse(val_t self, val_t param0) {
20299 struct trace_t trace = {NULL, NULL, 7506, LOCATE_parser_prod___AStarExpr___visit_all_reverse};
20300 val_t variable[4];
20301 struct WBT_ **closurevariable = NULL;
20302 trace.prev = tracehead; tracehead = &trace;
20303 trace.file = LOCATE_parser_prod;
20304 /* Register variable[0]: Local variable */
20305 variable[0] = self;
20306 /* Register variable[1]: Local variable */
20307 variable[1] = param0;
20308 /* Register variable[2]: Method return value and escape marker */
20309 /* Register variable[3]: Result */
20310 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20311 /* Register variable[3]: Result */
20312 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::==*/)))))));
20313 if (UNTAG_Bool(variable[3])) { /*if*/
20314 /* Register variable[3]: Result */
20315 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20316 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20317 }
20318 /* Register variable[3]: Result */
20319 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20320 /* Register variable[3]: Result */
20321 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::==*/)))))));
20322 if (UNTAG_Bool(variable[3])) { /*if*/
20323 /* Register variable[3]: Result */
20324 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20325 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20326 }
20327 return_label648: while(false);
20328 tracehead = trace.prev;
20329 return;
20330 }
20331 void parser_prod___AStarExpr___empty_init(val_t self, int* init_table) {
20332 struct trace_t trace = {NULL, NULL, 7453, LOCATE_parser_prod___AStarExpr___empty_init};
20333 val_t variable[2];
20334 struct WBT_ **closurevariable = NULL;
20335 trace.prev = tracehead; tracehead = &trace;
20336 trace.file = LOCATE_parser_prod;
20337 /* Register variable[0]: Local variable */
20338 variable[0] = self;
20339 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i]) return;
20340 /* Register variable[1]: Method return value and escape marker */
20341 return_label649: while(false);
20342 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
20343 tracehead = trace.prev;
20344 return;
20345 }
20346 void parser_prod___AStarExpr___init_astarexpr(val_t self, val_t param0, val_t param1, int* init_table) {
20347 struct trace_t trace = {NULL, NULL, 7455, LOCATE_parser_prod___AStarExpr___init_astarexpr};
20348 val_t variable[5];
20349 struct WBT_ **closurevariable = NULL;
20350 trace.prev = tracehead; tracehead = &trace;
20351 trace.file = LOCATE_parser_prod;
20352 /* Register variable[0]: Local variable */
20353 variable[0] = self;
20354 /* Register variable[1]: Local variable */
20355 variable[1] = param0;
20356 /* Register variable[2]: Local variable */
20357 variable[2] = param1;
20358 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i]) return;
20359 /* Register variable[3]: Method return value and escape marker */
20360 CALL_parser_prod___AStarExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AStarExpr::empty_init*/;
20361 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
20362 /* Register variable[4]: Result */
20363 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20364 if (UNTAG_Bool(variable[4])) { /*if*/
20365 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
20366 }
20367 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
20368 /* Register variable[4]: Result */
20369 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20370 if (UNTAG_Bool(variable[4])) { /*if*/
20371 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
20372 }
20373 return_label650: while(false);
20374 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
20375 tracehead = trace.prev;
20376 return;
20377 }
20378 void parser_prod___ASlashExpr___n_expr__eq(val_t self, val_t param0) {
20379 struct trace_t trace = {NULL, NULL, 7517, LOCATE_parser_prod___ASlashExpr___n_expr__eq};
20380 val_t variable[4];
20381 struct WBT_ **closurevariable = NULL;
20382 trace.prev = tracehead; tracehead = &trace;
20383 trace.file = LOCATE_parser_prod;
20384 /* Register variable[0]: Local variable */
20385 variable[0] = self;
20386 /* Register variable[1]: Local variable */
20387 variable[1] = param0;
20388 /* Register variable[2]: Method return value and escape marker */
20389 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
20390 /* Register variable[3]: Result */
20391 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20392 if (UNTAG_Bool(variable[3])) { /*if*/
20393 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20394 }
20395 return_label651: while(false);
20396 tracehead = trace.prev;
20397 return;
20398 }
20399 void parser_prod___ASlashExpr___n_expr2__eq(val_t self, val_t param0) {
20400 struct trace_t trace = {NULL, NULL, 7524, LOCATE_parser_prod___ASlashExpr___n_expr2__eq};
20401 val_t variable[4];
20402 struct WBT_ **closurevariable = NULL;
20403 trace.prev = tracehead; tracehead = &trace;
20404 trace.file = LOCATE_parser_prod;
20405 /* Register variable[0]: Local variable */
20406 variable[0] = self;
20407 /* Register variable[1]: Local variable */
20408 variable[1] = param0;
20409 /* Register variable[2]: Method return value and escape marker */
20410 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
20411 /* Register variable[3]: Result */
20412 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20413 if (UNTAG_Bool(variable[3])) { /*if*/
20414 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20415 }
20416 return_label652: while(false);
20417 tracehead = trace.prev;
20418 return;
20419 }
20420 void parser_prod___ASlashExpr___replace_child(val_t self, val_t param0, val_t param1) {
20421 struct trace_t trace = {NULL, NULL, 7550, LOCATE_parser_prod___ASlashExpr___replace_child};
20422 val_t variable[5];
20423 struct WBT_ **closurevariable = NULL;
20424 trace.prev = tracehead; tracehead = &trace;
20425 trace.file = LOCATE_parser_prod;
20426 /* Register variable[0]: Local variable */
20427 variable[0] = self;
20428 /* Register variable[1]: Local variable */
20429 variable[1] = param0;
20430 /* Register variable[2]: Local variable */
20431 variable[2] = param1;
20432 /* Register variable[3]: Method return value and escape marker */
20433 /* Register variable[4]: Result */
20434 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20435 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashExpr___replace_child, LOCATE_parser_prod, 7552); nit_exit(1);}
20436 /* Register variable[4]: Result */
20437 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20438 /* Register variable[4]: Result */
20439 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20440 if (UNTAG_Bool(variable[4])) { /*if*/
20441 /* Register variable[4]: Result */
20442 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20443 if (UNTAG_Bool(variable[4])) { /*if*/
20444 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20445 /* Register variable[4]: Result */
20446 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20447 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashExpr___replace_child, LOCATE_parser_prod, 7556); nit_exit(1);}
20448 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
20449 } else { /*if*/
20450 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
20451 }
20452 goto return_label653;
20453 }
20454 /* Register variable[4]: Result */
20455 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20456 /* Register variable[4]: Result */
20457 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20458 if (UNTAG_Bool(variable[4])) { /*if*/
20459 /* Register variable[4]: Result */
20460 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20461 if (UNTAG_Bool(variable[4])) { /*if*/
20462 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20463 /* Register variable[4]: Result */
20464 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20465 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashExpr___replace_child, LOCATE_parser_prod, 7566); nit_exit(1);}
20466 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
20467 } else { /*if*/
20468 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
20469 }
20470 goto return_label653;
20471 }
20472 return_label653: while(false);
20473 tracehead = trace.prev;
20474 return;
20475 }
20476 void parser_prod___ASlashExpr___visit_all(val_t self, val_t param0) {
20477 struct trace_t trace = {NULL, NULL, 7575, LOCATE_parser_prod___ASlashExpr___visit_all};
20478 val_t variable[4];
20479 struct WBT_ **closurevariable = NULL;
20480 trace.prev = tracehead; tracehead = &trace;
20481 trace.file = LOCATE_parser_prod;
20482 /* Register variable[0]: Local variable */
20483 variable[0] = self;
20484 /* Register variable[1]: Local variable */
20485 variable[1] = param0;
20486 /* Register variable[2]: Method return value and escape marker */
20487 /* Register variable[3]: Result */
20488 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20489 /* Register variable[3]: Result */
20490 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::==*/)))))));
20491 if (UNTAG_Bool(variable[3])) { /*if*/
20492 /* Register variable[3]: Result */
20493 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20494 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20495 }
20496 /* Register variable[3]: Result */
20497 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20498 /* Register variable[3]: Result */
20499 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::==*/)))))));
20500 if (UNTAG_Bool(variable[3])) { /*if*/
20501 /* Register variable[3]: Result */
20502 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20503 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20504 }
20505 return_label654: while(false);
20506 tracehead = trace.prev;
20507 return;
20508 }
20509 void parser_prod___ASlashExpr___visit_all_reverse(val_t self, val_t param0) {
20510 struct trace_t trace = {NULL, NULL, 7585, LOCATE_parser_prod___ASlashExpr___visit_all_reverse};
20511 val_t variable[4];
20512 struct WBT_ **closurevariable = NULL;
20513 trace.prev = tracehead; tracehead = &trace;
20514 trace.file = LOCATE_parser_prod;
20515 /* Register variable[0]: Local variable */
20516 variable[0] = self;
20517 /* Register variable[1]: Local variable */
20518 variable[1] = param0;
20519 /* Register variable[2]: Method return value and escape marker */
20520 /* Register variable[3]: Result */
20521 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20522 /* Register variable[3]: Result */
20523 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::==*/)))))));
20524 if (UNTAG_Bool(variable[3])) { /*if*/
20525 /* Register variable[3]: Result */
20526 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20527 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20528 }
20529 /* Register variable[3]: Result */
20530 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20531 /* Register variable[3]: Result */
20532 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::==*/)))))));
20533 if (UNTAG_Bool(variable[3])) { /*if*/
20534 /* Register variable[3]: Result */
20535 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20536 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20537 }
20538 return_label655: while(false);
20539 tracehead = trace.prev;
20540 return;
20541 }
20542 void parser_prod___ASlashExpr___empty_init(val_t self, int* init_table) {
20543 struct trace_t trace = {NULL, NULL, 7532, LOCATE_parser_prod___ASlashExpr___empty_init};
20544 val_t variable[2];
20545 struct WBT_ **closurevariable = NULL;
20546 trace.prev = tracehead; tracehead = &trace;
20547 trace.file = LOCATE_parser_prod;
20548 /* Register variable[0]: Local variable */
20549 variable[0] = self;
20550 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
20551 /* Register variable[1]: Method return value and escape marker */
20552 return_label656: while(false);
20553 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
20554 tracehead = trace.prev;
20555 return;
20556 }
20557 void parser_prod___ASlashExpr___init_aslashexpr(val_t self, val_t param0, val_t param1, int* init_table) {
20558 struct trace_t trace = {NULL, NULL, 7534, LOCATE_parser_prod___ASlashExpr___init_aslashexpr};
20559 val_t variable[5];
20560 struct WBT_ **closurevariable = NULL;
20561 trace.prev = tracehead; tracehead = &trace;
20562 trace.file = LOCATE_parser_prod;
20563 /* Register variable[0]: Local variable */
20564 variable[0] = self;
20565 /* Register variable[1]: Local variable */
20566 variable[1] = param0;
20567 /* Register variable[2]: Local variable */
20568 variable[2] = param1;
20569 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
20570 /* Register variable[3]: Method return value and escape marker */
20571 CALL_parser_prod___ASlashExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASlashExpr::empty_init*/;
20572 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
20573 /* Register variable[4]: Result */
20574 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20575 if (UNTAG_Bool(variable[4])) { /*if*/
20576 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
20577 }
20578 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
20579 /* Register variable[4]: Result */
20580 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20581 if (UNTAG_Bool(variable[4])) { /*if*/
20582 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
20583 }
20584 return_label657: while(false);
20585 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
20586 tracehead = trace.prev;
20587 return;
20588 }
20589 void parser_prod___APercentExpr___n_expr__eq(val_t self, val_t param0) {
20590 struct trace_t trace = {NULL, NULL, 7596, LOCATE_parser_prod___APercentExpr___n_expr__eq};
20591 val_t variable[4];
20592 struct WBT_ **closurevariable = NULL;
20593 trace.prev = tracehead; tracehead = &trace;
20594 trace.file = LOCATE_parser_prod;
20595 /* Register variable[0]: Local variable */
20596 variable[0] = self;
20597 /* Register variable[1]: Local variable */
20598 variable[1] = param0;
20599 /* Register variable[2]: Method return value and escape marker */
20600 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
20601 /* Register variable[3]: Result */
20602 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20603 if (UNTAG_Bool(variable[3])) { /*if*/
20604 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20605 }
20606 return_label658: while(false);
20607 tracehead = trace.prev;
20608 return;
20609 }
20610 void parser_prod___APercentExpr___n_expr2__eq(val_t self, val_t param0) {
20611 struct trace_t trace = {NULL, NULL, 7603, LOCATE_parser_prod___APercentExpr___n_expr2__eq};
20612 val_t variable[4];
20613 struct WBT_ **closurevariable = NULL;
20614 trace.prev = tracehead; tracehead = &trace;
20615 trace.file = LOCATE_parser_prod;
20616 /* Register variable[0]: Local variable */
20617 variable[0] = self;
20618 /* Register variable[1]: Local variable */
20619 variable[1] = param0;
20620 /* Register variable[2]: Method return value and escape marker */
20621 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
20622 /* Register variable[3]: Result */
20623 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20624 if (UNTAG_Bool(variable[3])) { /*if*/
20625 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20626 }
20627 return_label659: while(false);
20628 tracehead = trace.prev;
20629 return;
20630 }
20631 void parser_prod___APercentExpr___replace_child(val_t self, val_t param0, val_t param1) {
20632 struct trace_t trace = {NULL, NULL, 7629, LOCATE_parser_prod___APercentExpr___replace_child};
20633 val_t variable[5];
20634 struct WBT_ **closurevariable = NULL;
20635 trace.prev = tracehead; tracehead = &trace;
20636 trace.file = LOCATE_parser_prod;
20637 /* Register variable[0]: Local variable */
20638 variable[0] = self;
20639 /* Register variable[1]: Local variable */
20640 variable[1] = param0;
20641 /* Register variable[2]: Local variable */
20642 variable[2] = param1;
20643 /* Register variable[3]: Method return value and escape marker */
20644 /* Register variable[4]: Result */
20645 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20646 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentExpr___replace_child, LOCATE_parser_prod, 7631); nit_exit(1);}
20647 /* Register variable[4]: Result */
20648 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20649 /* Register variable[4]: Result */
20650 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20651 if (UNTAG_Bool(variable[4])) { /*if*/
20652 /* Register variable[4]: Result */
20653 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20654 if (UNTAG_Bool(variable[4])) { /*if*/
20655 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20656 /* Register variable[4]: Result */
20657 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20658 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentExpr___replace_child, LOCATE_parser_prod, 7635); nit_exit(1);}
20659 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
20660 } else { /*if*/
20661 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
20662 }
20663 goto return_label660;
20664 }
20665 /* Register variable[4]: Result */
20666 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20667 /* Register variable[4]: Result */
20668 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20669 if (UNTAG_Bool(variable[4])) { /*if*/
20670 /* Register variable[4]: Result */
20671 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20672 if (UNTAG_Bool(variable[4])) { /*if*/
20673 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20674 /* Register variable[4]: Result */
20675 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20676 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentExpr___replace_child, LOCATE_parser_prod, 7645); nit_exit(1);}
20677 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
20678 } else { /*if*/
20679 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
20680 }
20681 goto return_label660;
20682 }
20683 return_label660: while(false);
20684 tracehead = trace.prev;
20685 return;
20686 }
20687 void parser_prod___APercentExpr___visit_all(val_t self, val_t param0) {
20688 struct trace_t trace = {NULL, NULL, 7654, LOCATE_parser_prod___APercentExpr___visit_all};
20689 val_t variable[4];
20690 struct WBT_ **closurevariable = NULL;
20691 trace.prev = tracehead; tracehead = &trace;
20692 trace.file = LOCATE_parser_prod;
20693 /* Register variable[0]: Local variable */
20694 variable[0] = self;
20695 /* Register variable[1]: Local variable */
20696 variable[1] = param0;
20697 /* Register variable[2]: Method return value and escape marker */
20698 /* Register variable[3]: Result */
20699 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20700 /* Register variable[3]: Result */
20701 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::==*/)))))));
20702 if (UNTAG_Bool(variable[3])) { /*if*/
20703 /* Register variable[3]: Result */
20704 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20705 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20706 }
20707 /* Register variable[3]: Result */
20708 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20709 /* Register variable[3]: Result */
20710 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::==*/)))))));
20711 if (UNTAG_Bool(variable[3])) { /*if*/
20712 /* Register variable[3]: Result */
20713 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20714 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20715 }
20716 return_label661: while(false);
20717 tracehead = trace.prev;
20718 return;
20719 }
20720 void parser_prod___APercentExpr___visit_all_reverse(val_t self, val_t param0) {
20721 struct trace_t trace = {NULL, NULL, 7664, LOCATE_parser_prod___APercentExpr___visit_all_reverse};
20722 val_t variable[4];
20723 struct WBT_ **closurevariable = NULL;
20724 trace.prev = tracehead; tracehead = &trace;
20725 trace.file = LOCATE_parser_prod;
20726 /* Register variable[0]: Local variable */
20727 variable[0] = self;
20728 /* Register variable[1]: Local variable */
20729 variable[1] = param0;
20730 /* Register variable[2]: Method return value and escape marker */
20731 /* Register variable[3]: Result */
20732 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20733 /* Register variable[3]: Result */
20734 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::==*/)))))));
20735 if (UNTAG_Bool(variable[3])) { /*if*/
20736 /* Register variable[3]: Result */
20737 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20738 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20739 }
20740 /* Register variable[3]: Result */
20741 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20742 /* Register variable[3]: Result */
20743 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::==*/)))))));
20744 if (UNTAG_Bool(variable[3])) { /*if*/
20745 /* Register variable[3]: Result */
20746 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/;
20747 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20748 }
20749 return_label662: while(false);
20750 tracehead = trace.prev;
20751 return;
20752 }
20753 void parser_prod___APercentExpr___empty_init(val_t self, int* init_table) {
20754 struct trace_t trace = {NULL, NULL, 7611, LOCATE_parser_prod___APercentExpr___empty_init};
20755 val_t variable[2];
20756 struct WBT_ **closurevariable = NULL;
20757 trace.prev = tracehead; tracehead = &trace;
20758 trace.file = LOCATE_parser_prod;
20759 /* Register variable[0]: Local variable */
20760 variable[0] = self;
20761 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i]) return;
20762 /* Register variable[1]: Method return value and escape marker */
20763 return_label663: while(false);
20764 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
20765 tracehead = trace.prev;
20766 return;
20767 }
20768 void parser_prod___APercentExpr___init_apercentexpr(val_t self, val_t param0, val_t param1, int* init_table) {
20769 struct trace_t trace = {NULL, NULL, 7613, LOCATE_parser_prod___APercentExpr___init_apercentexpr};
20770 val_t variable[5];
20771 struct WBT_ **closurevariable = NULL;
20772 trace.prev = tracehead; tracehead = &trace;
20773 trace.file = LOCATE_parser_prod;
20774 /* Register variable[0]: Local variable */
20775 variable[0] = self;
20776 /* Register variable[1]: Local variable */
20777 variable[1] = param0;
20778 /* Register variable[2]: Local variable */
20779 variable[2] = param1;
20780 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i]) return;
20781 /* Register variable[3]: Method return value and escape marker */
20782 CALL_parser_prod___APercentExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APercentExpr::empty_init*/;
20783 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
20784 /* Register variable[4]: Result */
20785 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20786 if (UNTAG_Bool(variable[4])) { /*if*/
20787 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
20788 }
20789 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[0]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
20790 /* Register variable[4]: Result */
20791 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20792 if (UNTAG_Bool(variable[4])) { /*if*/
20793 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
20794 }
20795 return_label664: while(false);
20796 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
20797 tracehead = trace.prev;
20798 return;
20799 }
20800 void parser_prod___AUminusExpr___n_expr__eq(val_t self, val_t param0) {
20801 struct trace_t trace = {NULL, NULL, 7682, LOCATE_parser_prod___AUminusExpr___n_expr__eq};
20802 val_t variable[4];
20803 struct WBT_ **closurevariable = NULL;
20804 trace.prev = tracehead; tracehead = &trace;
20805 trace.file = LOCATE_parser_prod;
20806 /* Register variable[0]: Local variable */
20807 variable[0] = self;
20808 /* Register variable[1]: Local variable */
20809 variable[1] = param0;
20810 /* Register variable[2]: Method return value and escape marker */
20811 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
20812 /* Register variable[3]: Result */
20813 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20814 if (UNTAG_Bool(variable[3])) { /*if*/
20815 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20816 }
20817 return_label665: while(false);
20818 tracehead = trace.prev;
20819 return;
20820 }
20821 void parser_prod___AUminusExpr___n_minus__eq(val_t self, val_t param0) {
20822 struct trace_t trace = {NULL, NULL, 7675, LOCATE_parser_prod___AUminusExpr___n_minus__eq};
20823 val_t variable[4];
20824 struct WBT_ **closurevariable = NULL;
20825 trace.prev = tracehead; tracehead = &trace;
20826 trace.file = LOCATE_parser_prod;
20827 /* Register variable[0]: Local variable */
20828 variable[0] = self;
20829 /* Register variable[1]: Local variable */
20830 variable[1] = param0;
20831 /* Register variable[2]: Method return value and escape marker */
20832 ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/ = variable[1] /*n*/;
20833 /* Register variable[3]: Result */
20834 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20835 if (UNTAG_Bool(variable[3])) { /*if*/
20836 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
20837 }
20838 return_label666: while(false);
20839 tracehead = trace.prev;
20840 return;
20841 }
20842 void parser_prod___AUminusExpr___replace_child(val_t self, val_t param0, val_t param1) {
20843 struct trace_t trace = {NULL, NULL, 7708, LOCATE_parser_prod___AUminusExpr___replace_child};
20844 val_t variable[5];
20845 struct WBT_ **closurevariable = NULL;
20846 trace.prev = tracehead; tracehead = &trace;
20847 trace.file = LOCATE_parser_prod;
20848 /* Register variable[0]: Local variable */
20849 variable[0] = self;
20850 /* Register variable[1]: Local variable */
20851 variable[1] = param0;
20852 /* Register variable[2]: Local variable */
20853 variable[2] = param1;
20854 /* Register variable[3]: Method return value and escape marker */
20855 /* Register variable[4]: Result */
20856 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20857 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUminusExpr___replace_child, LOCATE_parser_prod, 7710); nit_exit(1);}
20858 /* Register variable[4]: Result */
20859 variable[4] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/;
20860 /* Register variable[4]: Result */
20861 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20862 if (UNTAG_Bool(variable[4])) { /*if*/
20863 /* Register variable[4]: Result */
20864 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20865 if (UNTAG_Bool(variable[4])) { /*if*/
20866 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20867 /* Register variable[4]: Result */
20868 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
20869 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUminusExpr___replace_child, LOCATE_parser_prod, 7714); nit_exit(1);}
20870 ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/ = variable[2] /*new_child*/;
20871 } else { /*if*/
20872 ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/ = NIT_NULL /*null*/;
20873 }
20874 goto return_label667;
20875 }
20876 /* Register variable[4]: Result */
20877 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20878 /* Register variable[4]: Result */
20879 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20880 if (UNTAG_Bool(variable[4])) { /*if*/
20881 /* Register variable[4]: Result */
20882 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20883 if (UNTAG_Bool(variable[4])) { /*if*/
20884 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
20885 /* Register variable[4]: Result */
20886 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20887 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUminusExpr___replace_child, LOCATE_parser_prod, 7724); nit_exit(1);}
20888 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
20889 } else { /*if*/
20890 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
20891 }
20892 goto return_label667;
20893 }
20894 return_label667: while(false);
20895 tracehead = trace.prev;
20896 return;
20897 }
20898 void parser_prod___AUminusExpr___visit_all(val_t self, val_t param0) {
20899 struct trace_t trace = {NULL, NULL, 7733, LOCATE_parser_prod___AUminusExpr___visit_all};
20900 val_t variable[4];
20901 struct WBT_ **closurevariable = NULL;
20902 trace.prev = tracehead; tracehead = &trace;
20903 trace.file = LOCATE_parser_prod;
20904 /* Register variable[0]: Local variable */
20905 variable[0] = self;
20906 /* Register variable[1]: Local variable */
20907 variable[1] = param0;
20908 /* Register variable[2]: Method return value and escape marker */
20909 /* Register variable[3]: Result */
20910 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/;
20911 /* Register variable[3]: Result */
20912 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::==*/)))))));
20913 if (UNTAG_Bool(variable[3])) { /*if*/
20914 /* Register variable[3]: Result */
20915 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/;
20916 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20917 }
20918 /* Register variable[3]: Result */
20919 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20920 /* Register variable[3]: Result */
20921 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::==*/)))))));
20922 if (UNTAG_Bool(variable[3])) { /*if*/
20923 /* Register variable[3]: Result */
20924 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20925 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20926 }
20927 return_label668: while(false);
20928 tracehead = trace.prev;
20929 return;
20930 }
20931 void parser_prod___AUminusExpr___visit_all_reverse(val_t self, val_t param0) {
20932 struct trace_t trace = {NULL, NULL, 7743, LOCATE_parser_prod___AUminusExpr___visit_all_reverse};
20933 val_t variable[4];
20934 struct WBT_ **closurevariable = NULL;
20935 trace.prev = tracehead; tracehead = &trace;
20936 trace.file = LOCATE_parser_prod;
20937 /* Register variable[0]: Local variable */
20938 variable[0] = self;
20939 /* Register variable[1]: Local variable */
20940 variable[1] = param0;
20941 /* Register variable[2]: Method return value and escape marker */
20942 /* Register variable[3]: Result */
20943 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/;
20944 /* Register variable[3]: Result */
20945 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::==*/)))))));
20946 if (UNTAG_Bool(variable[3])) { /*if*/
20947 /* Register variable[3]: Result */
20948 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/;
20949 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20950 }
20951 /* Register variable[3]: Result */
20952 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20953 /* Register variable[3]: Result */
20954 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::==*/)))))));
20955 if (UNTAG_Bool(variable[3])) { /*if*/
20956 /* Register variable[3]: Result */
20957 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
20958 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20959 }
20960 return_label669: while(false);
20961 tracehead = trace.prev;
20962 return;
20963 }
20964 void parser_prod___AUminusExpr___empty_init(val_t self, int* init_table) {
20965 struct trace_t trace = {NULL, NULL, 7690, LOCATE_parser_prod___AUminusExpr___empty_init};
20966 val_t variable[2];
20967 struct WBT_ **closurevariable = NULL;
20968 trace.prev = tracehead; tracehead = &trace;
20969 trace.file = LOCATE_parser_prod;
20970 /* Register variable[0]: Local variable */
20971 variable[0] = self;
20972 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
20973 /* Register variable[1]: Method return value and escape marker */
20974 return_label670: while(false);
20975 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
20976 tracehead = trace.prev;
20977 return;
20978 }
20979 void parser_prod___AUminusExpr___init_auminusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
20980 struct trace_t trace = {NULL, NULL, 7692, LOCATE_parser_prod___AUminusExpr___init_auminusexpr};
20981 val_t variable[5];
20982 struct WBT_ **closurevariable = NULL;
20983 trace.prev = tracehead; tracehead = &trace;
20984 trace.file = LOCATE_parser_prod;
20985 /* Register variable[0]: Local variable */
20986 variable[0] = self;
20987 /* Register variable[1]: Local variable */
20988 variable[1] = param0;
20989 /* Register variable[2]: Local variable */
20990 variable[2] = param1;
20991 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
20992 /* Register variable[3]: Method return value and escape marker */
20993 CALL_parser_prod___AUminusExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AUminusExpr::empty_init*/;
20994 ATTR_parser_nodes___AUminusExpr____n_minus(variable[0]) /*AUminusExpr::_n_minus*/ = variable[1] /*n_minus*/;
20995 /* Register variable[4]: Result */
20996 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minus*/ == NIT_NULL /*null*/) || (( variable[1] /*n_minus*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20997 if (UNTAG_Bool(variable[4])) { /*if*/
20998 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, variable[0]) /*PNode::parent=*/;
20999 }
21000 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*n_expr*/;
21001 /* Register variable[4]: Result */
21002 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21003 if (UNTAG_Bool(variable[4])) { /*if*/
21004 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
21005 }
21006 return_label671: while(false);
21007 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
21008 tracehead = trace.prev;
21009 return;
21010 }
21011 void parser_prod___ANewExpr___n_kwnew__eq(val_t self, val_t param0) {
21012 struct trace_t trace = {NULL, NULL, 7754, LOCATE_parser_prod___ANewExpr___n_kwnew__eq};
21013 val_t variable[4];
21014 struct WBT_ **closurevariable = NULL;
21015 trace.prev = tracehead; tracehead = &trace;
21016 trace.file = LOCATE_parser_prod;
21017 /* Register variable[0]: Local variable */
21018 variable[0] = self;
21019 /* Register variable[1]: Local variable */
21020 variable[1] = param0;
21021 /* Register variable[2]: Method return value and escape marker */
21022 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/ = variable[1] /*n*/;
21023 /* Register variable[3]: Result */
21024 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21025 if (UNTAG_Bool(variable[3])) { /*if*/
21026 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21027 }
21028 return_label672: while(false);
21029 tracehead = trace.prev;
21030 return;
21031 }
21032 void parser_prod___ANewExpr___n_type__eq(val_t self, val_t param0) {
21033 struct trace_t trace = {NULL, NULL, 7761, LOCATE_parser_prod___ANewExpr___n_type__eq};
21034 val_t variable[4];
21035 struct WBT_ **closurevariable = NULL;
21036 trace.prev = tracehead; tracehead = &trace;
21037 trace.file = LOCATE_parser_prod;
21038 /* Register variable[0]: Local variable */
21039 variable[0] = self;
21040 /* Register variable[1]: Local variable */
21041 variable[1] = param0;
21042 /* Register variable[2]: Method return value and escape marker */
21043 ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/ = variable[1] /*n*/;
21044 /* Register variable[3]: Result */
21045 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21046 if (UNTAG_Bool(variable[3])) { /*if*/
21047 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21048 }
21049 return_label673: while(false);
21050 tracehead = trace.prev;
21051 return;
21052 }
21053 void parser_prod___ANewExpr___n_id__eq(val_t self, val_t param0) {
21054 struct trace_t trace = {NULL, NULL, 7768, LOCATE_parser_prod___ANewExpr___n_id__eq};
21055 val_t variable[4];
21056 struct WBT_ **closurevariable = NULL;
21057 trace.prev = tracehead; tracehead = &trace;
21058 trace.file = LOCATE_parser_prod;
21059 /* Register variable[0]: Local variable */
21060 variable[0] = self;
21061 /* Register variable[1]: Local variable */
21062 variable[1] = param0;
21063 /* Register variable[2]: Method return value and escape marker */
21064 ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/ = variable[1] /*n*/;
21065 /* Register variable[3]: Result */
21066 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21067 if (UNTAG_Bool(variable[3])) { /*if*/
21068 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21069 }
21070 return_label674: while(false);
21071 tracehead = trace.prev;
21072 return;
21073 }
21074 void parser_prod___ANewExpr___replace_child(val_t self, val_t param0, val_t param1) {
21075 struct trace_t trace = {NULL, NULL, 7806, LOCATE_parser_prod___ANewExpr___replace_child};
21076 val_t variable[8];
21077 struct WBT_ **closurevariable = NULL;
21078 trace.prev = tracehead; tracehead = &trace;
21079 trace.file = LOCATE_parser_prod;
21080 /* Register variable[0]: Local variable */
21081 variable[0] = self;
21082 /* Register variable[1]: Local variable */
21083 variable[1] = param0;
21084 /* Register variable[2]: Local variable */
21085 variable[2] = param1;
21086 /* Register variable[3]: Method return value and escape marker */
21087 /* Register variable[4]: Result */
21088 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21089 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7808); nit_exit(1);}
21090 /* Register variable[4]: Result */
21091 variable[4] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/;
21092 /* Register variable[4]: Result */
21093 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21094 if (UNTAG_Bool(variable[4])) { /*if*/
21095 /* Register variable[4]: Result */
21096 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21097 if (UNTAG_Bool(variable[4])) { /*if*/
21098 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21099 /* Register variable[4]: Result */
21100 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
21101 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7812); nit_exit(1);}
21102 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/ = variable[2] /*new_child*/;
21103 } else { /*if*/
21104 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/ = NIT_NULL /*null*/;
21105 }
21106 goto return_label675;
21107 }
21108 /* Register variable[4]: Result */
21109 variable[4] = ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/;
21110 /* Register variable[4]: Result */
21111 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21112 if (UNTAG_Bool(variable[4])) { /*if*/
21113 /* Register variable[4]: Result */
21114 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21115 if (UNTAG_Bool(variable[4])) { /*if*/
21116 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21117 /* Register variable[4]: Result */
21118 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
21119 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7822); nit_exit(1);}
21120 ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/ = variable[2] /*new_child*/;
21121 } else { /*if*/
21122 ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/ = NIT_NULL /*null*/;
21123 }
21124 goto return_label675;
21125 }
21126 /* Register variable[4]: Result */
21127 variable[4] = ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/;
21128 /* Register variable[4]: Result */
21129 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21130 if (UNTAG_Bool(variable[4])) { /*if*/
21131 /* Register variable[4]: Result */
21132 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21133 if (UNTAG_Bool(variable[4])) { /*if*/
21134 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21135 /* Register variable[4]: Result */
21136 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
21137 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7832); nit_exit(1);}
21138 ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/ = variable[2] /*new_child*/;
21139 } else { /*if*/
21140 ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/ = NIT_NULL /*null*/;
21141 }
21142 goto return_label675;
21143 }
21144 /* Register variable[4]: Result */
21145 variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21146 /* Register variable[4]: Result */
21147 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21148 /* Register variable[4]: Result */
21149 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
21150 /* Register variable[4]: For iterator */
21151 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
21152 while (true) { /*for*/
21153 /* Register variable[5]: For 'is_ok' result */
21154 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
21155 if (!UNTAG_Bool(variable[5])) break; /*for*/
21156 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
21157 /* Register variable[6]: Local variable */
21158 variable[6] = variable[5];
21159 /* Register variable[7]: Result */
21160 variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21161 /* Register variable[7]: Result */
21162 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
21163 /* Register variable[7]: Result */
21164 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
21165 if (UNTAG_Bool(variable[7])) { /*if*/
21166 /* Register variable[7]: Result */
21167 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21168 if (UNTAG_Bool(variable[7])) { /*if*/
21169 /* Register variable[7]: Result */
21170 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21171 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7842); nit_exit(1);}
21172 /* Register variable[7]: Result */
21173 variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21174 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
21175 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21176 } else { /*if*/
21177 /* Register variable[7]: Result */
21178 variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21179 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
21180 }
21181 goto return_label675;
21182 }
21183 continue_676: while(0);
21184 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
21185 }
21186 break_676: while(0);
21187 return_label675: while(false);
21188 tracehead = trace.prev;
21189 return;
21190 }
21191 void parser_prod___ANewExpr___visit_all(val_t self, val_t param0) {
21192 struct trace_t trace = {NULL, NULL, 7853, LOCATE_parser_prod___ANewExpr___visit_all};
21193 val_t variable[6];
21194 struct WBT_ **closurevariable = NULL;
21195 trace.prev = tracehead; tracehead = &trace;
21196 trace.file = LOCATE_parser_prod;
21197 /* Register variable[0]: Local variable */
21198 variable[0] = self;
21199 /* Register variable[1]: Local variable */
21200 variable[1] = param0;
21201 /* Register variable[2]: Method return value and escape marker */
21202 /* Register variable[3]: Result */
21203 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/;
21204 /* Register variable[3]: Result */
21205 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::==*/)))))));
21206 if (UNTAG_Bool(variable[3])) { /*if*/
21207 /* Register variable[3]: Result */
21208 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/;
21209 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21210 }
21211 /* Register variable[3]: Result */
21212 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/;
21213 /* Register variable[3]: Result */
21214 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::==*/)))))));
21215 if (UNTAG_Bool(variable[3])) { /*if*/
21216 /* Register variable[3]: Result */
21217 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/;
21218 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21219 }
21220 /* Register variable[3]: Result */
21221 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/;
21222 /* Register variable[3]: Result */
21223 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::==*/)))))));
21224 if (UNTAG_Bool(variable[3])) { /*if*/
21225 /* Register variable[3]: Result */
21226 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/;
21227 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21228 }
21229 /* Register variable[3]: Result */
21230 variable[3] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21231 /* Register variable[3]: For iterator */
21232 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
21233 while (true) { /*for*/
21234 /* Register variable[4]: For 'is_ok' result */
21235 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
21236 if (!UNTAG_Bool(variable[4])) break; /*for*/
21237 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
21238 /* Register variable[5]: Local variable */
21239 variable[5] = variable[4];
21240 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
21241 continue_678: while(0);
21242 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
21243 }
21244 break_678: while(0);
21245 return_label677: while(false);
21246 tracehead = trace.prev;
21247 return;
21248 }
21249 void parser_prod___ANewExpr___visit_all_reverse(val_t self, val_t param0) {
21250 struct trace_t trace = {NULL, NULL, 7869, LOCATE_parser_prod___ANewExpr___visit_all_reverse};
21251 val_t variable[5];
21252 struct WBT_ **closurevariable = NULL;
21253 trace.prev = tracehead; tracehead = &trace;
21254 trace.file = LOCATE_parser_prod;
21255 /* Register variable[0]: Local variable */
21256 variable[0] = self;
21257 /* Register variable[1]: Local variable */
21258 variable[1] = param0;
21259 /* Register variable[2]: Method return value and escape marker */
21260 /* Register variable[3]: Result */
21261 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/;
21262 /* Register variable[3]: Result */
21263 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::==*/)))))));
21264 if (UNTAG_Bool(variable[3])) { /*if*/
21265 /* Register variable[3]: Result */
21266 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/;
21267 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21268 }
21269 /* Register variable[3]: Result */
21270 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/;
21271 /* Register variable[3]: Result */
21272 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::==*/)))))));
21273 if (UNTAG_Bool(variable[3])) { /*if*/
21274 /* Register variable[3]: Result */
21275 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/;
21276 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21277 }
21278 /* Register variable[3]: Result */
21279 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/;
21280 /* Register variable[3]: Result */
21281 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::==*/)))))));
21282 if (UNTAG_Bool(variable[3])) { /*if*/
21283 /* Register variable[3]: Result */
21284 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/;
21285 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21286 }
21287 /* Register variable[3]: Local variable */
21288 /* Register variable[4]: Result */
21289 variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21290 /* Register variable[4]: Result */
21291 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21292 variable[3] = variable[4];
21293 while (true) { /*while*/
21294 /* Register variable[4]: Result */
21295 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
21296 if (!UNTAG_Bool(variable[4])) break; /* while*/
21297 /* Register variable[4]: Result */
21298 variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21299 /* Register variable[4]: Result */
21300 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
21301 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
21302 /* Register variable[4]: Result */
21303 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
21304 variable[3] = variable[4] /*i=*/;
21305 continue_680: while(0);
21306 }
21307 break_680: while(0);
21308 return_label679: while(false);
21309 tracehead = trace.prev;
21310 return;
21311 }
21312 void parser_prod___ANewExpr___empty_init(val_t self, int* init_table) {
21313 struct trace_t trace = {NULL, NULL, 7776, LOCATE_parser_prod___ANewExpr___empty_init};
21314 val_t variable[2];
21315 struct WBT_ **closurevariable = NULL;
21316 trace.prev = tracehead; tracehead = &trace;
21317 trace.file = LOCATE_parser_prod;
21318 /* Register variable[0]: Local variable */
21319 variable[0] = self;
21320 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i]) return;
21321 /* Register variable[1]: Method return value and escape marker */
21322 return_label681: while(false);
21323 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
21324 tracehead = trace.prev;
21325 return;
21326 }
21327 void parser_prod___ANewExpr___init_anewexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
21328 struct trace_t trace = {NULL, NULL, 7778, LOCATE_parser_prod___ANewExpr___init_anewexpr};
21329 val_t variable[10];
21330 struct WBT_ **closurevariable = NULL;
21331 trace.prev = tracehead; tracehead = &trace;
21332 trace.file = LOCATE_parser_prod;
21333 /* Register variable[0]: Local variable */
21334 variable[0] = self;
21335 /* Register variable[1]: Local variable */
21336 variable[1] = param0;
21337 /* Register variable[2]: Local variable */
21338 variable[2] = param1;
21339 /* Register variable[3]: Local variable */
21340 variable[3] = param2;
21341 /* Register variable[4]: Local variable */
21342 variable[4] = param3;
21343 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i]) return;
21344 /* Register variable[5]: Method return value and escape marker */
21345 CALL_parser_prod___ANewExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ANewExpr::empty_init*/;
21346 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[0]) /*ANewExpr::_n_kwnew*/ = variable[1] /*n_kwnew*/;
21347 /* Register variable[6]: Result */
21348 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnew*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwnew*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwnew*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnew*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwnew*/)( variable[1] /*n_kwnew*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21349 if (UNTAG_Bool(variable[6])) { /*if*/
21350 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnew*/)( variable[1] /*n_kwnew*/, variable[0]) /*PNode::parent=*/;
21351 }
21352 ATTR_parser_nodes___ANewExpr____n_type(variable[0]) /*ANewExpr::_n_type*/ = variable[2] /*n_type*/;
21353 /* Register variable[6]: Result */
21354 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ == NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21355 if (UNTAG_Bool(variable[6])) { /*if*/
21356 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[0]) /*PNode::parent=*/;
21357 }
21358 ATTR_parser_nodes___ANewExpr____n_id(variable[0]) /*ANewExpr::_n_id*/ = variable[3] /*n_id*/;
21359 /* Register variable[6]: Result */
21360 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ == NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21361 if (UNTAG_Bool(variable[6])) { /*if*/
21362 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[0]) /*PNode::parent=*/;
21363 }
21364 /* Register variable[6]: Result */
21365 variable[6] = NEW_List_list___List___init() /*new List[PExpr]*/;
21366 ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/ = variable[6];
21367 /* Register variable[6]: For iterator */
21368 variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*n_args*/)( variable[4] /*n_args*/) /*Collection::iterator*/;
21369 while (true) { /*for*/
21370 /* Register variable[7]: For 'is_ok' result */
21371 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
21372 if (!UNTAG_Bool(variable[7])) break; /*for*/
21373 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
21374 /* Register variable[8]: Local variable */
21375 variable[8] = variable[7];
21376 /* Register variable[9]: Result */
21377 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21378 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___init_anewexpr, LOCATE_parser_prod, 7800); nit_exit(1);}
21379 /* Register variable[9]: Result */
21380 variable[9] = ATTR_parser_nodes___ANewExpr____n_args(variable[0]) /*ANewExpr::_n_args*/;
21381 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
21382 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[0]) /*PNode::parent=*/;
21383 continue_683: while(0);
21384 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
21385 }
21386 break_683: while(0);
21387 return_label682: while(false);
21388 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
21389 tracehead = trace.prev;
21390 return;
21391 }
21392 void parser_prod___AAttrExpr___n_expr__eq(val_t self, val_t param0) {
21393 struct trace_t trace = {NULL, NULL, 7890, LOCATE_parser_prod___AAttrExpr___n_expr__eq};
21394 val_t variable[4];
21395 struct WBT_ **closurevariable = NULL;
21396 trace.prev = tracehead; tracehead = &trace;
21397 trace.file = LOCATE_parser_prod;
21398 /* Register variable[0]: Local variable */
21399 variable[0] = self;
21400 /* Register variable[1]: Local variable */
21401 variable[1] = param0;
21402 /* Register variable[2]: Method return value and escape marker */
21403 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n*/;
21404 /* Register variable[3]: Result */
21405 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21406 if (UNTAG_Bool(variable[3])) { /*if*/
21407 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21408 }
21409 return_label684: while(false);
21410 tracehead = trace.prev;
21411 return;
21412 }
21413 void parser_prod___AAttrExpr___n_id__eq(val_t self, val_t param0) {
21414 struct trace_t trace = {NULL, NULL, 7897, LOCATE_parser_prod___AAttrExpr___n_id__eq};
21415 val_t variable[4];
21416 struct WBT_ **closurevariable = NULL;
21417 trace.prev = tracehead; tracehead = &trace;
21418 trace.file = LOCATE_parser_prod;
21419 /* Register variable[0]: Local variable */
21420 variable[0] = self;
21421 /* Register variable[1]: Local variable */
21422 variable[1] = param0;
21423 /* Register variable[2]: Method return value and escape marker */
21424 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[1] /*n*/;
21425 /* Register variable[3]: Result */
21426 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21427 if (UNTAG_Bool(variable[3])) { /*if*/
21428 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21429 }
21430 return_label685: while(false);
21431 tracehead = trace.prev;
21432 return;
21433 }
21434 void parser_prod___AAttrExpr___replace_child(val_t self, val_t param0, val_t param1) {
21435 struct trace_t trace = {NULL, NULL, 7923, LOCATE_parser_prod___AAttrExpr___replace_child};
21436 val_t variable[5];
21437 struct WBT_ **closurevariable = NULL;
21438 trace.prev = tracehead; tracehead = &trace;
21439 trace.file = LOCATE_parser_prod;
21440 /* Register variable[0]: Local variable */
21441 variable[0] = self;
21442 /* Register variable[1]: Local variable */
21443 variable[1] = param0;
21444 /* Register variable[2]: Local variable */
21445 variable[2] = param1;
21446 /* Register variable[3]: Method return value and escape marker */
21447 /* Register variable[4]: Result */
21448 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21449 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrExpr___replace_child, LOCATE_parser_prod, 7925); nit_exit(1);}
21450 /* Register variable[4]: Result */
21451 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21452 /* Register variable[4]: Result */
21453 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21454 if (UNTAG_Bool(variable[4])) { /*if*/
21455 /* Register variable[4]: Result */
21456 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21457 if (UNTAG_Bool(variable[4])) { /*if*/
21458 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21459 /* Register variable[4]: Result */
21460 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21461 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrExpr___replace_child, LOCATE_parser_prod, 7929); nit_exit(1);}
21462 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*new_child*/;
21463 } else { /*if*/
21464 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = NIT_NULL /*null*/;
21465 }
21466 goto return_label686;
21467 }
21468 /* Register variable[4]: Result */
21469 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21470 /* Register variable[4]: Result */
21471 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21472 if (UNTAG_Bool(variable[4])) { /*if*/
21473 /* Register variable[4]: Result */
21474 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21475 if (UNTAG_Bool(variable[4])) { /*if*/
21476 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21477 /* Register variable[4]: Result */
21478 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
21479 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrExpr___replace_child, LOCATE_parser_prod, 7939); nit_exit(1);}
21480 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[2] /*new_child*/;
21481 } else { /*if*/
21482 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = NIT_NULL /*null*/;
21483 }
21484 goto return_label686;
21485 }
21486 return_label686: while(false);
21487 tracehead = trace.prev;
21488 return;
21489 }
21490 void parser_prod___AAttrExpr___visit_all(val_t self, val_t param0) {
21491 struct trace_t trace = {NULL, NULL, 7948, LOCATE_parser_prod___AAttrExpr___visit_all};
21492 val_t variable[4];
21493 struct WBT_ **closurevariable = NULL;
21494 trace.prev = tracehead; tracehead = &trace;
21495 trace.file = LOCATE_parser_prod;
21496 /* Register variable[0]: Local variable */
21497 variable[0] = self;
21498 /* Register variable[1]: Local variable */
21499 variable[1] = param0;
21500 /* Register variable[2]: Method return value and escape marker */
21501 /* Register variable[3]: Result */
21502 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21503 /* Register variable[3]: Result */
21504 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::==*/)))))));
21505 if (UNTAG_Bool(variable[3])) { /*if*/
21506 /* Register variable[3]: Result */
21507 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21508 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21509 }
21510 /* Register variable[3]: Result */
21511 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21512 /* Register variable[3]: Result */
21513 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::==*/)))))));
21514 if (UNTAG_Bool(variable[3])) { /*if*/
21515 /* Register variable[3]: Result */
21516 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21517 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21518 }
21519 return_label687: while(false);
21520 tracehead = trace.prev;
21521 return;
21522 }
21523 void parser_prod___AAttrExpr___visit_all_reverse(val_t self, val_t param0) {
21524 struct trace_t trace = {NULL, NULL, 7958, LOCATE_parser_prod___AAttrExpr___visit_all_reverse};
21525 val_t variable[4];
21526 struct WBT_ **closurevariable = NULL;
21527 trace.prev = tracehead; tracehead = &trace;
21528 trace.file = LOCATE_parser_prod;
21529 /* Register variable[0]: Local variable */
21530 variable[0] = self;
21531 /* Register variable[1]: Local variable */
21532 variable[1] = param0;
21533 /* Register variable[2]: Method return value and escape marker */
21534 /* Register variable[3]: Result */
21535 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21536 /* Register variable[3]: Result */
21537 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::==*/)))))));
21538 if (UNTAG_Bool(variable[3])) { /*if*/
21539 /* Register variable[3]: Result */
21540 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21541 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21542 }
21543 /* Register variable[3]: Result */
21544 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21545 /* Register variable[3]: Result */
21546 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::==*/)))))));
21547 if (UNTAG_Bool(variable[3])) { /*if*/
21548 /* Register variable[3]: Result */
21549 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21550 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21551 }
21552 return_label688: while(false);
21553 tracehead = trace.prev;
21554 return;
21555 }
21556 void parser_prod___AAttrExpr___empty_init(val_t self, int* init_table) {
21557 struct trace_t trace = {NULL, NULL, 7905, LOCATE_parser_prod___AAttrExpr___empty_init};
21558 val_t variable[2];
21559 struct WBT_ **closurevariable = NULL;
21560 trace.prev = tracehead; tracehead = &trace;
21561 trace.file = LOCATE_parser_prod;
21562 /* Register variable[0]: Local variable */
21563 variable[0] = self;
21564 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
21565 /* Register variable[1]: Method return value and escape marker */
21566 return_label689: while(false);
21567 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
21568 tracehead = trace.prev;
21569 return;
21570 }
21571 void parser_prod___AAttrExpr___init_aattrexpr(val_t self, val_t param0, val_t param1, int* init_table) {
21572 struct trace_t trace = {NULL, NULL, 7907, LOCATE_parser_prod___AAttrExpr___init_aattrexpr};
21573 val_t variable[5];
21574 struct WBT_ **closurevariable = NULL;
21575 trace.prev = tracehead; tracehead = &trace;
21576 trace.file = LOCATE_parser_prod;
21577 /* Register variable[0]: Local variable */
21578 variable[0] = self;
21579 /* Register variable[1]: Local variable */
21580 variable[1] = param0;
21581 /* Register variable[2]: Local variable */
21582 variable[2] = param1;
21583 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
21584 /* Register variable[3]: Method return value and escape marker */
21585 CALL_parser_prod___AAttrExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAttrExpr::empty_init*/;
21586 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n_expr*/;
21587 /* Register variable[4]: Result */
21588 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21589 if (UNTAG_Bool(variable[4])) { /*if*/
21590 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
21591 }
21592 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[2] /*n_id*/;
21593 /* Register variable[4]: Result */
21594 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21595 if (UNTAG_Bool(variable[4])) { /*if*/
21596 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
21597 }
21598 return_label690: while(false);
21599 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
21600 tracehead = trace.prev;
21601 return;
21602 }
21603 void parser_prod___AAttrAssignExpr___n_expr__eq(val_t self, val_t param0) {
21604 struct trace_t trace = {NULL, NULL, 7969, LOCATE_parser_prod___AAttrAssignExpr___n_expr__eq};
21605 val_t variable[4];
21606 struct WBT_ **closurevariable = NULL;
21607 trace.prev = tracehead; tracehead = &trace;
21608 trace.file = LOCATE_parser_prod;
21609 /* Register variable[0]: Local variable */
21610 variable[0] = self;
21611 /* Register variable[1]: Local variable */
21612 variable[1] = param0;
21613 /* Register variable[2]: Method return value and escape marker */
21614 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n*/;
21615 /* Register variable[3]: Result */
21616 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21617 if (UNTAG_Bool(variable[3])) { /*if*/
21618 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21619 }
21620 return_label691: while(false);
21621 tracehead = trace.prev;
21622 return;
21623 }
21624 void parser_prod___AAttrAssignExpr___n_id__eq(val_t self, val_t param0) {
21625 struct trace_t trace = {NULL, NULL, 7976, LOCATE_parser_prod___AAttrAssignExpr___n_id__eq};
21626 val_t variable[4];
21627 struct WBT_ **closurevariable = NULL;
21628 trace.prev = tracehead; tracehead = &trace;
21629 trace.file = LOCATE_parser_prod;
21630 /* Register variable[0]: Local variable */
21631 variable[0] = self;
21632 /* Register variable[1]: Local variable */
21633 variable[1] = param0;
21634 /* Register variable[2]: Method return value and escape marker */
21635 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[1] /*n*/;
21636 /* Register variable[3]: Result */
21637 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21638 if (UNTAG_Bool(variable[3])) { /*if*/
21639 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21640 }
21641 return_label692: while(false);
21642 tracehead = trace.prev;
21643 return;
21644 }
21645 void parser_prod___AAttrAssignExpr___n_assign__eq(val_t self, val_t param0) {
21646 struct trace_t trace = {NULL, NULL, 7983, LOCATE_parser_prod___AAttrAssignExpr___n_assign__eq};
21647 val_t variable[4];
21648 struct WBT_ **closurevariable = NULL;
21649 trace.prev = tracehead; tracehead = &trace;
21650 trace.file = LOCATE_parser_prod;
21651 /* Register variable[0]: Local variable */
21652 variable[0] = self;
21653 /* Register variable[1]: Local variable */
21654 variable[1] = param0;
21655 /* Register variable[2]: Method return value and escape marker */
21656 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
21657 /* Register variable[3]: Result */
21658 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21659 if (UNTAG_Bool(variable[3])) { /*if*/
21660 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21661 }
21662 return_label693: while(false);
21663 tracehead = trace.prev;
21664 return;
21665 }
21666 void parser_prod___AAttrAssignExpr___n_value__eq(val_t self, val_t param0) {
21667 struct trace_t trace = {NULL, NULL, 7990, LOCATE_parser_prod___AAttrAssignExpr___n_value__eq};
21668 val_t variable[4];
21669 struct WBT_ **closurevariable = NULL;
21670 trace.prev = tracehead; tracehead = &trace;
21671 trace.file = LOCATE_parser_prod;
21672 /* Register variable[0]: Local variable */
21673 variable[0] = self;
21674 /* Register variable[1]: Local variable */
21675 variable[1] = param0;
21676 /* Register variable[2]: Method return value and escape marker */
21677 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
21678 /* Register variable[3]: Result */
21679 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21680 if (UNTAG_Bool(variable[3])) { /*if*/
21681 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21682 }
21683 return_label694: while(false);
21684 tracehead = trace.prev;
21685 return;
21686 }
21687 void parser_prod___AAttrAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
21688 struct trace_t trace = {NULL, NULL, 8026, LOCATE_parser_prod___AAttrAssignExpr___replace_child};
21689 val_t variable[5];
21690 struct WBT_ **closurevariable = NULL;
21691 trace.prev = tracehead; tracehead = &trace;
21692 trace.file = LOCATE_parser_prod;
21693 /* Register variable[0]: Local variable */
21694 variable[0] = self;
21695 /* Register variable[1]: Local variable */
21696 variable[1] = param0;
21697 /* Register variable[2]: Local variable */
21698 variable[2] = param1;
21699 /* Register variable[3]: Method return value and escape marker */
21700 /* Register variable[4]: Result */
21701 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21702 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8028); nit_exit(1);}
21703 /* Register variable[4]: Result */
21704 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21705 /* Register variable[4]: Result */
21706 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21707 if (UNTAG_Bool(variable[4])) { /*if*/
21708 /* Register variable[4]: Result */
21709 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21710 if (UNTAG_Bool(variable[4])) { /*if*/
21711 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21712 /* Register variable[4]: Result */
21713 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21714 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8032); nit_exit(1);}
21715 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*new_child*/;
21716 } else { /*if*/
21717 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = NIT_NULL /*null*/;
21718 }
21719 goto return_label695;
21720 }
21721 /* Register variable[4]: Result */
21722 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21723 /* Register variable[4]: Result */
21724 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21725 if (UNTAG_Bool(variable[4])) { /*if*/
21726 /* Register variable[4]: Result */
21727 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21728 if (UNTAG_Bool(variable[4])) { /*if*/
21729 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21730 /* Register variable[4]: Result */
21731 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
21732 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8042); nit_exit(1);}
21733 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[2] /*new_child*/;
21734 } else { /*if*/
21735 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = NIT_NULL /*null*/;
21736 }
21737 goto return_label695;
21738 }
21739 /* Register variable[4]: Result */
21740 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
21741 /* Register variable[4]: Result */
21742 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21743 if (UNTAG_Bool(variable[4])) { /*if*/
21744 /* Register variable[4]: Result */
21745 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21746 if (UNTAG_Bool(variable[4])) { /*if*/
21747 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21748 /* Register variable[4]: Result */
21749 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
21750 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8052); nit_exit(1);}
21751 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
21752 } else { /*if*/
21753 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
21754 }
21755 goto return_label695;
21756 }
21757 /* Register variable[4]: Result */
21758 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
21759 /* Register variable[4]: Result */
21760 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21761 if (UNTAG_Bool(variable[4])) { /*if*/
21762 /* Register variable[4]: Result */
21763 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21764 if (UNTAG_Bool(variable[4])) { /*if*/
21765 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
21766 /* Register variable[4]: Result */
21767 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21768 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8062); nit_exit(1);}
21769 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
21770 } else { /*if*/
21771 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
21772 }
21773 goto return_label695;
21774 }
21775 return_label695: while(false);
21776 tracehead = trace.prev;
21777 return;
21778 }
21779 void parser_prod___AAttrAssignExpr___visit_all(val_t self, val_t param0) {
21780 struct trace_t trace = {NULL, NULL, 8071, LOCATE_parser_prod___AAttrAssignExpr___visit_all};
21781 val_t variable[4];
21782 struct WBT_ **closurevariable = NULL;
21783 trace.prev = tracehead; tracehead = &trace;
21784 trace.file = LOCATE_parser_prod;
21785 /* Register variable[0]: Local variable */
21786 variable[0] = self;
21787 /* Register variable[1]: Local variable */
21788 variable[1] = param0;
21789 /* Register variable[2]: Method return value and escape marker */
21790 /* Register variable[3]: Result */
21791 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21792 /* Register variable[3]: Result */
21793 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::==*/)))))));
21794 if (UNTAG_Bool(variable[3])) { /*if*/
21795 /* Register variable[3]: Result */
21796 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21797 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21798 }
21799 /* Register variable[3]: Result */
21800 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21801 /* Register variable[3]: Result */
21802 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::==*/)))))));
21803 if (UNTAG_Bool(variable[3])) { /*if*/
21804 /* Register variable[3]: Result */
21805 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21806 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21807 }
21808 /* Register variable[3]: Result */
21809 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
21810 /* Register variable[3]: Result */
21811 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::==*/)))))));
21812 if (UNTAG_Bool(variable[3])) { /*if*/
21813 /* Register variable[3]: Result */
21814 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
21815 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21816 }
21817 /* Register variable[3]: Result */
21818 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
21819 /* Register variable[3]: Result */
21820 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::==*/)))))));
21821 if (UNTAG_Bool(variable[3])) { /*if*/
21822 /* Register variable[3]: Result */
21823 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
21824 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21825 }
21826 return_label696: while(false);
21827 tracehead = trace.prev;
21828 return;
21829 }
21830 void parser_prod___AAttrAssignExpr___visit_all_reverse(val_t self, val_t param0) {
21831 struct trace_t trace = {NULL, NULL, 8087, LOCATE_parser_prod___AAttrAssignExpr___visit_all_reverse};
21832 val_t variable[4];
21833 struct WBT_ **closurevariable = NULL;
21834 trace.prev = tracehead; tracehead = &trace;
21835 trace.file = LOCATE_parser_prod;
21836 /* Register variable[0]: Local variable */
21837 variable[0] = self;
21838 /* Register variable[1]: Local variable */
21839 variable[1] = param0;
21840 /* Register variable[2]: Method return value and escape marker */
21841 /* Register variable[3]: Result */
21842 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21843 /* Register variable[3]: Result */
21844 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::==*/)))))));
21845 if (UNTAG_Bool(variable[3])) { /*if*/
21846 /* Register variable[3]: Result */
21847 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
21848 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21849 }
21850 /* Register variable[3]: Result */
21851 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21852 /* Register variable[3]: Result */
21853 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::==*/)))))));
21854 if (UNTAG_Bool(variable[3])) { /*if*/
21855 /* Register variable[3]: Result */
21856 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
21857 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21858 }
21859 /* Register variable[3]: Result */
21860 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
21861 /* Register variable[3]: Result */
21862 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::==*/)))))));
21863 if (UNTAG_Bool(variable[3])) { /*if*/
21864 /* Register variable[3]: Result */
21865 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
21866 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21867 }
21868 /* Register variable[3]: Result */
21869 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
21870 /* Register variable[3]: Result */
21871 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::==*/)))))));
21872 if (UNTAG_Bool(variable[3])) { /*if*/
21873 /* Register variable[3]: Result */
21874 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
21875 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21876 }
21877 return_label697: while(false);
21878 tracehead = trace.prev;
21879 return;
21880 }
21881 void parser_prod___AAttrAssignExpr___empty_init(val_t self, int* init_table) {
21882 struct trace_t trace = {NULL, NULL, 7998, LOCATE_parser_prod___AAttrAssignExpr___empty_init};
21883 val_t variable[2];
21884 struct WBT_ **closurevariable = NULL;
21885 trace.prev = tracehead; tracehead = &trace;
21886 trace.file = LOCATE_parser_prod;
21887 /* Register variable[0]: Local variable */
21888 variable[0] = self;
21889 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
21890 /* Register variable[1]: Method return value and escape marker */
21891 return_label698: while(false);
21892 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
21893 tracehead = trace.prev;
21894 return;
21895 }
21896 void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
21897 struct trace_t trace = {NULL, NULL, 8000, LOCATE_parser_prod___AAttrAssignExpr___init_aattrassignexpr};
21898 val_t variable[7];
21899 struct WBT_ **closurevariable = NULL;
21900 trace.prev = tracehead; tracehead = &trace;
21901 trace.file = LOCATE_parser_prod;
21902 /* Register variable[0]: Local variable */
21903 variable[0] = self;
21904 /* Register variable[1]: Local variable */
21905 variable[1] = param0;
21906 /* Register variable[2]: Local variable */
21907 variable[2] = param1;
21908 /* Register variable[3]: Local variable */
21909 variable[3] = param2;
21910 /* Register variable[4]: Local variable */
21911 variable[4] = param3;
21912 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
21913 /* Register variable[5]: Method return value and escape marker */
21914 CALL_parser_prod___AAttrAssignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAttrAssignExpr::empty_init*/;
21915 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n_expr*/;
21916 /* Register variable[6]: Result */
21917 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21918 if (UNTAG_Bool(variable[6])) { /*if*/
21919 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
21920 }
21921 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[2] /*n_id*/;
21922 /* Register variable[6]: Result */
21923 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21924 if (UNTAG_Bool(variable[6])) { /*if*/
21925 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
21926 }
21927 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[3] /*n_assign*/;
21928 /* Register variable[6]: Result */
21929 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ == NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21930 if (UNTAG_Bool(variable[6])) { /*if*/
21931 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[0]) /*PNode::parent=*/;
21932 }
21933 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[4] /*n_value*/;
21934 /* Register variable[6]: Result */
21935 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ == NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21936 if (UNTAG_Bool(variable[6])) { /*if*/
21937 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[0]) /*PNode::parent=*/;
21938 }
21939 return_label699: while(false);
21940 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
21941 tracehead = trace.prev;
21942 return;
21943 }
21944 void parser_prod___AAttrReassignExpr___n_expr__eq(val_t self, val_t param0) {
21945 struct trace_t trace = {NULL, NULL, 8104, LOCATE_parser_prod___AAttrReassignExpr___n_expr__eq};
21946 val_t variable[4];
21947 struct WBT_ **closurevariable = NULL;
21948 trace.prev = tracehead; tracehead = &trace;
21949 trace.file = LOCATE_parser_prod;
21950 /* Register variable[0]: Local variable */
21951 variable[0] = self;
21952 /* Register variable[1]: Local variable */
21953 variable[1] = param0;
21954 /* Register variable[2]: Method return value and escape marker */
21955 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n*/;
21956 /* Register variable[3]: Result */
21957 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21958 if (UNTAG_Bool(variable[3])) { /*if*/
21959 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21960 }
21961 return_label700: while(false);
21962 tracehead = trace.prev;
21963 return;
21964 }
21965 void parser_prod___AAttrReassignExpr___n_id__eq(val_t self, val_t param0) {
21966 struct trace_t trace = {NULL, NULL, 8111, LOCATE_parser_prod___AAttrReassignExpr___n_id__eq};
21967 val_t variable[4];
21968 struct WBT_ **closurevariable = NULL;
21969 trace.prev = tracehead; tracehead = &trace;
21970 trace.file = LOCATE_parser_prod;
21971 /* Register variable[0]: Local variable */
21972 variable[0] = self;
21973 /* Register variable[1]: Local variable */
21974 variable[1] = param0;
21975 /* Register variable[2]: Method return value and escape marker */
21976 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[1] /*n*/;
21977 /* Register variable[3]: Result */
21978 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21979 if (UNTAG_Bool(variable[3])) { /*if*/
21980 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
21981 }
21982 return_label701: while(false);
21983 tracehead = trace.prev;
21984 return;
21985 }
21986 void parser_prod___AAttrReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
21987 struct trace_t trace = {NULL, NULL, 8118, LOCATE_parser_prod___AAttrReassignExpr___n_assign_op__eq};
21988 val_t variable[4];
21989 struct WBT_ **closurevariable = NULL;
21990 trace.prev = tracehead; tracehead = &trace;
21991 trace.file = LOCATE_parser_prod;
21992 /* Register variable[0]: Local variable */
21993 variable[0] = self;
21994 /* Register variable[1]: Local variable */
21995 variable[1] = param0;
21996 /* Register variable[2]: Method return value and escape marker */
21997 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
21998 /* Register variable[3]: Result */
21999 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22000 if (UNTAG_Bool(variable[3])) { /*if*/
22001 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22002 }
22003 return_label702: while(false);
22004 tracehead = trace.prev;
22005 return;
22006 }
22007 void parser_prod___AAttrReassignExpr___n_value__eq(val_t self, val_t param0) {
22008 struct trace_t trace = {NULL, NULL, 8125, LOCATE_parser_prod___AAttrReassignExpr___n_value__eq};
22009 val_t variable[4];
22010 struct WBT_ **closurevariable = NULL;
22011 trace.prev = tracehead; tracehead = &trace;
22012 trace.file = LOCATE_parser_prod;
22013 /* Register variable[0]: Local variable */
22014 variable[0] = self;
22015 /* Register variable[1]: Local variable */
22016 variable[1] = param0;
22017 /* Register variable[2]: Method return value and escape marker */
22018 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
22019 /* Register variable[3]: Result */
22020 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22021 if (UNTAG_Bool(variable[3])) { /*if*/
22022 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22023 }
22024 return_label703: while(false);
22025 tracehead = trace.prev;
22026 return;
22027 }
22028 void parser_prod___AAttrReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
22029 struct trace_t trace = {NULL, NULL, 8161, LOCATE_parser_prod___AAttrReassignExpr___replace_child};
22030 val_t variable[5];
22031 struct WBT_ **closurevariable = NULL;
22032 trace.prev = tracehead; tracehead = &trace;
22033 trace.file = LOCATE_parser_prod;
22034 /* Register variable[0]: Local variable */
22035 variable[0] = self;
22036 /* Register variable[1]: Local variable */
22037 variable[1] = param0;
22038 /* Register variable[2]: Local variable */
22039 variable[2] = param1;
22040 /* Register variable[3]: Method return value and escape marker */
22041 /* Register variable[4]: Result */
22042 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22043 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8163); nit_exit(1);}
22044 /* Register variable[4]: Result */
22045 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
22046 /* Register variable[4]: Result */
22047 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22048 if (UNTAG_Bool(variable[4])) { /*if*/
22049 /* Register variable[4]: Result */
22050 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22051 if (UNTAG_Bool(variable[4])) { /*if*/
22052 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22053 /* Register variable[4]: Result */
22054 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22055 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8167); nit_exit(1);}
22056 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*new_child*/;
22057 } else { /*if*/
22058 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = NIT_NULL /*null*/;
22059 }
22060 goto return_label704;
22061 }
22062 /* Register variable[4]: Result */
22063 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
22064 /* Register variable[4]: Result */
22065 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22066 if (UNTAG_Bool(variable[4])) { /*if*/
22067 /* Register variable[4]: Result */
22068 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22069 if (UNTAG_Bool(variable[4])) { /*if*/
22070 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22071 /* Register variable[4]: Result */
22072 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
22073 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8177); nit_exit(1);}
22074 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[2] /*new_child*/;
22075 } else { /*if*/
22076 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = NIT_NULL /*null*/;
22077 }
22078 goto return_label704;
22079 }
22080 /* Register variable[4]: Result */
22081 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
22082 /* Register variable[4]: Result */
22083 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22084 if (UNTAG_Bool(variable[4])) { /*if*/
22085 /* Register variable[4]: Result */
22086 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22087 if (UNTAG_Bool(variable[4])) { /*if*/
22088 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22089 /* Register variable[4]: Result */
22090 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
22091 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8187); nit_exit(1);}
22092 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
22093 } else { /*if*/
22094 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
22095 }
22096 goto return_label704;
22097 }
22098 /* Register variable[4]: Result */
22099 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
22100 /* Register variable[4]: Result */
22101 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22102 if (UNTAG_Bool(variable[4])) { /*if*/
22103 /* Register variable[4]: Result */
22104 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22105 if (UNTAG_Bool(variable[4])) { /*if*/
22106 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22107 /* Register variable[4]: Result */
22108 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22109 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8197); nit_exit(1);}
22110 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
22111 } else { /*if*/
22112 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
22113 }
22114 goto return_label704;
22115 }
22116 return_label704: while(false);
22117 tracehead = trace.prev;
22118 return;
22119 }
22120 void parser_prod___AAttrReassignExpr___visit_all(val_t self, val_t param0) {
22121 struct trace_t trace = {NULL, NULL, 8206, LOCATE_parser_prod___AAttrReassignExpr___visit_all};
22122 val_t variable[4];
22123 struct WBT_ **closurevariable = NULL;
22124 trace.prev = tracehead; tracehead = &trace;
22125 trace.file = LOCATE_parser_prod;
22126 /* Register variable[0]: Local variable */
22127 variable[0] = self;
22128 /* Register variable[1]: Local variable */
22129 variable[1] = param0;
22130 /* Register variable[2]: Method return value and escape marker */
22131 /* Register variable[3]: Result */
22132 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
22133 /* Register variable[3]: Result */
22134 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::==*/)))))));
22135 if (UNTAG_Bool(variable[3])) { /*if*/
22136 /* Register variable[3]: Result */
22137 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
22138 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22139 }
22140 /* Register variable[3]: Result */
22141 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
22142 /* Register variable[3]: Result */
22143 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::==*/)))))));
22144 if (UNTAG_Bool(variable[3])) { /*if*/
22145 /* Register variable[3]: Result */
22146 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
22147 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22148 }
22149 /* Register variable[3]: Result */
22150 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
22151 /* Register variable[3]: Result */
22152 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::==*/)))))));
22153 if (UNTAG_Bool(variable[3])) { /*if*/
22154 /* Register variable[3]: Result */
22155 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
22156 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22157 }
22158 /* Register variable[3]: Result */
22159 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
22160 /* Register variable[3]: Result */
22161 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::==*/)))))));
22162 if (UNTAG_Bool(variable[3])) { /*if*/
22163 /* Register variable[3]: Result */
22164 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
22165 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22166 }
22167 return_label705: while(false);
22168 tracehead = trace.prev;
22169 return;
22170 }
22171 void parser_prod___AAttrReassignExpr___visit_all_reverse(val_t self, val_t param0) {
22172 struct trace_t trace = {NULL, NULL, 8222, LOCATE_parser_prod___AAttrReassignExpr___visit_all_reverse};
22173 val_t variable[4];
22174 struct WBT_ **closurevariable = NULL;
22175 trace.prev = tracehead; tracehead = &trace;
22176 trace.file = LOCATE_parser_prod;
22177 /* Register variable[0]: Local variable */
22178 variable[0] = self;
22179 /* Register variable[1]: Local variable */
22180 variable[1] = param0;
22181 /* Register variable[2]: Method return value and escape marker */
22182 /* Register variable[3]: Result */
22183 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
22184 /* Register variable[3]: Result */
22185 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::==*/)))))));
22186 if (UNTAG_Bool(variable[3])) { /*if*/
22187 /* Register variable[3]: Result */
22188 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
22189 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22190 }
22191 /* Register variable[3]: Result */
22192 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
22193 /* Register variable[3]: Result */
22194 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::==*/)))))));
22195 if (UNTAG_Bool(variable[3])) { /*if*/
22196 /* Register variable[3]: Result */
22197 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
22198 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22199 }
22200 /* Register variable[3]: Result */
22201 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
22202 /* Register variable[3]: Result */
22203 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::==*/)))))));
22204 if (UNTAG_Bool(variable[3])) { /*if*/
22205 /* Register variable[3]: Result */
22206 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
22207 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22208 }
22209 /* Register variable[3]: Result */
22210 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
22211 /* Register variable[3]: Result */
22212 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::==*/)))))));
22213 if (UNTAG_Bool(variable[3])) { /*if*/
22214 /* Register variable[3]: Result */
22215 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
22216 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22217 }
22218 return_label706: while(false);
22219 tracehead = trace.prev;
22220 return;
22221 }
22222 void parser_prod___AAttrReassignExpr___empty_init(val_t self, int* init_table) {
22223 struct trace_t trace = {NULL, NULL, 8133, LOCATE_parser_prod___AAttrReassignExpr___empty_init};
22224 val_t variable[2];
22225 struct WBT_ **closurevariable = NULL;
22226 trace.prev = tracehead; tracehead = &trace;
22227 trace.file = LOCATE_parser_prod;
22228 /* Register variable[0]: Local variable */
22229 variable[0] = self;
22230 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
22231 /* Register variable[1]: Method return value and escape marker */
22232 return_label707: while(false);
22233 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
22234 tracehead = trace.prev;
22235 return;
22236 }
22237 void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
22238 struct trace_t trace = {NULL, NULL, 8135, LOCATE_parser_prod___AAttrReassignExpr___init_aattrreassignexpr};
22239 val_t variable[7];
22240 struct WBT_ **closurevariable = NULL;
22241 trace.prev = tracehead; tracehead = &trace;
22242 trace.file = LOCATE_parser_prod;
22243 /* Register variable[0]: Local variable */
22244 variable[0] = self;
22245 /* Register variable[1]: Local variable */
22246 variable[1] = param0;
22247 /* Register variable[2]: Local variable */
22248 variable[2] = param1;
22249 /* Register variable[3]: Local variable */
22250 variable[3] = param2;
22251 /* Register variable[4]: Local variable */
22252 variable[4] = param3;
22253 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
22254 /* Register variable[5]: Method return value and escape marker */
22255 CALL_parser_prod___AAttrReassignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAttrReassignExpr::empty_init*/;
22256 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n_expr*/;
22257 /* Register variable[6]: Result */
22258 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22259 if (UNTAG_Bool(variable[6])) { /*if*/
22260 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
22261 }
22262 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[2] /*n_id*/;
22263 /* Register variable[6]: Result */
22264 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22265 if (UNTAG_Bool(variable[6])) { /*if*/
22266 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
22267 }
22268 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[3] /*n_assign_op*/;
22269 /* Register variable[6]: Result */
22270 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable[3] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22271 if (UNTAG_Bool(variable[6])) { /*if*/
22272 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, variable[0]) /*PNode::parent=*/;
22273 }
22274 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[4] /*n_value*/;
22275 /* Register variable[6]: Result */
22276 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ == NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22277 if (UNTAG_Bool(variable[6])) { /*if*/
22278 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[0]) /*PNode::parent=*/;
22279 }
22280 return_label708: while(false);
22281 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
22282 tracehead = trace.prev;
22283 return;
22284 }
22285 void parser_prod___ACallExpr___n_expr__eq(val_t self, val_t param0) {
22286 struct trace_t trace = {NULL, NULL, 8239, LOCATE_parser_prod___ACallExpr___n_expr__eq};
22287 val_t variable[4];
22288 struct WBT_ **closurevariable = NULL;
22289 trace.prev = tracehead; tracehead = &trace;
22290 trace.file = LOCATE_parser_prod;
22291 /* Register variable[0]: Local variable */
22292 variable[0] = self;
22293 /* Register variable[1]: Local variable */
22294 variable[1] = param0;
22295 /* Register variable[2]: Method return value and escape marker */
22296 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
22297 /* Register variable[3]: Result */
22298 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22299 if (UNTAG_Bool(variable[3])) { /*if*/
22300 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22301 }
22302 return_label709: while(false);
22303 tracehead = trace.prev;
22304 return;
22305 }
22306 void parser_prod___ACallExpr___n_id__eq(val_t self, val_t param0) {
22307 struct trace_t trace = {NULL, NULL, 8246, LOCATE_parser_prod___ACallExpr___n_id__eq};
22308 val_t variable[4];
22309 struct WBT_ **closurevariable = NULL;
22310 trace.prev = tracehead; tracehead = &trace;
22311 trace.file = LOCATE_parser_prod;
22312 /* Register variable[0]: Local variable */
22313 variable[0] = self;
22314 /* Register variable[1]: Local variable */
22315 variable[1] = param0;
22316 /* Register variable[2]: Method return value and escape marker */
22317 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[1] /*n*/;
22318 /* Register variable[3]: Result */
22319 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22320 if (UNTAG_Bool(variable[3])) { /*if*/
22321 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22322 }
22323 return_label710: while(false);
22324 tracehead = trace.prev;
22325 return;
22326 }
22327 void parser_prod___ACallExpr___replace_child(val_t self, val_t param0, val_t param1) {
22328 struct trace_t trace = {NULL, NULL, 8286, LOCATE_parser_prod___ACallExpr___replace_child};
22329 val_t variable[8];
22330 struct WBT_ **closurevariable = NULL;
22331 trace.prev = tracehead; tracehead = &trace;
22332 trace.file = LOCATE_parser_prod;
22333 /* Register variable[0]: Local variable */
22334 variable[0] = self;
22335 /* Register variable[1]: Local variable */
22336 variable[1] = param0;
22337 /* Register variable[2]: Local variable */
22338 variable[2] = param1;
22339 /* Register variable[3]: Method return value and escape marker */
22340 /* Register variable[4]: Result */
22341 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22342 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8288); nit_exit(1);}
22343 /* Register variable[4]: Result */
22344 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22345 /* Register variable[4]: Result */
22346 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22347 if (UNTAG_Bool(variable[4])) { /*if*/
22348 /* Register variable[4]: Result */
22349 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22350 if (UNTAG_Bool(variable[4])) { /*if*/
22351 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22352 /* Register variable[4]: Result */
22353 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22354 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8292); nit_exit(1);}
22355 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
22356 } else { /*if*/
22357 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
22358 }
22359 goto return_label711;
22360 }
22361 /* Register variable[4]: Result */
22362 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22363 /* Register variable[4]: Result */
22364 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22365 if (UNTAG_Bool(variable[4])) { /*if*/
22366 /* Register variable[4]: Result */
22367 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22368 if (UNTAG_Bool(variable[4])) { /*if*/
22369 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22370 /* Register variable[4]: Result */
22371 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
22372 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8302); nit_exit(1);}
22373 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[2] /*new_child*/;
22374 } else { /*if*/
22375 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = NIT_NULL /*null*/;
22376 }
22377 goto return_label711;
22378 }
22379 /* Register variable[4]: Result */
22380 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22381 /* Register variable[4]: Result */
22382 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22383 /* Register variable[4]: Result */
22384 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
22385 /* Register variable[4]: For iterator */
22386 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
22387 while (true) { /*for*/
22388 /* Register variable[5]: For 'is_ok' result */
22389 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
22390 if (!UNTAG_Bool(variable[5])) break; /*for*/
22391 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
22392 /* Register variable[6]: Local variable */
22393 variable[6] = variable[5];
22394 /* Register variable[7]: Result */
22395 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22396 /* Register variable[7]: Result */
22397 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
22398 /* Register variable[7]: Result */
22399 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
22400 if (UNTAG_Bool(variable[7])) { /*if*/
22401 /* Register variable[7]: Result */
22402 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22403 if (UNTAG_Bool(variable[7])) { /*if*/
22404 /* Register variable[7]: Result */
22405 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22406 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8312); nit_exit(1);}
22407 /* Register variable[7]: Result */
22408 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22409 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
22410 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22411 } else { /*if*/
22412 /* Register variable[7]: Result */
22413 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22414 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
22415 }
22416 goto return_label711;
22417 }
22418 continue_712: while(0);
22419 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
22420 }
22421 break_712: while(0);
22422 /* Register variable[4]: Result */
22423 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22424 /* Register variable[4]: Result */
22425 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22426 /* Register variable[4]: Result */
22427 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
22428 /* Register variable[4]: For iterator */
22429 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
22430 while (true) { /*for*/
22431 /* Register variable[5]: For 'is_ok' result */
22432 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
22433 if (!UNTAG_Bool(variable[5])) break; /*for*/
22434 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
22435 /* Register variable[6]: Local variable */
22436 variable[6] = variable[5];
22437 /* Register variable[7]: Result */
22438 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22439 /* Register variable[7]: Result */
22440 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
22441 /* Register variable[7]: Result */
22442 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
22443 if (UNTAG_Bool(variable[7])) { /*if*/
22444 /* Register variable[7]: Result */
22445 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22446 if (UNTAG_Bool(variable[7])) { /*if*/
22447 /* Register variable[7]: Result */
22448 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
22449 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8324); nit_exit(1);}
22450 /* Register variable[7]: Result */
22451 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22452 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
22453 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22454 } else { /*if*/
22455 /* Register variable[7]: Result */
22456 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22457 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
22458 }
22459 goto return_label711;
22460 }
22461 continue_713: while(0);
22462 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
22463 }
22464 break_713: while(0);
22465 return_label711: while(false);
22466 tracehead = trace.prev;
22467 return;
22468 }
22469 void parser_prod___ACallExpr___visit_all(val_t self, val_t param0) {
22470 struct trace_t trace = {NULL, NULL, 8335, LOCATE_parser_prod___ACallExpr___visit_all};
22471 val_t variable[6];
22472 struct WBT_ **closurevariable = NULL;
22473 trace.prev = tracehead; tracehead = &trace;
22474 trace.file = LOCATE_parser_prod;
22475 /* Register variable[0]: Local variable */
22476 variable[0] = self;
22477 /* Register variable[1]: Local variable */
22478 variable[1] = param0;
22479 /* Register variable[2]: Method return value and escape marker */
22480 /* Register variable[3]: Result */
22481 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22482 /* Register variable[3]: Result */
22483 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::==*/)))))));
22484 if (UNTAG_Bool(variable[3])) { /*if*/
22485 /* Register variable[3]: Result */
22486 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22487 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22488 }
22489 /* Register variable[3]: Result */
22490 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22491 /* Register variable[3]: Result */
22492 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::==*/)))))));
22493 if (UNTAG_Bool(variable[3])) { /*if*/
22494 /* Register variable[3]: Result */
22495 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22496 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22497 }
22498 /* Register variable[3]: Result */
22499 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22500 /* Register variable[3]: For iterator */
22501 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
22502 while (true) { /*for*/
22503 /* Register variable[4]: For 'is_ok' result */
22504 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
22505 if (!UNTAG_Bool(variable[4])) break; /*for*/
22506 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
22507 /* Register variable[5]: Local variable */
22508 variable[5] = variable[4];
22509 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
22510 continue_715: while(0);
22511 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
22512 }
22513 break_715: while(0);
22514 /* Register variable[3]: Result */
22515 variable[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22516 /* Register variable[3]: For iterator */
22517 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
22518 while (true) { /*for*/
22519 /* Register variable[4]: For 'is_ok' result */
22520 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
22521 if (!UNTAG_Bool(variable[4])) break; /*for*/
22522 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
22523 /* Register variable[5]: Local variable */
22524 variable[5] = variable[4];
22525 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
22526 continue_716: while(0);
22527 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
22528 }
22529 break_716: while(0);
22530 return_label714: while(false);
22531 tracehead = trace.prev;
22532 return;
22533 }
22534 void parser_prod___ACallExpr___visit_all_reverse(val_t self, val_t param0) {
22535 struct trace_t trace = {NULL, NULL, 8351, LOCATE_parser_prod___ACallExpr___visit_all_reverse};
22536 val_t variable[5];
22537 struct WBT_ **closurevariable = NULL;
22538 trace.prev = tracehead; tracehead = &trace;
22539 trace.file = LOCATE_parser_prod;
22540 /* Register variable[0]: Local variable */
22541 variable[0] = self;
22542 /* Register variable[1]: Local variable */
22543 variable[1] = param0;
22544 /* Register variable[2]: Method return value and escape marker */
22545 /* Register variable[3]: Result */
22546 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22547 /* Register variable[3]: Result */
22548 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::==*/)))))));
22549 if (UNTAG_Bool(variable[3])) { /*if*/
22550 /* Register variable[3]: Result */
22551 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22552 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22553 }
22554 /* Register variable[3]: Result */
22555 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22556 /* Register variable[3]: Result */
22557 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::==*/)))))));
22558 if (UNTAG_Bool(variable[3])) { /*if*/
22559 /* Register variable[3]: Result */
22560 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22561 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22562 }
22563 /* Register variable[3]: Local variable */
22564 /* Register variable[4]: Result */
22565 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22566 /* Register variable[4]: Result */
22567 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22568 variable[3] = variable[4];
22569 while (true) { /*while*/
22570 /* Register variable[4]: Result */
22571 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
22572 if (!UNTAG_Bool(variable[4])) break; /* while*/
22573 /* Register variable[4]: Result */
22574 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22575 /* Register variable[4]: Result */
22576 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
22577 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
22578 /* Register variable[4]: Result */
22579 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
22580 variable[3] = variable[4] /*i=*/;
22581 continue_718: while(0);
22582 }
22583 break_718: while(0);
22584 /* Register variable[3]: Local variable */
22585 /* Register variable[4]: Result */
22586 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22587 /* Register variable[4]: Result */
22588 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22589 variable[3] = variable[4];
22590 while (true) { /*while*/
22591 /* Register variable[4]: Result */
22592 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
22593 if (!UNTAG_Bool(variable[4])) break; /* while*/
22594 /* Register variable[4]: Result */
22595 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22596 /* Register variable[4]: Result */
22597 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
22598 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
22599 /* Register variable[4]: Result */
22600 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
22601 variable[3] = variable[4] /*i=*/;
22602 continue_719: while(0);
22603 }
22604 break_719: while(0);
22605 return_label717: while(false);
22606 tracehead = trace.prev;
22607 return;
22608 }
22609 void parser_prod___ACallExpr___empty_init(val_t self, int* init_table) {
22610 struct trace_t trace = {NULL, NULL, 8254, LOCATE_parser_prod___ACallExpr___empty_init};
22611 val_t variable[2];
22612 struct WBT_ **closurevariable = NULL;
22613 trace.prev = tracehead; tracehead = &trace;
22614 trace.file = LOCATE_parser_prod;
22615 /* Register variable[0]: Local variable */
22616 variable[0] = self;
22617 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i]) return;
22618 /* Register variable[1]: Method return value and escape marker */
22619 return_label720: while(false);
22620 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
22621 tracehead = trace.prev;
22622 return;
22623 }
22624 void parser_prod___ACallExpr___init_acallexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
22625 struct trace_t trace = {NULL, NULL, 8256, LOCATE_parser_prod___ACallExpr___init_acallexpr};
22626 val_t variable[10];
22627 struct WBT_ **closurevariable = NULL;
22628 trace.prev = tracehead; tracehead = &trace;
22629 trace.file = LOCATE_parser_prod;
22630 /* Register variable[0]: Local variable */
22631 variable[0] = self;
22632 /* Register variable[1]: Local variable */
22633 variable[1] = param0;
22634 /* Register variable[2]: Local variable */
22635 variable[2] = param1;
22636 /* Register variable[3]: Local variable */
22637 variable[3] = param2;
22638 /* Register variable[4]: Local variable */
22639 variable[4] = param3;
22640 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i]) return;
22641 /* Register variable[5]: Method return value and escape marker */
22642 CALL_parser_prod___ACallExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ACallExpr::empty_init*/;
22643 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
22644 /* Register variable[6]: Result */
22645 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22646 if (UNTAG_Bool(variable[6])) { /*if*/
22647 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
22648 }
22649 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[2] /*n_id*/;
22650 /* Register variable[6]: Result */
22651 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22652 if (UNTAG_Bool(variable[6])) { /*if*/
22653 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
22654 }
22655 /* Register variable[6]: Result */
22656 variable[6] = NEW_List_list___List___init() /*new List[PExpr]*/;
22657 ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/ = variable[6];
22658 /* Register variable[6]: For iterator */
22659 variable[6] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*Collection::iterator*/;
22660 while (true) { /*for*/
22661 /* Register variable[7]: For 'is_ok' result */
22662 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
22663 if (!UNTAG_Bool(variable[7])) break; /*for*/
22664 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
22665 /* Register variable[8]: Local variable */
22666 variable[8] = variable[7];
22667 /* Register variable[9]: Result */
22668 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22669 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___init_acallexpr, LOCATE_parser_prod, 8274); nit_exit(1);}
22670 /* Register variable[9]: Result */
22671 variable[9] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22672 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
22673 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[0]) /*PNode::parent=*/;
22674 continue_722: while(0);
22675 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
22676 }
22677 break_722: while(0);
22678 /* Register variable[6]: Result */
22679 variable[6] = NEW_List_list___List___init() /*new List[PClosureDef]*/;
22680 ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/ = variable[6];
22681 /* Register variable[6]: For iterator */
22682 variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*n_closure_defs*/)( variable[4] /*n_closure_defs*/) /*Collection::iterator*/;
22683 while (true) { /*for*/
22684 /* Register variable[7]: For 'is_ok' result */
22685 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
22686 if (!UNTAG_Bool(variable[7])) break; /*for*/
22687 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
22688 /* Register variable[8]: Local variable */
22689 variable[8] = variable[7];
22690 /* Register variable[9]: Result */
22691 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
22692 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___init_acallexpr, LOCATE_parser_prod, 8280); nit_exit(1);}
22693 /* Register variable[9]: Result */
22694 variable[9] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
22695 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
22696 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[0]) /*PNode::parent=*/;
22697 continue_723: while(0);
22698 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
22699 }
22700 break_723: while(0);
22701 return_label721: while(false);
22702 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
22703 tracehead = trace.prev;
22704 return;
22705 }
22706 void parser_prod___ACallAssignExpr___n_expr__eq(val_t self, val_t param0) {
22707 struct trace_t trace = {NULL, NULL, 8376, LOCATE_parser_prod___ACallAssignExpr___n_expr__eq};
22708 val_t variable[4];
22709 struct WBT_ **closurevariable = NULL;
22710 trace.prev = tracehead; tracehead = &trace;
22711 trace.file = LOCATE_parser_prod;
22712 /* Register variable[0]: Local variable */
22713 variable[0] = self;
22714 /* Register variable[1]: Local variable */
22715 variable[1] = param0;
22716 /* Register variable[2]: Method return value and escape marker */
22717 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
22718 /* Register variable[3]: Result */
22719 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22720 if (UNTAG_Bool(variable[3])) { /*if*/
22721 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22722 }
22723 return_label724: while(false);
22724 tracehead = trace.prev;
22725 return;
22726 }
22727 void parser_prod___ACallAssignExpr___n_id__eq(val_t self, val_t param0) {
22728 struct trace_t trace = {NULL, NULL, 8383, LOCATE_parser_prod___ACallAssignExpr___n_id__eq};
22729 val_t variable[4];
22730 struct WBT_ **closurevariable = NULL;
22731 trace.prev = tracehead; tracehead = &trace;
22732 trace.file = LOCATE_parser_prod;
22733 /* Register variable[0]: Local variable */
22734 variable[0] = self;
22735 /* Register variable[1]: Local variable */
22736 variable[1] = param0;
22737 /* Register variable[2]: Method return value and escape marker */
22738 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[1] /*n*/;
22739 /* Register variable[3]: Result */
22740 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22741 if (UNTAG_Bool(variable[3])) { /*if*/
22742 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22743 }
22744 return_label725: while(false);
22745 tracehead = trace.prev;
22746 return;
22747 }
22748 void parser_prod___ACallAssignExpr___n_assign__eq(val_t self, val_t param0) {
22749 struct trace_t trace = {NULL, NULL, 8390, LOCATE_parser_prod___ACallAssignExpr___n_assign__eq};
22750 val_t variable[4];
22751 struct WBT_ **closurevariable = NULL;
22752 trace.prev = tracehead; tracehead = &trace;
22753 trace.file = LOCATE_parser_prod;
22754 /* Register variable[0]: Local variable */
22755 variable[0] = self;
22756 /* Register variable[1]: Local variable */
22757 variable[1] = param0;
22758 /* Register variable[2]: Method return value and escape marker */
22759 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
22760 /* Register variable[3]: Result */
22761 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22762 if (UNTAG_Bool(variable[3])) { /*if*/
22763 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22764 }
22765 return_label726: while(false);
22766 tracehead = trace.prev;
22767 return;
22768 }
22769 void parser_prod___ACallAssignExpr___n_value__eq(val_t self, val_t param0) {
22770 struct trace_t trace = {NULL, NULL, 8397, LOCATE_parser_prod___ACallAssignExpr___n_value__eq};
22771 val_t variable[4];
22772 struct WBT_ **closurevariable = NULL;
22773 trace.prev = tracehead; tracehead = &trace;
22774 trace.file = LOCATE_parser_prod;
22775 /* Register variable[0]: Local variable */
22776 variable[0] = self;
22777 /* Register variable[1]: Local variable */
22778 variable[1] = param0;
22779 /* Register variable[2]: Method return value and escape marker */
22780 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
22781 /* Register variable[3]: Result */
22782 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22783 if (UNTAG_Bool(variable[3])) { /*if*/
22784 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
22785 }
22786 return_label727: while(false);
22787 tracehead = trace.prev;
22788 return;
22789 }
22790 void parser_prod___ACallAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
22791 struct trace_t trace = {NULL, NULL, 8440, LOCATE_parser_prod___ACallAssignExpr___replace_child};
22792 val_t variable[8];
22793 struct WBT_ **closurevariable = NULL;
22794 trace.prev = tracehead; tracehead = &trace;
22795 trace.file = LOCATE_parser_prod;
22796 /* Register variable[0]: Local variable */
22797 variable[0] = self;
22798 /* Register variable[1]: Local variable */
22799 variable[1] = param0;
22800 /* Register variable[2]: Local variable */
22801 variable[2] = param1;
22802 /* Register variable[3]: Method return value and escape marker */
22803 /* Register variable[4]: Result */
22804 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22805 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8442); nit_exit(1);}
22806 /* Register variable[4]: Result */
22807 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22808 /* Register variable[4]: Result */
22809 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22810 if (UNTAG_Bool(variable[4])) { /*if*/
22811 /* Register variable[4]: Result */
22812 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22813 if (UNTAG_Bool(variable[4])) { /*if*/
22814 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22815 /* Register variable[4]: Result */
22816 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22817 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8446); nit_exit(1);}
22818 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
22819 } else { /*if*/
22820 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
22821 }
22822 goto return_label728;
22823 }
22824 /* Register variable[4]: Result */
22825 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22826 /* Register variable[4]: Result */
22827 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22828 if (UNTAG_Bool(variable[4])) { /*if*/
22829 /* Register variable[4]: Result */
22830 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22831 if (UNTAG_Bool(variable[4])) { /*if*/
22832 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22833 /* Register variable[4]: Result */
22834 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
22835 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8456); nit_exit(1);}
22836 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[2] /*new_child*/;
22837 } else { /*if*/
22838 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = NIT_NULL /*null*/;
22839 }
22840 goto return_label728;
22841 }
22842 /* Register variable[4]: Result */
22843 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22844 /* Register variable[4]: Result */
22845 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22846 /* Register variable[4]: Result */
22847 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
22848 /* Register variable[4]: For iterator */
22849 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
22850 while (true) { /*for*/
22851 /* Register variable[5]: For 'is_ok' result */
22852 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
22853 if (!UNTAG_Bool(variable[5])) break; /*for*/
22854 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
22855 /* Register variable[6]: Local variable */
22856 variable[6] = variable[5];
22857 /* Register variable[7]: Result */
22858 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22859 /* Register variable[7]: Result */
22860 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
22861 /* Register variable[7]: Result */
22862 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
22863 if (UNTAG_Bool(variable[7])) { /*if*/
22864 /* Register variable[7]: Result */
22865 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22866 if (UNTAG_Bool(variable[7])) { /*if*/
22867 /* Register variable[7]: Result */
22868 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22869 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8466); nit_exit(1);}
22870 /* Register variable[7]: Result */
22871 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22872 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
22873 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22874 } else { /*if*/
22875 /* Register variable[7]: Result */
22876 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22877 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
22878 }
22879 goto return_label728;
22880 }
22881 continue_729: while(0);
22882 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
22883 }
22884 break_729: while(0);
22885 /* Register variable[4]: Result */
22886 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
22887 /* Register variable[4]: Result */
22888 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22889 if (UNTAG_Bool(variable[4])) { /*if*/
22890 /* Register variable[4]: Result */
22891 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22892 if (UNTAG_Bool(variable[4])) { /*if*/
22893 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22894 /* Register variable[4]: Result */
22895 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
22896 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8478); nit_exit(1);}
22897 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
22898 } else { /*if*/
22899 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
22900 }
22901 goto return_label728;
22902 }
22903 /* Register variable[4]: Result */
22904 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
22905 /* Register variable[4]: Result */
22906 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22907 if (UNTAG_Bool(variable[4])) { /*if*/
22908 /* Register variable[4]: Result */
22909 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22910 if (UNTAG_Bool(variable[4])) { /*if*/
22911 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
22912 /* Register variable[4]: Result */
22913 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22914 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8488); nit_exit(1);}
22915 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
22916 } else { /*if*/
22917 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
22918 }
22919 goto return_label728;
22920 }
22921 return_label728: while(false);
22922 tracehead = trace.prev;
22923 return;
22924 }
22925 void parser_prod___ACallAssignExpr___visit_all(val_t self, val_t param0) {
22926 struct trace_t trace = {NULL, NULL, 8497, LOCATE_parser_prod___ACallAssignExpr___visit_all};
22927 val_t variable[6];
22928 struct WBT_ **closurevariable = NULL;
22929 trace.prev = tracehead; tracehead = &trace;
22930 trace.file = LOCATE_parser_prod;
22931 /* Register variable[0]: Local variable */
22932 variable[0] = self;
22933 /* Register variable[1]: Local variable */
22934 variable[1] = param0;
22935 /* Register variable[2]: Method return value and escape marker */
22936 /* Register variable[3]: Result */
22937 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22938 /* Register variable[3]: Result */
22939 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::==*/)))))));
22940 if (UNTAG_Bool(variable[3])) { /*if*/
22941 /* Register variable[3]: Result */
22942 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
22943 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22944 }
22945 /* Register variable[3]: Result */
22946 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22947 /* Register variable[3]: Result */
22948 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::==*/)))))));
22949 if (UNTAG_Bool(variable[3])) { /*if*/
22950 /* Register variable[3]: Result */
22951 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
22952 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22953 }
22954 /* Register variable[3]: Result */
22955 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
22956 /* Register variable[3]: For iterator */
22957 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
22958 while (true) { /*for*/
22959 /* Register variable[4]: For 'is_ok' result */
22960 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
22961 if (!UNTAG_Bool(variable[4])) break; /*for*/
22962 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
22963 /* Register variable[5]: Local variable */
22964 variable[5] = variable[4];
22965 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
22966 continue_731: while(0);
22967 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
22968 }
22969 break_731: while(0);
22970 /* Register variable[3]: Result */
22971 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
22972 /* Register variable[3]: Result */
22973 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::==*/)))))));
22974 if (UNTAG_Bool(variable[3])) { /*if*/
22975 /* Register variable[3]: Result */
22976 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
22977 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22978 }
22979 /* Register variable[3]: Result */
22980 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
22981 /* Register variable[3]: Result */
22982 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::==*/)))))));
22983 if (UNTAG_Bool(variable[3])) { /*if*/
22984 /* Register variable[3]: Result */
22985 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
22986 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22987 }
22988 return_label730: while(false);
22989 tracehead = trace.prev;
22990 return;
22991 }
22992 void parser_prod___ACallAssignExpr___visit_all_reverse(val_t self, val_t param0) {
22993 struct trace_t trace = {NULL, NULL, 8516, LOCATE_parser_prod___ACallAssignExpr___visit_all_reverse};
22994 val_t variable[5];
22995 struct WBT_ **closurevariable = NULL;
22996 trace.prev = tracehead; tracehead = &trace;
22997 trace.file = LOCATE_parser_prod;
22998 /* Register variable[0]: Local variable */
22999 variable[0] = self;
23000 /* Register variable[1]: Local variable */
23001 variable[1] = param0;
23002 /* Register variable[2]: Method return value and escape marker */
23003 /* Register variable[3]: Result */
23004 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23005 /* Register variable[3]: Result */
23006 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::==*/)))))));
23007 if (UNTAG_Bool(variable[3])) { /*if*/
23008 /* Register variable[3]: Result */
23009 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23010 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23011 }
23012 /* Register variable[3]: Result */
23013 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
23014 /* Register variable[3]: Result */
23015 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::==*/)))))));
23016 if (UNTAG_Bool(variable[3])) { /*if*/
23017 /* Register variable[3]: Result */
23018 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
23019 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23020 }
23021 /* Register variable[3]: Local variable */
23022 /* Register variable[4]: Result */
23023 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23024 /* Register variable[4]: Result */
23025 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
23026 variable[3] = variable[4];
23027 while (true) { /*while*/
23028 /* Register variable[4]: Result */
23029 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
23030 if (!UNTAG_Bool(variable[4])) break; /* while*/
23031 /* Register variable[4]: Result */
23032 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23033 /* Register variable[4]: Result */
23034 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
23035 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
23036 /* Register variable[4]: Result */
23037 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
23038 variable[3] = variable[4] /*i=*/;
23039 continue_733: while(0);
23040 }
23041 break_733: while(0);
23042 /* Register variable[3]: Result */
23043 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
23044 /* Register variable[3]: Result */
23045 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::==*/)))))));
23046 if (UNTAG_Bool(variable[3])) { /*if*/
23047 /* Register variable[3]: Result */
23048 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
23049 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23050 }
23051 /* Register variable[3]: Result */
23052 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
23053 /* Register variable[3]: Result */
23054 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::==*/)))))));
23055 if (UNTAG_Bool(variable[3])) { /*if*/
23056 /* Register variable[3]: Result */
23057 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
23058 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23059 }
23060 return_label732: while(false);
23061 tracehead = trace.prev;
23062 return;
23063 }
23064 void parser_prod___ACallAssignExpr___empty_init(val_t self, int* init_table) {
23065 struct trace_t trace = {NULL, NULL, 8405, LOCATE_parser_prod___ACallAssignExpr___empty_init};
23066 val_t variable[2];
23067 struct WBT_ **closurevariable = NULL;
23068 trace.prev = tracehead; tracehead = &trace;
23069 trace.file = LOCATE_parser_prod;
23070 /* Register variable[0]: Local variable */
23071 variable[0] = self;
23072 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
23073 /* Register variable[1]: Method return value and escape marker */
23074 return_label734: while(false);
23075 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
23076 tracehead = trace.prev;
23077 return;
23078 }
23079 void parser_prod___ACallAssignExpr___init_acallassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, int* init_table) {
23080 struct trace_t trace = {NULL, NULL, 8407, LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr};
23081 val_t variable[11];
23082 struct WBT_ **closurevariable = NULL;
23083 trace.prev = tracehead; tracehead = &trace;
23084 trace.file = LOCATE_parser_prod;
23085 /* Register variable[0]: Local variable */
23086 variable[0] = self;
23087 /* Register variable[1]: Local variable */
23088 variable[1] = param0;
23089 /* Register variable[2]: Local variable */
23090 variable[2] = param1;
23091 /* Register variable[3]: Local variable */
23092 variable[3] = param2;
23093 /* Register variable[4]: Local variable */
23094 variable[4] = param3;
23095 /* Register variable[5]: Local variable */
23096 variable[5] = param4;
23097 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
23098 /* Register variable[6]: Method return value and escape marker */
23099 CALL_parser_prod___ACallAssignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ACallAssignExpr::empty_init*/;
23100 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
23101 /* Register variable[7]: Result */
23102 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23103 if (UNTAG_Bool(variable[7])) { /*if*/
23104 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
23105 }
23106 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[2] /*n_id*/;
23107 /* Register variable[7]: Result */
23108 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23109 if (UNTAG_Bool(variable[7])) { /*if*/
23110 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
23111 }
23112 /* Register variable[7]: Result */
23113 variable[7] = NEW_List_list___List___init() /*new List[PExpr]*/;
23114 ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/ = variable[7];
23115 /* Register variable[7]: For iterator */
23116 variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*Collection::iterator*/;
23117 while (true) { /*for*/
23118 /* Register variable[8]: For 'is_ok' result */
23119 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/;
23120 if (!UNTAG_Bool(variable[8])) break; /*for*/
23121 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/ /* Ensure var: For item*/;
23122 /* Register variable[9]: Local variable */
23123 variable[9] = variable[8];
23124 /* Register variable[10]: Result */
23125 variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23126 if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr, LOCATE_parser_prod, 8426); nit_exit(1);}
23127 /* Register variable[10]: Result */
23128 variable[10] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23129 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[9] /*n*/) /*IndexedCollection::add*/;
23130 CALL_parser_prod___PNode___parent__eq( variable[9] /*n*/)( variable[9] /*n*/, variable[0]) /*PNode::parent=*/;
23131 continue_736: while(0);
23132 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/;
23133 }
23134 break_736: while(0);
23135 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[4] /*n_assign*/;
23136 /* Register variable[7]: Result */
23137 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign*/ == NIT_NULL /*null*/) || (( variable[4] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23138 if (UNTAG_Bool(variable[7])) { /*if*/
23139 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, variable[0]) /*PNode::parent=*/;
23140 }
23141 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[5] /*n_value*/;
23142 /* Register variable[7]: Result */
23143 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_value*/ == NIT_NULL /*null*/) || (( variable[5] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)( variable[5] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23144 if (UNTAG_Bool(variable[7])) { /*if*/
23145 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_value*/)( variable[5] /*n_value*/, variable[0]) /*PNode::parent=*/;
23146 }
23147 return_label735: while(false);
23148 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
23149 tracehead = trace.prev;
23150 return;
23151 }
23152 void parser_prod___ACallReassignExpr___n_expr__eq(val_t self, val_t param0) {
23153 struct trace_t trace = {NULL, NULL, 8540, LOCATE_parser_prod___ACallReassignExpr___n_expr__eq};
23154 val_t variable[4];
23155 struct WBT_ **closurevariable = NULL;
23156 trace.prev = tracehead; tracehead = &trace;
23157 trace.file = LOCATE_parser_prod;
23158 /* Register variable[0]: Local variable */
23159 variable[0] = self;
23160 /* Register variable[1]: Local variable */
23161 variable[1] = param0;
23162 /* Register variable[2]: Method return value and escape marker */
23163 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
23164 /* Register variable[3]: Result */
23165 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23166 if (UNTAG_Bool(variable[3])) { /*if*/
23167 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23168 }
23169 return_label737: while(false);
23170 tracehead = trace.prev;
23171 return;
23172 }
23173 void parser_prod___ACallReassignExpr___n_id__eq(val_t self, val_t param0) {
23174 struct trace_t trace = {NULL, NULL, 8547, LOCATE_parser_prod___ACallReassignExpr___n_id__eq};
23175 val_t variable[4];
23176 struct WBT_ **closurevariable = NULL;
23177 trace.prev = tracehead; tracehead = &trace;
23178 trace.file = LOCATE_parser_prod;
23179 /* Register variable[0]: Local variable */
23180 variable[0] = self;
23181 /* Register variable[1]: Local variable */
23182 variable[1] = param0;
23183 /* Register variable[2]: Method return value and escape marker */
23184 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[1] /*n*/;
23185 /* Register variable[3]: Result */
23186 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23187 if (UNTAG_Bool(variable[3])) { /*if*/
23188 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23189 }
23190 return_label738: while(false);
23191 tracehead = trace.prev;
23192 return;
23193 }
23194 void parser_prod___ACallReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
23195 struct trace_t trace = {NULL, NULL, 8554, LOCATE_parser_prod___ACallReassignExpr___n_assign_op__eq};
23196 val_t variable[4];
23197 struct WBT_ **closurevariable = NULL;
23198 trace.prev = tracehead; tracehead = &trace;
23199 trace.file = LOCATE_parser_prod;
23200 /* Register variable[0]: Local variable */
23201 variable[0] = self;
23202 /* Register variable[1]: Local variable */
23203 variable[1] = param0;
23204 /* Register variable[2]: Method return value and escape marker */
23205 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
23206 /* Register variable[3]: Result */
23207 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23208 if (UNTAG_Bool(variable[3])) { /*if*/
23209 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23210 }
23211 return_label739: while(false);
23212 tracehead = trace.prev;
23213 return;
23214 }
23215 void parser_prod___ACallReassignExpr___n_value__eq(val_t self, val_t param0) {
23216 struct trace_t trace = {NULL, NULL, 8561, LOCATE_parser_prod___ACallReassignExpr___n_value__eq};
23217 val_t variable[4];
23218 struct WBT_ **closurevariable = NULL;
23219 trace.prev = tracehead; tracehead = &trace;
23220 trace.file = LOCATE_parser_prod;
23221 /* Register variable[0]: Local variable */
23222 variable[0] = self;
23223 /* Register variable[1]: Local variable */
23224 variable[1] = param0;
23225 /* Register variable[2]: Method return value and escape marker */
23226 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
23227 /* Register variable[3]: Result */
23228 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23229 if (UNTAG_Bool(variable[3])) { /*if*/
23230 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23231 }
23232 return_label740: while(false);
23233 tracehead = trace.prev;
23234 return;
23235 }
23236 void parser_prod___ACallReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
23237 struct trace_t trace = {NULL, NULL, 8604, LOCATE_parser_prod___ACallReassignExpr___replace_child};
23238 val_t variable[8];
23239 struct WBT_ **closurevariable = NULL;
23240 trace.prev = tracehead; tracehead = &trace;
23241 trace.file = LOCATE_parser_prod;
23242 /* Register variable[0]: Local variable */
23243 variable[0] = self;
23244 /* Register variable[1]: Local variable */
23245 variable[1] = param0;
23246 /* Register variable[2]: Local variable */
23247 variable[2] = param1;
23248 /* Register variable[3]: Method return value and escape marker */
23249 /* Register variable[4]: Result */
23250 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23251 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8606); nit_exit(1);}
23252 /* Register variable[4]: Result */
23253 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23254 /* Register variable[4]: Result */
23255 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23256 if (UNTAG_Bool(variable[4])) { /*if*/
23257 /* Register variable[4]: Result */
23258 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23259 if (UNTAG_Bool(variable[4])) { /*if*/
23260 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23261 /* Register variable[4]: Result */
23262 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23263 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8610); nit_exit(1);}
23264 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
23265 } else { /*if*/
23266 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
23267 }
23268 goto return_label741;
23269 }
23270 /* Register variable[4]: Result */
23271 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
23272 /* Register variable[4]: Result */
23273 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23274 if (UNTAG_Bool(variable[4])) { /*if*/
23275 /* Register variable[4]: Result */
23276 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23277 if (UNTAG_Bool(variable[4])) { /*if*/
23278 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23279 /* Register variable[4]: Result */
23280 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
23281 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8620); nit_exit(1);}
23282 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[2] /*new_child*/;
23283 } else { /*if*/
23284 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = NIT_NULL /*null*/;
23285 }
23286 goto return_label741;
23287 }
23288 /* Register variable[4]: Result */
23289 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23290 /* Register variable[4]: Result */
23291 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
23292 /* Register variable[4]: Result */
23293 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
23294 /* Register variable[4]: For iterator */
23295 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
23296 while (true) { /*for*/
23297 /* Register variable[5]: For 'is_ok' result */
23298 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
23299 if (!UNTAG_Bool(variable[5])) break; /*for*/
23300 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
23301 /* Register variable[6]: Local variable */
23302 variable[6] = variable[5];
23303 /* Register variable[7]: Result */
23304 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23305 /* Register variable[7]: Result */
23306 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
23307 /* Register variable[7]: Result */
23308 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
23309 if (UNTAG_Bool(variable[7])) { /*if*/
23310 /* Register variable[7]: Result */
23311 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23312 if (UNTAG_Bool(variable[7])) { /*if*/
23313 /* Register variable[7]: Result */
23314 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23315 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8630); nit_exit(1);}
23316 /* Register variable[7]: Result */
23317 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23318 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
23319 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23320 } else { /*if*/
23321 /* Register variable[7]: Result */
23322 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23323 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
23324 }
23325 goto return_label741;
23326 }
23327 continue_742: while(0);
23328 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
23329 }
23330 break_742: while(0);
23331 /* Register variable[4]: Result */
23332 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
23333 /* Register variable[4]: Result */
23334 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23335 if (UNTAG_Bool(variable[4])) { /*if*/
23336 /* Register variable[4]: Result */
23337 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23338 if (UNTAG_Bool(variable[4])) { /*if*/
23339 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23340 /* Register variable[4]: Result */
23341 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
23342 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8642); nit_exit(1);}
23343 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
23344 } else { /*if*/
23345 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
23346 }
23347 goto return_label741;
23348 }
23349 /* Register variable[4]: Result */
23350 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
23351 /* Register variable[4]: Result */
23352 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23353 if (UNTAG_Bool(variable[4])) { /*if*/
23354 /* Register variable[4]: Result */
23355 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23356 if (UNTAG_Bool(variable[4])) { /*if*/
23357 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23358 /* Register variable[4]: Result */
23359 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23360 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8652); nit_exit(1);}
23361 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
23362 } else { /*if*/
23363 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
23364 }
23365 goto return_label741;
23366 }
23367 return_label741: while(false);
23368 tracehead = trace.prev;
23369 return;
23370 }
23371 void parser_prod___ACallReassignExpr___visit_all(val_t self, val_t param0) {
23372 struct trace_t trace = {NULL, NULL, 8661, LOCATE_parser_prod___ACallReassignExpr___visit_all};
23373 val_t variable[6];
23374 struct WBT_ **closurevariable = NULL;
23375 trace.prev = tracehead; tracehead = &trace;
23376 trace.file = LOCATE_parser_prod;
23377 /* Register variable[0]: Local variable */
23378 variable[0] = self;
23379 /* Register variable[1]: Local variable */
23380 variable[1] = param0;
23381 /* Register variable[2]: Method return value and escape marker */
23382 /* Register variable[3]: Result */
23383 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23384 /* Register variable[3]: Result */
23385 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::==*/)))))));
23386 if (UNTAG_Bool(variable[3])) { /*if*/
23387 /* Register variable[3]: Result */
23388 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23389 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23390 }
23391 /* Register variable[3]: Result */
23392 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
23393 /* Register variable[3]: Result */
23394 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::==*/)))))));
23395 if (UNTAG_Bool(variable[3])) { /*if*/
23396 /* Register variable[3]: Result */
23397 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
23398 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23399 }
23400 /* Register variable[3]: Result */
23401 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23402 /* Register variable[3]: For iterator */
23403 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
23404 while (true) { /*for*/
23405 /* Register variable[4]: For 'is_ok' result */
23406 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
23407 if (!UNTAG_Bool(variable[4])) break; /*for*/
23408 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
23409 /* Register variable[5]: Local variable */
23410 variable[5] = variable[4];
23411 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
23412 continue_744: while(0);
23413 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
23414 }
23415 break_744: while(0);
23416 /* Register variable[3]: Result */
23417 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
23418 /* Register variable[3]: Result */
23419 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::==*/)))))));
23420 if (UNTAG_Bool(variable[3])) { /*if*/
23421 /* Register variable[3]: Result */
23422 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
23423 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23424 }
23425 /* Register variable[3]: Result */
23426 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
23427 /* Register variable[3]: Result */
23428 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::==*/)))))));
23429 if (UNTAG_Bool(variable[3])) { /*if*/
23430 /* Register variable[3]: Result */
23431 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
23432 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23433 }
23434 return_label743: while(false);
23435 tracehead = trace.prev;
23436 return;
23437 }
23438 void parser_prod___ACallReassignExpr___visit_all_reverse(val_t self, val_t param0) {
23439 struct trace_t trace = {NULL, NULL, 8680, LOCATE_parser_prod___ACallReassignExpr___visit_all_reverse};
23440 val_t variable[5];
23441 struct WBT_ **closurevariable = NULL;
23442 trace.prev = tracehead; tracehead = &trace;
23443 trace.file = LOCATE_parser_prod;
23444 /* Register variable[0]: Local variable */
23445 variable[0] = self;
23446 /* Register variable[1]: Local variable */
23447 variable[1] = param0;
23448 /* Register variable[2]: Method return value and escape marker */
23449 /* Register variable[3]: Result */
23450 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23451 /* Register variable[3]: Result */
23452 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::==*/)))))));
23453 if (UNTAG_Bool(variable[3])) { /*if*/
23454 /* Register variable[3]: Result */
23455 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23456 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23457 }
23458 /* Register variable[3]: Result */
23459 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
23460 /* Register variable[3]: Result */
23461 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::==*/)))))));
23462 if (UNTAG_Bool(variable[3])) { /*if*/
23463 /* Register variable[3]: Result */
23464 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/;
23465 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23466 }
23467 /* Register variable[3]: Local variable */
23468 /* Register variable[4]: Result */
23469 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23470 /* Register variable[4]: Result */
23471 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
23472 variable[3] = variable[4];
23473 while (true) { /*while*/
23474 /* Register variable[4]: Result */
23475 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
23476 if (!UNTAG_Bool(variable[4])) break; /* while*/
23477 /* Register variable[4]: Result */
23478 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23479 /* Register variable[4]: Result */
23480 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
23481 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
23482 /* Register variable[4]: Result */
23483 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
23484 variable[3] = variable[4] /*i=*/;
23485 continue_746: while(0);
23486 }
23487 break_746: while(0);
23488 /* Register variable[3]: Result */
23489 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
23490 /* Register variable[3]: Result */
23491 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::==*/)))))));
23492 if (UNTAG_Bool(variable[3])) { /*if*/
23493 /* Register variable[3]: Result */
23494 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
23495 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23496 }
23497 /* Register variable[3]: Result */
23498 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
23499 /* Register variable[3]: Result */
23500 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::==*/)))))));
23501 if (UNTAG_Bool(variable[3])) { /*if*/
23502 /* Register variable[3]: Result */
23503 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
23504 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23505 }
23506 return_label745: while(false);
23507 tracehead = trace.prev;
23508 return;
23509 }
23510 void parser_prod___ACallReassignExpr___empty_init(val_t self, int* init_table) {
23511 struct trace_t trace = {NULL, NULL, 8569, LOCATE_parser_prod___ACallReassignExpr___empty_init};
23512 val_t variable[2];
23513 struct WBT_ **closurevariable = NULL;
23514 trace.prev = tracehead; tracehead = &trace;
23515 trace.file = LOCATE_parser_prod;
23516 /* Register variable[0]: Local variable */
23517 variable[0] = self;
23518 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
23519 /* Register variable[1]: Method return value and escape marker */
23520 return_label747: while(false);
23521 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
23522 tracehead = trace.prev;
23523 return;
23524 }
23525 void parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4, int* init_table) {
23526 struct trace_t trace = {NULL, NULL, 8571, LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr};
23527 val_t variable[11];
23528 struct WBT_ **closurevariable = NULL;
23529 trace.prev = tracehead; tracehead = &trace;
23530 trace.file = LOCATE_parser_prod;
23531 /* Register variable[0]: Local variable */
23532 variable[0] = self;
23533 /* Register variable[1]: Local variable */
23534 variable[1] = param0;
23535 /* Register variable[2]: Local variable */
23536 variable[2] = param1;
23537 /* Register variable[3]: Local variable */
23538 variable[3] = param2;
23539 /* Register variable[4]: Local variable */
23540 variable[4] = param3;
23541 /* Register variable[5]: Local variable */
23542 variable[5] = param4;
23543 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
23544 /* Register variable[6]: Method return value and escape marker */
23545 CALL_parser_prod___ACallReassignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ACallReassignExpr::empty_init*/;
23546 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
23547 /* Register variable[7]: Result */
23548 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23549 if (UNTAG_Bool(variable[7])) { /*if*/
23550 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
23551 }
23552 ATTR_parser_nodes___ACallFormExpr____n_id(variable[0]) /*ACallFormExpr::_n_id*/ = variable[2] /*n_id*/;
23553 /* Register variable[7]: Result */
23554 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ == NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23555 if (UNTAG_Bool(variable[7])) { /*if*/
23556 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[0]) /*PNode::parent=*/;
23557 }
23558 /* Register variable[7]: Result */
23559 variable[7] = NEW_List_list___List___init() /*new List[PExpr]*/;
23560 ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/ = variable[7];
23561 /* Register variable[7]: For iterator */
23562 variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*Collection::iterator*/;
23563 while (true) { /*for*/
23564 /* Register variable[8]: For 'is_ok' result */
23565 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/;
23566 if (!UNTAG_Bool(variable[8])) break; /*for*/
23567 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/ /* Ensure var: For item*/;
23568 /* Register variable[9]: Local variable */
23569 variable[9] = variable[8];
23570 /* Register variable[10]: Result */
23571 variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23572 if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr, LOCATE_parser_prod, 8590); nit_exit(1);}
23573 /* Register variable[10]: Result */
23574 variable[10] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[0]) /*ACallFormExpr::_n_args*/;
23575 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[9] /*n*/) /*IndexedCollection::add*/;
23576 CALL_parser_prod___PNode___parent__eq( variable[9] /*n*/)( variable[9] /*n*/, variable[0]) /*PNode::parent=*/;
23577 continue_749: while(0);
23578 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/;
23579 }
23580 break_749: while(0);
23581 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[4] /*n_assign_op*/;
23582 /* Register variable[7]: Result */
23583 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable[4] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_assign_op*/)( variable[4] /*n_assign_op*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23584 if (UNTAG_Bool(variable[7])) { /*if*/
23585 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign_op*/)( variable[4] /*n_assign_op*/, variable[0]) /*PNode::parent=*/;
23586 }
23587 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[5] /*n_value*/;
23588 /* Register variable[7]: Result */
23589 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_value*/ == NIT_NULL /*null*/) || (( variable[5] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)( variable[5] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23590 if (UNTAG_Bool(variable[7])) { /*if*/
23591 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_value*/)( variable[5] /*n_value*/, variable[0]) /*PNode::parent=*/;
23592 }
23593 return_label748: while(false);
23594 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
23595 tracehead = trace.prev;
23596 return;
23597 }
23598 void parser_prod___ASuperExpr___n_qualified__eq(val_t self, val_t param0) {
23599 struct trace_t trace = {NULL, NULL, 8704, LOCATE_parser_prod___ASuperExpr___n_qualified__eq};
23600 val_t variable[4];
23601 struct WBT_ **closurevariable = NULL;
23602 trace.prev = tracehead; tracehead = &trace;
23603 trace.file = LOCATE_parser_prod;
23604 /* Register variable[0]: Local variable */
23605 variable[0] = self;
23606 /* Register variable[1]: Local variable */
23607 variable[1] = param0;
23608 /* Register variable[2]: Method return value and escape marker */
23609 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/ = variable[1] /*n*/;
23610 /* Register variable[3]: Result */
23611 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23612 if (UNTAG_Bool(variable[3])) { /*if*/
23613 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23614 }
23615 return_label750: while(false);
23616 tracehead = trace.prev;
23617 return;
23618 }
23619 void parser_prod___ASuperExpr___n_kwsuper__eq(val_t self, val_t param0) {
23620 struct trace_t trace = {NULL, NULL, 8711, LOCATE_parser_prod___ASuperExpr___n_kwsuper__eq};
23621 val_t variable[4];
23622 struct WBT_ **closurevariable = NULL;
23623 trace.prev = tracehead; tracehead = &trace;
23624 trace.file = LOCATE_parser_prod;
23625 /* Register variable[0]: Local variable */
23626 variable[0] = self;
23627 /* Register variable[1]: Local variable */
23628 variable[1] = param0;
23629 /* Register variable[2]: Method return value and escape marker */
23630 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/ = variable[1] /*n*/;
23631 /* Register variable[3]: Result */
23632 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23633 if (UNTAG_Bool(variable[3])) { /*if*/
23634 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23635 }
23636 return_label751: while(false);
23637 tracehead = trace.prev;
23638 return;
23639 }
23640 void parser_prod___ASuperExpr___replace_child(val_t self, val_t param0, val_t param1) {
23641 struct trace_t trace = {NULL, NULL, 8744, LOCATE_parser_prod___ASuperExpr___replace_child};
23642 val_t variable[8];
23643 struct WBT_ **closurevariable = NULL;
23644 trace.prev = tracehead; tracehead = &trace;
23645 trace.file = LOCATE_parser_prod;
23646 /* Register variable[0]: Local variable */
23647 variable[0] = self;
23648 /* Register variable[1]: Local variable */
23649 variable[1] = param0;
23650 /* Register variable[2]: Local variable */
23651 variable[2] = param1;
23652 /* Register variable[3]: Method return value and escape marker */
23653 /* Register variable[4]: Result */
23654 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23655 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8746); nit_exit(1);}
23656 /* Register variable[4]: Result */
23657 variable[4] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/;
23658 /* Register variable[4]: Result */
23659 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23660 if (UNTAG_Bool(variable[4])) { /*if*/
23661 /* Register variable[4]: Result */
23662 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23663 if (UNTAG_Bool(variable[4])) { /*if*/
23664 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23665 /* Register variable[4]: Result */
23666 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
23667 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8750); nit_exit(1);}
23668 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/ = variable[2] /*new_child*/;
23669 } else { /*if*/
23670 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/ = NIT_NULL /*null*/;
23671 }
23672 goto return_label752;
23673 }
23674 /* Register variable[4]: Result */
23675 variable[4] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/;
23676 /* Register variable[4]: Result */
23677 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23678 if (UNTAG_Bool(variable[4])) { /*if*/
23679 /* Register variable[4]: Result */
23680 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23681 if (UNTAG_Bool(variable[4])) { /*if*/
23682 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23683 /* Register variable[4]: Result */
23684 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
23685 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8760); nit_exit(1);}
23686 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/ = variable[2] /*new_child*/;
23687 } else { /*if*/
23688 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/ = NIT_NULL /*null*/;
23689 }
23690 goto return_label752;
23691 }
23692 /* Register variable[4]: Result */
23693 variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23694 /* Register variable[4]: Result */
23695 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
23696 /* Register variable[4]: Result */
23697 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
23698 /* Register variable[4]: For iterator */
23699 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
23700 while (true) { /*for*/
23701 /* Register variable[5]: For 'is_ok' result */
23702 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
23703 if (!UNTAG_Bool(variable[5])) break; /*for*/
23704 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
23705 /* Register variable[6]: Local variable */
23706 variable[6] = variable[5];
23707 /* Register variable[7]: Result */
23708 variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23709 /* Register variable[7]: Result */
23710 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
23711 /* Register variable[7]: Result */
23712 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
23713 if (UNTAG_Bool(variable[7])) { /*if*/
23714 /* Register variable[7]: Result */
23715 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23716 if (UNTAG_Bool(variable[7])) { /*if*/
23717 /* Register variable[7]: Result */
23718 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23719 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8770); nit_exit(1);}
23720 /* Register variable[7]: Result */
23721 variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23722 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
23723 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23724 } else { /*if*/
23725 /* Register variable[7]: Result */
23726 variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23727 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
23728 }
23729 goto return_label752;
23730 }
23731 continue_753: while(0);
23732 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
23733 }
23734 break_753: while(0);
23735 return_label752: while(false);
23736 tracehead = trace.prev;
23737 return;
23738 }
23739 void parser_prod___ASuperExpr___visit_all(val_t self, val_t param0) {
23740 struct trace_t trace = {NULL, NULL, 8781, LOCATE_parser_prod___ASuperExpr___visit_all};
23741 val_t variable[6];
23742 struct WBT_ **closurevariable = NULL;
23743 trace.prev = tracehead; tracehead = &trace;
23744 trace.file = LOCATE_parser_prod;
23745 /* Register variable[0]: Local variable */
23746 variable[0] = self;
23747 /* Register variable[1]: Local variable */
23748 variable[1] = param0;
23749 /* Register variable[2]: Method return value and escape marker */
23750 /* Register variable[3]: Result */
23751 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/;
23752 /* Register variable[3]: Result */
23753 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::==*/)))))));
23754 if (UNTAG_Bool(variable[3])) { /*if*/
23755 /* Register variable[3]: Result */
23756 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/;
23757 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23758 }
23759 /* Register variable[3]: Result */
23760 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/;
23761 /* Register variable[3]: Result */
23762 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::==*/)))))));
23763 if (UNTAG_Bool(variable[3])) { /*if*/
23764 /* Register variable[3]: Result */
23765 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/;
23766 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23767 }
23768 /* Register variable[3]: Result */
23769 variable[3] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23770 /* Register variable[3]: For iterator */
23771 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
23772 while (true) { /*for*/
23773 /* Register variable[4]: For 'is_ok' result */
23774 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
23775 if (!UNTAG_Bool(variable[4])) break; /*for*/
23776 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
23777 /* Register variable[5]: Local variable */
23778 variable[5] = variable[4];
23779 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
23780 continue_755: while(0);
23781 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
23782 }
23783 break_755: while(0);
23784 return_label754: while(false);
23785 tracehead = trace.prev;
23786 return;
23787 }
23788 void parser_prod___ASuperExpr___visit_all_reverse(val_t self, val_t param0) {
23789 struct trace_t trace = {NULL, NULL, 8794, LOCATE_parser_prod___ASuperExpr___visit_all_reverse};
23790 val_t variable[5];
23791 struct WBT_ **closurevariable = NULL;
23792 trace.prev = tracehead; tracehead = &trace;
23793 trace.file = LOCATE_parser_prod;
23794 /* Register variable[0]: Local variable */
23795 variable[0] = self;
23796 /* Register variable[1]: Local variable */
23797 variable[1] = param0;
23798 /* Register variable[2]: Method return value and escape marker */
23799 /* Register variable[3]: Result */
23800 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/;
23801 /* Register variable[3]: Result */
23802 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::==*/)))))));
23803 if (UNTAG_Bool(variable[3])) { /*if*/
23804 /* Register variable[3]: Result */
23805 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/;
23806 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23807 }
23808 /* Register variable[3]: Result */
23809 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/;
23810 /* Register variable[3]: Result */
23811 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::==*/)))))));
23812 if (UNTAG_Bool(variable[3])) { /*if*/
23813 /* Register variable[3]: Result */
23814 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/;
23815 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23816 }
23817 /* Register variable[3]: Local variable */
23818 /* Register variable[4]: Result */
23819 variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23820 /* Register variable[4]: Result */
23821 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
23822 variable[3] = variable[4];
23823 while (true) { /*while*/
23824 /* Register variable[4]: Result */
23825 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
23826 if (!UNTAG_Bool(variable[4])) break; /* while*/
23827 /* Register variable[4]: Result */
23828 variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23829 /* Register variable[4]: Result */
23830 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
23831 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
23832 /* Register variable[4]: Result */
23833 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
23834 variable[3] = variable[4] /*i=*/;
23835 continue_757: while(0);
23836 }
23837 break_757: while(0);
23838 return_label756: while(false);
23839 tracehead = trace.prev;
23840 return;
23841 }
23842 void parser_prod___ASuperExpr___empty_init(val_t self, int* init_table) {
23843 struct trace_t trace = {NULL, NULL, 8719, LOCATE_parser_prod___ASuperExpr___empty_init};
23844 val_t variable[2];
23845 struct WBT_ **closurevariable = NULL;
23846 trace.prev = tracehead; tracehead = &trace;
23847 trace.file = LOCATE_parser_prod;
23848 /* Register variable[0]: Local variable */
23849 variable[0] = self;
23850 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
23851 /* Register variable[1]: Method return value and escape marker */
23852 return_label758: while(false);
23853 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
23854 tracehead = trace.prev;
23855 return;
23856 }
23857 void parser_prod___ASuperExpr___init_asuperexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
23858 struct trace_t trace = {NULL, NULL, 8721, LOCATE_parser_prod___ASuperExpr___init_asuperexpr};
23859 val_t variable[9];
23860 struct WBT_ **closurevariable = NULL;
23861 trace.prev = tracehead; tracehead = &trace;
23862 trace.file = LOCATE_parser_prod;
23863 /* Register variable[0]: Local variable */
23864 variable[0] = self;
23865 /* Register variable[1]: Local variable */
23866 variable[1] = param0;
23867 /* Register variable[2]: Local variable */
23868 variable[2] = param1;
23869 /* Register variable[3]: Local variable */
23870 variable[3] = param2;
23871 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
23872 /* Register variable[4]: Method return value and escape marker */
23873 CALL_parser_prod___ASuperExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASuperExpr::empty_init*/;
23874 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[0]) /*ASuperExpr::_n_qualified*/ = variable[1] /*n_qualified*/;
23875 /* Register variable[5]: Result */
23876 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_qualified*/ == NIT_NULL /*null*/) || (( variable[1] /*n_qualified*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_qualified*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_qualified*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_qualified*/)( variable[1] /*n_qualified*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23877 if (UNTAG_Bool(variable[5])) { /*if*/
23878 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_qualified*/)( variable[1] /*n_qualified*/, variable[0]) /*PNode::parent=*/;
23879 }
23880 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[0]) /*ASuperExpr::_n_kwsuper*/ = variable[2] /*n_kwsuper*/;
23881 /* Register variable[5]: Result */
23882 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwsuper*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwsuper*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwsuper*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwsuper*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwsuper*/)( variable[2] /*n_kwsuper*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23883 if (UNTAG_Bool(variable[5])) { /*if*/
23884 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwsuper*/)( variable[2] /*n_kwsuper*/, variable[0]) /*PNode::parent=*/;
23885 }
23886 /* Register variable[5]: Result */
23887 variable[5] = NEW_List_list___List___init() /*new List[PExpr]*/;
23888 ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/ = variable[5];
23889 /* Register variable[5]: For iterator */
23890 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*Collection::iterator*/;
23891 while (true) { /*for*/
23892 /* Register variable[6]: For 'is_ok' result */
23893 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
23894 if (!UNTAG_Bool(variable[6])) break; /*for*/
23895 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
23896 /* Register variable[7]: Local variable */
23897 variable[7] = variable[6];
23898 /* Register variable[8]: Result */
23899 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23900 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___init_asuperexpr, LOCATE_parser_prod, 8738); nit_exit(1);}
23901 /* Register variable[8]: Result */
23902 variable[8] = ATTR_parser_nodes___ASuperExpr____n_args(variable[0]) /*ASuperExpr::_n_args*/;
23903 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
23904 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
23905 continue_760: while(0);
23906 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
23907 }
23908 break_760: while(0);
23909 return_label759: while(false);
23910 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
23911 tracehead = trace.prev;
23912 return;
23913 }
23914 void parser_prod___AInitExpr___n_expr__eq(val_t self, val_t param0) {
23915 struct trace_t trace = {NULL, NULL, 8812, LOCATE_parser_prod___AInitExpr___n_expr__eq};
23916 val_t variable[4];
23917 struct WBT_ **closurevariable = NULL;
23918 trace.prev = tracehead; tracehead = &trace;
23919 trace.file = LOCATE_parser_prod;
23920 /* Register variable[0]: Local variable */
23921 variable[0] = self;
23922 /* Register variable[1]: Local variable */
23923 variable[1] = param0;
23924 /* Register variable[2]: Method return value and escape marker */
23925 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
23926 /* Register variable[3]: Result */
23927 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23928 if (UNTAG_Bool(variable[3])) { /*if*/
23929 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23930 }
23931 return_label761: while(false);
23932 tracehead = trace.prev;
23933 return;
23934 }
23935 void parser_prod___AInitExpr___n_kwinit__eq(val_t self, val_t param0) {
23936 struct trace_t trace = {NULL, NULL, 8819, LOCATE_parser_prod___AInitExpr___n_kwinit__eq};
23937 val_t variable[4];
23938 struct WBT_ **closurevariable = NULL;
23939 trace.prev = tracehead; tracehead = &trace;
23940 trace.file = LOCATE_parser_prod;
23941 /* Register variable[0]: Local variable */
23942 variable[0] = self;
23943 /* Register variable[1]: Local variable */
23944 variable[1] = param0;
23945 /* Register variable[2]: Method return value and escape marker */
23946 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/ = variable[1] /*n*/;
23947 /* Register variable[3]: Result */
23948 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23949 if (UNTAG_Bool(variable[3])) { /*if*/
23950 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
23951 }
23952 return_label762: while(false);
23953 tracehead = trace.prev;
23954 return;
23955 }
23956 void parser_prod___AInitExpr___replace_child(val_t self, val_t param0, val_t param1) {
23957 struct trace_t trace = {NULL, NULL, 8852, LOCATE_parser_prod___AInitExpr___replace_child};
23958 val_t variable[8];
23959 struct WBT_ **closurevariable = NULL;
23960 trace.prev = tracehead; tracehead = &trace;
23961 trace.file = LOCATE_parser_prod;
23962 /* Register variable[0]: Local variable */
23963 variable[0] = self;
23964 /* Register variable[1]: Local variable */
23965 variable[1] = param0;
23966 /* Register variable[2]: Local variable */
23967 variable[2] = param1;
23968 /* Register variable[3]: Method return value and escape marker */
23969 /* Register variable[4]: Result */
23970 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23971 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8854); nit_exit(1);}
23972 /* Register variable[4]: Result */
23973 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
23974 /* Register variable[4]: Result */
23975 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23976 if (UNTAG_Bool(variable[4])) { /*if*/
23977 /* Register variable[4]: Result */
23978 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23979 if (UNTAG_Bool(variable[4])) { /*if*/
23980 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23981 /* Register variable[4]: Result */
23982 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23983 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8858); nit_exit(1);}
23984 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
23985 } else { /*if*/
23986 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
23987 }
23988 goto return_label763;
23989 }
23990 /* Register variable[4]: Result */
23991 variable[4] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/;
23992 /* Register variable[4]: Result */
23993 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23994 if (UNTAG_Bool(variable[4])) { /*if*/
23995 /* Register variable[4]: Result */
23996 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23997 if (UNTAG_Bool(variable[4])) { /*if*/
23998 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
23999 /* Register variable[4]: Result */
24000 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
24001 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8868); nit_exit(1);}
24002 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/ = variable[2] /*new_child*/;
24003 } else { /*if*/
24004 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/ = NIT_NULL /*null*/;
24005 }
24006 goto return_label763;
24007 }
24008 /* Register variable[4]: Result */
24009 variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24010 /* Register variable[4]: Result */
24011 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24012 /* Register variable[4]: Result */
24013 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
24014 /* Register variable[4]: For iterator */
24015 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
24016 while (true) { /*for*/
24017 /* Register variable[5]: For 'is_ok' result */
24018 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
24019 if (!UNTAG_Bool(variable[5])) break; /*for*/
24020 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
24021 /* Register variable[6]: Local variable */
24022 variable[6] = variable[5];
24023 /* Register variable[7]: Result */
24024 variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24025 /* Register variable[7]: Result */
24026 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
24027 /* Register variable[7]: Result */
24028 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
24029 if (UNTAG_Bool(variable[7])) { /*if*/
24030 /* Register variable[7]: Result */
24031 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24032 if (UNTAG_Bool(variable[7])) { /*if*/
24033 /* Register variable[7]: Result */
24034 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24035 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8878); nit_exit(1);}
24036 /* Register variable[7]: Result */
24037 variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24038 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
24039 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24040 } else { /*if*/
24041 /* Register variable[7]: Result */
24042 variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24043 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
24044 }
24045 goto return_label763;
24046 }
24047 continue_764: while(0);
24048 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
24049 }
24050 break_764: while(0);
24051 return_label763: while(false);
24052 tracehead = trace.prev;
24053 return;
24054 }
24055 void parser_prod___AInitExpr___visit_all(val_t self, val_t param0) {
24056 struct trace_t trace = {NULL, NULL, 8889, LOCATE_parser_prod___AInitExpr___visit_all};
24057 val_t variable[6];
24058 struct WBT_ **closurevariable = NULL;
24059 trace.prev = tracehead; tracehead = &trace;
24060 trace.file = LOCATE_parser_prod;
24061 /* Register variable[0]: Local variable */
24062 variable[0] = self;
24063 /* Register variable[1]: Local variable */
24064 variable[1] = param0;
24065 /* Register variable[2]: Method return value and escape marker */
24066 /* Register variable[3]: Result */
24067 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24068 /* Register variable[3]: Result */
24069 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::==*/)))))));
24070 if (UNTAG_Bool(variable[3])) { /*if*/
24071 /* Register variable[3]: Result */
24072 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24073 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24074 }
24075 /* Register variable[3]: Result */
24076 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/;
24077 /* Register variable[3]: Result */
24078 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::==*/)))))));
24079 if (UNTAG_Bool(variable[3])) { /*if*/
24080 /* Register variable[3]: Result */
24081 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/;
24082 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24083 }
24084 /* Register variable[3]: Result */
24085 variable[3] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24086 /* Register variable[3]: For iterator */
24087 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
24088 while (true) { /*for*/
24089 /* Register variable[4]: For 'is_ok' result */
24090 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
24091 if (!UNTAG_Bool(variable[4])) break; /*for*/
24092 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
24093 /* Register variable[5]: Local variable */
24094 variable[5] = variable[4];
24095 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
24096 continue_766: while(0);
24097 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
24098 }
24099 break_766: while(0);
24100 return_label765: while(false);
24101 tracehead = trace.prev;
24102 return;
24103 }
24104 void parser_prod___AInitExpr___visit_all_reverse(val_t self, val_t param0) {
24105 struct trace_t trace = {NULL, NULL, 8902, LOCATE_parser_prod___AInitExpr___visit_all_reverse};
24106 val_t variable[5];
24107 struct WBT_ **closurevariable = NULL;
24108 trace.prev = tracehead; tracehead = &trace;
24109 trace.file = LOCATE_parser_prod;
24110 /* Register variable[0]: Local variable */
24111 variable[0] = self;
24112 /* Register variable[1]: Local variable */
24113 variable[1] = param0;
24114 /* Register variable[2]: Method return value and escape marker */
24115 /* Register variable[3]: Result */
24116 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24117 /* Register variable[3]: Result */
24118 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::==*/)))))));
24119 if (UNTAG_Bool(variable[3])) { /*if*/
24120 /* Register variable[3]: Result */
24121 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24122 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24123 }
24124 /* Register variable[3]: Result */
24125 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/;
24126 /* Register variable[3]: Result */
24127 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::==*/)))))));
24128 if (UNTAG_Bool(variable[3])) { /*if*/
24129 /* Register variable[3]: Result */
24130 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/;
24131 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24132 }
24133 /* Register variable[3]: Local variable */
24134 /* Register variable[4]: Result */
24135 variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24136 /* Register variable[4]: Result */
24137 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24138 variable[3] = variable[4];
24139 while (true) { /*while*/
24140 /* Register variable[4]: Result */
24141 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
24142 if (!UNTAG_Bool(variable[4])) break; /* while*/
24143 /* Register variable[4]: Result */
24144 variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24145 /* Register variable[4]: Result */
24146 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
24147 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
24148 /* Register variable[4]: Result */
24149 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
24150 variable[3] = variable[4] /*i=*/;
24151 continue_768: while(0);
24152 }
24153 break_768: while(0);
24154 return_label767: while(false);
24155 tracehead = trace.prev;
24156 return;
24157 }
24158 void parser_prod___AInitExpr___empty_init(val_t self, int* init_table) {
24159 struct trace_t trace = {NULL, NULL, 8827, LOCATE_parser_prod___AInitExpr___empty_init};
24160 val_t variable[2];
24161 struct WBT_ **closurevariable = NULL;
24162 trace.prev = tracehead; tracehead = &trace;
24163 trace.file = LOCATE_parser_prod;
24164 /* Register variable[0]: Local variable */
24165 variable[0] = self;
24166 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i]) return;
24167 /* Register variable[1]: Method return value and escape marker */
24168 return_label769: while(false);
24169 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
24170 tracehead = trace.prev;
24171 return;
24172 }
24173 void parser_prod___AInitExpr___init_ainitexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
24174 struct trace_t trace = {NULL, NULL, 8829, LOCATE_parser_prod___AInitExpr___init_ainitexpr};
24175 val_t variable[9];
24176 struct WBT_ **closurevariable = NULL;
24177 trace.prev = tracehead; tracehead = &trace;
24178 trace.file = LOCATE_parser_prod;
24179 /* Register variable[0]: Local variable */
24180 variable[0] = self;
24181 /* Register variable[1]: Local variable */
24182 variable[1] = param0;
24183 /* Register variable[2]: Local variable */
24184 variable[2] = param1;
24185 /* Register variable[3]: Local variable */
24186 variable[3] = param2;
24187 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i]) return;
24188 /* Register variable[4]: Method return value and escape marker */
24189 CALL_parser_prod___AInitExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AInitExpr::empty_init*/;
24190 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
24191 /* Register variable[5]: Result */
24192 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24193 if (UNTAG_Bool(variable[5])) { /*if*/
24194 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
24195 }
24196 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[0]) /*AInitExpr::_n_kwinit*/ = variable[2] /*n_kwinit*/;
24197 /* Register variable[5]: Result */
24198 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwinit*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwinit*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwinit*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwinit*/)( variable[2] /*n_kwinit*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24199 if (UNTAG_Bool(variable[5])) { /*if*/
24200 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwinit*/)( variable[2] /*n_kwinit*/, variable[0]) /*PNode::parent=*/;
24201 }
24202 /* Register variable[5]: Result */
24203 variable[5] = NEW_List_list___List___init() /*new List[PExpr]*/;
24204 ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/ = variable[5];
24205 /* Register variable[5]: For iterator */
24206 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*Collection::iterator*/;
24207 while (true) { /*for*/
24208 /* Register variable[6]: For 'is_ok' result */
24209 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
24210 if (!UNTAG_Bool(variable[6])) break; /*for*/
24211 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
24212 /* Register variable[7]: Local variable */
24213 variable[7] = variable[6];
24214 /* Register variable[8]: Result */
24215 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24216 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___init_ainitexpr, LOCATE_parser_prod, 8846); nit_exit(1);}
24217 /* Register variable[8]: Result */
24218 variable[8] = ATTR_parser_nodes___AInitExpr____n_args(variable[0]) /*AInitExpr::_n_args*/;
24219 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
24220 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
24221 continue_771: while(0);
24222 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
24223 }
24224 break_771: while(0);
24225 return_label770: while(false);
24226 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
24227 tracehead = trace.prev;
24228 return;
24229 }
24230 void parser_prod___ABraExpr___n_expr__eq(val_t self, val_t param0) {
24231 struct trace_t trace = {NULL, NULL, 8920, LOCATE_parser_prod___ABraExpr___n_expr__eq};
24232 val_t variable[4];
24233 struct WBT_ **closurevariable = NULL;
24234 trace.prev = tracehead; tracehead = &trace;
24235 trace.file = LOCATE_parser_prod;
24236 /* Register variable[0]: Local variable */
24237 variable[0] = self;
24238 /* Register variable[1]: Local variable */
24239 variable[1] = param0;
24240 /* Register variable[2]: Method return value and escape marker */
24241 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
24242 /* Register variable[3]: Result */
24243 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24244 if (UNTAG_Bool(variable[3])) { /*if*/
24245 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
24246 }
24247 return_label772: while(false);
24248 tracehead = trace.prev;
24249 return;
24250 }
24251 void parser_prod___ABraExpr___replace_child(val_t self, val_t param0, val_t param1) {
24252 struct trace_t trace = {NULL, NULL, 8955, LOCATE_parser_prod___ABraExpr___replace_child};
24253 val_t variable[8];
24254 struct WBT_ **closurevariable = NULL;
24255 trace.prev = tracehead; tracehead = &trace;
24256 trace.file = LOCATE_parser_prod;
24257 /* Register variable[0]: Local variable */
24258 variable[0] = self;
24259 /* Register variable[1]: Local variable */
24260 variable[1] = param0;
24261 /* Register variable[2]: Local variable */
24262 variable[2] = param1;
24263 /* Register variable[3]: Method return value and escape marker */
24264 /* Register variable[4]: Result */
24265 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24266 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8957); nit_exit(1);}
24267 /* Register variable[4]: Result */
24268 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24269 /* Register variable[4]: Result */
24270 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24271 if (UNTAG_Bool(variable[4])) { /*if*/
24272 /* Register variable[4]: Result */
24273 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24274 if (UNTAG_Bool(variable[4])) { /*if*/
24275 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24276 /* Register variable[4]: Result */
24277 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24278 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8961); nit_exit(1);}
24279 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
24280 } else { /*if*/
24281 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
24282 }
24283 goto return_label773;
24284 }
24285 /* Register variable[4]: Result */
24286 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24287 /* Register variable[4]: Result */
24288 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24289 /* Register variable[4]: Result */
24290 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
24291 /* Register variable[4]: For iterator */
24292 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
24293 while (true) { /*for*/
24294 /* Register variable[5]: For 'is_ok' result */
24295 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
24296 if (!UNTAG_Bool(variable[5])) break; /*for*/
24297 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
24298 /* Register variable[6]: Local variable */
24299 variable[6] = variable[5];
24300 /* Register variable[7]: Result */
24301 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24302 /* Register variable[7]: Result */
24303 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
24304 /* Register variable[7]: Result */
24305 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
24306 if (UNTAG_Bool(variable[7])) { /*if*/
24307 /* Register variable[7]: Result */
24308 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24309 if (UNTAG_Bool(variable[7])) { /*if*/
24310 /* Register variable[7]: Result */
24311 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24312 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8971); nit_exit(1);}
24313 /* Register variable[7]: Result */
24314 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24315 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
24316 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24317 } else { /*if*/
24318 /* Register variable[7]: Result */
24319 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24320 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
24321 }
24322 goto return_label773;
24323 }
24324 continue_774: while(0);
24325 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
24326 }
24327 break_774: while(0);
24328 /* Register variable[4]: Result */
24329 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24330 /* Register variable[4]: Result */
24331 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24332 /* Register variable[4]: Result */
24333 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
24334 /* Register variable[4]: For iterator */
24335 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
24336 while (true) { /*for*/
24337 /* Register variable[5]: For 'is_ok' result */
24338 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
24339 if (!UNTAG_Bool(variable[5])) break; /*for*/
24340 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
24341 /* Register variable[6]: Local variable */
24342 variable[6] = variable[5];
24343 /* Register variable[7]: Result */
24344 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24345 /* Register variable[7]: Result */
24346 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
24347 /* Register variable[7]: Result */
24348 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
24349 if (UNTAG_Bool(variable[7])) { /*if*/
24350 /* Register variable[7]: Result */
24351 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24352 if (UNTAG_Bool(variable[7])) { /*if*/
24353 /* Register variable[7]: Result */
24354 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
24355 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8983); nit_exit(1);}
24356 /* Register variable[7]: Result */
24357 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24358 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
24359 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24360 } else { /*if*/
24361 /* Register variable[7]: Result */
24362 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24363 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
24364 }
24365 goto return_label773;
24366 }
24367 continue_775: while(0);
24368 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
24369 }
24370 break_775: while(0);
24371 return_label773: while(false);
24372 tracehead = trace.prev;
24373 return;
24374 }
24375 void parser_prod___ABraExpr___visit_all(val_t self, val_t param0) {
24376 struct trace_t trace = {NULL, NULL, 8994, LOCATE_parser_prod___ABraExpr___visit_all};
24377 val_t variable[6];
24378 struct WBT_ **closurevariable = NULL;
24379 trace.prev = tracehead; tracehead = &trace;
24380 trace.file = LOCATE_parser_prod;
24381 /* Register variable[0]: Local variable */
24382 variable[0] = self;
24383 /* Register variable[1]: Local variable */
24384 variable[1] = param0;
24385 /* Register variable[2]: Method return value and escape marker */
24386 /* Register variable[3]: Result */
24387 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24388 /* Register variable[3]: Result */
24389 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::==*/)))))));
24390 if (UNTAG_Bool(variable[3])) { /*if*/
24391 /* Register variable[3]: Result */
24392 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24393 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24394 }
24395 /* Register variable[3]: Result */
24396 variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24397 /* Register variable[3]: For iterator */
24398 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
24399 while (true) { /*for*/
24400 /* Register variable[4]: For 'is_ok' result */
24401 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
24402 if (!UNTAG_Bool(variable[4])) break; /*for*/
24403 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
24404 /* Register variable[5]: Local variable */
24405 variable[5] = variable[4];
24406 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
24407 continue_777: while(0);
24408 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
24409 }
24410 break_777: while(0);
24411 /* Register variable[3]: Result */
24412 variable[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24413 /* Register variable[3]: For iterator */
24414 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
24415 while (true) { /*for*/
24416 /* Register variable[4]: For 'is_ok' result */
24417 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
24418 if (!UNTAG_Bool(variable[4])) break; /*for*/
24419 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
24420 /* Register variable[5]: Local variable */
24421 variable[5] = variable[4];
24422 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
24423 continue_778: while(0);
24424 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
24425 }
24426 break_778: while(0);
24427 return_label776: while(false);
24428 tracehead = trace.prev;
24429 return;
24430 }
24431 void parser_prod___ABraExpr___visit_all_reverse(val_t self, val_t param0) {
24432 struct trace_t trace = {NULL, NULL, 9007, LOCATE_parser_prod___ABraExpr___visit_all_reverse};
24433 val_t variable[5];
24434 struct WBT_ **closurevariable = NULL;
24435 trace.prev = tracehead; tracehead = &trace;
24436 trace.file = LOCATE_parser_prod;
24437 /* Register variable[0]: Local variable */
24438 variable[0] = self;
24439 /* Register variable[1]: Local variable */
24440 variable[1] = param0;
24441 /* Register variable[2]: Method return value and escape marker */
24442 /* Register variable[3]: Result */
24443 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24444 /* Register variable[3]: Result */
24445 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::==*/)))))));
24446 if (UNTAG_Bool(variable[3])) { /*if*/
24447 /* Register variable[3]: Result */
24448 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24449 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24450 }
24451 /* Register variable[3]: Local variable */
24452 /* Register variable[4]: Result */
24453 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24454 /* Register variable[4]: Result */
24455 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24456 variable[3] = variable[4];
24457 while (true) { /*while*/
24458 /* Register variable[4]: Result */
24459 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
24460 if (!UNTAG_Bool(variable[4])) break; /* while*/
24461 /* Register variable[4]: Result */
24462 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24463 /* Register variable[4]: Result */
24464 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
24465 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
24466 /* Register variable[4]: Result */
24467 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
24468 variable[3] = variable[4] /*i=*/;
24469 continue_780: while(0);
24470 }
24471 break_780: while(0);
24472 /* Register variable[3]: Local variable */
24473 /* Register variable[4]: Result */
24474 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24475 /* Register variable[4]: Result */
24476 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24477 variable[3] = variable[4];
24478 while (true) { /*while*/
24479 /* Register variable[4]: Result */
24480 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
24481 if (!UNTAG_Bool(variable[4])) break; /* while*/
24482 /* Register variable[4]: Result */
24483 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24484 /* Register variable[4]: Result */
24485 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
24486 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
24487 /* Register variable[4]: Result */
24488 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
24489 variable[3] = variable[4] /*i=*/;
24490 continue_781: while(0);
24491 }
24492 break_781: while(0);
24493 return_label779: while(false);
24494 tracehead = trace.prev;
24495 return;
24496 }
24497 void parser_prod___ABraExpr___empty_init(val_t self, int* init_table) {
24498 struct trace_t trace = {NULL, NULL, 8928, LOCATE_parser_prod___ABraExpr___empty_init};
24499 val_t variable[2];
24500 struct WBT_ **closurevariable = NULL;
24501 trace.prev = tracehead; tracehead = &trace;
24502 trace.file = LOCATE_parser_prod;
24503 /* Register variable[0]: Local variable */
24504 variable[0] = self;
24505 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i]) return;
24506 /* Register variable[1]: Method return value and escape marker */
24507 return_label782: while(false);
24508 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
24509 tracehead = trace.prev;
24510 return;
24511 }
24512 void parser_prod___ABraExpr___init_abraexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
24513 struct trace_t trace = {NULL, NULL, 8930, LOCATE_parser_prod___ABraExpr___init_abraexpr};
24514 val_t variable[9];
24515 struct WBT_ **closurevariable = NULL;
24516 trace.prev = tracehead; tracehead = &trace;
24517 trace.file = LOCATE_parser_prod;
24518 /* Register variable[0]: Local variable */
24519 variable[0] = self;
24520 /* Register variable[1]: Local variable */
24521 variable[1] = param0;
24522 /* Register variable[2]: Local variable */
24523 variable[2] = param1;
24524 /* Register variable[3]: Local variable */
24525 variable[3] = param2;
24526 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i]) return;
24527 /* Register variable[4]: Method return value and escape marker */
24528 CALL_parser_prod___ABraExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABraExpr::empty_init*/;
24529 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
24530 /* Register variable[5]: Result */
24531 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24532 if (UNTAG_Bool(variable[5])) { /*if*/
24533 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
24534 }
24535 /* Register variable[5]: Result */
24536 variable[5] = NEW_List_list___List___init() /*new List[PExpr]*/;
24537 ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/ = variable[5];
24538 /* Register variable[5]: For iterator */
24539 variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*Collection::iterator*/;
24540 while (true) { /*for*/
24541 /* Register variable[6]: For 'is_ok' result */
24542 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
24543 if (!UNTAG_Bool(variable[6])) break; /*for*/
24544 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
24545 /* Register variable[7]: Local variable */
24546 variable[7] = variable[6];
24547 /* Register variable[8]: Result */
24548 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24549 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___init_abraexpr, LOCATE_parser_prod, 8943); nit_exit(1);}
24550 /* Register variable[8]: Result */
24551 variable[8] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24552 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
24553 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
24554 continue_784: while(0);
24555 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
24556 }
24557 break_784: while(0);
24558 /* Register variable[5]: Result */
24559 variable[5] = NEW_List_list___List___init() /*new List[PClosureDef]*/;
24560 ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/ = variable[5];
24561 /* Register variable[5]: For iterator */
24562 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_closure_defs*/)( variable[3] /*n_closure_defs*/) /*Collection::iterator*/;
24563 while (true) { /*for*/
24564 /* Register variable[6]: For 'is_ok' result */
24565 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
24566 if (!UNTAG_Bool(variable[6])) break; /*for*/
24567 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
24568 /* Register variable[7]: Local variable */
24569 variable[7] = variable[6];
24570 /* Register variable[8]: Result */
24571 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
24572 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___init_abraexpr, LOCATE_parser_prod, 8949); nit_exit(1);}
24573 /* Register variable[8]: Result */
24574 variable[8] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[0]) /*ASendExpr::_n_closure_defs*/;
24575 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
24576 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
24577 continue_785: while(0);
24578 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
24579 }
24580 break_785: while(0);
24581 return_label783: while(false);
24582 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
24583 tracehead = trace.prev;
24584 return;
24585 }
24586 void parser_prod___ABraAssignExpr___n_expr__eq(val_t self, val_t param0) {
24587 struct trace_t trace = {NULL, NULL, 9029, LOCATE_parser_prod___ABraAssignExpr___n_expr__eq};
24588 val_t variable[4];
24589 struct WBT_ **closurevariable = NULL;
24590 trace.prev = tracehead; tracehead = &trace;
24591 trace.file = LOCATE_parser_prod;
24592 /* Register variable[0]: Local variable */
24593 variable[0] = self;
24594 /* Register variable[1]: Local variable */
24595 variable[1] = param0;
24596 /* Register variable[2]: Method return value and escape marker */
24597 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
24598 /* Register variable[3]: Result */
24599 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24600 if (UNTAG_Bool(variable[3])) { /*if*/
24601 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
24602 }
24603 return_label786: while(false);
24604 tracehead = trace.prev;
24605 return;
24606 }
24607 void parser_prod___ABraAssignExpr___n_assign__eq(val_t self, val_t param0) {
24608 struct trace_t trace = {NULL, NULL, 9036, LOCATE_parser_prod___ABraAssignExpr___n_assign__eq};
24609 val_t variable[4];
24610 struct WBT_ **closurevariable = NULL;
24611 trace.prev = tracehead; tracehead = &trace;
24612 trace.file = LOCATE_parser_prod;
24613 /* Register variable[0]: Local variable */
24614 variable[0] = self;
24615 /* Register variable[1]: Local variable */
24616 variable[1] = param0;
24617 /* Register variable[2]: Method return value and escape marker */
24618 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
24619 /* Register variable[3]: Result */
24620 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24621 if (UNTAG_Bool(variable[3])) { /*if*/
24622 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
24623 }
24624 return_label787: while(false);
24625 tracehead = trace.prev;
24626 return;
24627 }
24628 void parser_prod___ABraAssignExpr___n_value__eq(val_t self, val_t param0) {
24629 struct trace_t trace = {NULL, NULL, 9043, LOCATE_parser_prod___ABraAssignExpr___n_value__eq};
24630 val_t variable[4];
24631 struct WBT_ **closurevariable = NULL;
24632 trace.prev = tracehead; tracehead = &trace;
24633 trace.file = LOCATE_parser_prod;
24634 /* Register variable[0]: Local variable */
24635 variable[0] = self;
24636 /* Register variable[1]: Local variable */
24637 variable[1] = param0;
24638 /* Register variable[2]: Method return value and escape marker */
24639 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
24640 /* Register variable[3]: Result */
24641 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24642 if (UNTAG_Bool(variable[3])) { /*if*/
24643 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
24644 }
24645 return_label788: while(false);
24646 tracehead = trace.prev;
24647 return;
24648 }
24649 void parser_prod___ABraAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
24650 struct trace_t trace = {NULL, NULL, 9081, LOCATE_parser_prod___ABraAssignExpr___replace_child};
24651 val_t variable[8];
24652 struct WBT_ **closurevariable = NULL;
24653 trace.prev = tracehead; tracehead = &trace;
24654 trace.file = LOCATE_parser_prod;
24655 /* Register variable[0]: Local variable */
24656 variable[0] = self;
24657 /* Register variable[1]: Local variable */
24658 variable[1] = param0;
24659 /* Register variable[2]: Local variable */
24660 variable[2] = param1;
24661 /* Register variable[3]: Method return value and escape marker */
24662 /* Register variable[4]: Result */
24663 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24664 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9083); nit_exit(1);}
24665 /* Register variable[4]: Result */
24666 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24667 /* Register variable[4]: Result */
24668 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24669 if (UNTAG_Bool(variable[4])) { /*if*/
24670 /* Register variable[4]: Result */
24671 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24672 if (UNTAG_Bool(variable[4])) { /*if*/
24673 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24674 /* Register variable[4]: Result */
24675 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24676 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9087); nit_exit(1);}
24677 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
24678 } else { /*if*/
24679 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
24680 }
24681 goto return_label789;
24682 }
24683 /* Register variable[4]: Result */
24684 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24685 /* Register variable[4]: Result */
24686 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24687 /* Register variable[4]: Result */
24688 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
24689 /* Register variable[4]: For iterator */
24690 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
24691 while (true) { /*for*/
24692 /* Register variable[5]: For 'is_ok' result */
24693 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
24694 if (!UNTAG_Bool(variable[5])) break; /*for*/
24695 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
24696 /* Register variable[6]: Local variable */
24697 variable[6] = variable[5];
24698 /* Register variable[7]: Result */
24699 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24700 /* Register variable[7]: Result */
24701 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
24702 /* Register variable[7]: Result */
24703 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
24704 if (UNTAG_Bool(variable[7])) { /*if*/
24705 /* Register variable[7]: Result */
24706 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24707 if (UNTAG_Bool(variable[7])) { /*if*/
24708 /* Register variable[7]: Result */
24709 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24710 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9097); nit_exit(1);}
24711 /* Register variable[7]: Result */
24712 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24713 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
24714 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24715 } else { /*if*/
24716 /* Register variable[7]: Result */
24717 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24718 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
24719 }
24720 goto return_label789;
24721 }
24722 continue_790: while(0);
24723 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
24724 }
24725 break_790: while(0);
24726 /* Register variable[4]: Result */
24727 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
24728 /* Register variable[4]: Result */
24729 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24730 if (UNTAG_Bool(variable[4])) { /*if*/
24731 /* Register variable[4]: Result */
24732 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24733 if (UNTAG_Bool(variable[4])) { /*if*/
24734 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24735 /* Register variable[4]: Result */
24736 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
24737 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9109); nit_exit(1);}
24738 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
24739 } else { /*if*/
24740 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
24741 }
24742 goto return_label789;
24743 }
24744 /* Register variable[4]: Result */
24745 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
24746 /* Register variable[4]: Result */
24747 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24748 if (UNTAG_Bool(variable[4])) { /*if*/
24749 /* Register variable[4]: Result */
24750 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24751 if (UNTAG_Bool(variable[4])) { /*if*/
24752 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
24753 /* Register variable[4]: Result */
24754 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24755 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9119); nit_exit(1);}
24756 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
24757 } else { /*if*/
24758 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
24759 }
24760 goto return_label789;
24761 }
24762 return_label789: while(false);
24763 tracehead = trace.prev;
24764 return;
24765 }
24766 void parser_prod___ABraAssignExpr___visit_all(val_t self, val_t param0) {
24767 struct trace_t trace = {NULL, NULL, 9128, LOCATE_parser_prod___ABraAssignExpr___visit_all};
24768 val_t variable[6];
24769 struct WBT_ **closurevariable = NULL;
24770 trace.prev = tracehead; tracehead = &trace;
24771 trace.file = LOCATE_parser_prod;
24772 /* Register variable[0]: Local variable */
24773 variable[0] = self;
24774 /* Register variable[1]: Local variable */
24775 variable[1] = param0;
24776 /* Register variable[2]: Method return value and escape marker */
24777 /* Register variable[3]: Result */
24778 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24779 /* Register variable[3]: Result */
24780 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::==*/)))))));
24781 if (UNTAG_Bool(variable[3])) { /*if*/
24782 /* Register variable[3]: Result */
24783 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24784 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24785 }
24786 /* Register variable[3]: Result */
24787 variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24788 /* Register variable[3]: For iterator */
24789 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
24790 while (true) { /*for*/
24791 /* Register variable[4]: For 'is_ok' result */
24792 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
24793 if (!UNTAG_Bool(variable[4])) break; /*for*/
24794 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
24795 /* Register variable[5]: Local variable */
24796 variable[5] = variable[4];
24797 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
24798 continue_792: while(0);
24799 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
24800 }
24801 break_792: while(0);
24802 /* Register variable[3]: Result */
24803 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
24804 /* Register variable[3]: Result */
24805 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::==*/)))))));
24806 if (UNTAG_Bool(variable[3])) { /*if*/
24807 /* Register variable[3]: Result */
24808 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
24809 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24810 }
24811 /* Register variable[3]: Result */
24812 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
24813 /* Register variable[3]: Result */
24814 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::==*/)))))));
24815 if (UNTAG_Bool(variable[3])) { /*if*/
24816 /* Register variable[3]: Result */
24817 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
24818 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24819 }
24820 return_label791: while(false);
24821 tracehead = trace.prev;
24822 return;
24823 }
24824 void parser_prod___ABraAssignExpr___visit_all_reverse(val_t self, val_t param0) {
24825 struct trace_t trace = {NULL, NULL, 9144, LOCATE_parser_prod___ABraAssignExpr___visit_all_reverse};
24826 val_t variable[5];
24827 struct WBT_ **closurevariable = NULL;
24828 trace.prev = tracehead; tracehead = &trace;
24829 trace.file = LOCATE_parser_prod;
24830 /* Register variable[0]: Local variable */
24831 variable[0] = self;
24832 /* Register variable[1]: Local variable */
24833 variable[1] = param0;
24834 /* Register variable[2]: Method return value and escape marker */
24835 /* Register variable[3]: Result */
24836 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24837 /* Register variable[3]: Result */
24838 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::==*/)))))));
24839 if (UNTAG_Bool(variable[3])) { /*if*/
24840 /* Register variable[3]: Result */
24841 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
24842 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24843 }
24844 /* Register variable[3]: Local variable */
24845 /* Register variable[4]: Result */
24846 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24847 /* Register variable[4]: Result */
24848 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
24849 variable[3] = variable[4];
24850 while (true) { /*while*/
24851 /* Register variable[4]: Result */
24852 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
24853 if (!UNTAG_Bool(variable[4])) break; /* while*/
24854 /* Register variable[4]: Result */
24855 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24856 /* Register variable[4]: Result */
24857 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
24858 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
24859 /* Register variable[4]: Result */
24860 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
24861 variable[3] = variable[4] /*i=*/;
24862 continue_794: while(0);
24863 }
24864 break_794: while(0);
24865 /* Register variable[3]: Result */
24866 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
24867 /* Register variable[3]: Result */
24868 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::==*/)))))));
24869 if (UNTAG_Bool(variable[3])) { /*if*/
24870 /* Register variable[3]: Result */
24871 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
24872 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24873 }
24874 /* Register variable[3]: Result */
24875 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
24876 /* Register variable[3]: Result */
24877 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::==*/)))))));
24878 if (UNTAG_Bool(variable[3])) { /*if*/
24879 /* Register variable[3]: Result */
24880 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
24881 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24882 }
24883 return_label793: while(false);
24884 tracehead = trace.prev;
24885 return;
24886 }
24887 void parser_prod___ABraAssignExpr___empty_init(val_t self, int* init_table) {
24888 struct trace_t trace = {NULL, NULL, 9051, LOCATE_parser_prod___ABraAssignExpr___empty_init};
24889 val_t variable[2];
24890 struct WBT_ **closurevariable = NULL;
24891 trace.prev = tracehead; tracehead = &trace;
24892 trace.file = LOCATE_parser_prod;
24893 /* Register variable[0]: Local variable */
24894 variable[0] = self;
24895 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
24896 /* Register variable[1]: Method return value and escape marker */
24897 return_label795: while(false);
24898 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
24899 tracehead = trace.prev;
24900 return;
24901 }
24902 void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
24903 struct trace_t trace = {NULL, NULL, 9053, LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr};
24904 val_t variable[10];
24905 struct WBT_ **closurevariable = NULL;
24906 trace.prev = tracehead; tracehead = &trace;
24907 trace.file = LOCATE_parser_prod;
24908 /* Register variable[0]: Local variable */
24909 variable[0] = self;
24910 /* Register variable[1]: Local variable */
24911 variable[1] = param0;
24912 /* Register variable[2]: Local variable */
24913 variable[2] = param1;
24914 /* Register variable[3]: Local variable */
24915 variable[3] = param2;
24916 /* Register variable[4]: Local variable */
24917 variable[4] = param3;
24918 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
24919 /* Register variable[5]: Method return value and escape marker */
24920 CALL_parser_prod___ABraAssignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABraAssignExpr::empty_init*/;
24921 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
24922 /* Register variable[6]: Result */
24923 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24924 if (UNTAG_Bool(variable[6])) { /*if*/
24925 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
24926 }
24927 /* Register variable[6]: Result */
24928 variable[6] = NEW_List_list___List___init() /*new List[PExpr]*/;
24929 ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/ = variable[6];
24930 /* Register variable[6]: For iterator */
24931 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*Collection::iterator*/;
24932 while (true) { /*for*/
24933 /* Register variable[7]: For 'is_ok' result */
24934 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
24935 if (!UNTAG_Bool(variable[7])) break; /*for*/
24936 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
24937 /* Register variable[8]: Local variable */
24938 variable[8] = variable[7];
24939 /* Register variable[9]: Result */
24940 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
24941 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr, LOCATE_parser_prod, 9067); nit_exit(1);}
24942 /* Register variable[9]: Result */
24943 variable[9] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
24944 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
24945 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[0]) /*PNode::parent=*/;
24946 continue_797: while(0);
24947 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
24948 }
24949 break_797: while(0);
24950 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[3] /*n_assign*/;
24951 /* Register variable[6]: Result */
24952 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ == NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24953 if (UNTAG_Bool(variable[6])) { /*if*/
24954 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[0]) /*PNode::parent=*/;
24955 }
24956 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[4] /*n_value*/;
24957 /* Register variable[6]: Result */
24958 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ == NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24959 if (UNTAG_Bool(variable[6])) { /*if*/
24960 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[0]) /*PNode::parent=*/;
24961 }
24962 return_label796: while(false);
24963 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
24964 tracehead = trace.prev;
24965 return;
24966 }
24967 void parser_prod___ABraReassignExpr___n_expr__eq(val_t self, val_t param0) {
24968 struct trace_t trace = {NULL, NULL, 9165, LOCATE_parser_prod___ABraReassignExpr___n_expr__eq};
24969 val_t variable[4];
24970 struct WBT_ **closurevariable = NULL;
24971 trace.prev = tracehead; tracehead = &trace;
24972 trace.file = LOCATE_parser_prod;
24973 /* Register variable[0]: Local variable */
24974 variable[0] = self;
24975 /* Register variable[1]: Local variable */
24976 variable[1] = param0;
24977 /* Register variable[2]: Method return value and escape marker */
24978 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
24979 /* Register variable[3]: Result */
24980 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24981 if (UNTAG_Bool(variable[3])) { /*if*/
24982 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
24983 }
24984 return_label798: while(false);
24985 tracehead = trace.prev;
24986 return;
24987 }
24988 void parser_prod___ABraReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
24989 struct trace_t trace = {NULL, NULL, 9172, LOCATE_parser_prod___ABraReassignExpr___n_assign_op__eq};
24990 val_t variable[4];
24991 struct WBT_ **closurevariable = NULL;
24992 trace.prev = tracehead; tracehead = &trace;
24993 trace.file = LOCATE_parser_prod;
24994 /* Register variable[0]: Local variable */
24995 variable[0] = self;
24996 /* Register variable[1]: Local variable */
24997 variable[1] = param0;
24998 /* Register variable[2]: Method return value and escape marker */
24999 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
25000 /* Register variable[3]: Result */
25001 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25002 if (UNTAG_Bool(variable[3])) { /*if*/
25003 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
25004 }
25005 return_label799: while(false);
25006 tracehead = trace.prev;
25007 return;
25008 }
25009 void parser_prod___ABraReassignExpr___n_value__eq(val_t self, val_t param0) {
25010 struct trace_t trace = {NULL, NULL, 9179, LOCATE_parser_prod___ABraReassignExpr___n_value__eq};
25011 val_t variable[4];
25012 struct WBT_ **closurevariable = NULL;
25013 trace.prev = tracehead; tracehead = &trace;
25014 trace.file = LOCATE_parser_prod;
25015 /* Register variable[0]: Local variable */
25016 variable[0] = self;
25017 /* Register variable[1]: Local variable */
25018 variable[1] = param0;
25019 /* Register variable[2]: Method return value and escape marker */
25020 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
25021 /* Register variable[3]: Result */
25022 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25023 if (UNTAG_Bool(variable[3])) { /*if*/
25024 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
25025 }
25026 return_label800: while(false);
25027 tracehead = trace.prev;
25028 return;
25029 }
25030 void parser_prod___ABraReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
25031 struct trace_t trace = {NULL, NULL, 9217, LOCATE_parser_prod___ABraReassignExpr___replace_child};
25032 val_t variable[8];
25033 struct WBT_ **closurevariable = NULL;
25034 trace.prev = tracehead; tracehead = &trace;
25035 trace.file = LOCATE_parser_prod;
25036 /* Register variable[0]: Local variable */
25037 variable[0] = self;
25038 /* Register variable[1]: Local variable */
25039 variable[1] = param0;
25040 /* Register variable[2]: Local variable */
25041 variable[2] = param1;
25042 /* Register variable[3]: Method return value and escape marker */
25043 /* Register variable[4]: Result */
25044 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25045 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9219); nit_exit(1);}
25046 /* Register variable[4]: Result */
25047 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
25048 /* Register variable[4]: Result */
25049 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25050 if (UNTAG_Bool(variable[4])) { /*if*/
25051 /* Register variable[4]: Result */
25052 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25053 if (UNTAG_Bool(variable[4])) { /*if*/
25054 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25055 /* Register variable[4]: Result */
25056 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25057 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9223); nit_exit(1);}
25058 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
25059 } else { /*if*/
25060 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
25061 }
25062 goto return_label801;
25063 }
25064 /* Register variable[4]: Result */
25065 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25066 /* Register variable[4]: Result */
25067 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25068 /* Register variable[4]: Result */
25069 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
25070 /* Register variable[4]: For iterator */
25071 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
25072 while (true) { /*for*/
25073 /* Register variable[5]: For 'is_ok' result */
25074 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
25075 if (!UNTAG_Bool(variable[5])) break; /*for*/
25076 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
25077 /* Register variable[6]: Local variable */
25078 variable[6] = variable[5];
25079 /* Register variable[7]: Result */
25080 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25081 /* Register variable[7]: Result */
25082 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
25083 /* Register variable[7]: Result */
25084 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
25085 if (UNTAG_Bool(variable[7])) { /*if*/
25086 /* Register variable[7]: Result */
25087 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25088 if (UNTAG_Bool(variable[7])) { /*if*/
25089 /* Register variable[7]: Result */
25090 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25091 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9233); nit_exit(1);}
25092 /* Register variable[7]: Result */
25093 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25094 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
25095 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25096 } else { /*if*/
25097 /* Register variable[7]: Result */
25098 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25099 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
25100 }
25101 goto return_label801;
25102 }
25103 continue_802: while(0);
25104 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
25105 }
25106 break_802: while(0);
25107 /* Register variable[4]: Result */
25108 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
25109 /* Register variable[4]: Result */
25110 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25111 if (UNTAG_Bool(variable[4])) { /*if*/
25112 /* Register variable[4]: Result */
25113 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25114 if (UNTAG_Bool(variable[4])) { /*if*/
25115 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25116 /* Register variable[4]: Result */
25117 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
25118 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9245); nit_exit(1);}
25119 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
25120 } else { /*if*/
25121 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
25122 }
25123 goto return_label801;
25124 }
25125 /* Register variable[4]: Result */
25126 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
25127 /* Register variable[4]: Result */
25128 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25129 if (UNTAG_Bool(variable[4])) { /*if*/
25130 /* Register variable[4]: Result */
25131 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25132 if (UNTAG_Bool(variable[4])) { /*if*/
25133 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25134 /* Register variable[4]: Result */
25135 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25136 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9255); nit_exit(1);}
25137 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
25138 } else { /*if*/
25139 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
25140 }
25141 goto return_label801;
25142 }
25143 return_label801: while(false);
25144 tracehead = trace.prev;
25145 return;
25146 }
25147 void parser_prod___ABraReassignExpr___visit_all(val_t self, val_t param0) {
25148 struct trace_t trace = {NULL, NULL, 9264, LOCATE_parser_prod___ABraReassignExpr___visit_all};
25149 val_t variable[6];
25150 struct WBT_ **closurevariable = NULL;
25151 trace.prev = tracehead; tracehead = &trace;
25152 trace.file = LOCATE_parser_prod;
25153 /* Register variable[0]: Local variable */
25154 variable[0] = self;
25155 /* Register variable[1]: Local variable */
25156 variable[1] = param0;
25157 /* Register variable[2]: Method return value and escape marker */
25158 /* Register variable[3]: Result */
25159 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
25160 /* Register variable[3]: Result */
25161 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::==*/)))))));
25162 if (UNTAG_Bool(variable[3])) { /*if*/
25163 /* Register variable[3]: Result */
25164 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
25165 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25166 }
25167 /* Register variable[3]: Result */
25168 variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25169 /* Register variable[3]: For iterator */
25170 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
25171 while (true) { /*for*/
25172 /* Register variable[4]: For 'is_ok' result */
25173 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
25174 if (!UNTAG_Bool(variable[4])) break; /*for*/
25175 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
25176 /* Register variable[5]: Local variable */
25177 variable[5] = variable[4];
25178 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
25179 continue_804: while(0);
25180 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
25181 }
25182 break_804: while(0);
25183 /* Register variable[3]: Result */
25184 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
25185 /* Register variable[3]: Result */
25186 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::==*/)))))));
25187 if (UNTAG_Bool(variable[3])) { /*if*/
25188 /* Register variable[3]: Result */
25189 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
25190 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25191 }
25192 /* Register variable[3]: Result */
25193 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
25194 /* Register variable[3]: Result */
25195 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::==*/)))))));
25196 if (UNTAG_Bool(variable[3])) { /*if*/
25197 /* Register variable[3]: Result */
25198 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
25199 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25200 }
25201 return_label803: while(false);
25202 tracehead = trace.prev;
25203 return;
25204 }
25205 void parser_prod___ABraReassignExpr___visit_all_reverse(val_t self, val_t param0) {
25206 struct trace_t trace = {NULL, NULL, 9280, LOCATE_parser_prod___ABraReassignExpr___visit_all_reverse};
25207 val_t variable[5];
25208 struct WBT_ **closurevariable = NULL;
25209 trace.prev = tracehead; tracehead = &trace;
25210 trace.file = LOCATE_parser_prod;
25211 /* Register variable[0]: Local variable */
25212 variable[0] = self;
25213 /* Register variable[1]: Local variable */
25214 variable[1] = param0;
25215 /* Register variable[2]: Method return value and escape marker */
25216 /* Register variable[3]: Result */
25217 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
25218 /* Register variable[3]: Result */
25219 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::==*/)))))));
25220 if (UNTAG_Bool(variable[3])) { /*if*/
25221 /* Register variable[3]: Result */
25222 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/;
25223 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25224 }
25225 /* Register variable[3]: Local variable */
25226 /* Register variable[4]: Result */
25227 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25228 /* Register variable[4]: Result */
25229 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25230 variable[3] = variable[4];
25231 while (true) { /*while*/
25232 /* Register variable[4]: Result */
25233 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
25234 if (!UNTAG_Bool(variable[4])) break; /* while*/
25235 /* Register variable[4]: Result */
25236 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25237 /* Register variable[4]: Result */
25238 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
25239 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
25240 /* Register variable[4]: Result */
25241 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
25242 variable[3] = variable[4] /*i=*/;
25243 continue_806: while(0);
25244 }
25245 break_806: while(0);
25246 /* Register variable[3]: Result */
25247 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
25248 /* Register variable[3]: Result */
25249 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::==*/)))))));
25250 if (UNTAG_Bool(variable[3])) { /*if*/
25251 /* Register variable[3]: Result */
25252 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
25253 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25254 }
25255 /* Register variable[3]: Result */
25256 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
25257 /* Register variable[3]: Result */
25258 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::==*/)))))));
25259 if (UNTAG_Bool(variable[3])) { /*if*/
25260 /* Register variable[3]: Result */
25261 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
25262 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25263 }
25264 return_label805: while(false);
25265 tracehead = trace.prev;
25266 return;
25267 }
25268 void parser_prod___ABraReassignExpr___empty_init(val_t self, int* init_table) {
25269 struct trace_t trace = {NULL, NULL, 9187, LOCATE_parser_prod___ABraReassignExpr___empty_init};
25270 val_t variable[2];
25271 struct WBT_ **closurevariable = NULL;
25272 trace.prev = tracehead; tracehead = &trace;
25273 trace.file = LOCATE_parser_prod;
25274 /* Register variable[0]: Local variable */
25275 variable[0] = self;
25276 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
25277 /* Register variable[1]: Method return value and escape marker */
25278 return_label807: while(false);
25279 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
25280 tracehead = trace.prev;
25281 return;
25282 }
25283 void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
25284 struct trace_t trace = {NULL, NULL, 9189, LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr};
25285 val_t variable[10];
25286 struct WBT_ **closurevariable = NULL;
25287 trace.prev = tracehead; tracehead = &trace;
25288 trace.file = LOCATE_parser_prod;
25289 /* Register variable[0]: Local variable */
25290 variable[0] = self;
25291 /* Register variable[1]: Local variable */
25292 variable[1] = param0;
25293 /* Register variable[2]: Local variable */
25294 variable[2] = param1;
25295 /* Register variable[3]: Local variable */
25296 variable[3] = param2;
25297 /* Register variable[4]: Local variable */
25298 variable[4] = param3;
25299 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
25300 /* Register variable[5]: Method return value and escape marker */
25301 CALL_parser_prod___ABraReassignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ABraReassignExpr::empty_init*/;
25302 ATTR_parser_nodes___ASendExpr____n_expr(variable[0]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
25303 /* Register variable[6]: Result */
25304 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25305 if (UNTAG_Bool(variable[6])) { /*if*/
25306 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
25307 }
25308 /* Register variable[6]: Result */
25309 variable[6] = NEW_List_list___List___init() /*new List[PExpr]*/;
25310 ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/ = variable[6];
25311 /* Register variable[6]: For iterator */
25312 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*Collection::iterator*/;
25313 while (true) { /*for*/
25314 /* Register variable[7]: For 'is_ok' result */
25315 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
25316 if (!UNTAG_Bool(variable[7])) break; /*for*/
25317 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
25318 /* Register variable[8]: Local variable */
25319 variable[8] = variable[7];
25320 /* Register variable[9]: Result */
25321 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25322 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr, LOCATE_parser_prod, 9203); nit_exit(1);}
25323 /* Register variable[9]: Result */
25324 variable[9] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[0]) /*ABraFormExpr::_n_args*/;
25325 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
25326 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[0]) /*PNode::parent=*/;
25327 continue_809: while(0);
25328 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
25329 }
25330 break_809: while(0);
25331 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[3] /*n_assign_op*/;
25332 /* Register variable[6]: Result */
25333 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable[3] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25334 if (UNTAG_Bool(variable[6])) { /*if*/
25335 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, variable[0]) /*PNode::parent=*/;
25336 }
25337 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[4] /*n_value*/;
25338 /* Register variable[6]: Result */
25339 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ == NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25340 if (UNTAG_Bool(variable[6])) { /*if*/
25341 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[0]) /*PNode::parent=*/;
25342 }
25343 return_label808: while(false);
25344 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
25345 tracehead = trace.prev;
25346 return;
25347 }
25348 void parser_prod___AClosureCallExpr___n_id__eq(val_t self, val_t param0) {
25349 struct trace_t trace = {NULL, NULL, 9301, LOCATE_parser_prod___AClosureCallExpr___n_id__eq};
25350 val_t variable[4];
25351 struct WBT_ **closurevariable = NULL;
25352 trace.prev = tracehead; tracehead = &trace;
25353 trace.file = LOCATE_parser_prod;
25354 /* Register variable[0]: Local variable */
25355 variable[0] = self;
25356 /* Register variable[1]: Local variable */
25357 variable[1] = param0;
25358 /* Register variable[2]: Method return value and escape marker */
25359 ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/ = variable[1] /*n*/;
25360 /* Register variable[3]: Result */
25361 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25362 if (UNTAG_Bool(variable[3])) { /*if*/
25363 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
25364 }
25365 return_label810: while(false);
25366 tracehead = trace.prev;
25367 return;
25368 }
25369 void parser_prod___AClosureCallExpr___replace_child(val_t self, val_t param0, val_t param1) {
25370 struct trace_t trace = {NULL, NULL, 9336, LOCATE_parser_prod___AClosureCallExpr___replace_child};
25371 val_t variable[8];
25372 struct WBT_ **closurevariable = NULL;
25373 trace.prev = tracehead; tracehead = &trace;
25374 trace.file = LOCATE_parser_prod;
25375 /* Register variable[0]: Local variable */
25376 variable[0] = self;
25377 /* Register variable[1]: Local variable */
25378 variable[1] = param0;
25379 /* Register variable[2]: Local variable */
25380 variable[2] = param1;
25381 /* Register variable[3]: Method return value and escape marker */
25382 /* Register variable[4]: Result */
25383 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25384 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureCallExpr___replace_child, LOCATE_parser_prod, 9338); nit_exit(1);}
25385 /* Register variable[4]: Result */
25386 variable[4] = ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/;
25387 /* Register variable[4]: Result */
25388 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25389 if (UNTAG_Bool(variable[4])) { /*if*/
25390 /* Register variable[4]: Result */
25391 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25392 if (UNTAG_Bool(variable[4])) { /*if*/
25393 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25394 /* Register variable[4]: Result */
25395 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
25396 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureCallExpr___replace_child, LOCATE_parser_prod, 9342); nit_exit(1);}
25397 ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/ = variable[2] /*new_child*/;
25398 } else { /*if*/
25399 ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/ = NIT_NULL /*null*/;
25400 }
25401 goto return_label811;
25402 }
25403 /* Register variable[4]: Result */
25404 variable[4] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25405 /* Register variable[4]: Result */
25406 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25407 /* Register variable[4]: Result */
25408 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
25409 /* Register variable[4]: For iterator */
25410 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
25411 while (true) { /*for*/
25412 /* Register variable[5]: For 'is_ok' result */
25413 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
25414 if (!UNTAG_Bool(variable[5])) break; /*for*/
25415 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
25416 /* Register variable[6]: Local variable */
25417 variable[6] = variable[5];
25418 /* Register variable[7]: Result */
25419 variable[7] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25420 /* Register variable[7]: Result */
25421 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
25422 /* Register variable[7]: Result */
25423 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
25424 if (UNTAG_Bool(variable[7])) { /*if*/
25425 /* Register variable[7]: Result */
25426 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25427 if (UNTAG_Bool(variable[7])) { /*if*/
25428 /* Register variable[7]: Result */
25429 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25430 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureCallExpr___replace_child, LOCATE_parser_prod, 9352); nit_exit(1);}
25431 /* Register variable[7]: Result */
25432 variable[7] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25433 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
25434 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25435 } else { /*if*/
25436 /* Register variable[7]: Result */
25437 variable[7] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25438 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
25439 }
25440 goto return_label811;
25441 }
25442 continue_812: while(0);
25443 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
25444 }
25445 break_812: while(0);
25446 /* Register variable[4]: Result */
25447 variable[4] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25448 /* Register variable[4]: Result */
25449 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25450 /* Register variable[4]: Result */
25451 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
25452 /* Register variable[4]: For iterator */
25453 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
25454 while (true) { /*for*/
25455 /* Register variable[5]: For 'is_ok' result */
25456 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
25457 if (!UNTAG_Bool(variable[5])) break; /*for*/
25458 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
25459 /* Register variable[6]: Local variable */
25460 variable[6] = variable[5];
25461 /* Register variable[7]: Result */
25462 variable[7] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25463 /* Register variable[7]: Result */
25464 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
25465 /* Register variable[7]: Result */
25466 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
25467 if (UNTAG_Bool(variable[7])) { /*if*/
25468 /* Register variable[7]: Result */
25469 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25470 if (UNTAG_Bool(variable[7])) { /*if*/
25471 /* Register variable[7]: Result */
25472 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
25473 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureCallExpr___replace_child, LOCATE_parser_prod, 9364); nit_exit(1);}
25474 /* Register variable[7]: Result */
25475 variable[7] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25476 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
25477 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25478 } else { /*if*/
25479 /* Register variable[7]: Result */
25480 variable[7] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25481 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
25482 }
25483 goto return_label811;
25484 }
25485 continue_813: while(0);
25486 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
25487 }
25488 break_813: while(0);
25489 return_label811: while(false);
25490 tracehead = trace.prev;
25491 return;
25492 }
25493 void parser_prod___AClosureCallExpr___visit_all(val_t self, val_t param0) {
25494 struct trace_t trace = {NULL, NULL, 9375, LOCATE_parser_prod___AClosureCallExpr___visit_all};
25495 val_t variable[6];
25496 struct WBT_ **closurevariable = NULL;
25497 trace.prev = tracehead; tracehead = &trace;
25498 trace.file = LOCATE_parser_prod;
25499 /* Register variable[0]: Local variable */
25500 variable[0] = self;
25501 /* Register variable[1]: Local variable */
25502 variable[1] = param0;
25503 /* Register variable[2]: Method return value and escape marker */
25504 /* Register variable[3]: Result */
25505 variable[3] = ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/;
25506 /* Register variable[3]: Result */
25507 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::==*/)))))));
25508 if (UNTAG_Bool(variable[3])) { /*if*/
25509 /* Register variable[3]: Result */
25510 variable[3] = ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/;
25511 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25512 }
25513 /* Register variable[3]: Result */
25514 variable[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25515 /* Register variable[3]: For iterator */
25516 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
25517 while (true) { /*for*/
25518 /* Register variable[4]: For 'is_ok' result */
25519 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
25520 if (!UNTAG_Bool(variable[4])) break; /*for*/
25521 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
25522 /* Register variable[5]: Local variable */
25523 variable[5] = variable[4];
25524 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
25525 continue_815: while(0);
25526 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
25527 }
25528 break_815: while(0);
25529 /* Register variable[3]: Result */
25530 variable[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25531 /* Register variable[3]: For iterator */
25532 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
25533 while (true) { /*for*/
25534 /* Register variable[4]: For 'is_ok' result */
25535 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
25536 if (!UNTAG_Bool(variable[4])) break; /*for*/
25537 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
25538 /* Register variable[5]: Local variable */
25539 variable[5] = variable[4];
25540 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
25541 continue_816: while(0);
25542 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
25543 }
25544 break_816: while(0);
25545 return_label814: while(false);
25546 tracehead = trace.prev;
25547 return;
25548 }
25549 void parser_prod___AClosureCallExpr___visit_all_reverse(val_t self, val_t param0) {
25550 struct trace_t trace = {NULL, NULL, 9388, LOCATE_parser_prod___AClosureCallExpr___visit_all_reverse};
25551 val_t variable[5];
25552 struct WBT_ **closurevariable = NULL;
25553 trace.prev = tracehead; tracehead = &trace;
25554 trace.file = LOCATE_parser_prod;
25555 /* Register variable[0]: Local variable */
25556 variable[0] = self;
25557 /* Register variable[1]: Local variable */
25558 variable[1] = param0;
25559 /* Register variable[2]: Method return value and escape marker */
25560 /* Register variable[3]: Result */
25561 variable[3] = ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/;
25562 /* Register variable[3]: Result */
25563 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::==*/)))))));
25564 if (UNTAG_Bool(variable[3])) { /*if*/
25565 /* Register variable[3]: Result */
25566 variable[3] = ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/;
25567 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25568 }
25569 /* Register variable[3]: Local variable */
25570 /* Register variable[4]: Result */
25571 variable[4] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25572 /* Register variable[4]: Result */
25573 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25574 variable[3] = variable[4];
25575 while (true) { /*while*/
25576 /* Register variable[4]: Result */
25577 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
25578 if (!UNTAG_Bool(variable[4])) break; /* while*/
25579 /* Register variable[4]: Result */
25580 variable[4] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25581 /* Register variable[4]: Result */
25582 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
25583 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
25584 /* Register variable[4]: Result */
25585 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
25586 variable[3] = variable[4] /*i=*/;
25587 continue_818: while(0);
25588 }
25589 break_818: while(0);
25590 /* Register variable[3]: Local variable */
25591 /* Register variable[4]: Result */
25592 variable[4] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25593 /* Register variable[4]: Result */
25594 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25595 variable[3] = variable[4];
25596 while (true) { /*while*/
25597 /* Register variable[4]: Result */
25598 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
25599 if (!UNTAG_Bool(variable[4])) break; /* while*/
25600 /* Register variable[4]: Result */
25601 variable[4] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25602 /* Register variable[4]: Result */
25603 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
25604 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
25605 /* Register variable[4]: Result */
25606 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
25607 variable[3] = variable[4] /*i=*/;
25608 continue_819: while(0);
25609 }
25610 break_819: while(0);
25611 return_label817: while(false);
25612 tracehead = trace.prev;
25613 return;
25614 }
25615 void parser_prod___AClosureCallExpr___empty_init(val_t self, int* init_table) {
25616 struct trace_t trace = {NULL, NULL, 9309, LOCATE_parser_prod___AClosureCallExpr___empty_init};
25617 val_t variable[2];
25618 struct WBT_ **closurevariable = NULL;
25619 trace.prev = tracehead; tracehead = &trace;
25620 trace.file = LOCATE_parser_prod;
25621 /* Register variable[0]: Local variable */
25622 variable[0] = self;
25623 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureCallExpr].i]) return;
25624 /* Register variable[1]: Method return value and escape marker */
25625 return_label820: while(false);
25626 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureCallExpr].i] = 1;
25627 tracehead = trace.prev;
25628 return;
25629 }
25630 void parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
25631 struct trace_t trace = {NULL, NULL, 9311, LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr};
25632 val_t variable[9];
25633 struct WBT_ **closurevariable = NULL;
25634 trace.prev = tracehead; tracehead = &trace;
25635 trace.file = LOCATE_parser_prod;
25636 /* Register variable[0]: Local variable */
25637 variable[0] = self;
25638 /* Register variable[1]: Local variable */
25639 variable[1] = param0;
25640 /* Register variable[2]: Local variable */
25641 variable[2] = param1;
25642 /* Register variable[3]: Local variable */
25643 variable[3] = param2;
25644 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureCallExpr].i]) return;
25645 /* Register variable[4]: Method return value and escape marker */
25646 CALL_parser_prod___AClosureCallExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AClosureCallExpr::empty_init*/;
25647 ATTR_parser_nodes___AClosureCallExpr____n_id(variable[0]) /*AClosureCallExpr::_n_id*/ = variable[1] /*n_id*/;
25648 /* Register variable[5]: Result */
25649 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25650 if (UNTAG_Bool(variable[5])) { /*if*/
25651 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
25652 }
25653 /* Register variable[5]: Result */
25654 variable[5] = NEW_List_list___List___init() /*new List[PExpr]*/;
25655 ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/ = variable[5];
25656 /* Register variable[5]: For iterator */
25657 variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*Collection::iterator*/;
25658 while (true) { /*for*/
25659 /* Register variable[6]: For 'is_ok' result */
25660 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
25661 if (!UNTAG_Bool(variable[6])) break; /*for*/
25662 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
25663 /* Register variable[7]: Local variable */
25664 variable[7] = variable[6];
25665 /* Register variable[8]: Result */
25666 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25667 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr, LOCATE_parser_prod, 9324); nit_exit(1);}
25668 /* Register variable[8]: Result */
25669 variable[8] = ATTR_parser_nodes___AClosureCallExpr____n_args(variable[0]) /*AClosureCallExpr::_n_args*/;
25670 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
25671 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
25672 continue_822: while(0);
25673 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
25674 }
25675 break_822: while(0);
25676 /* Register variable[5]: Result */
25677 variable[5] = NEW_List_list___List___init() /*new List[PClosureDef]*/;
25678 ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/ = variable[5];
25679 /* Register variable[5]: For iterator */
25680 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_closure_defs*/)( variable[3] /*n_closure_defs*/) /*Collection::iterator*/;
25681 while (true) { /*for*/
25682 /* Register variable[6]: For 'is_ok' result */
25683 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
25684 if (!UNTAG_Bool(variable[6])) break; /*for*/
25685 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
25686 /* Register variable[7]: Local variable */
25687 variable[7] = variable[6];
25688 /* Register variable[8]: Result */
25689 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
25690 if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr, LOCATE_parser_prod, 9330); nit_exit(1);}
25691 /* Register variable[8]: Result */
25692 variable[8] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(variable[0]) /*AClosureCallExpr::_n_closure_defs*/;
25693 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
25694 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[0]) /*PNode::parent=*/;
25695 continue_823: while(0);
25696 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
25697 }
25698 break_823: while(0);
25699 return_label821: while(false);
25700 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureCallExpr].i] = 1;
25701 tracehead = trace.prev;
25702 return;
25703 }
25704 void parser_prod___AVarExpr___n_id__eq(val_t self, val_t param0) {
25705 struct trace_t trace = {NULL, NULL, 9410, LOCATE_parser_prod___AVarExpr___n_id__eq};
25706 val_t variable[4];
25707 struct WBT_ **closurevariable = NULL;
25708 trace.prev = tracehead; tracehead = &trace;
25709 trace.file = LOCATE_parser_prod;
25710 /* Register variable[0]: Local variable */
25711 variable[0] = self;
25712 /* Register variable[1]: Local variable */
25713 variable[1] = param0;
25714 /* Register variable[2]: Method return value and escape marker */
25715 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[1] /*n*/;
25716 /* Register variable[3]: Result */
25717 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25718 if (UNTAG_Bool(variable[3])) { /*if*/
25719 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
25720 }
25721 return_label824: while(false);
25722 tracehead = trace.prev;
25723 return;
25724 }
25725 void parser_prod___AVarExpr___replace_child(val_t self, val_t param0, val_t param1) {
25726 struct trace_t trace = {NULL, NULL, 9431, LOCATE_parser_prod___AVarExpr___replace_child};
25727 val_t variable[5];
25728 struct WBT_ **closurevariable = NULL;
25729 trace.prev = tracehead; tracehead = &trace;
25730 trace.file = LOCATE_parser_prod;
25731 /* Register variable[0]: Local variable */
25732 variable[0] = self;
25733 /* Register variable[1]: Local variable */
25734 variable[1] = param0;
25735 /* Register variable[2]: Local variable */
25736 variable[2] = param1;
25737 /* Register variable[3]: Method return value and escape marker */
25738 /* Register variable[4]: Result */
25739 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25740 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarExpr___replace_child, LOCATE_parser_prod, 9433); nit_exit(1);}
25741 /* Register variable[4]: Result */
25742 variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
25743 /* Register variable[4]: Result */
25744 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25745 if (UNTAG_Bool(variable[4])) { /*if*/
25746 /* Register variable[4]: Result */
25747 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25748 if (UNTAG_Bool(variable[4])) { /*if*/
25749 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25750 /* Register variable[4]: Result */
25751 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
25752 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarExpr___replace_child, LOCATE_parser_prod, 9437); nit_exit(1);}
25753 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[2] /*new_child*/;
25754 } else { /*if*/
25755 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = NIT_NULL /*null*/;
25756 }
25757 goto return_label825;
25758 }
25759 return_label825: while(false);
25760 tracehead = trace.prev;
25761 return;
25762 }
25763 void parser_prod___AVarExpr___visit_all(val_t self, val_t param0) {
25764 struct trace_t trace = {NULL, NULL, 9446, LOCATE_parser_prod___AVarExpr___visit_all};
25765 val_t variable[4];
25766 struct WBT_ **closurevariable = NULL;
25767 trace.prev = tracehead; tracehead = &trace;
25768 trace.file = LOCATE_parser_prod;
25769 /* Register variable[0]: Local variable */
25770 variable[0] = self;
25771 /* Register variable[1]: Local variable */
25772 variable[1] = param0;
25773 /* Register variable[2]: Method return value and escape marker */
25774 /* Register variable[3]: Result */
25775 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
25776 /* Register variable[3]: Result */
25777 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::==*/)))))));
25778 if (UNTAG_Bool(variable[3])) { /*if*/
25779 /* Register variable[3]: Result */
25780 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
25781 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25782 }
25783 return_label826: while(false);
25784 tracehead = trace.prev;
25785 return;
25786 }
25787 void parser_prod___AVarExpr___visit_all_reverse(val_t self, val_t param0) {
25788 struct trace_t trace = {NULL, NULL, 9453, LOCATE_parser_prod___AVarExpr___visit_all_reverse};
25789 val_t variable[4];
25790 struct WBT_ **closurevariable = NULL;
25791 trace.prev = tracehead; tracehead = &trace;
25792 trace.file = LOCATE_parser_prod;
25793 /* Register variable[0]: Local variable */
25794 variable[0] = self;
25795 /* Register variable[1]: Local variable */
25796 variable[1] = param0;
25797 /* Register variable[2]: Method return value and escape marker */
25798 /* Register variable[3]: Result */
25799 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
25800 /* Register variable[3]: Result */
25801 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::==*/)))))));
25802 if (UNTAG_Bool(variable[3])) { /*if*/
25803 /* Register variable[3]: Result */
25804 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
25805 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25806 }
25807 return_label827: while(false);
25808 tracehead = trace.prev;
25809 return;
25810 }
25811 void parser_prod___AVarExpr___empty_init(val_t self, int* init_table) {
25812 struct trace_t trace = {NULL, NULL, 9418, LOCATE_parser_prod___AVarExpr___empty_init};
25813 val_t variable[2];
25814 struct WBT_ **closurevariable = NULL;
25815 trace.prev = tracehead; tracehead = &trace;
25816 trace.file = LOCATE_parser_prod;
25817 /* Register variable[0]: Local variable */
25818 variable[0] = self;
25819 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i]) return;
25820 /* Register variable[1]: Method return value and escape marker */
25821 return_label828: while(false);
25822 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
25823 tracehead = trace.prev;
25824 return;
25825 }
25826 void parser_prod___AVarExpr___init_avarexpr(val_t self, val_t param0, int* init_table) {
25827 struct trace_t trace = {NULL, NULL, 9420, LOCATE_parser_prod___AVarExpr___init_avarexpr};
25828 val_t variable[4];
25829 struct WBT_ **closurevariable = NULL;
25830 trace.prev = tracehead; tracehead = &trace;
25831 trace.file = LOCATE_parser_prod;
25832 /* Register variable[0]: Local variable */
25833 variable[0] = self;
25834 /* Register variable[1]: Local variable */
25835 variable[1] = param0;
25836 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i]) return;
25837 /* Register variable[2]: Method return value and escape marker */
25838 CALL_parser_prod___AVarExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AVarExpr::empty_init*/;
25839 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[1] /*n_id*/;
25840 /* Register variable[3]: Result */
25841 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25842 if (UNTAG_Bool(variable[3])) { /*if*/
25843 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
25844 }
25845 return_label829: while(false);
25846 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
25847 tracehead = trace.prev;
25848 return;
25849 }
25850 void parser_prod___AVarAssignExpr___n_id__eq(val_t self, val_t param0) {
25851 struct trace_t trace = {NULL, NULL, 9461, LOCATE_parser_prod___AVarAssignExpr___n_id__eq};
25852 val_t variable[4];
25853 struct WBT_ **closurevariable = NULL;
25854 trace.prev = tracehead; tracehead = &trace;
25855 trace.file = LOCATE_parser_prod;
25856 /* Register variable[0]: Local variable */
25857 variable[0] = self;
25858 /* Register variable[1]: Local variable */
25859 variable[1] = param0;
25860 /* Register variable[2]: Method return value and escape marker */
25861 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[1] /*n*/;
25862 /* Register variable[3]: Result */
25863 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25864 if (UNTAG_Bool(variable[3])) { /*if*/
25865 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
25866 }
25867 return_label830: while(false);
25868 tracehead = trace.prev;
25869 return;
25870 }
25871 void parser_prod___AVarAssignExpr___n_assign__eq(val_t self, val_t param0) {
25872 struct trace_t trace = {NULL, NULL, 9468, LOCATE_parser_prod___AVarAssignExpr___n_assign__eq};
25873 val_t variable[4];
25874 struct WBT_ **closurevariable = NULL;
25875 trace.prev = tracehead; tracehead = &trace;
25876 trace.file = LOCATE_parser_prod;
25877 /* Register variable[0]: Local variable */
25878 variable[0] = self;
25879 /* Register variable[1]: Local variable */
25880 variable[1] = param0;
25881 /* Register variable[2]: Method return value and escape marker */
25882 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
25883 /* Register variable[3]: Result */
25884 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25885 if (UNTAG_Bool(variable[3])) { /*if*/
25886 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
25887 }
25888 return_label831: while(false);
25889 tracehead = trace.prev;
25890 return;
25891 }
25892 void parser_prod___AVarAssignExpr___n_value__eq(val_t self, val_t param0) {
25893 struct trace_t trace = {NULL, NULL, 9475, LOCATE_parser_prod___AVarAssignExpr___n_value__eq};
25894 val_t variable[4];
25895 struct WBT_ **closurevariable = NULL;
25896 trace.prev = tracehead; tracehead = &trace;
25897 trace.file = LOCATE_parser_prod;
25898 /* Register variable[0]: Local variable */
25899 variable[0] = self;
25900 /* Register variable[1]: Local variable */
25901 variable[1] = param0;
25902 /* Register variable[2]: Method return value and escape marker */
25903 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
25904 /* Register variable[3]: Result */
25905 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25906 if (UNTAG_Bool(variable[3])) { /*if*/
25907 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
25908 }
25909 return_label832: while(false);
25910 tracehead = trace.prev;
25911 return;
25912 }
25913 void parser_prod___AVarAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
25914 struct trace_t trace = {NULL, NULL, 9506, LOCATE_parser_prod___AVarAssignExpr___replace_child};
25915 val_t variable[5];
25916 struct WBT_ **closurevariable = NULL;
25917 trace.prev = tracehead; tracehead = &trace;
25918 trace.file = LOCATE_parser_prod;
25919 /* Register variable[0]: Local variable */
25920 variable[0] = self;
25921 /* Register variable[1]: Local variable */
25922 variable[1] = param0;
25923 /* Register variable[2]: Local variable */
25924 variable[2] = param1;
25925 /* Register variable[3]: Method return value and escape marker */
25926 /* Register variable[4]: Result */
25927 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25928 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9508); nit_exit(1);}
25929 /* Register variable[4]: Result */
25930 variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
25931 /* Register variable[4]: Result */
25932 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25933 if (UNTAG_Bool(variable[4])) { /*if*/
25934 /* Register variable[4]: Result */
25935 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25936 if (UNTAG_Bool(variable[4])) { /*if*/
25937 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25938 /* Register variable[4]: Result */
25939 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
25940 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9512); nit_exit(1);}
25941 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[2] /*new_child*/;
25942 } else { /*if*/
25943 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = NIT_NULL /*null*/;
25944 }
25945 goto return_label833;
25946 }
25947 /* Register variable[4]: Result */
25948 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
25949 /* Register variable[4]: Result */
25950 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25951 if (UNTAG_Bool(variable[4])) { /*if*/
25952 /* Register variable[4]: Result */
25953 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25954 if (UNTAG_Bool(variable[4])) { /*if*/
25955 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25956 /* Register variable[4]: Result */
25957 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
25958 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9522); nit_exit(1);}
25959 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
25960 } else { /*if*/
25961 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
25962 }
25963 goto return_label833;
25964 }
25965 /* Register variable[4]: Result */
25966 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
25967 /* Register variable[4]: Result */
25968 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25969 if (UNTAG_Bool(variable[4])) { /*if*/
25970 /* Register variable[4]: Result */
25971 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25972 if (UNTAG_Bool(variable[4])) { /*if*/
25973 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
25974 /* Register variable[4]: Result */
25975 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25976 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9532); nit_exit(1);}
25977 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
25978 } else { /*if*/
25979 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
25980 }
25981 goto return_label833;
25982 }
25983 return_label833: while(false);
25984 tracehead = trace.prev;
25985 return;
25986 }
25987 void parser_prod___AVarAssignExpr___visit_all(val_t self, val_t param0) {
25988 struct trace_t trace = {NULL, NULL, 9541, LOCATE_parser_prod___AVarAssignExpr___visit_all};
25989 val_t variable[4];
25990 struct WBT_ **closurevariable = NULL;
25991 trace.prev = tracehead; tracehead = &trace;
25992 trace.file = LOCATE_parser_prod;
25993 /* Register variable[0]: Local variable */
25994 variable[0] = self;
25995 /* Register variable[1]: Local variable */
25996 variable[1] = param0;
25997 /* Register variable[2]: Method return value and escape marker */
25998 /* Register variable[3]: Result */
25999 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26000 /* Register variable[3]: Result */
26001 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::==*/)))))));
26002 if (UNTAG_Bool(variable[3])) { /*if*/
26003 /* Register variable[3]: Result */
26004 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26005 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26006 }
26007 /* Register variable[3]: Result */
26008 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
26009 /* Register variable[3]: Result */
26010 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::==*/)))))));
26011 if (UNTAG_Bool(variable[3])) { /*if*/
26012 /* Register variable[3]: Result */
26013 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
26014 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26015 }
26016 /* Register variable[3]: Result */
26017 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
26018 /* Register variable[3]: Result */
26019 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::==*/)))))));
26020 if (UNTAG_Bool(variable[3])) { /*if*/
26021 /* Register variable[3]: Result */
26022 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
26023 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26024 }
26025 return_label834: while(false);
26026 tracehead = trace.prev;
26027 return;
26028 }
26029 void parser_prod___AVarAssignExpr___visit_all_reverse(val_t self, val_t param0) {
26030 struct trace_t trace = {NULL, NULL, 9554, LOCATE_parser_prod___AVarAssignExpr___visit_all_reverse};
26031 val_t variable[4];
26032 struct WBT_ **closurevariable = NULL;
26033 trace.prev = tracehead; tracehead = &trace;
26034 trace.file = LOCATE_parser_prod;
26035 /* Register variable[0]: Local variable */
26036 variable[0] = self;
26037 /* Register variable[1]: Local variable */
26038 variable[1] = param0;
26039 /* Register variable[2]: Method return value and escape marker */
26040 /* Register variable[3]: Result */
26041 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26042 /* Register variable[3]: Result */
26043 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::==*/)))))));
26044 if (UNTAG_Bool(variable[3])) { /*if*/
26045 /* Register variable[3]: Result */
26046 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26047 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26048 }
26049 /* Register variable[3]: Result */
26050 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
26051 /* Register variable[3]: Result */
26052 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::==*/)))))));
26053 if (UNTAG_Bool(variable[3])) { /*if*/
26054 /* Register variable[3]: Result */
26055 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/;
26056 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26057 }
26058 /* Register variable[3]: Result */
26059 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
26060 /* Register variable[3]: Result */
26061 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::==*/)))))));
26062 if (UNTAG_Bool(variable[3])) { /*if*/
26063 /* Register variable[3]: Result */
26064 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/;
26065 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26066 }
26067 return_label835: while(false);
26068 tracehead = trace.prev;
26069 return;
26070 }
26071 void parser_prod___AVarAssignExpr___empty_init(val_t self, int* init_table) {
26072 struct trace_t trace = {NULL, NULL, 9483, LOCATE_parser_prod___AVarAssignExpr___empty_init};
26073 val_t variable[2];
26074 struct WBT_ **closurevariable = NULL;
26075 trace.prev = tracehead; tracehead = &trace;
26076 trace.file = LOCATE_parser_prod;
26077 /* Register variable[0]: Local variable */
26078 variable[0] = self;
26079 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
26080 /* Register variable[1]: Method return value and escape marker */
26081 return_label836: while(false);
26082 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
26083 tracehead = trace.prev;
26084 return;
26085 }
26086 void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
26087 struct trace_t trace = {NULL, NULL, 9485, LOCATE_parser_prod___AVarAssignExpr___init_avarassignexpr};
26088 val_t variable[6];
26089 struct WBT_ **closurevariable = NULL;
26090 trace.prev = tracehead; tracehead = &trace;
26091 trace.file = LOCATE_parser_prod;
26092 /* Register variable[0]: Local variable */
26093 variable[0] = self;
26094 /* Register variable[1]: Local variable */
26095 variable[1] = param0;
26096 /* Register variable[2]: Local variable */
26097 variable[2] = param1;
26098 /* Register variable[3]: Local variable */
26099 variable[3] = param2;
26100 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
26101 /* Register variable[4]: Method return value and escape marker */
26102 CALL_parser_prod___AVarAssignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AVarAssignExpr::empty_init*/;
26103 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[1] /*n_id*/;
26104 /* Register variable[5]: Result */
26105 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26106 if (UNTAG_Bool(variable[5])) { /*if*/
26107 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
26108 }
26109 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[0]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*n_assign*/;
26110 /* Register variable[5]: Result */
26111 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign*/ == NIT_NULL /*null*/) || (( variable[2] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26112 if (UNTAG_Bool(variable[5])) { /*if*/
26113 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, variable[0]) /*PNode::parent=*/;
26114 }
26115 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[0]) /*AAssignFormExpr::_n_value*/ = variable[3] /*n_value*/;
26116 /* Register variable[5]: Result */
26117 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_value*/ == NIT_NULL /*null*/) || (( variable[3] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)( variable[3] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26118 if (UNTAG_Bool(variable[5])) { /*if*/
26119 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_value*/)( variable[3] /*n_value*/, variable[0]) /*PNode::parent=*/;
26120 }
26121 return_label837: while(false);
26122 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
26123 tracehead = trace.prev;
26124 return;
26125 }
26126 void parser_prod___AVarReassignExpr___n_id__eq(val_t self, val_t param0) {
26127 struct trace_t trace = {NULL, NULL, 9568, LOCATE_parser_prod___AVarReassignExpr___n_id__eq};
26128 val_t variable[4];
26129 struct WBT_ **closurevariable = NULL;
26130 trace.prev = tracehead; tracehead = &trace;
26131 trace.file = LOCATE_parser_prod;
26132 /* Register variable[0]: Local variable */
26133 variable[0] = self;
26134 /* Register variable[1]: Local variable */
26135 variable[1] = param0;
26136 /* Register variable[2]: Method return value and escape marker */
26137 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[1] /*n*/;
26138 /* Register variable[3]: Result */
26139 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26140 if (UNTAG_Bool(variable[3])) { /*if*/
26141 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26142 }
26143 return_label838: while(false);
26144 tracehead = trace.prev;
26145 return;
26146 }
26147 void parser_prod___AVarReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
26148 struct trace_t trace = {NULL, NULL, 9575, LOCATE_parser_prod___AVarReassignExpr___n_assign_op__eq};
26149 val_t variable[4];
26150 struct WBT_ **closurevariable = NULL;
26151 trace.prev = tracehead; tracehead = &trace;
26152 trace.file = LOCATE_parser_prod;
26153 /* Register variable[0]: Local variable */
26154 variable[0] = self;
26155 /* Register variable[1]: Local variable */
26156 variable[1] = param0;
26157 /* Register variable[2]: Method return value and escape marker */
26158 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
26159 /* Register variable[3]: Result */
26160 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26161 if (UNTAG_Bool(variable[3])) { /*if*/
26162 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26163 }
26164 return_label839: while(false);
26165 tracehead = trace.prev;
26166 return;
26167 }
26168 void parser_prod___AVarReassignExpr___n_value__eq(val_t self, val_t param0) {
26169 struct trace_t trace = {NULL, NULL, 9582, LOCATE_parser_prod___AVarReassignExpr___n_value__eq};
26170 val_t variable[4];
26171 struct WBT_ **closurevariable = NULL;
26172 trace.prev = tracehead; tracehead = &trace;
26173 trace.file = LOCATE_parser_prod;
26174 /* Register variable[0]: Local variable */
26175 variable[0] = self;
26176 /* Register variable[1]: Local variable */
26177 variable[1] = param0;
26178 /* Register variable[2]: Method return value and escape marker */
26179 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
26180 /* Register variable[3]: Result */
26181 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26182 if (UNTAG_Bool(variable[3])) { /*if*/
26183 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26184 }
26185 return_label840: while(false);
26186 tracehead = trace.prev;
26187 return;
26188 }
26189 void parser_prod___AVarReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
26190 struct trace_t trace = {NULL, NULL, 9613, LOCATE_parser_prod___AVarReassignExpr___replace_child};
26191 val_t variable[5];
26192 struct WBT_ **closurevariable = NULL;
26193 trace.prev = tracehead; tracehead = &trace;
26194 trace.file = LOCATE_parser_prod;
26195 /* Register variable[0]: Local variable */
26196 variable[0] = self;
26197 /* Register variable[1]: Local variable */
26198 variable[1] = param0;
26199 /* Register variable[2]: Local variable */
26200 variable[2] = param1;
26201 /* Register variable[3]: Method return value and escape marker */
26202 /* Register variable[4]: Result */
26203 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26204 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9615); nit_exit(1);}
26205 /* Register variable[4]: Result */
26206 variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26207 /* Register variable[4]: Result */
26208 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26209 if (UNTAG_Bool(variable[4])) { /*if*/
26210 /* Register variable[4]: Result */
26211 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26212 if (UNTAG_Bool(variable[4])) { /*if*/
26213 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26214 /* Register variable[4]: Result */
26215 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
26216 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9619); nit_exit(1);}
26217 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[2] /*new_child*/;
26218 } else { /*if*/
26219 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = NIT_NULL /*null*/;
26220 }
26221 goto return_label841;
26222 }
26223 /* Register variable[4]: Result */
26224 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
26225 /* Register variable[4]: Result */
26226 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26227 if (UNTAG_Bool(variable[4])) { /*if*/
26228 /* Register variable[4]: Result */
26229 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26230 if (UNTAG_Bool(variable[4])) { /*if*/
26231 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26232 /* Register variable[4]: Result */
26233 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
26234 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9629); nit_exit(1);}
26235 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
26236 } else { /*if*/
26237 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
26238 }
26239 goto return_label841;
26240 }
26241 /* Register variable[4]: Result */
26242 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
26243 /* Register variable[4]: Result */
26244 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26245 if (UNTAG_Bool(variable[4])) { /*if*/
26246 /* Register variable[4]: Result */
26247 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26248 if (UNTAG_Bool(variable[4])) { /*if*/
26249 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26250 /* Register variable[4]: Result */
26251 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26252 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9639); nit_exit(1);}
26253 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
26254 } else { /*if*/
26255 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
26256 }
26257 goto return_label841;
26258 }
26259 return_label841: while(false);
26260 tracehead = trace.prev;
26261 return;
26262 }
26263 void parser_prod___AVarReassignExpr___visit_all(val_t self, val_t param0) {
26264 struct trace_t trace = {NULL, NULL, 9648, LOCATE_parser_prod___AVarReassignExpr___visit_all};
26265 val_t variable[4];
26266 struct WBT_ **closurevariable = NULL;
26267 trace.prev = tracehead; tracehead = &trace;
26268 trace.file = LOCATE_parser_prod;
26269 /* Register variable[0]: Local variable */
26270 variable[0] = self;
26271 /* Register variable[1]: Local variable */
26272 variable[1] = param0;
26273 /* Register variable[2]: Method return value and escape marker */
26274 /* Register variable[3]: Result */
26275 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26276 /* Register variable[3]: Result */
26277 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::==*/)))))));
26278 if (UNTAG_Bool(variable[3])) { /*if*/
26279 /* Register variable[3]: Result */
26280 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26281 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26282 }
26283 /* Register variable[3]: Result */
26284 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
26285 /* Register variable[3]: Result */
26286 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::==*/)))))));
26287 if (UNTAG_Bool(variable[3])) { /*if*/
26288 /* Register variable[3]: Result */
26289 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
26290 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26291 }
26292 /* Register variable[3]: Result */
26293 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
26294 /* Register variable[3]: Result */
26295 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::==*/)))))));
26296 if (UNTAG_Bool(variable[3])) { /*if*/
26297 /* Register variable[3]: Result */
26298 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
26299 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26300 }
26301 return_label842: while(false);
26302 tracehead = trace.prev;
26303 return;
26304 }
26305 void parser_prod___AVarReassignExpr___visit_all_reverse(val_t self, val_t param0) {
26306 struct trace_t trace = {NULL, NULL, 9661, LOCATE_parser_prod___AVarReassignExpr___visit_all_reverse};
26307 val_t variable[4];
26308 struct WBT_ **closurevariable = NULL;
26309 trace.prev = tracehead; tracehead = &trace;
26310 trace.file = LOCATE_parser_prod;
26311 /* Register variable[0]: Local variable */
26312 variable[0] = self;
26313 /* Register variable[1]: Local variable */
26314 variable[1] = param0;
26315 /* Register variable[2]: Method return value and escape marker */
26316 /* Register variable[3]: Result */
26317 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26318 /* Register variable[3]: Result */
26319 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::==*/)))))));
26320 if (UNTAG_Bool(variable[3])) { /*if*/
26321 /* Register variable[3]: Result */
26322 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/;
26323 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26324 }
26325 /* Register variable[3]: Result */
26326 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
26327 /* Register variable[3]: Result */
26328 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::==*/)))))));
26329 if (UNTAG_Bool(variable[3])) { /*if*/
26330 /* Register variable[3]: Result */
26331 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/;
26332 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26333 }
26334 /* Register variable[3]: Result */
26335 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
26336 /* Register variable[3]: Result */
26337 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::==*/)))))));
26338 if (UNTAG_Bool(variable[3])) { /*if*/
26339 /* Register variable[3]: Result */
26340 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/;
26341 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26342 }
26343 return_label843: while(false);
26344 tracehead = trace.prev;
26345 return;
26346 }
26347 void parser_prod___AVarReassignExpr___empty_init(val_t self, int* init_table) {
26348 struct trace_t trace = {NULL, NULL, 9590, LOCATE_parser_prod___AVarReassignExpr___empty_init};
26349 val_t variable[2];
26350 struct WBT_ **closurevariable = NULL;
26351 trace.prev = tracehead; tracehead = &trace;
26352 trace.file = LOCATE_parser_prod;
26353 /* Register variable[0]: Local variable */
26354 variable[0] = self;
26355 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
26356 /* Register variable[1]: Method return value and escape marker */
26357 return_label844: while(false);
26358 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
26359 tracehead = trace.prev;
26360 return;
26361 }
26362 void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
26363 struct trace_t trace = {NULL, NULL, 9592, LOCATE_parser_prod___AVarReassignExpr___init_avarreassignexpr};
26364 val_t variable[6];
26365 struct WBT_ **closurevariable = NULL;
26366 trace.prev = tracehead; tracehead = &trace;
26367 trace.file = LOCATE_parser_prod;
26368 /* Register variable[0]: Local variable */
26369 variable[0] = self;
26370 /* Register variable[1]: Local variable */
26371 variable[1] = param0;
26372 /* Register variable[2]: Local variable */
26373 variable[2] = param1;
26374 /* Register variable[3]: Local variable */
26375 variable[3] = param2;
26376 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
26377 /* Register variable[4]: Method return value and escape marker */
26378 CALL_parser_prod___AVarReassignExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AVarReassignExpr::empty_init*/;
26379 ATTR_parser_nodes___AVarFormExpr____n_id(variable[0]) /*AVarFormExpr::_n_id*/ = variable[1] /*n_id*/;
26380 /* Register variable[5]: Result */
26381 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ == NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26382 if (UNTAG_Bool(variable[5])) { /*if*/
26383 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[0]) /*PNode::parent=*/;
26384 }
26385 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[0]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*n_assign_op*/;
26386 /* Register variable[5]: Result */
26387 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable[2] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_assign_op*/)( variable[2] /*n_assign_op*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26388 if (UNTAG_Bool(variable[5])) { /*if*/
26389 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign_op*/)( variable[2] /*n_assign_op*/, variable[0]) /*PNode::parent=*/;
26390 }
26391 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[0]) /*AReassignFormExpr::_n_value*/ = variable[3] /*n_value*/;
26392 /* Register variable[5]: Result */
26393 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_value*/ == NIT_NULL /*null*/) || (( variable[3] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)( variable[3] /*n_value*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26394 if (UNTAG_Bool(variable[5])) { /*if*/
26395 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_value*/)( variable[3] /*n_value*/, variable[0]) /*PNode::parent=*/;
26396 }
26397 return_label845: while(false);
26398 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
26399 tracehead = trace.prev;
26400 return;
26401 }
26402 void parser_prod___ARangeExpr___n_expr__eq(val_t self, val_t param0) {
26403 struct trace_t trace = {NULL, NULL, 9675, LOCATE_parser_prod___ARangeExpr___n_expr__eq};
26404 val_t variable[4];
26405 struct WBT_ **closurevariable = NULL;
26406 trace.prev = tracehead; tracehead = &trace;
26407 trace.file = LOCATE_parser_prod;
26408 /* Register variable[0]: Local variable */
26409 variable[0] = self;
26410 /* Register variable[1]: Local variable */
26411 variable[1] = param0;
26412 /* Register variable[2]: Method return value and escape marker */
26413 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[1] /*n*/;
26414 /* Register variable[3]: Result */
26415 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26416 if (UNTAG_Bool(variable[3])) { /*if*/
26417 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26418 }
26419 return_label846: while(false);
26420 tracehead = trace.prev;
26421 return;
26422 }
26423 void parser_prod___ARangeExpr___n_expr2__eq(val_t self, val_t param0) {
26424 struct trace_t trace = {NULL, NULL, 9682, LOCATE_parser_prod___ARangeExpr___n_expr2__eq};
26425 val_t variable[4];
26426 struct WBT_ **closurevariable = NULL;
26427 trace.prev = tracehead; tracehead = &trace;
26428 trace.file = LOCATE_parser_prod;
26429 /* Register variable[0]: Local variable */
26430 variable[0] = self;
26431 /* Register variable[1]: Local variable */
26432 variable[1] = param0;
26433 /* Register variable[2]: Method return value and escape marker */
26434 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[1] /*n*/;
26435 /* Register variable[3]: Result */
26436 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26437 if (UNTAG_Bool(variable[3])) { /*if*/
26438 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26439 }
26440 return_label847: while(false);
26441 tracehead = trace.prev;
26442 return;
26443 }
26444 void parser_prod___ARangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
26445 struct trace_t trace = {NULL, NULL, 9708, LOCATE_parser_prod___ARangeExpr___replace_child};
26446 val_t variable[5];
26447 struct WBT_ **closurevariable = NULL;
26448 trace.prev = tracehead; tracehead = &trace;
26449 trace.file = LOCATE_parser_prod;
26450 /* Register variable[0]: Local variable */
26451 variable[0] = self;
26452 /* Register variable[1]: Local variable */
26453 variable[1] = param0;
26454 /* Register variable[2]: Local variable */
26455 variable[2] = param1;
26456 /* Register variable[3]: Method return value and escape marker */
26457 /* Register variable[4]: Result */
26458 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26459 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ARangeExpr___replace_child, LOCATE_parser_prod, 9710); nit_exit(1);}
26460 /* Register variable[4]: Result */
26461 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26462 /* Register variable[4]: Result */
26463 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26464 if (UNTAG_Bool(variable[4])) { /*if*/
26465 /* Register variable[4]: Result */
26466 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26467 if (UNTAG_Bool(variable[4])) { /*if*/
26468 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26469 /* Register variable[4]: Result */
26470 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26471 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ARangeExpr___replace_child, LOCATE_parser_prod, 9714); nit_exit(1);}
26472 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[2] /*new_child*/;
26473 } else { /*if*/
26474 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = NIT_NULL /*null*/;
26475 }
26476 goto return_label848;
26477 }
26478 /* Register variable[4]: Result */
26479 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26480 /* Register variable[4]: Result */
26481 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26482 if (UNTAG_Bool(variable[4])) { /*if*/
26483 /* Register variable[4]: Result */
26484 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26485 if (UNTAG_Bool(variable[4])) { /*if*/
26486 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26487 /* Register variable[4]: Result */
26488 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26489 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ARangeExpr___replace_child, LOCATE_parser_prod, 9724); nit_exit(1);}
26490 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[2] /*new_child*/;
26491 } else { /*if*/
26492 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
26493 }
26494 goto return_label848;
26495 }
26496 return_label848: while(false);
26497 tracehead = trace.prev;
26498 return;
26499 }
26500 void parser_prod___ARangeExpr___visit_all(val_t self, val_t param0) {
26501 struct trace_t trace = {NULL, NULL, 9733, LOCATE_parser_prod___ARangeExpr___visit_all};
26502 val_t variable[4];
26503 struct WBT_ **closurevariable = NULL;
26504 trace.prev = tracehead; tracehead = &trace;
26505 trace.file = LOCATE_parser_prod;
26506 /* Register variable[0]: Local variable */
26507 variable[0] = self;
26508 /* Register variable[1]: Local variable */
26509 variable[1] = param0;
26510 /* Register variable[2]: Method return value and escape marker */
26511 /* Register variable[3]: Result */
26512 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26513 /* Register variable[3]: Result */
26514 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::==*/)))))));
26515 if (UNTAG_Bool(variable[3])) { /*if*/
26516 /* Register variable[3]: Result */
26517 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26518 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26519 }
26520 /* Register variable[3]: Result */
26521 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26522 /* Register variable[3]: Result */
26523 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::==*/)))))));
26524 if (UNTAG_Bool(variable[3])) { /*if*/
26525 /* Register variable[3]: Result */
26526 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26527 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26528 }
26529 return_label849: while(false);
26530 tracehead = trace.prev;
26531 return;
26532 }
26533 void parser_prod___ARangeExpr___visit_all_reverse(val_t self, val_t param0) {
26534 struct trace_t trace = {NULL, NULL, 9743, LOCATE_parser_prod___ARangeExpr___visit_all_reverse};
26535 val_t variable[4];
26536 struct WBT_ **closurevariable = NULL;
26537 trace.prev = tracehead; tracehead = &trace;
26538 trace.file = LOCATE_parser_prod;
26539 /* Register variable[0]: Local variable */
26540 variable[0] = self;
26541 /* Register variable[1]: Local variable */
26542 variable[1] = param0;
26543 /* Register variable[2]: Method return value and escape marker */
26544 /* Register variable[3]: Result */
26545 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26546 /* Register variable[3]: Result */
26547 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::==*/)))))));
26548 if (UNTAG_Bool(variable[3])) { /*if*/
26549 /* Register variable[3]: Result */
26550 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26551 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26552 }
26553 /* Register variable[3]: Result */
26554 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26555 /* Register variable[3]: Result */
26556 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::==*/)))))));
26557 if (UNTAG_Bool(variable[3])) { /*if*/
26558 /* Register variable[3]: Result */
26559 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26560 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26561 }
26562 return_label850: while(false);
26563 tracehead = trace.prev;
26564 return;
26565 }
26566 void parser_prod___ARangeExpr___empty_init(val_t self, int* init_table) {
26567 struct trace_t trace = {NULL, NULL, 9690, LOCATE_parser_prod___ARangeExpr___empty_init};
26568 val_t variable[2];
26569 struct WBT_ **closurevariable = NULL;
26570 trace.prev = tracehead; tracehead = &trace;
26571 trace.file = LOCATE_parser_prod;
26572 /* Register variable[0]: Local variable */
26573 variable[0] = self;
26574 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
26575 /* Register variable[1]: Method return value and escape marker */
26576 return_label851: while(false);
26577 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
26578 tracehead = trace.prev;
26579 return;
26580 }
26581 void parser_prod___ARangeExpr___init_arangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
26582 struct trace_t trace = {NULL, NULL, 9692, LOCATE_parser_prod___ARangeExpr___init_arangeexpr};
26583 val_t variable[5];
26584 struct WBT_ **closurevariable = NULL;
26585 trace.prev = tracehead; tracehead = &trace;
26586 trace.file = LOCATE_parser_prod;
26587 /* Register variable[0]: Local variable */
26588 variable[0] = self;
26589 /* Register variable[1]: Local variable */
26590 variable[1] = param0;
26591 /* Register variable[2]: Local variable */
26592 variable[2] = param1;
26593 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
26594 /* Register variable[3]: Method return value and escape marker */
26595 CALL_parser_prod___ARangeExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ARangeExpr::empty_init*/;
26596 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[1] /*n_expr*/;
26597 /* Register variable[4]: Result */
26598 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26599 if (UNTAG_Bool(variable[4])) { /*if*/
26600 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
26601 }
26602 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
26603 /* Register variable[4]: Result */
26604 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26605 if (UNTAG_Bool(variable[4])) { /*if*/
26606 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
26607 }
26608 return_label852: while(false);
26609 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
26610 tracehead = trace.prev;
26611 return;
26612 }
26613 void parser_prod___ACrangeExpr___n_expr__eq(val_t self, val_t param0) {
26614 struct trace_t trace = {NULL, NULL, 9754, LOCATE_parser_prod___ACrangeExpr___n_expr__eq};
26615 val_t variable[4];
26616 struct WBT_ **closurevariable = NULL;
26617 trace.prev = tracehead; tracehead = &trace;
26618 trace.file = LOCATE_parser_prod;
26619 /* Register variable[0]: Local variable */
26620 variable[0] = self;
26621 /* Register variable[1]: Local variable */
26622 variable[1] = param0;
26623 /* Register variable[2]: Method return value and escape marker */
26624 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[1] /*n*/;
26625 /* Register variable[3]: Result */
26626 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26627 if (UNTAG_Bool(variable[3])) { /*if*/
26628 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26629 }
26630 return_label853: while(false);
26631 tracehead = trace.prev;
26632 return;
26633 }
26634 void parser_prod___ACrangeExpr___n_expr2__eq(val_t self, val_t param0) {
26635 struct trace_t trace = {NULL, NULL, 9761, LOCATE_parser_prod___ACrangeExpr___n_expr2__eq};
26636 val_t variable[4];
26637 struct WBT_ **closurevariable = NULL;
26638 trace.prev = tracehead; tracehead = &trace;
26639 trace.file = LOCATE_parser_prod;
26640 /* Register variable[0]: Local variable */
26641 variable[0] = self;
26642 /* Register variable[1]: Local variable */
26643 variable[1] = param0;
26644 /* Register variable[2]: Method return value and escape marker */
26645 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[1] /*n*/;
26646 /* Register variable[3]: Result */
26647 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26648 if (UNTAG_Bool(variable[3])) { /*if*/
26649 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26650 }
26651 return_label854: while(false);
26652 tracehead = trace.prev;
26653 return;
26654 }
26655 void parser_prod___ACrangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
26656 struct trace_t trace = {NULL, NULL, 9787, LOCATE_parser_prod___ACrangeExpr___replace_child};
26657 val_t variable[5];
26658 struct WBT_ **closurevariable = NULL;
26659 trace.prev = tracehead; tracehead = &trace;
26660 trace.file = LOCATE_parser_prod;
26661 /* Register variable[0]: Local variable */
26662 variable[0] = self;
26663 /* Register variable[1]: Local variable */
26664 variable[1] = param0;
26665 /* Register variable[2]: Local variable */
26666 variable[2] = param1;
26667 /* Register variable[3]: Method return value and escape marker */
26668 /* Register variable[4]: Result */
26669 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26670 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACrangeExpr___replace_child, LOCATE_parser_prod, 9789); nit_exit(1);}
26671 /* Register variable[4]: Result */
26672 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26673 /* Register variable[4]: Result */
26674 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26675 if (UNTAG_Bool(variable[4])) { /*if*/
26676 /* Register variable[4]: Result */
26677 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26678 if (UNTAG_Bool(variable[4])) { /*if*/
26679 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26680 /* Register variable[4]: Result */
26681 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26682 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACrangeExpr___replace_child, LOCATE_parser_prod, 9793); nit_exit(1);}
26683 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[2] /*new_child*/;
26684 } else { /*if*/
26685 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = NIT_NULL /*null*/;
26686 }
26687 goto return_label855;
26688 }
26689 /* Register variable[4]: Result */
26690 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26691 /* Register variable[4]: Result */
26692 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26693 if (UNTAG_Bool(variable[4])) { /*if*/
26694 /* Register variable[4]: Result */
26695 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26696 if (UNTAG_Bool(variable[4])) { /*if*/
26697 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26698 /* Register variable[4]: Result */
26699 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26700 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACrangeExpr___replace_child, LOCATE_parser_prod, 9803); nit_exit(1);}
26701 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[2] /*new_child*/;
26702 } else { /*if*/
26703 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
26704 }
26705 goto return_label855;
26706 }
26707 return_label855: while(false);
26708 tracehead = trace.prev;
26709 return;
26710 }
26711 void parser_prod___ACrangeExpr___visit_all(val_t self, val_t param0) {
26712 struct trace_t trace = {NULL, NULL, 9812, LOCATE_parser_prod___ACrangeExpr___visit_all};
26713 val_t variable[4];
26714 struct WBT_ **closurevariable = NULL;
26715 trace.prev = tracehead; tracehead = &trace;
26716 trace.file = LOCATE_parser_prod;
26717 /* Register variable[0]: Local variable */
26718 variable[0] = self;
26719 /* Register variable[1]: Local variable */
26720 variable[1] = param0;
26721 /* Register variable[2]: Method return value and escape marker */
26722 /* Register variable[3]: Result */
26723 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26724 /* Register variable[3]: Result */
26725 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::==*/)))))));
26726 if (UNTAG_Bool(variable[3])) { /*if*/
26727 /* Register variable[3]: Result */
26728 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26729 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26730 }
26731 /* Register variable[3]: Result */
26732 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26733 /* Register variable[3]: Result */
26734 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::==*/)))))));
26735 if (UNTAG_Bool(variable[3])) { /*if*/
26736 /* Register variable[3]: Result */
26737 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26738 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26739 }
26740 return_label856: while(false);
26741 tracehead = trace.prev;
26742 return;
26743 }
26744 void parser_prod___ACrangeExpr___visit_all_reverse(val_t self, val_t param0) {
26745 struct trace_t trace = {NULL, NULL, 9822, LOCATE_parser_prod___ACrangeExpr___visit_all_reverse};
26746 val_t variable[4];
26747 struct WBT_ **closurevariable = NULL;
26748 trace.prev = tracehead; tracehead = &trace;
26749 trace.file = LOCATE_parser_prod;
26750 /* Register variable[0]: Local variable */
26751 variable[0] = self;
26752 /* Register variable[1]: Local variable */
26753 variable[1] = param0;
26754 /* Register variable[2]: Method return value and escape marker */
26755 /* Register variable[3]: Result */
26756 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26757 /* Register variable[3]: Result */
26758 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::==*/)))))));
26759 if (UNTAG_Bool(variable[3])) { /*if*/
26760 /* Register variable[3]: Result */
26761 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26762 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26763 }
26764 /* Register variable[3]: Result */
26765 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26766 /* Register variable[3]: Result */
26767 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::==*/)))))));
26768 if (UNTAG_Bool(variable[3])) { /*if*/
26769 /* Register variable[3]: Result */
26770 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26771 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26772 }
26773 return_label857: while(false);
26774 tracehead = trace.prev;
26775 return;
26776 }
26777 void parser_prod___ACrangeExpr___empty_init(val_t self, int* init_table) {
26778 struct trace_t trace = {NULL, NULL, 9769, LOCATE_parser_prod___ACrangeExpr___empty_init};
26779 val_t variable[2];
26780 struct WBT_ **closurevariable = NULL;
26781 trace.prev = tracehead; tracehead = &trace;
26782 trace.file = LOCATE_parser_prod;
26783 /* Register variable[0]: Local variable */
26784 variable[0] = self;
26785 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
26786 /* Register variable[1]: Method return value and escape marker */
26787 return_label858: while(false);
26788 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
26789 tracehead = trace.prev;
26790 return;
26791 }
26792 void parser_prod___ACrangeExpr___init_acrangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
26793 struct trace_t trace = {NULL, NULL, 9771, LOCATE_parser_prod___ACrangeExpr___init_acrangeexpr};
26794 val_t variable[5];
26795 struct WBT_ **closurevariable = NULL;
26796 trace.prev = tracehead; tracehead = &trace;
26797 trace.file = LOCATE_parser_prod;
26798 /* Register variable[0]: Local variable */
26799 variable[0] = self;
26800 /* Register variable[1]: Local variable */
26801 variable[1] = param0;
26802 /* Register variable[2]: Local variable */
26803 variable[2] = param1;
26804 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
26805 /* Register variable[3]: Method return value and escape marker */
26806 CALL_parser_prod___ACrangeExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ACrangeExpr::empty_init*/;
26807 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[1] /*n_expr*/;
26808 /* Register variable[4]: Result */
26809 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26810 if (UNTAG_Bool(variable[4])) { /*if*/
26811 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
26812 }
26813 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
26814 /* Register variable[4]: Result */
26815 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26816 if (UNTAG_Bool(variable[4])) { /*if*/
26817 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
26818 }
26819 return_label859: while(false);
26820 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
26821 tracehead = trace.prev;
26822 return;
26823 }
26824 void parser_prod___AOrangeExpr___n_expr__eq(val_t self, val_t param0) {
26825 struct trace_t trace = {NULL, NULL, 9833, LOCATE_parser_prod___AOrangeExpr___n_expr__eq};
26826 val_t variable[4];
26827 struct WBT_ **closurevariable = NULL;
26828 trace.prev = tracehead; tracehead = &trace;
26829 trace.file = LOCATE_parser_prod;
26830 /* Register variable[0]: Local variable */
26831 variable[0] = self;
26832 /* Register variable[1]: Local variable */
26833 variable[1] = param0;
26834 /* Register variable[2]: Method return value and escape marker */
26835 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[1] /*n*/;
26836 /* Register variable[3]: Result */
26837 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26838 if (UNTAG_Bool(variable[3])) { /*if*/
26839 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26840 }
26841 return_label860: while(false);
26842 tracehead = trace.prev;
26843 return;
26844 }
26845 void parser_prod___AOrangeExpr___n_expr2__eq(val_t self, val_t param0) {
26846 struct trace_t trace = {NULL, NULL, 9840, LOCATE_parser_prod___AOrangeExpr___n_expr2__eq};
26847 val_t variable[4];
26848 struct WBT_ **closurevariable = NULL;
26849 trace.prev = tracehead; tracehead = &trace;
26850 trace.file = LOCATE_parser_prod;
26851 /* Register variable[0]: Local variable */
26852 variable[0] = self;
26853 /* Register variable[1]: Local variable */
26854 variable[1] = param0;
26855 /* Register variable[2]: Method return value and escape marker */
26856 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[1] /*n*/;
26857 /* Register variable[3]: Result */
26858 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26859 if (UNTAG_Bool(variable[3])) { /*if*/
26860 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
26861 }
26862 return_label861: while(false);
26863 tracehead = trace.prev;
26864 return;
26865 }
26866 void parser_prod___AOrangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
26867 struct trace_t trace = {NULL, NULL, 9866, LOCATE_parser_prod___AOrangeExpr___replace_child};
26868 val_t variable[5];
26869 struct WBT_ **closurevariable = NULL;
26870 trace.prev = tracehead; tracehead = &trace;
26871 trace.file = LOCATE_parser_prod;
26872 /* Register variable[0]: Local variable */
26873 variable[0] = self;
26874 /* Register variable[1]: Local variable */
26875 variable[1] = param0;
26876 /* Register variable[2]: Local variable */
26877 variable[2] = param1;
26878 /* Register variable[3]: Method return value and escape marker */
26879 /* Register variable[4]: Result */
26880 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26881 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrangeExpr___replace_child, LOCATE_parser_prod, 9868); nit_exit(1);}
26882 /* Register variable[4]: Result */
26883 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26884 /* Register variable[4]: Result */
26885 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26886 if (UNTAG_Bool(variable[4])) { /*if*/
26887 /* Register variable[4]: Result */
26888 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26889 if (UNTAG_Bool(variable[4])) { /*if*/
26890 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26891 /* Register variable[4]: Result */
26892 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26893 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrangeExpr___replace_child, LOCATE_parser_prod, 9872); nit_exit(1);}
26894 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[2] /*new_child*/;
26895 } else { /*if*/
26896 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = NIT_NULL /*null*/;
26897 }
26898 goto return_label862;
26899 }
26900 /* Register variable[4]: Result */
26901 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26902 /* Register variable[4]: Result */
26903 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26904 if (UNTAG_Bool(variable[4])) { /*if*/
26905 /* Register variable[4]: Result */
26906 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26907 if (UNTAG_Bool(variable[4])) { /*if*/
26908 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
26909 /* Register variable[4]: Result */
26910 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26911 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrangeExpr___replace_child, LOCATE_parser_prod, 9882); nit_exit(1);}
26912 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[2] /*new_child*/;
26913 } else { /*if*/
26914 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
26915 }
26916 goto return_label862;
26917 }
26918 return_label862: while(false);
26919 tracehead = trace.prev;
26920 return;
26921 }
26922 void parser_prod___AOrangeExpr___visit_all(val_t self, val_t param0) {
26923 struct trace_t trace = {NULL, NULL, 9891, LOCATE_parser_prod___AOrangeExpr___visit_all};
26924 val_t variable[4];
26925 struct WBT_ **closurevariable = NULL;
26926 trace.prev = tracehead; tracehead = &trace;
26927 trace.file = LOCATE_parser_prod;
26928 /* Register variable[0]: Local variable */
26929 variable[0] = self;
26930 /* Register variable[1]: Local variable */
26931 variable[1] = param0;
26932 /* Register variable[2]: Method return value and escape marker */
26933 /* Register variable[3]: Result */
26934 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26935 /* Register variable[3]: Result */
26936 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::==*/)))))));
26937 if (UNTAG_Bool(variable[3])) { /*if*/
26938 /* Register variable[3]: Result */
26939 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26940 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26941 }
26942 /* Register variable[3]: Result */
26943 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26944 /* Register variable[3]: Result */
26945 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::==*/)))))));
26946 if (UNTAG_Bool(variable[3])) { /*if*/
26947 /* Register variable[3]: Result */
26948 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26949 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26950 }
26951 return_label863: while(false);
26952 tracehead = trace.prev;
26953 return;
26954 }
26955 void parser_prod___AOrangeExpr___visit_all_reverse(val_t self, val_t param0) {
26956 struct trace_t trace = {NULL, NULL, 9901, LOCATE_parser_prod___AOrangeExpr___visit_all_reverse};
26957 val_t variable[4];
26958 struct WBT_ **closurevariable = NULL;
26959 trace.prev = tracehead; tracehead = &trace;
26960 trace.file = LOCATE_parser_prod;
26961 /* Register variable[0]: Local variable */
26962 variable[0] = self;
26963 /* Register variable[1]: Local variable */
26964 variable[1] = param0;
26965 /* Register variable[2]: Method return value and escape marker */
26966 /* Register variable[3]: Result */
26967 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26968 /* Register variable[3]: Result */
26969 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::==*/)))))));
26970 if (UNTAG_Bool(variable[3])) { /*if*/
26971 /* Register variable[3]: Result */
26972 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/;
26973 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26974 }
26975 /* Register variable[3]: Result */
26976 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26977 /* Register variable[3]: Result */
26978 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::==*/)))))));
26979 if (UNTAG_Bool(variable[3])) { /*if*/
26980 /* Register variable[3]: Result */
26981 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/;
26982 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26983 }
26984 return_label864: while(false);
26985 tracehead = trace.prev;
26986 return;
26987 }
26988 void parser_prod___AOrangeExpr___empty_init(val_t self, int* init_table) {
26989 struct trace_t trace = {NULL, NULL, 9848, LOCATE_parser_prod___AOrangeExpr___empty_init};
26990 val_t variable[2];
26991 struct WBT_ **closurevariable = NULL;
26992 trace.prev = tracehead; tracehead = &trace;
26993 trace.file = LOCATE_parser_prod;
26994 /* Register variable[0]: Local variable */
26995 variable[0] = self;
26996 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
26997 /* Register variable[1]: Method return value and escape marker */
26998 return_label865: while(false);
26999 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
27000 tracehead = trace.prev;
27001 return;
27002 }
27003 void parser_prod___AOrangeExpr___init_aorangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
27004 struct trace_t trace = {NULL, NULL, 9850, LOCATE_parser_prod___AOrangeExpr___init_aorangeexpr};
27005 val_t variable[5];
27006 struct WBT_ **closurevariable = NULL;
27007 trace.prev = tracehead; tracehead = &trace;
27008 trace.file = LOCATE_parser_prod;
27009 /* Register variable[0]: Local variable */
27010 variable[0] = self;
27011 /* Register variable[1]: Local variable */
27012 variable[1] = param0;
27013 /* Register variable[2]: Local variable */
27014 variable[2] = param1;
27015 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
27016 /* Register variable[3]: Method return value and escape marker */
27017 CALL_parser_prod___AOrangeExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AOrangeExpr::empty_init*/;
27018 ATTR_parser_nodes___ARangeExpr____n_expr(variable[0]) /*ARangeExpr::_n_expr*/ = variable[1] /*n_expr*/;
27019 /* Register variable[4]: Result */
27020 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27021 if (UNTAG_Bool(variable[4])) { /*if*/
27022 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
27023 }
27024 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[0]) /*ARangeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
27025 /* Register variable[4]: Result */
27026 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27027 if (UNTAG_Bool(variable[4])) { /*if*/
27028 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[0]) /*PNode::parent=*/;
27029 }
27030 return_label866: while(false);
27031 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
27032 tracehead = trace.prev;
27033 return;
27034 }
27035 void parser_prod___AArrayExpr___replace_child(val_t self, val_t param0, val_t param1) {
27036 struct trace_t trace = {NULL, NULL, 9928, LOCATE_parser_prod___AArrayExpr___replace_child};
27037 val_t variable[8];
27038 struct WBT_ **closurevariable = NULL;
27039 trace.prev = tracehead; tracehead = &trace;
27040 trace.file = LOCATE_parser_prod;
27041 /* Register variable[0]: Local variable */
27042 variable[0] = self;
27043 /* Register variable[1]: Local variable */
27044 variable[1] = param0;
27045 /* Register variable[2]: Local variable */
27046 variable[2] = param1;
27047 /* Register variable[3]: Method return value and escape marker */
27048 /* Register variable[4]: Result */
27049 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27050 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AArrayExpr___replace_child, LOCATE_parser_prod, 9930); nit_exit(1);}
27051 /* Register variable[4]: Result */
27052 variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27053 /* Register variable[4]: Result */
27054 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
27055 /* Register variable[4]: Result */
27056 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
27057 /* Register variable[4]: For iterator */
27058 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
27059 while (true) { /*for*/
27060 /* Register variable[5]: For 'is_ok' result */
27061 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
27062 if (!UNTAG_Bool(variable[5])) break; /*for*/
27063 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
27064 /* Register variable[6]: Local variable */
27065 variable[6] = variable[5];
27066 /* Register variable[7]: Result */
27067 variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27068 /* Register variable[7]: Result */
27069 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
27070 /* Register variable[7]: Result */
27071 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
27072 if (UNTAG_Bool(variable[7])) { /*if*/
27073 /* Register variable[7]: Result */
27074 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27075 if (UNTAG_Bool(variable[7])) { /*if*/
27076 /* Register variable[7]: Result */
27077 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
27078 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AArrayExpr___replace_child, LOCATE_parser_prod, 9934); nit_exit(1);}
27079 /* Register variable[7]: Result */
27080 variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27081 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
27082 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
27083 } else { /*if*/
27084 /* Register variable[7]: Result */
27085 variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27086 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
27087 }
27088 goto return_label867;
27089 }
27090 continue_868: while(0);
27091 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
27092 }
27093 break_868: while(0);
27094 return_label867: while(false);
27095 tracehead = trace.prev;
27096 return;
27097 }
27098 void parser_prod___AArrayExpr___visit_all(val_t self, val_t param0) {
27099 struct trace_t trace = {NULL, NULL, 9945, LOCATE_parser_prod___AArrayExpr___visit_all};
27100 val_t variable[6];
27101 struct WBT_ **closurevariable = NULL;
27102 trace.prev = tracehead; tracehead = &trace;
27103 trace.file = LOCATE_parser_prod;
27104 /* Register variable[0]: Local variable */
27105 variable[0] = self;
27106 /* Register variable[1]: Local variable */
27107 variable[1] = param0;
27108 /* Register variable[2]: Method return value and escape marker */
27109 /* Register variable[3]: Result */
27110 variable[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27111 /* Register variable[3]: For iterator */
27112 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
27113 while (true) { /*for*/
27114 /* Register variable[4]: For 'is_ok' result */
27115 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
27116 if (!UNTAG_Bool(variable[4])) break; /*for*/
27117 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
27118 /* Register variable[5]: Local variable */
27119 variable[5] = variable[4];
27120 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
27121 continue_870: while(0);
27122 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
27123 }
27124 break_870: while(0);
27125 return_label869: while(false);
27126 tracehead = trace.prev;
27127 return;
27128 }
27129 void parser_prod___AArrayExpr___visit_all_reverse(val_t self, val_t param0) {
27130 struct trace_t trace = {NULL, NULL, 9952, LOCATE_parser_prod___AArrayExpr___visit_all_reverse};
27131 val_t variable[5];
27132 struct WBT_ **closurevariable = NULL;
27133 trace.prev = tracehead; tracehead = &trace;
27134 trace.file = LOCATE_parser_prod;
27135 /* Register variable[0]: Local variable */
27136 variable[0] = self;
27137 /* Register variable[1]: Local variable */
27138 variable[1] = param0;
27139 /* Register variable[2]: Method return value and escape marker */
27140 /* Register variable[3]: Local variable */
27141 /* Register variable[4]: Result */
27142 variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27143 /* Register variable[4]: Result */
27144 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
27145 variable[3] = variable[4];
27146 while (true) { /*while*/
27147 /* Register variable[4]: Result */
27148 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
27149 if (!UNTAG_Bool(variable[4])) break; /* while*/
27150 /* Register variable[4]: Result */
27151 variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27152 /* Register variable[4]: Result */
27153 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
27154 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
27155 /* Register variable[4]: Result */
27156 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
27157 variable[3] = variable[4] /*i=*/;
27158 continue_872: while(0);
27159 }
27160 break_872: while(0);
27161 return_label871: while(false);
27162 tracehead = trace.prev;
27163 return;
27164 }
27165 void parser_prod___AArrayExpr___empty_init(val_t self, int* init_table) {
27166 struct trace_t trace = {NULL, NULL, 9913, LOCATE_parser_prod___AArrayExpr___empty_init};
27167 val_t variable[2];
27168 struct WBT_ **closurevariable = NULL;
27169 trace.prev = tracehead; tracehead = &trace;
27170 trace.file = LOCATE_parser_prod;
27171 /* Register variable[0]: Local variable */
27172 variable[0] = self;
27173 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
27174 /* Register variable[1]: Method return value and escape marker */
27175 return_label873: while(false);
27176 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
27177 tracehead = trace.prev;
27178 return;
27179 }
27180 void parser_prod___AArrayExpr___init_aarrayexpr(val_t self, val_t param0, int* init_table) {
27181 struct trace_t trace = {NULL, NULL, 9915, LOCATE_parser_prod___AArrayExpr___init_aarrayexpr};
27182 val_t variable[7];
27183 struct WBT_ **closurevariable = NULL;
27184 trace.prev = tracehead; tracehead = &trace;
27185 trace.file = LOCATE_parser_prod;
27186 /* Register variable[0]: Local variable */
27187 variable[0] = self;
27188 /* Register variable[1]: Local variable */
27189 variable[1] = param0;
27190 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
27191 /* Register variable[2]: Method return value and escape marker */
27192 CALL_parser_prod___AArrayExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AArrayExpr::empty_init*/;
27193 /* Register variable[3]: Result */
27194 variable[3] = NEW_List_list___List___init() /*new List[PExpr]*/;
27195 ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/ = variable[3];
27196 /* Register variable[3]: For iterator */
27197 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_exprs*/)( variable[1] /*n_exprs*/) /*Collection::iterator*/;
27198 while (true) { /*for*/
27199 /* Register variable[4]: For 'is_ok' result */
27200 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
27201 if (!UNTAG_Bool(variable[4])) break; /*for*/
27202 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
27203 /* Register variable[5]: Local variable */
27204 variable[5] = variable[4];
27205 /* Register variable[6]: Result */
27206 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
27207 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AArrayExpr___init_aarrayexpr, LOCATE_parser_prod, 9922); nit_exit(1);}
27208 /* Register variable[6]: Result */
27209 variable[6] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[0]) /*AArrayExpr::_n_exprs*/;
27210 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
27211 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[0]) /*PNode::parent=*/;
27212 continue_875: while(0);
27213 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
27214 }
27215 break_875: while(0);
27216 return_label874: while(false);
27217 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
27218 tracehead = trace.prev;
27219 return;
27220 }
27221 void parser_prod___ASelfExpr___n_kwself__eq(val_t self, val_t param0) {
27222 struct trace_t trace = {NULL, NULL, 9964, LOCATE_parser_prod___ASelfExpr___n_kwself__eq};
27223 val_t variable[4];
27224 struct WBT_ **closurevariable = NULL;
27225 trace.prev = tracehead; tracehead = &trace;
27226 trace.file = LOCATE_parser_prod;
27227 /* Register variable[0]: Local variable */
27228 variable[0] = self;
27229 /* Register variable[1]: Local variable */
27230 variable[1] = param0;
27231 /* Register variable[2]: Method return value and escape marker */
27232 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/ = variable[1] /*n*/;
27233 /* Register variable[3]: Result */
27234 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27235 if (UNTAG_Bool(variable[3])) { /*if*/
27236 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
27237 }
27238 return_label876: while(false);
27239 tracehead = trace.prev;
27240 return;
27241 }
27242 void parser_prod___ASelfExpr___replace_child(val_t self, val_t param0, val_t param1) {
27243 struct trace_t trace = {NULL, NULL, 9985, LOCATE_parser_prod___ASelfExpr___replace_child};
27244 val_t variable[5];
27245 struct WBT_ **closurevariable = NULL;
27246 trace.prev = tracehead; tracehead = &trace;
27247 trace.file = LOCATE_parser_prod;
27248 /* Register variable[0]: Local variable */
27249 variable[0] = self;
27250 /* Register variable[1]: Local variable */
27251 variable[1] = param0;
27252 /* Register variable[2]: Local variable */
27253 variable[2] = param1;
27254 /* Register variable[3]: Method return value and escape marker */
27255 /* Register variable[4]: Result */
27256 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27257 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASelfExpr___replace_child, LOCATE_parser_prod, 9987); nit_exit(1);}
27258 /* Register variable[4]: Result */
27259 variable[4] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/;
27260 /* Register variable[4]: Result */
27261 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
27262 if (UNTAG_Bool(variable[4])) { /*if*/
27263 /* Register variable[4]: Result */
27264 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27265 if (UNTAG_Bool(variable[4])) { /*if*/
27266 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
27267 /* Register variable[4]: Result */
27268 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
27269 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASelfExpr___replace_child, LOCATE_parser_prod, 9991); nit_exit(1);}
27270 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/ = variable[2] /*new_child*/;
27271 } else { /*if*/
27272 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/ = NIT_NULL /*null*/;
27273 }
27274 goto return_label877;
27275 }
27276 return_label877: while(false);
27277 tracehead = trace.prev;
27278 return;
27279 }
27280 void parser_prod___ASelfExpr___visit_all(val_t self, val_t param0) {
27281 struct trace_t trace = {NULL, NULL, 10000, LOCATE_parser_prod___ASelfExpr___visit_all};
27282 val_t variable[4];
27283 struct WBT_ **closurevariable = NULL;
27284 trace.prev = tracehead; tracehead = &trace;
27285 trace.file = LOCATE_parser_prod;
27286 /* Register variable[0]: Local variable */
27287 variable[0] = self;
27288 /* Register variable[1]: Local variable */
27289 variable[1] = param0;
27290 /* Register variable[2]: Method return value and escape marker */
27291 /* Register variable[3]: Result */
27292 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/;
27293 /* Register variable[3]: Result */
27294 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::==*/)))))));
27295 if (UNTAG_Bool(variable[3])) { /*if*/
27296 /* Register variable[3]: Result */
27297 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/;
27298 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27299 }
27300 return_label878: while(false);
27301 tracehead = trace.prev;
27302 return;
27303 }
27304 void parser_prod___ASelfExpr___visit_all_reverse(val_t self, val_t param0) {
27305 struct trace_t trace = {NULL, NULL, 10007, LOCATE_parser_prod___ASelfExpr___visit_all_reverse};
27306 val_t variable[4];
27307 struct WBT_ **closurevariable = NULL;
27308 trace.prev = tracehead; tracehead = &trace;
27309 trace.file = LOCATE_parser_prod;
27310 /* Register variable[0]: Local variable */
27311 variable[0] = self;
27312 /* Register variable[1]: Local variable */
27313 variable[1] = param0;
27314 /* Register variable[2]: Method return value and escape marker */
27315 /* Register variable[3]: Result */
27316 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/;
27317 /* Register variable[3]: Result */
27318 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::==*/)))))));
27319 if (UNTAG_Bool(variable[3])) { /*if*/
27320 /* Register variable[3]: Result */
27321 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/;
27322 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27323 }
27324 return_label879: while(false);
27325 tracehead = trace.prev;
27326 return;
27327 }
27328 void parser_prod___ASelfExpr___empty_init(val_t self, int* init_table) {
27329 struct trace_t trace = {NULL, NULL, 9972, LOCATE_parser_prod___ASelfExpr___empty_init};
27330 val_t variable[2];
27331 struct WBT_ **closurevariable = NULL;
27332 trace.prev = tracehead; tracehead = &trace;
27333 trace.file = LOCATE_parser_prod;
27334 /* Register variable[0]: Local variable */
27335 variable[0] = self;
27336 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
27337 /* Register variable[1]: Method return value and escape marker */
27338 return_label880: while(false);
27339 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
27340 tracehead = trace.prev;
27341 return;
27342 }
27343 void parser_prod___ASelfExpr___init_aselfexpr(val_t self, val_t param0, int* init_table) {
27344 struct trace_t trace = {NULL, NULL, 9974, LOCATE_parser_prod___ASelfExpr___init_aselfexpr};
27345 val_t variable[4];
27346 struct WBT_ **closurevariable = NULL;
27347 trace.prev = tracehead; tracehead = &trace;
27348 trace.file = LOCATE_parser_prod;
27349 /* Register variable[0]: Local variable */
27350 variable[0] = self;
27351 /* Register variable[1]: Local variable */
27352 variable[1] = param0;
27353 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
27354 /* Register variable[2]: Method return value and escape marker */
27355 CALL_parser_prod___ASelfExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASelfExpr::empty_init*/;
27356 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[0]) /*ASelfExpr::_n_kwself*/ = variable[1] /*n_kwself*/;
27357 /* Register variable[3]: Result */
27358 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwself*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwself*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwself*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwself*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwself*/)( variable[1] /*n_kwself*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27359 if (UNTAG_Bool(variable[3])) { /*if*/
27360 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwself*/)( variable[1] /*n_kwself*/, variable[0]) /*PNode::parent=*/;
27361 }
27362 return_label881: while(false);
27363 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
27364 tracehead = trace.prev;
27365 return;
27366 }
27367 void parser_prod___AImplicitSelfExpr___replace_child(val_t self, val_t param0, val_t param1) {
27368 struct trace_t trace = {NULL, NULL, 10023, LOCATE_parser_prod___AImplicitSelfExpr___replace_child};
27369 val_t variable[5];
27370 struct WBT_ **closurevariable = NULL;
27371 trace.prev = tracehead; tracehead = &trace;
27372 trace.file = LOCATE_parser_prod;
27373 /* Register variable[0]: Local variable */
27374 variable[0] = self;
27375 /* Register variable[1]: Local variable */
27376 variable[1] = param0;
27377 /* Register variable[2]: Local variable */
27378 variable[2] = param1;
27379 /* Register variable[3]: Method return value and escape marker */
27380 /* Register variable[4]: Result */
27381 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27382 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImplicitSelfExpr___replace_child, LOCATE_parser_prod, 10025); nit_exit(1);}
27383 return_label882: while(false);
27384 tracehead = trace.prev;
27385 return;
27386 }
27387 void parser_prod___AImplicitSelfExpr___visit_all(val_t self, val_t param0) {
27388 struct trace_t trace = {NULL, NULL, 10028, LOCATE_parser_prod___AImplicitSelfExpr___visit_all};
27389 val_t variable[3];
27390 struct WBT_ **closurevariable = NULL;
27391 trace.prev = tracehead; tracehead = &trace;
27392 trace.file = LOCATE_parser_prod;
27393 /* Register variable[0]: Local variable */
27394 variable[0] = self;
27395 /* Register variable[1]: Local variable */
27396 variable[1] = param0;
27397 /* Register variable[2]: Method return value and escape marker */
27398 return_label883: while(false);
27399 tracehead = trace.prev;
27400 return;
27401 }
27402 void parser_prod___AImplicitSelfExpr___visit_all_reverse(val_t self, val_t param0) {
27403 struct trace_t trace = {NULL, NULL, 10032, LOCATE_parser_prod___AImplicitSelfExpr___visit_all_reverse};
27404 val_t variable[3];
27405 struct WBT_ **closurevariable = NULL;
27406 trace.prev = tracehead; tracehead = &trace;
27407 trace.file = LOCATE_parser_prod;
27408 /* Register variable[0]: Local variable */
27409 variable[0] = self;
27410 /* Register variable[1]: Local variable */
27411 variable[1] = param0;
27412 /* Register variable[2]: Method return value and escape marker */
27413 return_label884: while(false);
27414 tracehead = trace.prev;
27415 return;
27416 }
27417 void parser_prod___AImplicitSelfExpr___empty_init(val_t self, int* init_table) {
27418 struct trace_t trace = {NULL, NULL, 10016, LOCATE_parser_prod___AImplicitSelfExpr___empty_init};
27419 val_t variable[2];
27420 struct WBT_ **closurevariable = NULL;
27421 trace.prev = tracehead; tracehead = &trace;
27422 trace.file = LOCATE_parser_prod;
27423 /* Register variable[0]: Local variable */
27424 variable[0] = self;
27425 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
27426 /* Register variable[1]: Method return value and escape marker */
27427 return_label885: while(false);
27428 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
27429 tracehead = trace.prev;
27430 return;
27431 }
27432 void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t self, int* init_table) {
27433 struct trace_t trace = {NULL, NULL, 10018, LOCATE_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr};
27434 val_t variable[2];
27435 struct WBT_ **closurevariable = NULL;
27436 trace.prev = tracehead; tracehead = &trace;
27437 trace.file = LOCATE_parser_prod;
27438 /* Register variable[0]: Local variable */
27439 variable[0] = self;
27440 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
27441 /* Register variable[1]: Method return value and escape marker */
27442 CALL_parser_prod___AImplicitSelfExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AImplicitSelfExpr::empty_init*/;
27443 return_label886: while(false);
27444 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
27445 tracehead = trace.prev;
27446 return;
27447 }
27448 void parser_prod___ATrueExpr___n_kwtrue__eq(val_t self, val_t param0) {
27449 struct trace_t trace = {NULL, NULL, 10037, LOCATE_parser_prod___ATrueExpr___n_kwtrue__eq};
27450 val_t variable[4];
27451 struct WBT_ **closurevariable = NULL;
27452 trace.prev = tracehead; tracehead = &trace;
27453 trace.file = LOCATE_parser_prod;
27454 /* Register variable[0]: Local variable */
27455 variable[0] = self;
27456 /* Register variable[1]: Local variable */
27457 variable[1] = param0;
27458 /* Register variable[2]: Method return value and escape marker */
27459 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/ = variable[1] /*n*/;
27460 /* Register variable[3]: Result */
27461 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27462 if (UNTAG_Bool(variable[3])) { /*if*/
27463 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
27464 }
27465 return_label887: while(false);
27466 tracehead = trace.prev;
27467 return;
27468 }
27469 void parser_prod___ATrueExpr___replace_child(val_t self, val_t param0, val_t param1) {
27470 struct trace_t trace = {NULL, NULL, 10058, LOCATE_parser_prod___ATrueExpr___replace_child};
27471 val_t variable[5];
27472 struct WBT_ **closurevariable = NULL;
27473 trace.prev = tracehead; tracehead = &trace;
27474 trace.file = LOCATE_parser_prod;
27475 /* Register variable[0]: Local variable */
27476 variable[0] = self;
27477 /* Register variable[1]: Local variable */
27478 variable[1] = param0;
27479 /* Register variable[2]: Local variable */
27480 variable[2] = param1;
27481 /* Register variable[3]: Method return value and escape marker */
27482 /* Register variable[4]: Result */
27483 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27484 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATrueExpr___replace_child, LOCATE_parser_prod, 10060); nit_exit(1);}
27485 /* Register variable[4]: Result */
27486 variable[4] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/;
27487 /* Register variable[4]: Result */
27488 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
27489 if (UNTAG_Bool(variable[4])) { /*if*/
27490 /* Register variable[4]: Result */
27491 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27492 if (UNTAG_Bool(variable[4])) { /*if*/
27493 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
27494 /* Register variable[4]: Result */
27495 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
27496 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATrueExpr___replace_child, LOCATE_parser_prod, 10064); nit_exit(1);}
27497 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/ = variable[2] /*new_child*/;
27498 } else { /*if*/
27499 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/ = NIT_NULL /*null*/;
27500 }
27501 goto return_label888;
27502 }
27503 return_label888: while(false);
27504 tracehead = trace.prev;
27505 return;
27506 }
27507 void parser_prod___ATrueExpr___visit_all(val_t self, val_t param0) {
27508 struct trace_t trace = {NULL, NULL, 10073, LOCATE_parser_prod___ATrueExpr___visit_all};
27509 val_t variable[4];
27510 struct WBT_ **closurevariable = NULL;
27511 trace.prev = tracehead; tracehead = &trace;
27512 trace.file = LOCATE_parser_prod;
27513 /* Register variable[0]: Local variable */
27514 variable[0] = self;
27515 /* Register variable[1]: Local variable */
27516 variable[1] = param0;
27517 /* Register variable[2]: Method return value and escape marker */
27518 /* Register variable[3]: Result */
27519 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/;
27520 /* Register variable[3]: Result */
27521 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::==*/)))))));
27522 if (UNTAG_Bool(variable[3])) { /*if*/
27523 /* Register variable[3]: Result */
27524 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/;
27525 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27526 }
27527 return_label889: while(false);
27528 tracehead = trace.prev;
27529 return;
27530 }
27531 void parser_prod___ATrueExpr___visit_all_reverse(val_t self, val_t param0) {
27532 struct trace_t trace = {NULL, NULL, 10080, LOCATE_parser_prod___ATrueExpr___visit_all_reverse};
27533 val_t variable[4];
27534 struct WBT_ **closurevariable = NULL;
27535 trace.prev = tracehead; tracehead = &trace;
27536 trace.file = LOCATE_parser_prod;
27537 /* Register variable[0]: Local variable */
27538 variable[0] = self;
27539 /* Register variable[1]: Local variable */
27540 variable[1] = param0;
27541 /* Register variable[2]: Method return value and escape marker */
27542 /* Register variable[3]: Result */
27543 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/;
27544 /* Register variable[3]: Result */
27545 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::==*/)))))));
27546 if (UNTAG_Bool(variable[3])) { /*if*/
27547 /* Register variable[3]: Result */
27548 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/;
27549 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27550 }
27551 return_label890: while(false);
27552 tracehead = trace.prev;
27553 return;
27554 }
27555 void parser_prod___ATrueExpr___empty_init(val_t self, int* init_table) {
27556 struct trace_t trace = {NULL, NULL, 10045, LOCATE_parser_prod___ATrueExpr___empty_init};
27557 val_t variable[2];
27558 struct WBT_ **closurevariable = NULL;
27559 trace.prev = tracehead; tracehead = &trace;
27560 trace.file = LOCATE_parser_prod;
27561 /* Register variable[0]: Local variable */
27562 variable[0] = self;
27563 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
27564 /* Register variable[1]: Method return value and escape marker */
27565 return_label891: while(false);
27566 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
27567 tracehead = trace.prev;
27568 return;
27569 }
27570 void parser_prod___ATrueExpr___init_atrueexpr(val_t self, val_t param0, int* init_table) {
27571 struct trace_t trace = {NULL, NULL, 10047, LOCATE_parser_prod___ATrueExpr___init_atrueexpr};
27572 val_t variable[4];
27573 struct WBT_ **closurevariable = NULL;
27574 trace.prev = tracehead; tracehead = &trace;
27575 trace.file = LOCATE_parser_prod;
27576 /* Register variable[0]: Local variable */
27577 variable[0] = self;
27578 /* Register variable[1]: Local variable */
27579 variable[1] = param0;
27580 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
27581 /* Register variable[2]: Method return value and escape marker */
27582 CALL_parser_prod___ATrueExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ATrueExpr::empty_init*/;
27583 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[0]) /*ATrueExpr::_n_kwtrue*/ = variable[1] /*n_kwtrue*/;
27584 /* Register variable[3]: Result */
27585 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwtrue*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwtrue*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwtrue*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwtrue*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwtrue*/)( variable[1] /*n_kwtrue*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27586 if (UNTAG_Bool(variable[3])) { /*if*/
27587 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwtrue*/)( variable[1] /*n_kwtrue*/, variable[0]) /*PNode::parent=*/;
27588 }
27589 return_label892: while(false);
27590 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
27591 tracehead = trace.prev;
27592 return;
27593 }
27594 void parser_prod___AFalseExpr___n_kwfalse__eq(val_t self, val_t param0) {
27595 struct trace_t trace = {NULL, NULL, 10088, LOCATE_parser_prod___AFalseExpr___n_kwfalse__eq};
27596 val_t variable[4];
27597 struct WBT_ **closurevariable = NULL;
27598 trace.prev = tracehead; tracehead = &trace;
27599 trace.file = LOCATE_parser_prod;
27600 /* Register variable[0]: Local variable */
27601 variable[0] = self;
27602 /* Register variable[1]: Local variable */
27603 variable[1] = param0;
27604 /* Register variable[2]: Method return value and escape marker */
27605 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/ = variable[1] /*n*/;
27606 /* Register variable[3]: Result */
27607 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27608 if (UNTAG_Bool(variable[3])) { /*if*/
27609 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
27610 }
27611 return_label893: while(false);
27612 tracehead = trace.prev;
27613 return;
27614 }
27615 void parser_prod___AFalseExpr___replace_child(val_t self, val_t param0, val_t param1) {
27616 struct trace_t trace = {NULL, NULL, 10109, LOCATE_parser_prod___AFalseExpr___replace_child};
27617 val_t variable[5];
27618 struct WBT_ **closurevariable = NULL;
27619 trace.prev = tracehead; tracehead = &trace;
27620 trace.file = LOCATE_parser_prod;
27621 /* Register variable[0]: Local variable */
27622 variable[0] = self;
27623 /* Register variable[1]: Local variable */
27624 variable[1] = param0;
27625 /* Register variable[2]: Local variable */
27626 variable[2] = param1;
27627 /* Register variable[3]: Method return value and escape marker */
27628 /* Register variable[4]: Result */
27629 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27630 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFalseExpr___replace_child, LOCATE_parser_prod, 10111); nit_exit(1);}
27631 /* Register variable[4]: Result */
27632 variable[4] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/;
27633 /* Register variable[4]: Result */
27634 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
27635 if (UNTAG_Bool(variable[4])) { /*if*/
27636 /* Register variable[4]: Result */
27637 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27638 if (UNTAG_Bool(variable[4])) { /*if*/
27639 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
27640 /* Register variable[4]: Result */
27641 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
27642 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFalseExpr___replace_child, LOCATE_parser_prod, 10115); nit_exit(1);}
27643 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/ = variable[2] /*new_child*/;
27644 } else { /*if*/
27645 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/ = NIT_NULL /*null*/;
27646 }
27647 goto return_label894;
27648 }
27649 return_label894: while(false);
27650 tracehead = trace.prev;
27651 return;
27652 }
27653 void parser_prod___AFalseExpr___visit_all(val_t self, val_t param0) {
27654 struct trace_t trace = {NULL, NULL, 10124, LOCATE_parser_prod___AFalseExpr___visit_all};
27655 val_t variable[4];
27656 struct WBT_ **closurevariable = NULL;
27657 trace.prev = tracehead; tracehead = &trace;
27658 trace.file = LOCATE_parser_prod;
27659 /* Register variable[0]: Local variable */
27660 variable[0] = self;
27661 /* Register variable[1]: Local variable */
27662 variable[1] = param0;
27663 /* Register variable[2]: Method return value and escape marker */
27664 /* Register variable[3]: Result */
27665 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/;
27666 /* Register variable[3]: Result */
27667 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::==*/)))))));
27668 if (UNTAG_Bool(variable[3])) { /*if*/
27669 /* Register variable[3]: Result */
27670 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/;
27671 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27672 }
27673 return_label895: while(false);
27674 tracehead = trace.prev;
27675 return;
27676 }
27677 void parser_prod___AFalseExpr___visit_all_reverse(val_t self, val_t param0) {
27678 struct trace_t trace = {NULL, NULL, 10131, LOCATE_parser_prod___AFalseExpr___visit_all_reverse};
27679 val_t variable[4];
27680 struct WBT_ **closurevariable = NULL;
27681 trace.prev = tracehead; tracehead = &trace;
27682 trace.file = LOCATE_parser_prod;
27683 /* Register variable[0]: Local variable */
27684 variable[0] = self;
27685 /* Register variable[1]: Local variable */
27686 variable[1] = param0;
27687 /* Register variable[2]: Method return value and escape marker */
27688 /* Register variable[3]: Result */
27689 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/;
27690 /* Register variable[3]: Result */
27691 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::==*/)))))));
27692 if (UNTAG_Bool(variable[3])) { /*if*/
27693 /* Register variable[3]: Result */
27694 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/;
27695 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27696 }
27697 return_label896: while(false);
27698 tracehead = trace.prev;
27699 return;
27700 }
27701 void parser_prod___AFalseExpr___empty_init(val_t self, int* init_table) {
27702 struct trace_t trace = {NULL, NULL, 10096, LOCATE_parser_prod___AFalseExpr___empty_init};
27703 val_t variable[2];
27704 struct WBT_ **closurevariable = NULL;
27705 trace.prev = tracehead; tracehead = &trace;
27706 trace.file = LOCATE_parser_prod;
27707 /* Register variable[0]: Local variable */
27708 variable[0] = self;
27709 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
27710 /* Register variable[1]: Method return value and escape marker */
27711 return_label897: while(false);
27712 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
27713 tracehead = trace.prev;
27714 return;
27715 }
27716 void parser_prod___AFalseExpr___init_afalseexpr(val_t self, val_t param0, int* init_table) {
27717 struct trace_t trace = {NULL, NULL, 10098, LOCATE_parser_prod___AFalseExpr___init_afalseexpr};
27718 val_t variable[4];
27719 struct WBT_ **closurevariable = NULL;
27720 trace.prev = tracehead; tracehead = &trace;
27721 trace.file = LOCATE_parser_prod;
27722 /* Register variable[0]: Local variable */
27723 variable[0] = self;
27724 /* Register variable[1]: Local variable */
27725 variable[1] = param0;
27726 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
27727 /* Register variable[2]: Method return value and escape marker */
27728 CALL_parser_prod___AFalseExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AFalseExpr::empty_init*/;
27729 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[0]) /*AFalseExpr::_n_kwfalse*/ = variable[1] /*n_kwfalse*/;
27730 /* Register variable[3]: Result */
27731 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwfalse*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwfalse*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwfalse*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwfalse*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwfalse*/)( variable[1] /*n_kwfalse*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27732 if (UNTAG_Bool(variable[3])) { /*if*/
27733 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwfalse*/)( variable[1] /*n_kwfalse*/, variable[0]) /*PNode::parent=*/;
27734 }
27735 return_label898: while(false);
27736 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
27737 tracehead = trace.prev;
27738 return;
27739 }
27740 void parser_prod___ANullExpr___n_kwnull__eq(val_t self, val_t param0) {
27741 struct trace_t trace = {NULL, NULL, 10139, LOCATE_parser_prod___ANullExpr___n_kwnull__eq};
27742 val_t variable[4];
27743 struct WBT_ **closurevariable = NULL;
27744 trace.prev = tracehead; tracehead = &trace;
27745 trace.file = LOCATE_parser_prod;
27746 /* Register variable[0]: Local variable */
27747 variable[0] = self;
27748 /* Register variable[1]: Local variable */
27749 variable[1] = param0;
27750 /* Register variable[2]: Method return value and escape marker */
27751 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/ = variable[1] /*n*/;
27752 /* Register variable[3]: Result */
27753 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27754 if (UNTAG_Bool(variable[3])) { /*if*/
27755 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
27756 }
27757 return_label899: while(false);
27758 tracehead = trace.prev;
27759 return;
27760 }
27761 void parser_prod___ANullExpr___replace_child(val_t self, val_t param0, val_t param1) {
27762 struct trace_t trace = {NULL, NULL, 10160, LOCATE_parser_prod___ANullExpr___replace_child};
27763 val_t variable[5];
27764 struct WBT_ **closurevariable = NULL;
27765 trace.prev = tracehead; tracehead = &trace;
27766 trace.file = LOCATE_parser_prod;
27767 /* Register variable[0]: Local variable */
27768 variable[0] = self;
27769 /* Register variable[1]: Local variable */
27770 variable[1] = param0;
27771 /* Register variable[2]: Local variable */
27772 variable[2] = param1;
27773 /* Register variable[3]: Method return value and escape marker */
27774 /* Register variable[4]: Result */
27775 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27776 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANullExpr___replace_child, LOCATE_parser_prod, 10162); nit_exit(1);}
27777 /* Register variable[4]: Result */
27778 variable[4] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/;
27779 /* Register variable[4]: Result */
27780 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
27781 if (UNTAG_Bool(variable[4])) { /*if*/
27782 /* Register variable[4]: Result */
27783 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27784 if (UNTAG_Bool(variable[4])) { /*if*/
27785 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
27786 /* Register variable[4]: Result */
27787 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
27788 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANullExpr___replace_child, LOCATE_parser_prod, 10166); nit_exit(1);}
27789 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/ = variable[2] /*new_child*/;
27790 } else { /*if*/
27791 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/ = NIT_NULL /*null*/;
27792 }
27793 goto return_label900;
27794 }
27795 return_label900: while(false);
27796 tracehead = trace.prev;
27797 return;
27798 }
27799 void parser_prod___ANullExpr___visit_all(val_t self, val_t param0) {
27800 struct trace_t trace = {NULL, NULL, 10175, LOCATE_parser_prod___ANullExpr___visit_all};
27801 val_t variable[4];
27802 struct WBT_ **closurevariable = NULL;
27803 trace.prev = tracehead; tracehead = &trace;
27804 trace.file = LOCATE_parser_prod;
27805 /* Register variable[0]: Local variable */
27806 variable[0] = self;
27807 /* Register variable[1]: Local variable */
27808 variable[1] = param0;
27809 /* Register variable[2]: Method return value and escape marker */
27810 /* Register variable[3]: Result */
27811 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/;
27812 /* Register variable[3]: Result */
27813 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::==*/)))))));
27814 if (UNTAG_Bool(variable[3])) { /*if*/
27815 /* Register variable[3]: Result */
27816 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/;
27817 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27818 }
27819 return_label901: while(false);
27820 tracehead = trace.prev;
27821 return;
27822 }
27823 void parser_prod___ANullExpr___visit_all_reverse(val_t self, val_t param0) {
27824 struct trace_t trace = {NULL, NULL, 10182, LOCATE_parser_prod___ANullExpr___visit_all_reverse};
27825 val_t variable[4];
27826 struct WBT_ **closurevariable = NULL;
27827 trace.prev = tracehead; tracehead = &trace;
27828 trace.file = LOCATE_parser_prod;
27829 /* Register variable[0]: Local variable */
27830 variable[0] = self;
27831 /* Register variable[1]: Local variable */
27832 variable[1] = param0;
27833 /* Register variable[2]: Method return value and escape marker */
27834 /* Register variable[3]: Result */
27835 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/;
27836 /* Register variable[3]: Result */
27837 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::==*/)))))));
27838 if (UNTAG_Bool(variable[3])) { /*if*/
27839 /* Register variable[3]: Result */
27840 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/;
27841 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27842 }
27843 return_label902: while(false);
27844 tracehead = trace.prev;
27845 return;
27846 }
27847 void parser_prod___ANullExpr___empty_init(val_t self, int* init_table) {
27848 struct trace_t trace = {NULL, NULL, 10147, LOCATE_parser_prod___ANullExpr___empty_init};
27849 val_t variable[2];
27850 struct WBT_ **closurevariable = NULL;
27851 trace.prev = tracehead; tracehead = &trace;
27852 trace.file = LOCATE_parser_prod;
27853 /* Register variable[0]: Local variable */
27854 variable[0] = self;
27855 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i]) return;
27856 /* Register variable[1]: Method return value and escape marker */
27857 return_label903: while(false);
27858 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
27859 tracehead = trace.prev;
27860 return;
27861 }
27862 void parser_prod___ANullExpr___init_anullexpr(val_t self, val_t param0, int* init_table) {
27863 struct trace_t trace = {NULL, NULL, 10149, LOCATE_parser_prod___ANullExpr___init_anullexpr};
27864 val_t variable[4];
27865 struct WBT_ **closurevariable = NULL;
27866 trace.prev = tracehead; tracehead = &trace;
27867 trace.file = LOCATE_parser_prod;
27868 /* Register variable[0]: Local variable */
27869 variable[0] = self;
27870 /* Register variable[1]: Local variable */
27871 variable[1] = param0;
27872 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i]) return;
27873 /* Register variable[2]: Method return value and escape marker */
27874 CALL_parser_prod___ANullExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ANullExpr::empty_init*/;
27875 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[0]) /*ANullExpr::_n_kwnull*/ = variable[1] /*n_kwnull*/;
27876 /* Register variable[3]: Result */
27877 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnull*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwnull*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwnull*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnull*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwnull*/)( variable[1] /*n_kwnull*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27878 if (UNTAG_Bool(variable[3])) { /*if*/
27879 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnull*/)( variable[1] /*n_kwnull*/, variable[0]) /*PNode::parent=*/;
27880 }
27881 return_label904: while(false);
27882 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
27883 tracehead = trace.prev;
27884 return;
27885 }
27886 void parser_prod___AIntExpr___n_number__eq(val_t self, val_t param0) {
27887 struct trace_t trace = {NULL, NULL, 10190, LOCATE_parser_prod___AIntExpr___n_number__eq};
27888 val_t variable[4];
27889 struct WBT_ **closurevariable = NULL;
27890 trace.prev = tracehead; tracehead = &trace;
27891 trace.file = LOCATE_parser_prod;
27892 /* Register variable[0]: Local variable */
27893 variable[0] = self;
27894 /* Register variable[1]: Local variable */
27895 variable[1] = param0;
27896 /* Register variable[2]: Method return value and escape marker */
27897 ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/ = variable[1] /*n*/;
27898 /* Register variable[3]: Result */
27899 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27900 if (UNTAG_Bool(variable[3])) { /*if*/
27901 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
27902 }
27903 return_label905: while(false);
27904 tracehead = trace.prev;
27905 return;
27906 }
27907 void parser_prod___AIntExpr___replace_child(val_t self, val_t param0, val_t param1) {
27908 struct trace_t trace = {NULL, NULL, 10211, LOCATE_parser_prod___AIntExpr___replace_child};
27909 val_t variable[5];
27910 struct WBT_ **closurevariable = NULL;
27911 trace.prev = tracehead; tracehead = &trace;
27912 trace.file = LOCATE_parser_prod;
27913 /* Register variable[0]: Local variable */
27914 variable[0] = self;
27915 /* Register variable[1]: Local variable */
27916 variable[1] = param0;
27917 /* Register variable[2]: Local variable */
27918 variable[2] = param1;
27919 /* Register variable[3]: Method return value and escape marker */
27920 /* Register variable[4]: Result */
27921 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27922 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntExpr___replace_child, LOCATE_parser_prod, 10213); nit_exit(1);}
27923 /* Register variable[4]: Result */
27924 variable[4] = ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/;
27925 /* Register variable[4]: Result */
27926 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
27927 if (UNTAG_Bool(variable[4])) { /*if*/
27928 /* Register variable[4]: Result */
27929 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
27930 if (UNTAG_Bool(variable[4])) { /*if*/
27931 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
27932 /* Register variable[4]: Result */
27933 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
27934 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntExpr___replace_child, LOCATE_parser_prod, 10217); nit_exit(1);}
27935 ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/ = variable[2] /*new_child*/;
27936 } else { /*if*/
27937 ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/ = NIT_NULL /*null*/;
27938 }
27939 goto return_label906;
27940 }
27941 return_label906: while(false);
27942 tracehead = trace.prev;
27943 return;
27944 }
27945 void parser_prod___AIntExpr___visit_all(val_t self, val_t param0) {
27946 struct trace_t trace = {NULL, NULL, 10226, LOCATE_parser_prod___AIntExpr___visit_all};
27947 val_t variable[4];
27948 struct WBT_ **closurevariable = NULL;
27949 trace.prev = tracehead; tracehead = &trace;
27950 trace.file = LOCATE_parser_prod;
27951 /* Register variable[0]: Local variable */
27952 variable[0] = self;
27953 /* Register variable[1]: Local variable */
27954 variable[1] = param0;
27955 /* Register variable[2]: Method return value and escape marker */
27956 /* Register variable[3]: Result */
27957 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/;
27958 /* Register variable[3]: Result */
27959 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::==*/)))))));
27960 if (UNTAG_Bool(variable[3])) { /*if*/
27961 /* Register variable[3]: Result */
27962 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/;
27963 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27964 }
27965 return_label907: while(false);
27966 tracehead = trace.prev;
27967 return;
27968 }
27969 void parser_prod___AIntExpr___visit_all_reverse(val_t self, val_t param0) {
27970 struct trace_t trace = {NULL, NULL, 10233, LOCATE_parser_prod___AIntExpr___visit_all_reverse};
27971 val_t variable[4];
27972 struct WBT_ **closurevariable = NULL;
27973 trace.prev = tracehead; tracehead = &trace;
27974 trace.file = LOCATE_parser_prod;
27975 /* Register variable[0]: Local variable */
27976 variable[0] = self;
27977 /* Register variable[1]: Local variable */
27978 variable[1] = param0;
27979 /* Register variable[2]: Method return value and escape marker */
27980 /* Register variable[3]: Result */
27981 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/;
27982 /* Register variable[3]: Result */
27983 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::==*/)))))));
27984 if (UNTAG_Bool(variable[3])) { /*if*/
27985 /* Register variable[3]: Result */
27986 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/;
27987 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
27988 }
27989 return_label908: while(false);
27990 tracehead = trace.prev;
27991 return;
27992 }
27993 void parser_prod___AIntExpr___empty_init(val_t self, int* init_table) {
27994 struct trace_t trace = {NULL, NULL, 10198, LOCATE_parser_prod___AIntExpr___empty_init};
27995 val_t variable[2];
27996 struct WBT_ **closurevariable = NULL;
27997 trace.prev = tracehead; tracehead = &trace;
27998 trace.file = LOCATE_parser_prod;
27999 /* Register variable[0]: Local variable */
28000 variable[0] = self;
28001 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i]) return;
28002 /* Register variable[1]: Method return value and escape marker */
28003 return_label909: while(false);
28004 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
28005 tracehead = trace.prev;
28006 return;
28007 }
28008 void parser_prod___AIntExpr___init_aintexpr(val_t self, val_t param0, int* init_table) {
28009 struct trace_t trace = {NULL, NULL, 10200, LOCATE_parser_prod___AIntExpr___init_aintexpr};
28010 val_t variable[4];
28011 struct WBT_ **closurevariable = NULL;
28012 trace.prev = tracehead; tracehead = &trace;
28013 trace.file = LOCATE_parser_prod;
28014 /* Register variable[0]: Local variable */
28015 variable[0] = self;
28016 /* Register variable[1]: Local variable */
28017 variable[1] = param0;
28018 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i]) return;
28019 /* Register variable[2]: Method return value and escape marker */
28020 CALL_parser_prod___AIntExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AIntExpr::empty_init*/;
28021 ATTR_parser_nodes___AIntExpr____n_number(variable[0]) /*AIntExpr::_n_number*/ = variable[1] /*n_number*/;
28022 /* Register variable[3]: Result */
28023 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_number*/ == NIT_NULL /*null*/) || (( variable[1] /*n_number*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_number*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_number*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_number*/)( variable[1] /*n_number*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28024 if (UNTAG_Bool(variable[3])) { /*if*/
28025 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_number*/)( variable[1] /*n_number*/, variable[0]) /*PNode::parent=*/;
28026 }
28027 return_label910: while(false);
28028 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
28029 tracehead = trace.prev;
28030 return;
28031 }
28032 void parser_prod___AFloatExpr___n_float__eq(val_t self, val_t param0) {
28033 struct trace_t trace = {NULL, NULL, 10241, LOCATE_parser_prod___AFloatExpr___n_float__eq};
28034 val_t variable[4];
28035 struct WBT_ **closurevariable = NULL;
28036 trace.prev = tracehead; tracehead = &trace;
28037 trace.file = LOCATE_parser_prod;
28038 /* Register variable[0]: Local variable */
28039 variable[0] = self;
28040 /* Register variable[1]: Local variable */
28041 variable[1] = param0;
28042 /* Register variable[2]: Method return value and escape marker */
28043 ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/ = variable[1] /*n*/;
28044 /* Register variable[3]: Result */
28045 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28046 if (UNTAG_Bool(variable[3])) { /*if*/
28047 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
28048 }
28049 return_label911: while(false);
28050 tracehead = trace.prev;
28051 return;
28052 }
28053 void parser_prod___AFloatExpr___replace_child(val_t self, val_t param0, val_t param1) {
28054 struct trace_t trace = {NULL, NULL, 10262, LOCATE_parser_prod___AFloatExpr___replace_child};
28055 val_t variable[5];
28056 struct WBT_ **closurevariable = NULL;
28057 trace.prev = tracehead; tracehead = &trace;
28058 trace.file = LOCATE_parser_prod;
28059 /* Register variable[0]: Local variable */
28060 variable[0] = self;
28061 /* Register variable[1]: Local variable */
28062 variable[1] = param0;
28063 /* Register variable[2]: Local variable */
28064 variable[2] = param1;
28065 /* Register variable[3]: Method return value and escape marker */
28066 /* Register variable[4]: Result */
28067 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28068 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFloatExpr___replace_child, LOCATE_parser_prod, 10264); nit_exit(1);}
28069 /* Register variable[4]: Result */
28070 variable[4] = ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/;
28071 /* Register variable[4]: Result */
28072 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
28073 if (UNTAG_Bool(variable[4])) { /*if*/
28074 /* Register variable[4]: Result */
28075 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28076 if (UNTAG_Bool(variable[4])) { /*if*/
28077 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
28078 /* Register variable[4]: Result */
28079 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
28080 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFloatExpr___replace_child, LOCATE_parser_prod, 10268); nit_exit(1);}
28081 ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/ = variable[2] /*new_child*/;
28082 } else { /*if*/
28083 ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/ = NIT_NULL /*null*/;
28084 }
28085 goto return_label912;
28086 }
28087 return_label912: while(false);
28088 tracehead = trace.prev;
28089 return;
28090 }
28091 void parser_prod___AFloatExpr___visit_all(val_t self, val_t param0) {
28092 struct trace_t trace = {NULL, NULL, 10277, LOCATE_parser_prod___AFloatExpr___visit_all};
28093 val_t variable[4];
28094 struct WBT_ **closurevariable = NULL;
28095 trace.prev = tracehead; tracehead = &trace;
28096 trace.file = LOCATE_parser_prod;
28097 /* Register variable[0]: Local variable */
28098 variable[0] = self;
28099 /* Register variable[1]: Local variable */
28100 variable[1] = param0;
28101 /* Register variable[2]: Method return value and escape marker */
28102 /* Register variable[3]: Result */
28103 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/;
28104 /* Register variable[3]: Result */
28105 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::==*/)))))));
28106 if (UNTAG_Bool(variable[3])) { /*if*/
28107 /* Register variable[3]: Result */
28108 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/;
28109 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28110 }
28111 return_label913: while(false);
28112 tracehead = trace.prev;
28113 return;
28114 }
28115 void parser_prod___AFloatExpr___visit_all_reverse(val_t self, val_t param0) {
28116 struct trace_t trace = {NULL, NULL, 10284, LOCATE_parser_prod___AFloatExpr___visit_all_reverse};
28117 val_t variable[4];
28118 struct WBT_ **closurevariable = NULL;
28119 trace.prev = tracehead; tracehead = &trace;
28120 trace.file = LOCATE_parser_prod;
28121 /* Register variable[0]: Local variable */
28122 variable[0] = self;
28123 /* Register variable[1]: Local variable */
28124 variable[1] = param0;
28125 /* Register variable[2]: Method return value and escape marker */
28126 /* Register variable[3]: Result */
28127 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/;
28128 /* Register variable[3]: Result */
28129 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::==*/)))))));
28130 if (UNTAG_Bool(variable[3])) { /*if*/
28131 /* Register variable[3]: Result */
28132 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/;
28133 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28134 }
28135 return_label914: while(false);
28136 tracehead = trace.prev;
28137 return;
28138 }
28139 void parser_prod___AFloatExpr___empty_init(val_t self, int* init_table) {
28140 struct trace_t trace = {NULL, NULL, 10249, LOCATE_parser_prod___AFloatExpr___empty_init};
28141 val_t variable[2];
28142 struct WBT_ **closurevariable = NULL;
28143 trace.prev = tracehead; tracehead = &trace;
28144 trace.file = LOCATE_parser_prod;
28145 /* Register variable[0]: Local variable */
28146 variable[0] = self;
28147 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
28148 /* Register variable[1]: Method return value and escape marker */
28149 return_label915: while(false);
28150 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
28151 tracehead = trace.prev;
28152 return;
28153 }
28154 void parser_prod___AFloatExpr___init_afloatexpr(val_t self, val_t param0, int* init_table) {
28155 struct trace_t trace = {NULL, NULL, 10251, LOCATE_parser_prod___AFloatExpr___init_afloatexpr};
28156 val_t variable[4];
28157 struct WBT_ **closurevariable = NULL;
28158 trace.prev = tracehead; tracehead = &trace;
28159 trace.file = LOCATE_parser_prod;
28160 /* Register variable[0]: Local variable */
28161 variable[0] = self;
28162 /* Register variable[1]: Local variable */
28163 variable[1] = param0;
28164 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
28165 /* Register variable[2]: Method return value and escape marker */
28166 CALL_parser_prod___AFloatExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AFloatExpr::empty_init*/;
28167 ATTR_parser_nodes___AFloatExpr____n_float(variable[0]) /*AFloatExpr::_n_float*/ = variable[1] /*n_float*/;
28168 /* Register variable[3]: Result */
28169 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_float*/ == NIT_NULL /*null*/) || (( variable[1] /*n_float*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_float*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_float*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_float*/)( variable[1] /*n_float*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28170 if (UNTAG_Bool(variable[3])) { /*if*/
28171 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_float*/)( variable[1] /*n_float*/, variable[0]) /*PNode::parent=*/;
28172 }
28173 return_label916: while(false);
28174 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
28175 tracehead = trace.prev;
28176 return;
28177 }
28178 void parser_prod___ACharExpr___n_char__eq(val_t self, val_t param0) {
28179 struct trace_t trace = {NULL, NULL, 10292, LOCATE_parser_prod___ACharExpr___n_char__eq};
28180 val_t variable[4];
28181 struct WBT_ **closurevariable = NULL;
28182 trace.prev = tracehead; tracehead = &trace;
28183 trace.file = LOCATE_parser_prod;
28184 /* Register variable[0]: Local variable */
28185 variable[0] = self;
28186 /* Register variable[1]: Local variable */
28187 variable[1] = param0;
28188 /* Register variable[2]: Method return value and escape marker */
28189 ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/ = variable[1] /*n*/;
28190 /* Register variable[3]: Result */
28191 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28192 if (UNTAG_Bool(variable[3])) { /*if*/
28193 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
28194 }
28195 return_label917: while(false);
28196 tracehead = trace.prev;
28197 return;
28198 }
28199 void parser_prod___ACharExpr___replace_child(val_t self, val_t param0, val_t param1) {
28200 struct trace_t trace = {NULL, NULL, 10313, LOCATE_parser_prod___ACharExpr___replace_child};
28201 val_t variable[5];
28202 struct WBT_ **closurevariable = NULL;
28203 trace.prev = tracehead; tracehead = &trace;
28204 trace.file = LOCATE_parser_prod;
28205 /* Register variable[0]: Local variable */
28206 variable[0] = self;
28207 /* Register variable[1]: Local variable */
28208 variable[1] = param0;
28209 /* Register variable[2]: Local variable */
28210 variable[2] = param1;
28211 /* Register variable[3]: Method return value and escape marker */
28212 /* Register variable[4]: Result */
28213 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28214 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACharExpr___replace_child, LOCATE_parser_prod, 10315); nit_exit(1);}
28215 /* Register variable[4]: Result */
28216 variable[4] = ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/;
28217 /* Register variable[4]: Result */
28218 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
28219 if (UNTAG_Bool(variable[4])) { /*if*/
28220 /* Register variable[4]: Result */
28221 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28222 if (UNTAG_Bool(variable[4])) { /*if*/
28223 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
28224 /* Register variable[4]: Result */
28225 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
28226 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACharExpr___replace_child, LOCATE_parser_prod, 10319); nit_exit(1);}
28227 ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/ = variable[2] /*new_child*/;
28228 } else { /*if*/
28229 ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/ = NIT_NULL /*null*/;
28230 }
28231 goto return_label918;
28232 }
28233 return_label918: while(false);
28234 tracehead = trace.prev;
28235 return;
28236 }
28237 void parser_prod___ACharExpr___visit_all(val_t self, val_t param0) {
28238 struct trace_t trace = {NULL, NULL, 10328, LOCATE_parser_prod___ACharExpr___visit_all};
28239 val_t variable[4];
28240 struct WBT_ **closurevariable = NULL;
28241 trace.prev = tracehead; tracehead = &trace;
28242 trace.file = LOCATE_parser_prod;
28243 /* Register variable[0]: Local variable */
28244 variable[0] = self;
28245 /* Register variable[1]: Local variable */
28246 variable[1] = param0;
28247 /* Register variable[2]: Method return value and escape marker */
28248 /* Register variable[3]: Result */
28249 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/;
28250 /* Register variable[3]: Result */
28251 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::==*/)))))));
28252 if (UNTAG_Bool(variable[3])) { /*if*/
28253 /* Register variable[3]: Result */
28254 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/;
28255 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28256 }
28257 return_label919: while(false);
28258 tracehead = trace.prev;
28259 return;
28260 }
28261 void parser_prod___ACharExpr___visit_all_reverse(val_t self, val_t param0) {
28262 struct trace_t trace = {NULL, NULL, 10335, LOCATE_parser_prod___ACharExpr___visit_all_reverse};
28263 val_t variable[4];
28264 struct WBT_ **closurevariable = NULL;
28265 trace.prev = tracehead; tracehead = &trace;
28266 trace.file = LOCATE_parser_prod;
28267 /* Register variable[0]: Local variable */
28268 variable[0] = self;
28269 /* Register variable[1]: Local variable */
28270 variable[1] = param0;
28271 /* Register variable[2]: Method return value and escape marker */
28272 /* Register variable[3]: Result */
28273 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/;
28274 /* Register variable[3]: Result */
28275 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::==*/)))))));
28276 if (UNTAG_Bool(variable[3])) { /*if*/
28277 /* Register variable[3]: Result */
28278 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/;
28279 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28280 }
28281 return_label920: while(false);
28282 tracehead = trace.prev;
28283 return;
28284 }
28285 void parser_prod___ACharExpr___empty_init(val_t self, int* init_table) {
28286 struct trace_t trace = {NULL, NULL, 10300, LOCATE_parser_prod___ACharExpr___empty_init};
28287 val_t variable[2];
28288 struct WBT_ **closurevariable = NULL;
28289 trace.prev = tracehead; tracehead = &trace;
28290 trace.file = LOCATE_parser_prod;
28291 /* Register variable[0]: Local variable */
28292 variable[0] = self;
28293 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i]) return;
28294 /* Register variable[1]: Method return value and escape marker */
28295 return_label921: while(false);
28296 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
28297 tracehead = trace.prev;
28298 return;
28299 }
28300 void parser_prod___ACharExpr___init_acharexpr(val_t self, val_t param0, int* init_table) {
28301 struct trace_t trace = {NULL, NULL, 10302, LOCATE_parser_prod___ACharExpr___init_acharexpr};
28302 val_t variable[4];
28303 struct WBT_ **closurevariable = NULL;
28304 trace.prev = tracehead; tracehead = &trace;
28305 trace.file = LOCATE_parser_prod;
28306 /* Register variable[0]: Local variable */
28307 variable[0] = self;
28308 /* Register variable[1]: Local variable */
28309 variable[1] = param0;
28310 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i]) return;
28311 /* Register variable[2]: Method return value and escape marker */
28312 CALL_parser_prod___ACharExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ACharExpr::empty_init*/;
28313 ATTR_parser_nodes___ACharExpr____n_char(variable[0]) /*ACharExpr::_n_char*/ = variable[1] /*n_char*/;
28314 /* Register variable[3]: Result */
28315 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_char*/ == NIT_NULL /*null*/) || (( variable[1] /*n_char*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_char*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_char*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_char*/)( variable[1] /*n_char*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28316 if (UNTAG_Bool(variable[3])) { /*if*/
28317 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_char*/)( variable[1] /*n_char*/, variable[0]) /*PNode::parent=*/;
28318 }
28319 return_label922: while(false);
28320 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
28321 tracehead = trace.prev;
28322 return;
28323 }
28324 void parser_prod___AStringExpr___n_string__eq(val_t self, val_t param0) {
28325 struct trace_t trace = {NULL, NULL, 10343, LOCATE_parser_prod___AStringExpr___n_string__eq};
28326 val_t variable[4];
28327 struct WBT_ **closurevariable = NULL;
28328 trace.prev = tracehead; tracehead = &trace;
28329 trace.file = LOCATE_parser_prod;
28330 /* Register variable[0]: Local variable */
28331 variable[0] = self;
28332 /* Register variable[1]: Local variable */
28333 variable[1] = param0;
28334 /* Register variable[2]: Method return value and escape marker */
28335 ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/ = variable[1] /*n*/;
28336 /* Register variable[3]: Result */
28337 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28338 if (UNTAG_Bool(variable[3])) { /*if*/
28339 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
28340 }
28341 return_label923: while(false);
28342 tracehead = trace.prev;
28343 return;
28344 }
28345 void parser_prod___AStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
28346 struct trace_t trace = {NULL, NULL, 10364, LOCATE_parser_prod___AStringExpr___replace_child};
28347 val_t variable[5];
28348 struct WBT_ **closurevariable = NULL;
28349 trace.prev = tracehead; tracehead = &trace;
28350 trace.file = LOCATE_parser_prod;
28351 /* Register variable[0]: Local variable */
28352 variable[0] = self;
28353 /* Register variable[1]: Local variable */
28354 variable[1] = param0;
28355 /* Register variable[2]: Local variable */
28356 variable[2] = param1;
28357 /* Register variable[3]: Method return value and escape marker */
28358 /* Register variable[4]: Result */
28359 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28360 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStringExpr___replace_child, LOCATE_parser_prod, 10366); nit_exit(1);}
28361 /* Register variable[4]: Result */
28362 variable[4] = ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/;
28363 /* Register variable[4]: Result */
28364 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
28365 if (UNTAG_Bool(variable[4])) { /*if*/
28366 /* Register variable[4]: Result */
28367 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28368 if (UNTAG_Bool(variable[4])) { /*if*/
28369 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
28370 /* Register variable[4]: Result */
28371 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
28372 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStringExpr___replace_child, LOCATE_parser_prod, 10370); nit_exit(1);}
28373 ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/ = variable[2] /*new_child*/;
28374 } else { /*if*/
28375 ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/ = NIT_NULL /*null*/;
28376 }
28377 goto return_label924;
28378 }
28379 return_label924: while(false);
28380 tracehead = trace.prev;
28381 return;
28382 }
28383 void parser_prod___AStringExpr___visit_all(val_t self, val_t param0) {
28384 struct trace_t trace = {NULL, NULL, 10379, LOCATE_parser_prod___AStringExpr___visit_all};
28385 val_t variable[4];
28386 struct WBT_ **closurevariable = NULL;
28387 trace.prev = tracehead; tracehead = &trace;
28388 trace.file = LOCATE_parser_prod;
28389 /* Register variable[0]: Local variable */
28390 variable[0] = self;
28391 /* Register variable[1]: Local variable */
28392 variable[1] = param0;
28393 /* Register variable[2]: Method return value and escape marker */
28394 /* Register variable[3]: Result */
28395 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/;
28396 /* Register variable[3]: Result */
28397 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::==*/)))))));
28398 if (UNTAG_Bool(variable[3])) { /*if*/
28399 /* Register variable[3]: Result */
28400 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/;
28401 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28402 }
28403 return_label925: while(false);
28404 tracehead = trace.prev;
28405 return;
28406 }
28407 void parser_prod___AStringExpr___visit_all_reverse(val_t self, val_t param0) {
28408 struct trace_t trace = {NULL, NULL, 10386, LOCATE_parser_prod___AStringExpr___visit_all_reverse};
28409 val_t variable[4];
28410 struct WBT_ **closurevariable = NULL;
28411 trace.prev = tracehead; tracehead = &trace;
28412 trace.file = LOCATE_parser_prod;
28413 /* Register variable[0]: Local variable */
28414 variable[0] = self;
28415 /* Register variable[1]: Local variable */
28416 variable[1] = param0;
28417 /* Register variable[2]: Method return value and escape marker */
28418 /* Register variable[3]: Result */
28419 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/;
28420 /* Register variable[3]: Result */
28421 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::==*/)))))));
28422 if (UNTAG_Bool(variable[3])) { /*if*/
28423 /* Register variable[3]: Result */
28424 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/;
28425 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28426 }
28427 return_label926: while(false);
28428 tracehead = trace.prev;
28429 return;
28430 }
28431 void parser_prod___AStringExpr___empty_init(val_t self, int* init_table) {
28432 struct trace_t trace = {NULL, NULL, 10351, LOCATE_parser_prod___AStringExpr___empty_init};
28433 val_t variable[2];
28434 struct WBT_ **closurevariable = NULL;
28435 trace.prev = tracehead; tracehead = &trace;
28436 trace.file = LOCATE_parser_prod;
28437 /* Register variable[0]: Local variable */
28438 variable[0] = self;
28439 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i]) return;
28440 /* Register variable[1]: Method return value and escape marker */
28441 return_label927: while(false);
28442 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
28443 tracehead = trace.prev;
28444 return;
28445 }
28446 void parser_prod___AStringExpr___init_astringexpr(val_t self, val_t param0, int* init_table) {
28447 struct trace_t trace = {NULL, NULL, 10353, LOCATE_parser_prod___AStringExpr___init_astringexpr};
28448 val_t variable[4];
28449 struct WBT_ **closurevariable = NULL;
28450 trace.prev = tracehead; tracehead = &trace;
28451 trace.file = LOCATE_parser_prod;
28452 /* Register variable[0]: Local variable */
28453 variable[0] = self;
28454 /* Register variable[1]: Local variable */
28455 variable[1] = param0;
28456 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i]) return;
28457 /* Register variable[2]: Method return value and escape marker */
28458 CALL_parser_prod___AStringExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AStringExpr::empty_init*/;
28459 ATTR_parser_nodes___AStringExpr____n_string(variable[0]) /*AStringExpr::_n_string*/ = variable[1] /*n_string*/;
28460 /* Register variable[3]: Result */
28461 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ == NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28462 if (UNTAG_Bool(variable[3])) { /*if*/
28463 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[0]) /*PNode::parent=*/;
28464 }
28465 return_label928: while(false);
28466 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
28467 tracehead = trace.prev;
28468 return;
28469 }
28470 void parser_prod___AStartStringExpr___n_string__eq(val_t self, val_t param0) {
28471 struct trace_t trace = {NULL, NULL, 10394, LOCATE_parser_prod___AStartStringExpr___n_string__eq};
28472 val_t variable[4];
28473 struct WBT_ **closurevariable = NULL;
28474 trace.prev = tracehead; tracehead = &trace;
28475 trace.file = LOCATE_parser_prod;
28476 /* Register variable[0]: Local variable */
28477 variable[0] = self;
28478 /* Register variable[1]: Local variable */
28479 variable[1] = param0;
28480 /* Register variable[2]: Method return value and escape marker */
28481 ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/ = variable[1] /*n*/;
28482 /* Register variable[3]: Result */
28483 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28484 if (UNTAG_Bool(variable[3])) { /*if*/
28485 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
28486 }
28487 return_label929: while(false);
28488 tracehead = trace.prev;
28489 return;
28490 }
28491 void parser_prod___AStartStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
28492 struct trace_t trace = {NULL, NULL, 10415, LOCATE_parser_prod___AStartStringExpr___replace_child};
28493 val_t variable[5];
28494 struct WBT_ **closurevariable = NULL;
28495 trace.prev = tracehead; tracehead = &trace;
28496 trace.file = LOCATE_parser_prod;
28497 /* Register variable[0]: Local variable */
28498 variable[0] = self;
28499 /* Register variable[1]: Local variable */
28500 variable[1] = param0;
28501 /* Register variable[2]: Local variable */
28502 variable[2] = param1;
28503 /* Register variable[3]: Method return value and escape marker */
28504 /* Register variable[4]: Result */
28505 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28506 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStartStringExpr___replace_child, LOCATE_parser_prod, 10417); nit_exit(1);}
28507 /* Register variable[4]: Result */
28508 variable[4] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/;
28509 /* Register variable[4]: Result */
28510 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
28511 if (UNTAG_Bool(variable[4])) { /*if*/
28512 /* Register variable[4]: Result */
28513 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28514 if (UNTAG_Bool(variable[4])) { /*if*/
28515 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
28516 /* Register variable[4]: Result */
28517 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
28518 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStartStringExpr___replace_child, LOCATE_parser_prod, 10421); nit_exit(1);}
28519 ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/ = variable[2] /*new_child*/;
28520 } else { /*if*/
28521 ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/ = NIT_NULL /*null*/;
28522 }
28523 goto return_label930;
28524 }
28525 return_label930: while(false);
28526 tracehead = trace.prev;
28527 return;
28528 }
28529 void parser_prod___AStartStringExpr___visit_all(val_t self, val_t param0) {
28530 struct trace_t trace = {NULL, NULL, 10430, LOCATE_parser_prod___AStartStringExpr___visit_all};
28531 val_t variable[4];
28532 struct WBT_ **closurevariable = NULL;
28533 trace.prev = tracehead; tracehead = &trace;
28534 trace.file = LOCATE_parser_prod;
28535 /* Register variable[0]: Local variable */
28536 variable[0] = self;
28537 /* Register variable[1]: Local variable */
28538 variable[1] = param0;
28539 /* Register variable[2]: Method return value and escape marker */
28540 /* Register variable[3]: Result */
28541 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/;
28542 /* Register variable[3]: Result */
28543 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::==*/)))))));
28544 if (UNTAG_Bool(variable[3])) { /*if*/
28545 /* Register variable[3]: Result */
28546 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/;
28547 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28548 }
28549 return_label931: while(false);
28550 tracehead = trace.prev;
28551 return;
28552 }
28553 void parser_prod___AStartStringExpr___visit_all_reverse(val_t self, val_t param0) {
28554 struct trace_t trace = {NULL, NULL, 10437, LOCATE_parser_prod___AStartStringExpr___visit_all_reverse};
28555 val_t variable[4];
28556 struct WBT_ **closurevariable = NULL;
28557 trace.prev = tracehead; tracehead = &trace;
28558 trace.file = LOCATE_parser_prod;
28559 /* Register variable[0]: Local variable */
28560 variable[0] = self;
28561 /* Register variable[1]: Local variable */
28562 variable[1] = param0;
28563 /* Register variable[2]: Method return value and escape marker */
28564 /* Register variable[3]: Result */
28565 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/;
28566 /* Register variable[3]: Result */
28567 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::==*/)))))));
28568 if (UNTAG_Bool(variable[3])) { /*if*/
28569 /* Register variable[3]: Result */
28570 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/;
28571 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28572 }
28573 return_label932: while(false);
28574 tracehead = trace.prev;
28575 return;
28576 }
28577 void parser_prod___AStartStringExpr___empty_init(val_t self, int* init_table) {
28578 struct trace_t trace = {NULL, NULL, 10402, LOCATE_parser_prod___AStartStringExpr___empty_init};
28579 val_t variable[2];
28580 struct WBT_ **closurevariable = NULL;
28581 trace.prev = tracehead; tracehead = &trace;
28582 trace.file = LOCATE_parser_prod;
28583 /* Register variable[0]: Local variable */
28584 variable[0] = self;
28585 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
28586 /* Register variable[1]: Method return value and escape marker */
28587 return_label933: while(false);
28588 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
28589 tracehead = trace.prev;
28590 return;
28591 }
28592 void parser_prod___AStartStringExpr___init_astartstringexpr(val_t self, val_t param0, int* init_table) {
28593 struct trace_t trace = {NULL, NULL, 10404, LOCATE_parser_prod___AStartStringExpr___init_astartstringexpr};
28594 val_t variable[4];
28595 struct WBT_ **closurevariable = NULL;
28596 trace.prev = tracehead; tracehead = &trace;
28597 trace.file = LOCATE_parser_prod;
28598 /* Register variable[0]: Local variable */
28599 variable[0] = self;
28600 /* Register variable[1]: Local variable */
28601 variable[1] = param0;
28602 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
28603 /* Register variable[2]: Method return value and escape marker */
28604 CALL_parser_prod___AStartStringExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AStartStringExpr::empty_init*/;
28605 ATTR_parser_nodes___AStartStringExpr____n_string(variable[0]) /*AStartStringExpr::_n_string*/ = variable[1] /*n_string*/;
28606 /* Register variable[3]: Result */
28607 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ == NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28608 if (UNTAG_Bool(variable[3])) { /*if*/
28609 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[0]) /*PNode::parent=*/;
28610 }
28611 return_label934: while(false);
28612 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
28613 tracehead = trace.prev;
28614 return;
28615 }
28616 void parser_prod___AMidStringExpr___n_string__eq(val_t self, val_t param0) {
28617 struct trace_t trace = {NULL, NULL, 10445, LOCATE_parser_prod___AMidStringExpr___n_string__eq};
28618 val_t variable[4];
28619 struct WBT_ **closurevariable = NULL;
28620 trace.prev = tracehead; tracehead = &trace;
28621 trace.file = LOCATE_parser_prod;
28622 /* Register variable[0]: Local variable */
28623 variable[0] = self;
28624 /* Register variable[1]: Local variable */
28625 variable[1] = param0;
28626 /* Register variable[2]: Method return value and escape marker */
28627 ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/ = variable[1] /*n*/;
28628 /* Register variable[3]: Result */
28629 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28630 if (UNTAG_Bool(variable[3])) { /*if*/
28631 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
28632 }
28633 return_label935: while(false);
28634 tracehead = trace.prev;
28635 return;
28636 }
28637 void parser_prod___AMidStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
28638 struct trace_t trace = {NULL, NULL, 10466, LOCATE_parser_prod___AMidStringExpr___replace_child};
28639 val_t variable[5];
28640 struct WBT_ **closurevariable = NULL;
28641 trace.prev = tracehead; tracehead = &trace;
28642 trace.file = LOCATE_parser_prod;
28643 /* Register variable[0]: Local variable */
28644 variable[0] = self;
28645 /* Register variable[1]: Local variable */
28646 variable[1] = param0;
28647 /* Register variable[2]: Local variable */
28648 variable[2] = param1;
28649 /* Register variable[3]: Method return value and escape marker */
28650 /* Register variable[4]: Result */
28651 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28652 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMidStringExpr___replace_child, LOCATE_parser_prod, 10468); nit_exit(1);}
28653 /* Register variable[4]: Result */
28654 variable[4] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/;
28655 /* Register variable[4]: Result */
28656 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
28657 if (UNTAG_Bool(variable[4])) { /*if*/
28658 /* Register variable[4]: Result */
28659 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28660 if (UNTAG_Bool(variable[4])) { /*if*/
28661 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
28662 /* Register variable[4]: Result */
28663 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
28664 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMidStringExpr___replace_child, LOCATE_parser_prod, 10472); nit_exit(1);}
28665 ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/ = variable[2] /*new_child*/;
28666 } else { /*if*/
28667 ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/ = NIT_NULL /*null*/;
28668 }
28669 goto return_label936;
28670 }
28671 return_label936: while(false);
28672 tracehead = trace.prev;
28673 return;
28674 }
28675 void parser_prod___AMidStringExpr___visit_all(val_t self, val_t param0) {
28676 struct trace_t trace = {NULL, NULL, 10481, LOCATE_parser_prod___AMidStringExpr___visit_all};
28677 val_t variable[4];
28678 struct WBT_ **closurevariable = NULL;
28679 trace.prev = tracehead; tracehead = &trace;
28680 trace.file = LOCATE_parser_prod;
28681 /* Register variable[0]: Local variable */
28682 variable[0] = self;
28683 /* Register variable[1]: Local variable */
28684 variable[1] = param0;
28685 /* Register variable[2]: Method return value and escape marker */
28686 /* Register variable[3]: Result */
28687 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/;
28688 /* Register variable[3]: Result */
28689 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::==*/)))))));
28690 if (UNTAG_Bool(variable[3])) { /*if*/
28691 /* Register variable[3]: Result */
28692 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/;
28693 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28694 }
28695 return_label937: while(false);
28696 tracehead = trace.prev;
28697 return;
28698 }
28699 void parser_prod___AMidStringExpr___visit_all_reverse(val_t self, val_t param0) {
28700 struct trace_t trace = {NULL, NULL, 10488, LOCATE_parser_prod___AMidStringExpr___visit_all_reverse};
28701 val_t variable[4];
28702 struct WBT_ **closurevariable = NULL;
28703 trace.prev = tracehead; tracehead = &trace;
28704 trace.file = LOCATE_parser_prod;
28705 /* Register variable[0]: Local variable */
28706 variable[0] = self;
28707 /* Register variable[1]: Local variable */
28708 variable[1] = param0;
28709 /* Register variable[2]: Method return value and escape marker */
28710 /* Register variable[3]: Result */
28711 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/;
28712 /* Register variable[3]: Result */
28713 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::==*/)))))));
28714 if (UNTAG_Bool(variable[3])) { /*if*/
28715 /* Register variable[3]: Result */
28716 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/;
28717 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28718 }
28719 return_label938: while(false);
28720 tracehead = trace.prev;
28721 return;
28722 }
28723 void parser_prod___AMidStringExpr___empty_init(val_t self, int* init_table) {
28724 struct trace_t trace = {NULL, NULL, 10453, LOCATE_parser_prod___AMidStringExpr___empty_init};
28725 val_t variable[2];
28726 struct WBT_ **closurevariable = NULL;
28727 trace.prev = tracehead; tracehead = &trace;
28728 trace.file = LOCATE_parser_prod;
28729 /* Register variable[0]: Local variable */
28730 variable[0] = self;
28731 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
28732 /* Register variable[1]: Method return value and escape marker */
28733 return_label939: while(false);
28734 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
28735 tracehead = trace.prev;
28736 return;
28737 }
28738 void parser_prod___AMidStringExpr___init_amidstringexpr(val_t self, val_t param0, int* init_table) {
28739 struct trace_t trace = {NULL, NULL, 10455, LOCATE_parser_prod___AMidStringExpr___init_amidstringexpr};
28740 val_t variable[4];
28741 struct WBT_ **closurevariable = NULL;
28742 trace.prev = tracehead; tracehead = &trace;
28743 trace.file = LOCATE_parser_prod;
28744 /* Register variable[0]: Local variable */
28745 variable[0] = self;
28746 /* Register variable[1]: Local variable */
28747 variable[1] = param0;
28748 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
28749 /* Register variable[2]: Method return value and escape marker */
28750 CALL_parser_prod___AMidStringExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AMidStringExpr::empty_init*/;
28751 ATTR_parser_nodes___AMidStringExpr____n_string(variable[0]) /*AMidStringExpr::_n_string*/ = variable[1] /*n_string*/;
28752 /* Register variable[3]: Result */
28753 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ == NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28754 if (UNTAG_Bool(variable[3])) { /*if*/
28755 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[0]) /*PNode::parent=*/;
28756 }
28757 return_label940: while(false);
28758 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
28759 tracehead = trace.prev;
28760 return;
28761 }
28762 void parser_prod___AEndStringExpr___n_string__eq(val_t self, val_t param0) {
28763 struct trace_t trace = {NULL, NULL, 10496, LOCATE_parser_prod___AEndStringExpr___n_string__eq};
28764 val_t variable[4];
28765 struct WBT_ **closurevariable = NULL;
28766 trace.prev = tracehead; tracehead = &trace;
28767 trace.file = LOCATE_parser_prod;
28768 /* Register variable[0]: Local variable */
28769 variable[0] = self;
28770 /* Register variable[1]: Local variable */
28771 variable[1] = param0;
28772 /* Register variable[2]: Method return value and escape marker */
28773 ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/ = variable[1] /*n*/;
28774 /* Register variable[3]: Result */
28775 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28776 if (UNTAG_Bool(variable[3])) { /*if*/
28777 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
28778 }
28779 return_label941: while(false);
28780 tracehead = trace.prev;
28781 return;
28782 }
28783 void parser_prod___AEndStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
28784 struct trace_t trace = {NULL, NULL, 10517, LOCATE_parser_prod___AEndStringExpr___replace_child};
28785 val_t variable[5];
28786 struct WBT_ **closurevariable = NULL;
28787 trace.prev = tracehead; tracehead = &trace;
28788 trace.file = LOCATE_parser_prod;
28789 /* Register variable[0]: Local variable */
28790 variable[0] = self;
28791 /* Register variable[1]: Local variable */
28792 variable[1] = param0;
28793 /* Register variable[2]: Local variable */
28794 variable[2] = param1;
28795 /* Register variable[3]: Method return value and escape marker */
28796 /* Register variable[4]: Result */
28797 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28798 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEndStringExpr___replace_child, LOCATE_parser_prod, 10519); nit_exit(1);}
28799 /* Register variable[4]: Result */
28800 variable[4] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/;
28801 /* Register variable[4]: Result */
28802 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
28803 if (UNTAG_Bool(variable[4])) { /*if*/
28804 /* Register variable[4]: Result */
28805 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28806 if (UNTAG_Bool(variable[4])) { /*if*/
28807 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
28808 /* Register variable[4]: Result */
28809 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
28810 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEndStringExpr___replace_child, LOCATE_parser_prod, 10523); nit_exit(1);}
28811 ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/ = variable[2] /*new_child*/;
28812 } else { /*if*/
28813 ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/ = NIT_NULL /*null*/;
28814 }
28815 goto return_label942;
28816 }
28817 return_label942: while(false);
28818 tracehead = trace.prev;
28819 return;
28820 }
28821 void parser_prod___AEndStringExpr___visit_all(val_t self, val_t param0) {
28822 struct trace_t trace = {NULL, NULL, 10532, LOCATE_parser_prod___AEndStringExpr___visit_all};
28823 val_t variable[4];
28824 struct WBT_ **closurevariable = NULL;
28825 trace.prev = tracehead; tracehead = &trace;
28826 trace.file = LOCATE_parser_prod;
28827 /* Register variable[0]: Local variable */
28828 variable[0] = self;
28829 /* Register variable[1]: Local variable */
28830 variable[1] = param0;
28831 /* Register variable[2]: Method return value and escape marker */
28832 /* Register variable[3]: Result */
28833 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/;
28834 /* Register variable[3]: Result */
28835 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::==*/)))))));
28836 if (UNTAG_Bool(variable[3])) { /*if*/
28837 /* Register variable[3]: Result */
28838 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/;
28839 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28840 }
28841 return_label943: while(false);
28842 tracehead = trace.prev;
28843 return;
28844 }
28845 void parser_prod___AEndStringExpr___visit_all_reverse(val_t self, val_t param0) {
28846 struct trace_t trace = {NULL, NULL, 10539, LOCATE_parser_prod___AEndStringExpr___visit_all_reverse};
28847 val_t variable[4];
28848 struct WBT_ **closurevariable = NULL;
28849 trace.prev = tracehead; tracehead = &trace;
28850 trace.file = LOCATE_parser_prod;
28851 /* Register variable[0]: Local variable */
28852 variable[0] = self;
28853 /* Register variable[1]: Local variable */
28854 variable[1] = param0;
28855 /* Register variable[2]: Method return value and escape marker */
28856 /* Register variable[3]: Result */
28857 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/;
28858 /* Register variable[3]: Result */
28859 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::==*/)))))));
28860 if (UNTAG_Bool(variable[3])) { /*if*/
28861 /* Register variable[3]: Result */
28862 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/;
28863 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
28864 }
28865 return_label944: while(false);
28866 tracehead = trace.prev;
28867 return;
28868 }
28869 void parser_prod___AEndStringExpr___empty_init(val_t self, int* init_table) {
28870 struct trace_t trace = {NULL, NULL, 10504, LOCATE_parser_prod___AEndStringExpr___empty_init};
28871 val_t variable[2];
28872 struct WBT_ **closurevariable = NULL;
28873 trace.prev = tracehead; tracehead = &trace;
28874 trace.file = LOCATE_parser_prod;
28875 /* Register variable[0]: Local variable */
28876 variable[0] = self;
28877 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
28878 /* Register variable[1]: Method return value and escape marker */
28879 return_label945: while(false);
28880 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
28881 tracehead = trace.prev;
28882 return;
28883 }
28884 void parser_prod___AEndStringExpr___init_aendstringexpr(val_t self, val_t param0, int* init_table) {
28885 struct trace_t trace = {NULL, NULL, 10506, LOCATE_parser_prod___AEndStringExpr___init_aendstringexpr};
28886 val_t variable[4];
28887 struct WBT_ **closurevariable = NULL;
28888 trace.prev = tracehead; tracehead = &trace;
28889 trace.file = LOCATE_parser_prod;
28890 /* Register variable[0]: Local variable */
28891 variable[0] = self;
28892 /* Register variable[1]: Local variable */
28893 variable[1] = param0;
28894 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
28895 /* Register variable[2]: Method return value and escape marker */
28896 CALL_parser_prod___AEndStringExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AEndStringExpr::empty_init*/;
28897 ATTR_parser_nodes___AEndStringExpr____n_string(variable[0]) /*AEndStringExpr::_n_string*/ = variable[1] /*n_string*/;
28898 /* Register variable[3]: Result */
28899 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ == NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28900 if (UNTAG_Bool(variable[3])) { /*if*/
28901 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[0]) /*PNode::parent=*/;
28902 }
28903 return_label946: while(false);
28904 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
28905 tracehead = trace.prev;
28906 return;
28907 }
28908 void parser_prod___ASuperstringExpr___replace_child(val_t self, val_t param0, val_t param1) {
28909 struct trace_t trace = {NULL, NULL, 10563, LOCATE_parser_prod___ASuperstringExpr___replace_child};
28910 val_t variable[8];
28911 struct WBT_ **closurevariable = NULL;
28912 trace.prev = tracehead; tracehead = &trace;
28913 trace.file = LOCATE_parser_prod;
28914 /* Register variable[0]: Local variable */
28915 variable[0] = self;
28916 /* Register variable[1]: Local variable */
28917 variable[1] = param0;
28918 /* Register variable[2]: Local variable */
28919 variable[2] = param1;
28920 /* Register variable[3]: Method return value and escape marker */
28921 /* Register variable[4]: Result */
28922 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28923 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperstringExpr___replace_child, LOCATE_parser_prod, 10565); nit_exit(1);}
28924 /* Register variable[4]: Result */
28925 variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
28926 /* Register variable[4]: Result */
28927 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
28928 /* Register variable[4]: Result */
28929 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
28930 /* Register variable[4]: For iterator */
28931 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
28932 while (true) { /*for*/
28933 /* Register variable[5]: For 'is_ok' result */
28934 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
28935 if (!UNTAG_Bool(variable[5])) break; /*for*/
28936 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
28937 /* Register variable[6]: Local variable */
28938 variable[6] = variable[5];
28939 /* Register variable[7]: Result */
28940 variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
28941 /* Register variable[7]: Result */
28942 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
28943 /* Register variable[7]: Result */
28944 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
28945 if (UNTAG_Bool(variable[7])) { /*if*/
28946 /* Register variable[7]: Result */
28947 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
28948 if (UNTAG_Bool(variable[7])) { /*if*/
28949 /* Register variable[7]: Result */
28950 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
28951 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperstringExpr___replace_child, LOCATE_parser_prod, 10569); nit_exit(1);}
28952 /* Register variable[7]: Result */
28953 variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
28954 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
28955 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
28956 } else { /*if*/
28957 /* Register variable[7]: Result */
28958 variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
28959 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
28960 }
28961 goto return_label947;
28962 }
28963 continue_948: while(0);
28964 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
28965 }
28966 break_948: while(0);
28967 return_label947: while(false);
28968 tracehead = trace.prev;
28969 return;
28970 }
28971 void parser_prod___ASuperstringExpr___visit_all(val_t self, val_t param0) {
28972 struct trace_t trace = {NULL, NULL, 10580, LOCATE_parser_prod___ASuperstringExpr___visit_all};
28973 val_t variable[6];
28974 struct WBT_ **closurevariable = NULL;
28975 trace.prev = tracehead; tracehead = &trace;
28976 trace.file = LOCATE_parser_prod;
28977 /* Register variable[0]: Local variable */
28978 variable[0] = self;
28979 /* Register variable[1]: Local variable */
28980 variable[1] = param0;
28981 /* Register variable[2]: Method return value and escape marker */
28982 /* Register variable[3]: Result */
28983 variable[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
28984 /* Register variable[3]: For iterator */
28985 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
28986 while (true) { /*for*/
28987 /* Register variable[4]: For 'is_ok' result */
28988 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
28989 if (!UNTAG_Bool(variable[4])) break; /*for*/
28990 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
28991 /* Register variable[5]: Local variable */
28992 variable[5] = variable[4];
28993 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
28994 continue_950: while(0);
28995 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
28996 }
28997 break_950: while(0);
28998 return_label949: while(false);
28999 tracehead = trace.prev;
29000 return;
29001 }
29002 void parser_prod___ASuperstringExpr___visit_all_reverse(val_t self, val_t param0) {
29003 struct trace_t trace = {NULL, NULL, 10587, LOCATE_parser_prod___ASuperstringExpr___visit_all_reverse};
29004 val_t variable[5];
29005 struct WBT_ **closurevariable = NULL;
29006 trace.prev = tracehead; tracehead = &trace;
29007 trace.file = LOCATE_parser_prod;
29008 /* Register variable[0]: Local variable */
29009 variable[0] = self;
29010 /* Register variable[1]: Local variable */
29011 variable[1] = param0;
29012 /* Register variable[2]: Method return value and escape marker */
29013 /* Register variable[3]: Local variable */
29014 /* Register variable[4]: Result */
29015 variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
29016 /* Register variable[4]: Result */
29017 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
29018 variable[3] = variable[4];
29019 while (true) { /*while*/
29020 /* Register variable[4]: Result */
29021 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
29022 if (!UNTAG_Bool(variable[4])) break; /* while*/
29023 /* Register variable[4]: Result */
29024 variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
29025 /* Register variable[4]: Result */
29026 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
29027 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
29028 /* Register variable[4]: Result */
29029 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
29030 variable[3] = variable[4] /*i=*/;
29031 continue_952: while(0);
29032 }
29033 break_952: while(0);
29034 return_label951: while(false);
29035 tracehead = trace.prev;
29036 return;
29037 }
29038 void parser_prod___ASuperstringExpr___empty_init(val_t self, int* init_table) {
29039 struct trace_t trace = {NULL, NULL, 10548, LOCATE_parser_prod___ASuperstringExpr___empty_init};
29040 val_t variable[2];
29041 struct WBT_ **closurevariable = NULL;
29042 trace.prev = tracehead; tracehead = &trace;
29043 trace.file = LOCATE_parser_prod;
29044 /* Register variable[0]: Local variable */
29045 variable[0] = self;
29046 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
29047 /* Register variable[1]: Method return value and escape marker */
29048 return_label953: while(false);
29049 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
29050 tracehead = trace.prev;
29051 return;
29052 }
29053 void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t self, val_t param0, int* init_table) {
29054 struct trace_t trace = {NULL, NULL, 10550, LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr};
29055 val_t variable[7];
29056 struct WBT_ **closurevariable = NULL;
29057 trace.prev = tracehead; tracehead = &trace;
29058 trace.file = LOCATE_parser_prod;
29059 /* Register variable[0]: Local variable */
29060 variable[0] = self;
29061 /* Register variable[1]: Local variable */
29062 variable[1] = param0;
29063 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
29064 /* Register variable[2]: Method return value and escape marker */
29065 CALL_parser_prod___ASuperstringExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ASuperstringExpr::empty_init*/;
29066 /* Register variable[3]: Result */
29067 variable[3] = NEW_List_list___List___init() /*new List[PExpr]*/;
29068 ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/ = variable[3];
29069 /* Register variable[3]: For iterator */
29070 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_exprs*/)( variable[1] /*n_exprs*/) /*Collection::iterator*/;
29071 while (true) { /*for*/
29072 /* Register variable[4]: For 'is_ok' result */
29073 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
29074 if (!UNTAG_Bool(variable[4])) break; /*for*/
29075 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
29076 /* Register variable[5]: Local variable */
29077 variable[5] = variable[4];
29078 /* Register variable[6]: Result */
29079 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
29080 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr, LOCATE_parser_prod, 10557); nit_exit(1);}
29081 /* Register variable[6]: Result */
29082 variable[6] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[0]) /*ASuperstringExpr::_n_exprs*/;
29083 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
29084 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[0]) /*PNode::parent=*/;
29085 continue_955: while(0);
29086 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
29087 }
29088 break_955: while(0);
29089 return_label954: while(false);
29090 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
29091 tracehead = trace.prev;
29092 return;
29093 }
29094 void parser_prod___AParExpr___n_expr__eq(val_t self, val_t param0) {
29095 struct trace_t trace = {NULL, NULL, 10599, LOCATE_parser_prod___AParExpr___n_expr__eq};
29096 val_t variable[4];
29097 struct WBT_ **closurevariable = NULL;
29098 trace.prev = tracehead; tracehead = &trace;
29099 trace.file = LOCATE_parser_prod;
29100 /* Register variable[0]: Local variable */
29101 variable[0] = self;
29102 /* Register variable[1]: Local variable */
29103 variable[1] = param0;
29104 /* Register variable[2]: Method return value and escape marker */
29105 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = variable[1] /*n*/;
29106 /* Register variable[3]: Result */
29107 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29108 if (UNTAG_Bool(variable[3])) { /*if*/
29109 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29110 }
29111 return_label956: while(false);
29112 tracehead = trace.prev;
29113 return;
29114 }
29115 void parser_prod___AParExpr___replace_child(val_t self, val_t param0, val_t param1) {
29116 struct trace_t trace = {NULL, NULL, 10620, LOCATE_parser_prod___AParExpr___replace_child};
29117 val_t variable[5];
29118 struct WBT_ **closurevariable = NULL;
29119 trace.prev = tracehead; tracehead = &trace;
29120 trace.file = LOCATE_parser_prod;
29121 /* Register variable[0]: Local variable */
29122 variable[0] = self;
29123 /* Register variable[1]: Local variable */
29124 variable[1] = param0;
29125 /* Register variable[2]: Local variable */
29126 variable[2] = param1;
29127 /* Register variable[3]: Method return value and escape marker */
29128 /* Register variable[4]: Result */
29129 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29130 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParExpr___replace_child, LOCATE_parser_prod, 10622); nit_exit(1);}
29131 /* Register variable[4]: Result */
29132 variable[4] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
29133 /* Register variable[4]: Result */
29134 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29135 if (UNTAG_Bool(variable[4])) { /*if*/
29136 /* Register variable[4]: Result */
29137 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29138 if (UNTAG_Bool(variable[4])) { /*if*/
29139 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29140 /* Register variable[4]: Result */
29141 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
29142 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParExpr___replace_child, LOCATE_parser_prod, 10626); nit_exit(1);}
29143 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = variable[2] /*new_child*/;
29144 } else { /*if*/
29145 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = NIT_NULL /*null*/;
29146 }
29147 goto return_label957;
29148 }
29149 return_label957: while(false);
29150 tracehead = trace.prev;
29151 return;
29152 }
29153 void parser_prod___AParExpr___visit_all(val_t self, val_t param0) {
29154 struct trace_t trace = {NULL, NULL, 10635, LOCATE_parser_prod___AParExpr___visit_all};
29155 val_t variable[4];
29156 struct WBT_ **closurevariable = NULL;
29157 trace.prev = tracehead; tracehead = &trace;
29158 trace.file = LOCATE_parser_prod;
29159 /* Register variable[0]: Local variable */
29160 variable[0] = self;
29161 /* Register variable[1]: Local variable */
29162 variable[1] = param0;
29163 /* Register variable[2]: Method return value and escape marker */
29164 /* Register variable[3]: Result */
29165 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
29166 /* Register variable[3]: Result */
29167 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::==*/)))))));
29168 if (UNTAG_Bool(variable[3])) { /*if*/
29169 /* Register variable[3]: Result */
29170 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
29171 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29172 }
29173 return_label958: while(false);
29174 tracehead = trace.prev;
29175 return;
29176 }
29177 void parser_prod___AParExpr___visit_all_reverse(val_t self, val_t param0) {
29178 struct trace_t trace = {NULL, NULL, 10642, LOCATE_parser_prod___AParExpr___visit_all_reverse};
29179 val_t variable[4];
29180 struct WBT_ **closurevariable = NULL;
29181 trace.prev = tracehead; tracehead = &trace;
29182 trace.file = LOCATE_parser_prod;
29183 /* Register variable[0]: Local variable */
29184 variable[0] = self;
29185 /* Register variable[1]: Local variable */
29186 variable[1] = param0;
29187 /* Register variable[2]: Method return value and escape marker */
29188 /* Register variable[3]: Result */
29189 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
29190 /* Register variable[3]: Result */
29191 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::==*/)))))));
29192 if (UNTAG_Bool(variable[3])) { /*if*/
29193 /* Register variable[3]: Result */
29194 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/;
29195 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29196 }
29197 return_label959: while(false);
29198 tracehead = trace.prev;
29199 return;
29200 }
29201 void parser_prod___AParExpr___empty_init(val_t self, int* init_table) {
29202 struct trace_t trace = {NULL, NULL, 10607, LOCATE_parser_prod___AParExpr___empty_init};
29203 val_t variable[2];
29204 struct WBT_ **closurevariable = NULL;
29205 trace.prev = tracehead; tracehead = &trace;
29206 trace.file = LOCATE_parser_prod;
29207 /* Register variable[0]: Local variable */
29208 variable[0] = self;
29209 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i]) return;
29210 /* Register variable[1]: Method return value and escape marker */
29211 return_label960: while(false);
29212 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i] = 1;
29213 tracehead = trace.prev;
29214 return;
29215 }
29216 void parser_prod___AParExpr___init_aparexpr(val_t self, val_t param0, int* init_table) {
29217 struct trace_t trace = {NULL, NULL, 10609, LOCATE_parser_prod___AParExpr___init_aparexpr};
29218 val_t variable[4];
29219 struct WBT_ **closurevariable = NULL;
29220 trace.prev = tracehead; tracehead = &trace;
29221 trace.file = LOCATE_parser_prod;
29222 /* Register variable[0]: Local variable */
29223 variable[0] = self;
29224 /* Register variable[1]: Local variable */
29225 variable[1] = param0;
29226 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i]) return;
29227 /* Register variable[2]: Method return value and escape marker */
29228 CALL_parser_prod___AParExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AParExpr::empty_init*/;
29229 ATTR_parser_nodes___AProxyExpr____n_expr(variable[0]) /*AProxyExpr::_n_expr*/ = variable[1] /*n_expr*/;
29230 /* Register variable[3]: Result */
29231 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29232 if (UNTAG_Bool(variable[3])) { /*if*/
29233 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
29234 }
29235 return_label961: while(false);
29236 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i] = 1;
29237 tracehead = trace.prev;
29238 return;
29239 }
29240 void parser_prod___AAsCastExpr___n_expr__eq(val_t self, val_t param0) {
29241 struct trace_t trace = {NULL, NULL, 10650, LOCATE_parser_prod___AAsCastExpr___n_expr__eq};
29242 val_t variable[4];
29243 struct WBT_ **closurevariable = NULL;
29244 trace.prev = tracehead; tracehead = &trace;
29245 trace.file = LOCATE_parser_prod;
29246 /* Register variable[0]: Local variable */
29247 variable[0] = self;
29248 /* Register variable[1]: Local variable */
29249 variable[1] = param0;
29250 /* Register variable[2]: Method return value and escape marker */
29251 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/ = variable[1] /*n*/;
29252 /* Register variable[3]: Result */
29253 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29254 if (UNTAG_Bool(variable[3])) { /*if*/
29255 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29256 }
29257 return_label962: while(false);
29258 tracehead = trace.prev;
29259 return;
29260 }
29261 void parser_prod___AAsCastExpr___n_kwas__eq(val_t self, val_t param0) {
29262 struct trace_t trace = {NULL, NULL, 10657, LOCATE_parser_prod___AAsCastExpr___n_kwas__eq};
29263 val_t variable[4];
29264 struct WBT_ **closurevariable = NULL;
29265 trace.prev = tracehead; tracehead = &trace;
29266 trace.file = LOCATE_parser_prod;
29267 /* Register variable[0]: Local variable */
29268 variable[0] = self;
29269 /* Register variable[1]: Local variable */
29270 variable[1] = param0;
29271 /* Register variable[2]: Method return value and escape marker */
29272 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/ = variable[1] /*n*/;
29273 /* Register variable[3]: Result */
29274 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29275 if (UNTAG_Bool(variable[3])) { /*if*/
29276 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29277 }
29278 return_label963: while(false);
29279 tracehead = trace.prev;
29280 return;
29281 }
29282 void parser_prod___AAsCastExpr___n_type__eq(val_t self, val_t param0) {
29283 struct trace_t trace = {NULL, NULL, 10664, LOCATE_parser_prod___AAsCastExpr___n_type__eq};
29284 val_t variable[4];
29285 struct WBT_ **closurevariable = NULL;
29286 trace.prev = tracehead; tracehead = &trace;
29287 trace.file = LOCATE_parser_prod;
29288 /* Register variable[0]: Local variable */
29289 variable[0] = self;
29290 /* Register variable[1]: Local variable */
29291 variable[1] = param0;
29292 /* Register variable[2]: Method return value and escape marker */
29293 ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/ = variable[1] /*n*/;
29294 /* Register variable[3]: Result */
29295 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29296 if (UNTAG_Bool(variable[3])) { /*if*/
29297 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29298 }
29299 return_label964: while(false);
29300 tracehead = trace.prev;
29301 return;
29302 }
29303 void parser_prod___AAsCastExpr___replace_child(val_t self, val_t param0, val_t param1) {
29304 struct trace_t trace = {NULL, NULL, 10695, LOCATE_parser_prod___AAsCastExpr___replace_child};
29305 val_t variable[5];
29306 struct WBT_ **closurevariable = NULL;
29307 trace.prev = tracehead; tracehead = &trace;
29308 trace.file = LOCATE_parser_prod;
29309 /* Register variable[0]: Local variable */
29310 variable[0] = self;
29311 /* Register variable[1]: Local variable */
29312 variable[1] = param0;
29313 /* Register variable[2]: Local variable */
29314 variable[2] = param1;
29315 /* Register variable[3]: Method return value and escape marker */
29316 /* Register variable[4]: Result */
29317 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29318 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10697); nit_exit(1);}
29319 /* Register variable[4]: Result */
29320 variable[4] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/;
29321 /* Register variable[4]: Result */
29322 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29323 if (UNTAG_Bool(variable[4])) { /*if*/
29324 /* Register variable[4]: Result */
29325 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29326 if (UNTAG_Bool(variable[4])) { /*if*/
29327 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29328 /* Register variable[4]: Result */
29329 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
29330 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10701); nit_exit(1);}
29331 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/ = variable[2] /*new_child*/;
29332 } else { /*if*/
29333 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/ = NIT_NULL /*null*/;
29334 }
29335 goto return_label965;
29336 }
29337 /* Register variable[4]: Result */
29338 variable[4] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/;
29339 /* Register variable[4]: Result */
29340 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29341 if (UNTAG_Bool(variable[4])) { /*if*/
29342 /* Register variable[4]: Result */
29343 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29344 if (UNTAG_Bool(variable[4])) { /*if*/
29345 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29346 /* Register variable[4]: Result */
29347 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
29348 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10711); nit_exit(1);}
29349 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/ = variable[2] /*new_child*/;
29350 } else { /*if*/
29351 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/ = NIT_NULL /*null*/;
29352 }
29353 goto return_label965;
29354 }
29355 /* Register variable[4]: Result */
29356 variable[4] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/;
29357 /* Register variable[4]: Result */
29358 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29359 if (UNTAG_Bool(variable[4])) { /*if*/
29360 /* Register variable[4]: Result */
29361 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29362 if (UNTAG_Bool(variable[4])) { /*if*/
29363 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29364 /* Register variable[4]: Result */
29365 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
29366 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10721); nit_exit(1);}
29367 ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/ = variable[2] /*new_child*/;
29368 } else { /*if*/
29369 ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/ = NIT_NULL /*null*/;
29370 }
29371 goto return_label965;
29372 }
29373 return_label965: while(false);
29374 tracehead = trace.prev;
29375 return;
29376 }
29377 void parser_prod___AAsCastExpr___visit_all(val_t self, val_t param0) {
29378 struct trace_t trace = {NULL, NULL, 10730, LOCATE_parser_prod___AAsCastExpr___visit_all};
29379 val_t variable[4];
29380 struct WBT_ **closurevariable = NULL;
29381 trace.prev = tracehead; tracehead = &trace;
29382 trace.file = LOCATE_parser_prod;
29383 /* Register variable[0]: Local variable */
29384 variable[0] = self;
29385 /* Register variable[1]: Local variable */
29386 variable[1] = param0;
29387 /* Register variable[2]: Method return value and escape marker */
29388 /* Register variable[3]: Result */
29389 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/;
29390 /* Register variable[3]: Result */
29391 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::==*/)))))));
29392 if (UNTAG_Bool(variable[3])) { /*if*/
29393 /* Register variable[3]: Result */
29394 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/;
29395 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29396 }
29397 /* Register variable[3]: Result */
29398 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/;
29399 /* Register variable[3]: Result */
29400 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::==*/)))))));
29401 if (UNTAG_Bool(variable[3])) { /*if*/
29402 /* Register variable[3]: Result */
29403 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/;
29404 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29405 }
29406 /* Register variable[3]: Result */
29407 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/;
29408 /* Register variable[3]: Result */
29409 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::==*/)))))));
29410 if (UNTAG_Bool(variable[3])) { /*if*/
29411 /* Register variable[3]: Result */
29412 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/;
29413 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29414 }
29415 return_label966: while(false);
29416 tracehead = trace.prev;
29417 return;
29418 }
29419 void parser_prod___AAsCastExpr___visit_all_reverse(val_t self, val_t param0) {
29420 struct trace_t trace = {NULL, NULL, 10743, LOCATE_parser_prod___AAsCastExpr___visit_all_reverse};
29421 val_t variable[4];
29422 struct WBT_ **closurevariable = NULL;
29423 trace.prev = tracehead; tracehead = &trace;
29424 trace.file = LOCATE_parser_prod;
29425 /* Register variable[0]: Local variable */
29426 variable[0] = self;
29427 /* Register variable[1]: Local variable */
29428 variable[1] = param0;
29429 /* Register variable[2]: Method return value and escape marker */
29430 /* Register variable[3]: Result */
29431 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/;
29432 /* Register variable[3]: Result */
29433 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::==*/)))))));
29434 if (UNTAG_Bool(variable[3])) { /*if*/
29435 /* Register variable[3]: Result */
29436 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/;
29437 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29438 }
29439 /* Register variable[3]: Result */
29440 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/;
29441 /* Register variable[3]: Result */
29442 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::==*/)))))));
29443 if (UNTAG_Bool(variable[3])) { /*if*/
29444 /* Register variable[3]: Result */
29445 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/;
29446 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29447 }
29448 /* Register variable[3]: Result */
29449 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/;
29450 /* Register variable[3]: Result */
29451 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::==*/)))))));
29452 if (UNTAG_Bool(variable[3])) { /*if*/
29453 /* Register variable[3]: Result */
29454 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/;
29455 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29456 }
29457 return_label967: while(false);
29458 tracehead = trace.prev;
29459 return;
29460 }
29461 void parser_prod___AAsCastExpr___empty_init(val_t self, int* init_table) {
29462 struct trace_t trace = {NULL, NULL, 10672, LOCATE_parser_prod___AAsCastExpr___empty_init};
29463 val_t variable[2];
29464 struct WBT_ **closurevariable = NULL;
29465 trace.prev = tracehead; tracehead = &trace;
29466 trace.file = LOCATE_parser_prod;
29467 /* Register variable[0]: Local variable */
29468 variable[0] = self;
29469 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i]) return;
29470 /* Register variable[1]: Method return value and escape marker */
29471 return_label968: while(false);
29472 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i] = 1;
29473 tracehead = trace.prev;
29474 return;
29475 }
29476 void parser_prod___AAsCastExpr___init_aascastexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
29477 struct trace_t trace = {NULL, NULL, 10674, LOCATE_parser_prod___AAsCastExpr___init_aascastexpr};
29478 val_t variable[6];
29479 struct WBT_ **closurevariable = NULL;
29480 trace.prev = tracehead; tracehead = &trace;
29481 trace.file = LOCATE_parser_prod;
29482 /* Register variable[0]: Local variable */
29483 variable[0] = self;
29484 /* Register variable[1]: Local variable */
29485 variable[1] = param0;
29486 /* Register variable[2]: Local variable */
29487 variable[2] = param1;
29488 /* Register variable[3]: Local variable */
29489 variable[3] = param2;
29490 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i]) return;
29491 /* Register variable[4]: Method return value and escape marker */
29492 CALL_parser_prod___AAsCastExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAsCastExpr::empty_init*/;
29493 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[0]) /*AAsCastExpr::_n_expr*/ = variable[1] /*n_expr*/;
29494 /* Register variable[5]: Result */
29495 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29496 if (UNTAG_Bool(variable[5])) { /*if*/
29497 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
29498 }
29499 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[0]) /*AAsCastExpr::_n_kwas*/ = variable[2] /*n_kwas*/;
29500 /* Register variable[5]: Result */
29501 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwas*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwas*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwas*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwas*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwas*/)( variable[2] /*n_kwas*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29502 if (UNTAG_Bool(variable[5])) { /*if*/
29503 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwas*/)( variable[2] /*n_kwas*/, variable[0]) /*PNode::parent=*/;
29504 }
29505 ATTR_parser_nodes___AAsCastExpr____n_type(variable[0]) /*AAsCastExpr::_n_type*/ = variable[3] /*n_type*/;
29506 /* Register variable[5]: Result */
29507 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_type*/ == NIT_NULL /*null*/) || (( variable[3] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)( variable[3] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29508 if (UNTAG_Bool(variable[5])) { /*if*/
29509 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_type*/)( variable[3] /*n_type*/, variable[0]) /*PNode::parent=*/;
29510 }
29511 return_label969: while(false);
29512 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i] = 1;
29513 tracehead = trace.prev;
29514 return;
29515 }
29516 void parser_prod___AAsNotnullExpr___n_expr__eq(val_t self, val_t param0) {
29517 struct trace_t trace = {NULL, NULL, 10757, LOCATE_parser_prod___AAsNotnullExpr___n_expr__eq};
29518 val_t variable[4];
29519 struct WBT_ **closurevariable = NULL;
29520 trace.prev = tracehead; tracehead = &trace;
29521 trace.file = LOCATE_parser_prod;
29522 /* Register variable[0]: Local variable */
29523 variable[0] = self;
29524 /* Register variable[1]: Local variable */
29525 variable[1] = param0;
29526 /* Register variable[2]: Method return value and escape marker */
29527 ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/ = variable[1] /*n*/;
29528 /* Register variable[3]: Result */
29529 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29530 if (UNTAG_Bool(variable[3])) { /*if*/
29531 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29532 }
29533 return_label970: while(false);
29534 tracehead = trace.prev;
29535 return;
29536 }
29537 void parser_prod___AAsNotnullExpr___n_kwas__eq(val_t self, val_t param0) {
29538 struct trace_t trace = {NULL, NULL, 10764, LOCATE_parser_prod___AAsNotnullExpr___n_kwas__eq};
29539 val_t variable[4];
29540 struct WBT_ **closurevariable = NULL;
29541 trace.prev = tracehead; tracehead = &trace;
29542 trace.file = LOCATE_parser_prod;
29543 /* Register variable[0]: Local variable */
29544 variable[0] = self;
29545 /* Register variable[1]: Local variable */
29546 variable[1] = param0;
29547 /* Register variable[2]: Method return value and escape marker */
29548 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/ = variable[1] /*n*/;
29549 /* Register variable[3]: Result */
29550 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29551 if (UNTAG_Bool(variable[3])) { /*if*/
29552 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29553 }
29554 return_label971: while(false);
29555 tracehead = trace.prev;
29556 return;
29557 }
29558 void parser_prod___AAsNotnullExpr___n_kwnot__eq(val_t self, val_t param0) {
29559 struct trace_t trace = {NULL, NULL, 10771, LOCATE_parser_prod___AAsNotnullExpr___n_kwnot__eq};
29560 val_t variable[4];
29561 struct WBT_ **closurevariable = NULL;
29562 trace.prev = tracehead; tracehead = &trace;
29563 trace.file = LOCATE_parser_prod;
29564 /* Register variable[0]: Local variable */
29565 variable[0] = self;
29566 /* Register variable[1]: Local variable */
29567 variable[1] = param0;
29568 /* Register variable[2]: Method return value and escape marker */
29569 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/ = variable[1] /*n*/;
29570 /* Register variable[3]: Result */
29571 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29572 if (UNTAG_Bool(variable[3])) { /*if*/
29573 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29574 }
29575 return_label972: while(false);
29576 tracehead = trace.prev;
29577 return;
29578 }
29579 void parser_prod___AAsNotnullExpr___n_kwnull__eq(val_t self, val_t param0) {
29580 struct trace_t trace = {NULL, NULL, 10778, LOCATE_parser_prod___AAsNotnullExpr___n_kwnull__eq};
29581 val_t variable[4];
29582 struct WBT_ **closurevariable = NULL;
29583 trace.prev = tracehead; tracehead = &trace;
29584 trace.file = LOCATE_parser_prod;
29585 /* Register variable[0]: Local variable */
29586 variable[0] = self;
29587 /* Register variable[1]: Local variable */
29588 variable[1] = param0;
29589 /* Register variable[2]: Method return value and escape marker */
29590 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/ = variable[1] /*n*/;
29591 /* Register variable[3]: Result */
29592 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29593 if (UNTAG_Bool(variable[3])) { /*if*/
29594 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29595 }
29596 return_label973: while(false);
29597 tracehead = trace.prev;
29598 return;
29599 }
29600 void parser_prod___AAsNotnullExpr___replace_child(val_t self, val_t param0, val_t param1) {
29601 struct trace_t trace = {NULL, NULL, 10814, LOCATE_parser_prod___AAsNotnullExpr___replace_child};
29602 val_t variable[5];
29603 struct WBT_ **closurevariable = NULL;
29604 trace.prev = tracehead; tracehead = &trace;
29605 trace.file = LOCATE_parser_prod;
29606 /* Register variable[0]: Local variable */
29607 variable[0] = self;
29608 /* Register variable[1]: Local variable */
29609 variable[1] = param0;
29610 /* Register variable[2]: Local variable */
29611 variable[2] = param1;
29612 /* Register variable[3]: Method return value and escape marker */
29613 /* Register variable[4]: Result */
29614 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29615 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsNotnullExpr___replace_child, LOCATE_parser_prod, 10816); nit_exit(1);}
29616 /* Register variable[4]: Result */
29617 variable[4] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/;
29618 /* Register variable[4]: Result */
29619 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29620 if (UNTAG_Bool(variable[4])) { /*if*/
29621 /* Register variable[4]: Result */
29622 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29623 if (UNTAG_Bool(variable[4])) { /*if*/
29624 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29625 /* Register variable[4]: Result */
29626 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
29627 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsNotnullExpr___replace_child, LOCATE_parser_prod, 10820); nit_exit(1);}
29628 ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/ = variable[2] /*new_child*/;
29629 } else { /*if*/
29630 ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/ = NIT_NULL /*null*/;
29631 }
29632 goto return_label974;
29633 }
29634 /* Register variable[4]: Result */
29635 variable[4] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/;
29636 /* Register variable[4]: Result */
29637 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29638 if (UNTAG_Bool(variable[4])) { /*if*/
29639 /* Register variable[4]: Result */
29640 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29641 if (UNTAG_Bool(variable[4])) { /*if*/
29642 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29643 /* Register variable[4]: Result */
29644 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
29645 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsNotnullExpr___replace_child, LOCATE_parser_prod, 10830); nit_exit(1);}
29646 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/ = variable[2] /*new_child*/;
29647 } else { /*if*/
29648 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/ = NIT_NULL /*null*/;
29649 }
29650 goto return_label974;
29651 }
29652 /* Register variable[4]: Result */
29653 variable[4] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/;
29654 /* Register variable[4]: Result */
29655 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29656 if (UNTAG_Bool(variable[4])) { /*if*/
29657 /* Register variable[4]: Result */
29658 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29659 if (UNTAG_Bool(variable[4])) { /*if*/
29660 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29661 /* Register variable[4]: Result */
29662 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
29663 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsNotnullExpr___replace_child, LOCATE_parser_prod, 10840); nit_exit(1);}
29664 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/ = variable[2] /*new_child*/;
29665 } else { /*if*/
29666 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/ = NIT_NULL /*null*/;
29667 }
29668 goto return_label974;
29669 }
29670 /* Register variable[4]: Result */
29671 variable[4] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/;
29672 /* Register variable[4]: Result */
29673 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29674 if (UNTAG_Bool(variable[4])) { /*if*/
29675 /* Register variable[4]: Result */
29676 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29677 if (UNTAG_Bool(variable[4])) { /*if*/
29678 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29679 /* Register variable[4]: Result */
29680 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
29681 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsNotnullExpr___replace_child, LOCATE_parser_prod, 10850); nit_exit(1);}
29682 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/ = variable[2] /*new_child*/;
29683 } else { /*if*/
29684 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/ = NIT_NULL /*null*/;
29685 }
29686 goto return_label974;
29687 }
29688 return_label974: while(false);
29689 tracehead = trace.prev;
29690 return;
29691 }
29692 void parser_prod___AAsNotnullExpr___visit_all(val_t self, val_t param0) {
29693 struct trace_t trace = {NULL, NULL, 10859, LOCATE_parser_prod___AAsNotnullExpr___visit_all};
29694 val_t variable[4];
29695 struct WBT_ **closurevariable = NULL;
29696 trace.prev = tracehead; tracehead = &trace;
29697 trace.file = LOCATE_parser_prod;
29698 /* Register variable[0]: Local variable */
29699 variable[0] = self;
29700 /* Register variable[1]: Local variable */
29701 variable[1] = param0;
29702 /* Register variable[2]: Method return value and escape marker */
29703 /* Register variable[3]: Result */
29704 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/;
29705 /* Register variable[3]: Result */
29706 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::==*/)))))));
29707 if (UNTAG_Bool(variable[3])) { /*if*/
29708 /* Register variable[3]: Result */
29709 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/;
29710 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29711 }
29712 /* Register variable[3]: Result */
29713 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/;
29714 /* Register variable[3]: Result */
29715 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::==*/)))))));
29716 if (UNTAG_Bool(variable[3])) { /*if*/
29717 /* Register variable[3]: Result */
29718 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/;
29719 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29720 }
29721 /* Register variable[3]: Result */
29722 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/;
29723 /* Register variable[3]: Result */
29724 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::==*/)))))));
29725 if (UNTAG_Bool(variable[3])) { /*if*/
29726 /* Register variable[3]: Result */
29727 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/;
29728 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29729 }
29730 /* Register variable[3]: Result */
29731 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/;
29732 /* Register variable[3]: Result */
29733 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::==*/)))))));
29734 if (UNTAG_Bool(variable[3])) { /*if*/
29735 /* Register variable[3]: Result */
29736 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/;
29737 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29738 }
29739 return_label975: while(false);
29740 tracehead = trace.prev;
29741 return;
29742 }
29743 void parser_prod___AAsNotnullExpr___visit_all_reverse(val_t self, val_t param0) {
29744 struct trace_t trace = {NULL, NULL, 10875, LOCATE_parser_prod___AAsNotnullExpr___visit_all_reverse};
29745 val_t variable[4];
29746 struct WBT_ **closurevariable = NULL;
29747 trace.prev = tracehead; tracehead = &trace;
29748 trace.file = LOCATE_parser_prod;
29749 /* Register variable[0]: Local variable */
29750 variable[0] = self;
29751 /* Register variable[1]: Local variable */
29752 variable[1] = param0;
29753 /* Register variable[2]: Method return value and escape marker */
29754 /* Register variable[3]: Result */
29755 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/;
29756 /* Register variable[3]: Result */
29757 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::==*/)))))));
29758 if (UNTAG_Bool(variable[3])) { /*if*/
29759 /* Register variable[3]: Result */
29760 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/;
29761 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29762 }
29763 /* Register variable[3]: Result */
29764 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/;
29765 /* Register variable[3]: Result */
29766 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::==*/)))))));
29767 if (UNTAG_Bool(variable[3])) { /*if*/
29768 /* Register variable[3]: Result */
29769 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/;
29770 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29771 }
29772 /* Register variable[3]: Result */
29773 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/;
29774 /* Register variable[3]: Result */
29775 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::==*/)))))));
29776 if (UNTAG_Bool(variable[3])) { /*if*/
29777 /* Register variable[3]: Result */
29778 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/;
29779 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29780 }
29781 /* Register variable[3]: Result */
29782 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/;
29783 /* Register variable[3]: Result */
29784 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::==*/)))))));
29785 if (UNTAG_Bool(variable[3])) { /*if*/
29786 /* Register variable[3]: Result */
29787 variable[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/;
29788 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
29789 }
29790 return_label976: while(false);
29791 tracehead = trace.prev;
29792 return;
29793 }
29794 void parser_prod___AAsNotnullExpr___empty_init(val_t self, int* init_table) {
29795 struct trace_t trace = {NULL, NULL, 10786, LOCATE_parser_prod___AAsNotnullExpr___empty_init};
29796 val_t variable[2];
29797 struct WBT_ **closurevariable = NULL;
29798 trace.prev = tracehead; tracehead = &trace;
29799 trace.file = LOCATE_parser_prod;
29800 /* Register variable[0]: Local variable */
29801 variable[0] = self;
29802 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsNotnullExpr].i]) return;
29803 /* Register variable[1]: Method return value and escape marker */
29804 return_label977: while(false);
29805 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsNotnullExpr].i] = 1;
29806 tracehead = trace.prev;
29807 return;
29808 }
29809 void parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
29810 struct trace_t trace = {NULL, NULL, 10788, LOCATE_parser_prod___AAsNotnullExpr___init_aasnotnullexpr};
29811 val_t variable[7];
29812 struct WBT_ **closurevariable = NULL;
29813 trace.prev = tracehead; tracehead = &trace;
29814 trace.file = LOCATE_parser_prod;
29815 /* Register variable[0]: Local variable */
29816 variable[0] = self;
29817 /* Register variable[1]: Local variable */
29818 variable[1] = param0;
29819 /* Register variable[2]: Local variable */
29820 variable[2] = param1;
29821 /* Register variable[3]: Local variable */
29822 variable[3] = param2;
29823 /* Register variable[4]: Local variable */
29824 variable[4] = param3;
29825 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsNotnullExpr].i]) return;
29826 /* Register variable[5]: Method return value and escape marker */
29827 CALL_parser_prod___AAsNotnullExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AAsNotnullExpr::empty_init*/;
29828 ATTR_parser_nodes___AAsNotnullExpr____n_expr(variable[0]) /*AAsNotnullExpr::_n_expr*/ = variable[1] /*n_expr*/;
29829 /* Register variable[6]: Result */
29830 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29831 if (UNTAG_Bool(variable[6])) { /*if*/
29832 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[0]) /*PNode::parent=*/;
29833 }
29834 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(variable[0]) /*AAsNotnullExpr::_n_kwas*/ = variable[2] /*n_kwas*/;
29835 /* Register variable[6]: Result */
29836 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwas*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwas*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwas*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwas*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwas*/)( variable[2] /*n_kwas*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29837 if (UNTAG_Bool(variable[6])) { /*if*/
29838 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwas*/)( variable[2] /*n_kwas*/, variable[0]) /*PNode::parent=*/;
29839 }
29840 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(variable[0]) /*AAsNotnullExpr::_n_kwnot*/ = variable[3] /*n_kwnot*/;
29841 /* Register variable[6]: Result */
29842 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwnot*/ == NIT_NULL /*null*/) || (( variable[3] /*n_kwnot*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwnot*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwnot*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwnot*/)( variable[3] /*n_kwnot*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29843 if (UNTAG_Bool(variable[6])) { /*if*/
29844 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwnot*/)( variable[3] /*n_kwnot*/, variable[0]) /*PNode::parent=*/;
29845 }
29846 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(variable[0]) /*AAsNotnullExpr::_n_kwnull*/ = variable[4] /*n_kwnull*/;
29847 /* Register variable[6]: Result */
29848 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwnull*/ == NIT_NULL /*null*/) || (( variable[4] /*n_kwnull*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwnull*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwnull*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwnull*/)( variable[4] /*n_kwnull*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29849 if (UNTAG_Bool(variable[6])) { /*if*/
29850 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwnull*/)( variable[4] /*n_kwnull*/, variable[0]) /*PNode::parent=*/;
29851 }
29852 return_label978: while(false);
29853 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsNotnullExpr].i] = 1;
29854 tracehead = trace.prev;
29855 return;
29856 }
29857 void parser_prod___AIssetAttrExpr___n_expr__eq(val_t self, val_t param0) {
29858 struct trace_t trace = {NULL, NULL, 10899, LOCATE_parser_prod___AIssetAttrExpr___n_expr__eq};
29859 val_t variable[4];
29860 struct WBT_ **closurevariable = NULL;
29861 trace.prev = tracehead; tracehead = &trace;
29862 trace.file = LOCATE_parser_prod;
29863 /* Register variable[0]: Local variable */
29864 variable[0] = self;
29865 /* Register variable[1]: Local variable */
29866 variable[1] = param0;
29867 /* Register variable[2]: Method return value and escape marker */
29868 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n*/;
29869 /* Register variable[3]: Result */
29870 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29871 if (UNTAG_Bool(variable[3])) { /*if*/
29872 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29873 }
29874 return_label979: while(false);
29875 tracehead = trace.prev;
29876 return;
29877 }
29878 void parser_prod___AIssetAttrExpr___n_id__eq(val_t self, val_t param0) {
29879 struct trace_t trace = {NULL, NULL, 10906, LOCATE_parser_prod___AIssetAttrExpr___n_id__eq};
29880 val_t variable[4];
29881 struct WBT_ **closurevariable = NULL;
29882 trace.prev = tracehead; tracehead = &trace;
29883 trace.file = LOCATE_parser_prod;
29884 /* Register variable[0]: Local variable */
29885 variable[0] = self;
29886 /* Register variable[1]: Local variable */
29887 variable[1] = param0;
29888 /* Register variable[2]: Method return value and escape marker */
29889 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[1] /*n*/;
29890 /* Register variable[3]: Result */
29891 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29892 if (UNTAG_Bool(variable[3])) { /*if*/
29893 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29894 }
29895 return_label980: while(false);
29896 tracehead = trace.prev;
29897 return;
29898 }
29899 void parser_prod___AIssetAttrExpr___n_kwisset__eq(val_t self, val_t param0) {
29900 struct trace_t trace = {NULL, NULL, 10892, LOCATE_parser_prod___AIssetAttrExpr___n_kwisset__eq};
29901 val_t variable[4];
29902 struct WBT_ **closurevariable = NULL;
29903 trace.prev = tracehead; tracehead = &trace;
29904 trace.file = LOCATE_parser_prod;
29905 /* Register variable[0]: Local variable */
29906 variable[0] = self;
29907 /* Register variable[1]: Local variable */
29908 variable[1] = param0;
29909 /* Register variable[2]: Method return value and escape marker */
29910 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/ = variable[1] /*n*/;
29911 /* Register variable[3]: Result */
29912 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29913 if (UNTAG_Bool(variable[3])) { /*if*/
29914 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
29915 }
29916 return_label981: while(false);
29917 tracehead = trace.prev;
29918 return;
29919 }
29920 void parser_prod___AIssetAttrExpr___replace_child(val_t self, val_t param0, val_t param1) {
29921 struct trace_t trace = {NULL, NULL, 10937, LOCATE_parser_prod___AIssetAttrExpr___replace_child};
29922 val_t variable[5];
29923 struct WBT_ **closurevariable = NULL;
29924 trace.prev = tracehead; tracehead = &trace;
29925 trace.file = LOCATE_parser_prod;
29926 /* Register variable[0]: Local variable */
29927 variable[0] = self;
29928 /* Register variable[1]: Local variable */
29929 variable[1] = param0;
29930 /* Register variable[2]: Local variable */
29931 variable[2] = param1;
29932 /* Register variable[3]: Method return value and escape marker */
29933 /* Register variable[4]: Result */
29934 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29935 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIssetAttrExpr___replace_child, LOCATE_parser_prod, 10939); nit_exit(1);}
29936 /* Register variable[4]: Result */
29937 variable[4] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/;
29938 /* Register variable[4]: Result */
29939 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29940 if (UNTAG_Bool(variable[4])) { /*if*/
29941 /* Register variable[4]: Result */
29942 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29943 if (UNTAG_Bool(variable[4])) { /*if*/
29944 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29945 /* Register variable[4]: Result */
29946 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwisset, ID_TKwisset)) /*cast TKwisset*/;
29947 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIssetAttrExpr___replace_child, LOCATE_parser_prod, 10943); nit_exit(1);}
29948 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/ = variable[2] /*new_child*/;
29949 } else { /*if*/
29950 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/ = NIT_NULL /*null*/;
29951 }
29952 goto return_label982;
29953 }
29954 /* Register variable[4]: Result */
29955 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
29956 /* Register variable[4]: Result */
29957 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29958 if (UNTAG_Bool(variable[4])) { /*if*/
29959 /* Register variable[4]: Result */
29960 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29961 if (UNTAG_Bool(variable[4])) { /*if*/
29962 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29963 /* Register variable[4]: Result */
29964 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
29965 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIssetAttrExpr___replace_child, LOCATE_parser_prod, 10953); nit_exit(1);}
29966 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*new_child*/;
29967 } else { /*if*/
29968 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = NIT_NULL /*null*/;
29969 }
29970 goto return_label982;
29971 }
29972 /* Register variable[4]: Result */
29973 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
29974 /* Register variable[4]: Result */
29975 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
29976 if (UNTAG_Bool(variable[4])) { /*if*/
29977 /* Register variable[4]: Result */
29978 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
29979 if (UNTAG_Bool(variable[4])) { /*if*/
29980 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
29981 /* Register variable[4]: Result */
29982 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
29983 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIssetAttrExpr___replace_child, LOCATE_parser_prod, 10963); nit_exit(1);}
29984 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[2] /*new_child*/;
29985 } else { /*if*/
29986 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = NIT_NULL /*null*/;
29987 }
29988 goto return_label982;
29989 }
29990 return_label982: while(false);
29991 tracehead = trace.prev;
29992 return;
29993 }
29994 void parser_prod___AIssetAttrExpr___visit_all(val_t self, val_t param0) {
29995 struct trace_t trace = {NULL, NULL, 10972, LOCATE_parser_prod___AIssetAttrExpr___visit_all};
29996 val_t variable[4];
29997 struct WBT_ **closurevariable = NULL;
29998 trace.prev = tracehead; tracehead = &trace;
29999 trace.file = LOCATE_parser_prod;
30000 /* Register variable[0]: Local variable */
30001 variable[0] = self;
30002 /* Register variable[1]: Local variable */
30003 variable[1] = param0;
30004 /* Register variable[2]: Method return value and escape marker */
30005 /* Register variable[3]: Result */
30006 variable[3] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/;
30007 /* Register variable[3]: Result */
30008 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::==*/)))))));
30009 if (UNTAG_Bool(variable[3])) { /*if*/
30010 /* Register variable[3]: Result */
30011 variable[3] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/;
30012 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30013 }
30014 /* Register variable[3]: Result */
30015 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
30016 /* Register variable[3]: Result */
30017 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::==*/)))))));
30018 if (UNTAG_Bool(variable[3])) { /*if*/
30019 /* Register variable[3]: Result */
30020 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
30021 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30022 }
30023 /* Register variable[3]: Result */
30024 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
30025 /* Register variable[3]: Result */
30026 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::==*/)))))));
30027 if (UNTAG_Bool(variable[3])) { /*if*/
30028 /* Register variable[3]: Result */
30029 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
30030 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30031 }
30032 return_label983: while(false);
30033 tracehead = trace.prev;
30034 return;
30035 }
30036 void parser_prod___AIssetAttrExpr___visit_all_reverse(val_t self, val_t param0) {
30037 struct trace_t trace = {NULL, NULL, 10985, LOCATE_parser_prod___AIssetAttrExpr___visit_all_reverse};
30038 val_t variable[4];
30039 struct WBT_ **closurevariable = NULL;
30040 trace.prev = tracehead; tracehead = &trace;
30041 trace.file = LOCATE_parser_prod;
30042 /* Register variable[0]: Local variable */
30043 variable[0] = self;
30044 /* Register variable[1]: Local variable */
30045 variable[1] = param0;
30046 /* Register variable[2]: Method return value and escape marker */
30047 /* Register variable[3]: Result */
30048 variable[3] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/;
30049 /* Register variable[3]: Result */
30050 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::==*/)))))));
30051 if (UNTAG_Bool(variable[3])) { /*if*/
30052 /* Register variable[3]: Result */
30053 variable[3] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/;
30054 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30055 }
30056 /* Register variable[3]: Result */
30057 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
30058 /* Register variable[3]: Result */
30059 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::==*/)))))));
30060 if (UNTAG_Bool(variable[3])) { /*if*/
30061 /* Register variable[3]: Result */
30062 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/;
30063 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30064 }
30065 /* Register variable[3]: Result */
30066 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
30067 /* Register variable[3]: Result */
30068 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::==*/)))))));
30069 if (UNTAG_Bool(variable[3])) { /*if*/
30070 /* Register variable[3]: Result */
30071 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/;
30072 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30073 }
30074 return_label984: while(false);
30075 tracehead = trace.prev;
30076 return;
30077 }
30078 void parser_prod___AIssetAttrExpr___empty_init(val_t self, int* init_table) {
30079 struct trace_t trace = {NULL, NULL, 10914, LOCATE_parser_prod___AIssetAttrExpr___empty_init};
30080 val_t variable[2];
30081 struct WBT_ **closurevariable = NULL;
30082 trace.prev = tracehead; tracehead = &trace;
30083 trace.file = LOCATE_parser_prod;
30084 /* Register variable[0]: Local variable */
30085 variable[0] = self;
30086 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIssetAttrExpr].i]) return;
30087 /* Register variable[1]: Method return value and escape marker */
30088 return_label985: while(false);
30089 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIssetAttrExpr].i] = 1;
30090 tracehead = trace.prev;
30091 return;
30092 }
30093 void parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
30094 struct trace_t trace = {NULL, NULL, 10916, LOCATE_parser_prod___AIssetAttrExpr___init_aissetattrexpr};
30095 val_t variable[6];
30096 struct WBT_ **closurevariable = NULL;
30097 trace.prev = tracehead; tracehead = &trace;
30098 trace.file = LOCATE_parser_prod;
30099 /* Register variable[0]: Local variable */
30100 variable[0] = self;
30101 /* Register variable[1]: Local variable */
30102 variable[1] = param0;
30103 /* Register variable[2]: Local variable */
30104 variable[2] = param1;
30105 /* Register variable[3]: Local variable */
30106 variable[3] = param2;
30107 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIssetAttrExpr].i]) return;
30108 /* Register variable[4]: Method return value and escape marker */
30109 CALL_parser_prod___AIssetAttrExpr___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AIssetAttrExpr::empty_init*/;
30110 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(variable[0]) /*AIssetAttrExpr::_n_kwisset*/ = variable[1] /*n_kwisset*/;
30111 /* Register variable[5]: Result */
30112 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwisset*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwisset*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwisset*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwisset*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwisset*/)( variable[1] /*n_kwisset*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30113 if (UNTAG_Bool(variable[5])) { /*if*/
30114 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwisset*/)( variable[1] /*n_kwisset*/, variable[0]) /*PNode::parent=*/;
30115 }
30116 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[0]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*n_expr*/;
30117 /* Register variable[5]: Result */
30118 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30119 if (UNTAG_Bool(variable[5])) { /*if*/
30120 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[0]) /*PNode::parent=*/;
30121 }
30122 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[0]) /*AAttrFormExpr::_n_id*/ = variable[3] /*n_id*/;
30123 /* Register variable[5]: Result */
30124 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ == NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30125 if (UNTAG_Bool(variable[5])) { /*if*/
30126 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[0]) /*PNode::parent=*/;
30127 }
30128 return_label986: while(false);
30129 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIssetAttrExpr].i] = 1;
30130 tracehead = trace.prev;
30131 return;
30132 }
30133 void parser_prod___APlusAssignOp___n_pluseq__eq(val_t self, val_t param0) {
30134 struct trace_t trace = {NULL, NULL, 10999, LOCATE_parser_prod___APlusAssignOp___n_pluseq__eq};
30135 val_t variable[4];
30136 struct WBT_ **closurevariable = NULL;
30137 trace.prev = tracehead; tracehead = &trace;
30138 trace.file = LOCATE_parser_prod;
30139 /* Register variable[0]: Local variable */
30140 variable[0] = self;
30141 /* Register variable[1]: Local variable */
30142 variable[1] = param0;
30143 /* Register variable[2]: Method return value and escape marker */
30144 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/ = variable[1] /*n*/;
30145 /* Register variable[3]: Result */
30146 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30147 if (UNTAG_Bool(variable[3])) { /*if*/
30148 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
30149 }
30150 return_label987: while(false);
30151 tracehead = trace.prev;
30152 return;
30153 }
30154 void parser_prod___APlusAssignOp___replace_child(val_t self, val_t param0, val_t param1) {
30155 struct trace_t trace = {NULL, NULL, 11020, LOCATE_parser_prod___APlusAssignOp___replace_child};
30156 val_t variable[5];
30157 struct WBT_ **closurevariable = NULL;
30158 trace.prev = tracehead; tracehead = &trace;
30159 trace.file = LOCATE_parser_prod;
30160 /* Register variable[0]: Local variable */
30161 variable[0] = self;
30162 /* Register variable[1]: Local variable */
30163 variable[1] = param0;
30164 /* Register variable[2]: Local variable */
30165 variable[2] = param1;
30166 /* Register variable[3]: Method return value and escape marker */
30167 /* Register variable[4]: Result */
30168 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30169 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusAssignOp___replace_child, LOCATE_parser_prod, 11022); nit_exit(1);}
30170 /* Register variable[4]: Result */
30171 variable[4] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/;
30172 /* Register variable[4]: Result */
30173 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
30174 if (UNTAG_Bool(variable[4])) { /*if*/
30175 /* Register variable[4]: Result */
30176 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30177 if (UNTAG_Bool(variable[4])) { /*if*/
30178 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30179 /* Register variable[4]: Result */
30180 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
30181 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusAssignOp___replace_child, LOCATE_parser_prod, 11026); nit_exit(1);}
30182 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/ = variable[2] /*new_child*/;
30183 } else { /*if*/
30184 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/ = NIT_NULL /*null*/;
30185 }
30186 goto return_label988;
30187 }
30188 return_label988: while(false);
30189 tracehead = trace.prev;
30190 return;
30191 }
30192 void parser_prod___APlusAssignOp___visit_all(val_t self, val_t param0) {
30193 struct trace_t trace = {NULL, NULL, 11035, LOCATE_parser_prod___APlusAssignOp___visit_all};
30194 val_t variable[4];
30195 struct WBT_ **closurevariable = NULL;
30196 trace.prev = tracehead; tracehead = &trace;
30197 trace.file = LOCATE_parser_prod;
30198 /* Register variable[0]: Local variable */
30199 variable[0] = self;
30200 /* Register variable[1]: Local variable */
30201 variable[1] = param0;
30202 /* Register variable[2]: Method return value and escape marker */
30203 /* Register variable[3]: Result */
30204 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/;
30205 /* Register variable[3]: Result */
30206 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::==*/)))))));
30207 if (UNTAG_Bool(variable[3])) { /*if*/
30208 /* Register variable[3]: Result */
30209 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/;
30210 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30211 }
30212 return_label989: while(false);
30213 tracehead = trace.prev;
30214 return;
30215 }
30216 void parser_prod___APlusAssignOp___visit_all_reverse(val_t self, val_t param0) {
30217 struct trace_t trace = {NULL, NULL, 11042, LOCATE_parser_prod___APlusAssignOp___visit_all_reverse};
30218 val_t variable[4];
30219 struct WBT_ **closurevariable = NULL;
30220 trace.prev = tracehead; tracehead = &trace;
30221 trace.file = LOCATE_parser_prod;
30222 /* Register variable[0]: Local variable */
30223 variable[0] = self;
30224 /* Register variable[1]: Local variable */
30225 variable[1] = param0;
30226 /* Register variable[2]: Method return value and escape marker */
30227 /* Register variable[3]: Result */
30228 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/;
30229 /* Register variable[3]: Result */
30230 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::==*/)))))));
30231 if (UNTAG_Bool(variable[3])) { /*if*/
30232 /* Register variable[3]: Result */
30233 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/;
30234 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30235 }
30236 return_label990: while(false);
30237 tracehead = trace.prev;
30238 return;
30239 }
30240 void parser_prod___APlusAssignOp___empty_init(val_t self, int* init_table) {
30241 struct trace_t trace = {NULL, NULL, 11007, LOCATE_parser_prod___APlusAssignOp___empty_init};
30242 val_t variable[2];
30243 struct WBT_ **closurevariable = NULL;
30244 trace.prev = tracehead; tracehead = &trace;
30245 trace.file = LOCATE_parser_prod;
30246 /* Register variable[0]: Local variable */
30247 variable[0] = self;
30248 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
30249 /* Register variable[1]: Method return value and escape marker */
30250 return_label991: while(false);
30251 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
30252 tracehead = trace.prev;
30253 return;
30254 }
30255 void parser_prod___APlusAssignOp___init_aplusassignop(val_t self, val_t param0, int* init_table) {
30256 struct trace_t trace = {NULL, NULL, 11009, LOCATE_parser_prod___APlusAssignOp___init_aplusassignop};
30257 val_t variable[4];
30258 struct WBT_ **closurevariable = NULL;
30259 trace.prev = tracehead; tracehead = &trace;
30260 trace.file = LOCATE_parser_prod;
30261 /* Register variable[0]: Local variable */
30262 variable[0] = self;
30263 /* Register variable[1]: Local variable */
30264 variable[1] = param0;
30265 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
30266 /* Register variable[2]: Method return value and escape marker */
30267 CALL_parser_prod___APlusAssignOp___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*APlusAssignOp::empty_init*/;
30268 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[0]) /*APlusAssignOp::_n_pluseq*/ = variable[1] /*n_pluseq*/;
30269 /* Register variable[3]: Result */
30270 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_pluseq*/ == NIT_NULL /*null*/) || (( variable[1] /*n_pluseq*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_pluseq*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_pluseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_pluseq*/)( variable[1] /*n_pluseq*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30271 if (UNTAG_Bool(variable[3])) { /*if*/
30272 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_pluseq*/)( variable[1] /*n_pluseq*/, variable[0]) /*PNode::parent=*/;
30273 }
30274 return_label992: while(false);
30275 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
30276 tracehead = trace.prev;
30277 return;
30278 }
30279 void parser_prod___AMinusAssignOp___n_minuseq__eq(val_t self, val_t param0) {
30280 struct trace_t trace = {NULL, NULL, 11050, LOCATE_parser_prod___AMinusAssignOp___n_minuseq__eq};
30281 val_t variable[4];
30282 struct WBT_ **closurevariable = NULL;
30283 trace.prev = tracehead; tracehead = &trace;
30284 trace.file = LOCATE_parser_prod;
30285 /* Register variable[0]: Local variable */
30286 variable[0] = self;
30287 /* Register variable[1]: Local variable */
30288 variable[1] = param0;
30289 /* Register variable[2]: Method return value and escape marker */
30290 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/ = variable[1] /*n*/;
30291 /* Register variable[3]: Result */
30292 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30293 if (UNTAG_Bool(variable[3])) { /*if*/
30294 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
30295 }
30296 return_label993: while(false);
30297 tracehead = trace.prev;
30298 return;
30299 }
30300 void parser_prod___AMinusAssignOp___replace_child(val_t self, val_t param0, val_t param1) {
30301 struct trace_t trace = {NULL, NULL, 11071, LOCATE_parser_prod___AMinusAssignOp___replace_child};
30302 val_t variable[5];
30303 struct WBT_ **closurevariable = NULL;
30304 trace.prev = tracehead; tracehead = &trace;
30305 trace.file = LOCATE_parser_prod;
30306 /* Register variable[0]: Local variable */
30307 variable[0] = self;
30308 /* Register variable[1]: Local variable */
30309 variable[1] = param0;
30310 /* Register variable[2]: Local variable */
30311 variable[2] = param1;
30312 /* Register variable[3]: Method return value and escape marker */
30313 /* Register variable[4]: Result */
30314 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30315 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusAssignOp___replace_child, LOCATE_parser_prod, 11073); nit_exit(1);}
30316 /* Register variable[4]: Result */
30317 variable[4] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/;
30318 /* Register variable[4]: Result */
30319 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
30320 if (UNTAG_Bool(variable[4])) { /*if*/
30321 /* Register variable[4]: Result */
30322 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30323 if (UNTAG_Bool(variable[4])) { /*if*/
30324 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30325 /* Register variable[4]: Result */
30326 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
30327 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusAssignOp___replace_child, LOCATE_parser_prod, 11077); nit_exit(1);}
30328 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/ = variable[2] /*new_child*/;
30329 } else { /*if*/
30330 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/ = NIT_NULL /*null*/;
30331 }
30332 goto return_label994;
30333 }
30334 return_label994: while(false);
30335 tracehead = trace.prev;
30336 return;
30337 }
30338 void parser_prod___AMinusAssignOp___visit_all(val_t self, val_t param0) {
30339 struct trace_t trace = {NULL, NULL, 11086, LOCATE_parser_prod___AMinusAssignOp___visit_all};
30340 val_t variable[4];
30341 struct WBT_ **closurevariable = NULL;
30342 trace.prev = tracehead; tracehead = &trace;
30343 trace.file = LOCATE_parser_prod;
30344 /* Register variable[0]: Local variable */
30345 variable[0] = self;
30346 /* Register variable[1]: Local variable */
30347 variable[1] = param0;
30348 /* Register variable[2]: Method return value and escape marker */
30349 /* Register variable[3]: Result */
30350 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/;
30351 /* Register variable[3]: Result */
30352 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::==*/)))))));
30353 if (UNTAG_Bool(variable[3])) { /*if*/
30354 /* Register variable[3]: Result */
30355 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/;
30356 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30357 }
30358 return_label995: while(false);
30359 tracehead = trace.prev;
30360 return;
30361 }
30362 void parser_prod___AMinusAssignOp___visit_all_reverse(val_t self, val_t param0) {
30363 struct trace_t trace = {NULL, NULL, 11093, LOCATE_parser_prod___AMinusAssignOp___visit_all_reverse};
30364 val_t variable[4];
30365 struct WBT_ **closurevariable = NULL;
30366 trace.prev = tracehead; tracehead = &trace;
30367 trace.file = LOCATE_parser_prod;
30368 /* Register variable[0]: Local variable */
30369 variable[0] = self;
30370 /* Register variable[1]: Local variable */
30371 variable[1] = param0;
30372 /* Register variable[2]: Method return value and escape marker */
30373 /* Register variable[3]: Result */
30374 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/;
30375 /* Register variable[3]: Result */
30376 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::==*/)))))));
30377 if (UNTAG_Bool(variable[3])) { /*if*/
30378 /* Register variable[3]: Result */
30379 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/;
30380 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30381 }
30382 return_label996: while(false);
30383 tracehead = trace.prev;
30384 return;
30385 }
30386 void parser_prod___AMinusAssignOp___empty_init(val_t self, int* init_table) {
30387 struct trace_t trace = {NULL, NULL, 11058, LOCATE_parser_prod___AMinusAssignOp___empty_init};
30388 val_t variable[2];
30389 struct WBT_ **closurevariable = NULL;
30390 trace.prev = tracehead; tracehead = &trace;
30391 trace.file = LOCATE_parser_prod;
30392 /* Register variable[0]: Local variable */
30393 variable[0] = self;
30394 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
30395 /* Register variable[1]: Method return value and escape marker */
30396 return_label997: while(false);
30397 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
30398 tracehead = trace.prev;
30399 return;
30400 }
30401 void parser_prod___AMinusAssignOp___init_aminusassignop(val_t self, val_t param0, int* init_table) {
30402 struct trace_t trace = {NULL, NULL, 11060, LOCATE_parser_prod___AMinusAssignOp___init_aminusassignop};
30403 val_t variable[4];
30404 struct WBT_ **closurevariable = NULL;
30405 trace.prev = tracehead; tracehead = &trace;
30406 trace.file = LOCATE_parser_prod;
30407 /* Register variable[0]: Local variable */
30408 variable[0] = self;
30409 /* Register variable[1]: Local variable */
30410 variable[1] = param0;
30411 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
30412 /* Register variable[2]: Method return value and escape marker */
30413 CALL_parser_prod___AMinusAssignOp___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AMinusAssignOp::empty_init*/;
30414 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[0]) /*AMinusAssignOp::_n_minuseq*/ = variable[1] /*n_minuseq*/;
30415 /* Register variable[3]: Result */
30416 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minuseq*/ == NIT_NULL /*null*/) || (( variable[1] /*n_minuseq*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_minuseq*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minuseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_minuseq*/)( variable[1] /*n_minuseq*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30417 if (UNTAG_Bool(variable[3])) { /*if*/
30418 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minuseq*/)( variable[1] /*n_minuseq*/, variable[0]) /*PNode::parent=*/;
30419 }
30420 return_label998: while(false);
30421 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
30422 tracehead = trace.prev;
30423 return;
30424 }
30425 void parser_prod___AClosureDef___n_kwwith__eq(val_t self, val_t param0) {
30426 struct trace_t trace = {NULL, NULL, 11101, LOCATE_parser_prod___AClosureDef___n_kwwith__eq};
30427 val_t variable[4];
30428 struct WBT_ **closurevariable = NULL;
30429 trace.prev = tracehead; tracehead = &trace;
30430 trace.file = LOCATE_parser_prod;
30431 /* Register variable[0]: Local variable */
30432 variable[0] = self;
30433 /* Register variable[1]: Local variable */
30434 variable[1] = param0;
30435 /* Register variable[2]: Method return value and escape marker */
30436 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/ = variable[1] /*n*/;
30437 /* Register variable[3]: Result */
30438 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30439 if (UNTAG_Bool(variable[3])) { /*if*/
30440 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
30441 }
30442 return_label999: while(false);
30443 tracehead = trace.prev;
30444 return;
30445 }
30446 void parser_prod___AClosureDef___n_kwdo__eq(val_t self, val_t param0) {
30447 struct trace_t trace = {NULL, NULL, 11108, LOCATE_parser_prod___AClosureDef___n_kwdo__eq};
30448 val_t variable[4];
30449 struct WBT_ **closurevariable = NULL;
30450 trace.prev = tracehead; tracehead = &trace;
30451 trace.file = LOCATE_parser_prod;
30452 /* Register variable[0]: Local variable */
30453 variable[0] = self;
30454 /* Register variable[1]: Local variable */
30455 variable[1] = param0;
30456 /* Register variable[2]: Method return value and escape marker */
30457 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/ = variable[1] /*n*/;
30458 /* Register variable[3]: Result */
30459 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30460 if (UNTAG_Bool(variable[3])) { /*if*/
30461 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
30462 }
30463 return_label1000: while(false);
30464 tracehead = trace.prev;
30465 return;
30466 }
30467 void parser_prod___AClosureDef___n_expr__eq(val_t self, val_t param0) {
30468 struct trace_t trace = {NULL, NULL, 11115, LOCATE_parser_prod___AClosureDef___n_expr__eq};
30469 val_t variable[4];
30470 struct WBT_ **closurevariable = NULL;
30471 trace.prev = tracehead; tracehead = &trace;
30472 trace.file = LOCATE_parser_prod;
30473 /* Register variable[0]: Local variable */
30474 variable[0] = self;
30475 /* Register variable[1]: Local variable */
30476 variable[1] = param0;
30477 /* Register variable[2]: Method return value and escape marker */
30478 ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/ = variable[1] /*n*/;
30479 /* Register variable[3]: Result */
30480 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30481 if (UNTAG_Bool(variable[3])) { /*if*/
30482 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
30483 }
30484 return_label1001: while(false);
30485 tracehead = trace.prev;
30486 return;
30487 }
30488 void parser_prod___AClosureDef___replace_child(val_t self, val_t param0, val_t param1) {
30489 struct trace_t trace = {NULL, NULL, 11153, LOCATE_parser_prod___AClosureDef___replace_child};
30490 val_t variable[8];
30491 struct WBT_ **closurevariable = NULL;
30492 trace.prev = tracehead; tracehead = &trace;
30493 trace.file = LOCATE_parser_prod;
30494 /* Register variable[0]: Local variable */
30495 variable[0] = self;
30496 /* Register variable[1]: Local variable */
30497 variable[1] = param0;
30498 /* Register variable[2]: Local variable */
30499 variable[2] = param1;
30500 /* Register variable[3]: Method return value and escape marker */
30501 /* Register variable[4]: Result */
30502 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30503 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 11155); nit_exit(1);}
30504 /* Register variable[4]: Result */
30505 variable[4] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/;
30506 /* Register variable[4]: Result */
30507 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
30508 if (UNTAG_Bool(variable[4])) { /*if*/
30509 /* Register variable[4]: Result */
30510 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30511 if (UNTAG_Bool(variable[4])) { /*if*/
30512 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30513 /* Register variable[4]: Result */
30514 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
30515 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 11159); nit_exit(1);}
30516 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/ = variable[2] /*new_child*/;
30517 } else { /*if*/
30518 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/ = NIT_NULL /*null*/;
30519 }
30520 goto return_label1002;
30521 }
30522 /* Register variable[4]: Result */
30523 variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30524 /* Register variable[4]: Result */
30525 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
30526 /* Register variable[4]: Result */
30527 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
30528 /* Register variable[4]: For iterator */
30529 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
30530 while (true) { /*for*/
30531 /* Register variable[5]: For 'is_ok' result */
30532 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
30533 if (!UNTAG_Bool(variable[5])) break; /*for*/
30534 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
30535 /* Register variable[6]: Local variable */
30536 variable[6] = variable[5];
30537 /* Register variable[7]: Result */
30538 variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30539 /* Register variable[7]: Result */
30540 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
30541 /* Register variable[7]: Result */
30542 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
30543 if (UNTAG_Bool(variable[7])) { /*if*/
30544 /* Register variable[7]: Result */
30545 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30546 if (UNTAG_Bool(variable[7])) { /*if*/
30547 /* Register variable[7]: Result */
30548 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
30549 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 11169); nit_exit(1);}
30550 /* Register variable[7]: Result */
30551 variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30552 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
30553 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30554 } else { /*if*/
30555 /* Register variable[7]: Result */
30556 variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30557 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
30558 }
30559 goto return_label1002;
30560 }
30561 continue_1003: while(0);
30562 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
30563 }
30564 break_1003: while(0);
30565 /* Register variable[4]: Result */
30566 variable[4] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/;
30567 /* Register variable[4]: Result */
30568 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
30569 if (UNTAG_Bool(variable[4])) { /*if*/
30570 /* Register variable[4]: Result */
30571 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30572 if (UNTAG_Bool(variable[4])) { /*if*/
30573 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30574 /* Register variable[4]: Result */
30575 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
30576 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 11181); nit_exit(1);}
30577 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/ = variable[2] /*new_child*/;
30578 } else { /*if*/
30579 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/ = NIT_NULL /*null*/;
30580 }
30581 goto return_label1002;
30582 }
30583 /* Register variable[4]: Result */
30584 variable[4] = ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/;
30585 /* Register variable[4]: Result */
30586 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
30587 if (UNTAG_Bool(variable[4])) { /*if*/
30588 /* Register variable[4]: Result */
30589 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30590 if (UNTAG_Bool(variable[4])) { /*if*/
30591 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30592 /* Register variable[4]: Result */
30593 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
30594 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 11191); nit_exit(1);}
30595 ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/ = variable[2] /*new_child*/;
30596 } else { /*if*/
30597 ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/ = NIT_NULL /*null*/;
30598 }
30599 goto return_label1002;
30600 }
30601 return_label1002: while(false);
30602 tracehead = trace.prev;
30603 return;
30604 }
30605 void parser_prod___AClosureDef___visit_all(val_t self, val_t param0) {
30606 struct trace_t trace = {NULL, NULL, 11200, LOCATE_parser_prod___AClosureDef___visit_all};
30607 val_t variable[6];
30608 struct WBT_ **closurevariable = NULL;
30609 trace.prev = tracehead; tracehead = &trace;
30610 trace.file = LOCATE_parser_prod;
30611 /* Register variable[0]: Local variable */
30612 variable[0] = self;
30613 /* Register variable[1]: Local variable */
30614 variable[1] = param0;
30615 /* Register variable[2]: Method return value and escape marker */
30616 /* Register variable[3]: Result */
30617 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/;
30618 /* Register variable[3]: Result */
30619 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::==*/)))))));
30620 if (UNTAG_Bool(variable[3])) { /*if*/
30621 /* Register variable[3]: Result */
30622 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/;
30623 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30624 }
30625 /* Register variable[3]: Result */
30626 variable[3] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30627 /* Register variable[3]: For iterator */
30628 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
30629 while (true) { /*for*/
30630 /* Register variable[4]: For 'is_ok' result */
30631 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
30632 if (!UNTAG_Bool(variable[4])) break; /*for*/
30633 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
30634 /* Register variable[5]: Local variable */
30635 variable[5] = variable[4];
30636 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
30637 continue_1005: while(0);
30638 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
30639 }
30640 break_1005: while(0);
30641 /* Register variable[3]: Result */
30642 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/;
30643 /* Register variable[3]: Result */
30644 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::==*/)))))));
30645 if (UNTAG_Bool(variable[3])) { /*if*/
30646 /* Register variable[3]: Result */
30647 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/;
30648 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30649 }
30650 /* Register variable[3]: Result */
30651 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/;
30652 /* Register variable[3]: Result */
30653 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::==*/)))))));
30654 if (UNTAG_Bool(variable[3])) { /*if*/
30655 /* Register variable[3]: Result */
30656 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/;
30657 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30658 }
30659 return_label1004: while(false);
30660 tracehead = trace.prev;
30661 return;
30662 }
30663 void parser_prod___AClosureDef___visit_all_reverse(val_t self, val_t param0) {
30664 struct trace_t trace = {NULL, NULL, 11216, LOCATE_parser_prod___AClosureDef___visit_all_reverse};
30665 val_t variable[5];
30666 struct WBT_ **closurevariable = NULL;
30667 trace.prev = tracehead; tracehead = &trace;
30668 trace.file = LOCATE_parser_prod;
30669 /* Register variable[0]: Local variable */
30670 variable[0] = self;
30671 /* Register variable[1]: Local variable */
30672 variable[1] = param0;
30673 /* Register variable[2]: Method return value and escape marker */
30674 /* Register variable[3]: Result */
30675 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/;
30676 /* Register variable[3]: Result */
30677 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::==*/)))))));
30678 if (UNTAG_Bool(variable[3])) { /*if*/
30679 /* Register variable[3]: Result */
30680 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/;
30681 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30682 }
30683 /* Register variable[3]: Local variable */
30684 /* Register variable[4]: Result */
30685 variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30686 /* Register variable[4]: Result */
30687 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
30688 variable[3] = variable[4];
30689 while (true) { /*while*/
30690 /* Register variable[4]: Result */
30691 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
30692 if (!UNTAG_Bool(variable[4])) break; /* while*/
30693 /* Register variable[4]: Result */
30694 variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30695 /* Register variable[4]: Result */
30696 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
30697 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
30698 /* Register variable[4]: Result */
30699 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
30700 variable[3] = variable[4] /*i=*/;
30701 continue_1007: while(0);
30702 }
30703 break_1007: while(0);
30704 /* Register variable[3]: Result */
30705 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/;
30706 /* Register variable[3]: Result */
30707 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::==*/)))))));
30708 if (UNTAG_Bool(variable[3])) { /*if*/
30709 /* Register variable[3]: Result */
30710 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/;
30711 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30712 }
30713 /* Register variable[3]: Result */
30714 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/;
30715 /* Register variable[3]: Result */
30716 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::==*/)))))));
30717 if (UNTAG_Bool(variable[3])) { /*if*/
30718 /* Register variable[3]: Result */
30719 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/;
30720 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30721 }
30722 return_label1006: while(false);
30723 tracehead = trace.prev;
30724 return;
30725 }
30726 void parser_prod___AClosureDef___empty_init(val_t self, int* init_table) {
30727 struct trace_t trace = {NULL, NULL, 11123, LOCATE_parser_prod___AClosureDef___empty_init};
30728 val_t variable[2];
30729 struct WBT_ **closurevariable = NULL;
30730 trace.prev = tracehead; tracehead = &trace;
30731 trace.file = LOCATE_parser_prod;
30732 /* Register variable[0]: Local variable */
30733 variable[0] = self;
30734 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i]) return;
30735 /* Register variable[1]: Method return value and escape marker */
30736 return_label1008: while(false);
30737 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i] = 1;
30738 tracehead = trace.prev;
30739 return;
30740 }
30741 void parser_prod___AClosureDef___init_aclosuredef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
30742 struct trace_t trace = {NULL, NULL, 11125, LOCATE_parser_prod___AClosureDef___init_aclosuredef};
30743 val_t variable[10];
30744 struct WBT_ **closurevariable = NULL;
30745 trace.prev = tracehead; tracehead = &trace;
30746 trace.file = LOCATE_parser_prod;
30747 /* Register variable[0]: Local variable */
30748 variable[0] = self;
30749 /* Register variable[1]: Local variable */
30750 variable[1] = param0;
30751 /* Register variable[2]: Local variable */
30752 variable[2] = param1;
30753 /* Register variable[3]: Local variable */
30754 variable[3] = param2;
30755 /* Register variable[4]: Local variable */
30756 variable[4] = param3;
30757 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i]) return;
30758 /* Register variable[5]: Method return value and escape marker */
30759 CALL_parser_prod___AClosureDef___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AClosureDef::empty_init*/;
30760 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[0]) /*AClosureDef::_n_kwwith*/ = variable[1] /*n_kwwith*/;
30761 /* Register variable[6]: Result */
30762 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwith*/ == NIT_NULL /*null*/) || (( variable[1] /*n_kwwith*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwith*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30763 if (UNTAG_Bool(variable[6])) { /*if*/
30764 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, variable[0]) /*PNode::parent=*/;
30765 }
30766 /* Register variable[6]: Result */
30767 variable[6] = NEW_List_list___List___init() /*new List[TId]*/;
30768 ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/ = variable[6];
30769 /* Register variable[6]: For iterator */
30770 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_id*/)( variable[2] /*n_id*/) /*Collection::iterator*/;
30771 while (true) { /*for*/
30772 /* Register variable[7]: For 'is_ok' result */
30773 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
30774 if (!UNTAG_Bool(variable[7])) break; /*for*/
30775 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
30776 /* Register variable[8]: Local variable */
30777 variable[8] = variable[7];
30778 /* Register variable[9]: Result */
30779 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
30780 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___init_aclosuredef, LOCATE_parser_prod, 11139); nit_exit(1);}
30781 /* Register variable[9]: Result */
30782 variable[9] = ATTR_parser_nodes___AClosureDef____n_id(variable[0]) /*AClosureDef::_n_id*/;
30783 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
30784 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[0]) /*PNode::parent=*/;
30785 continue_1010: while(0);
30786 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
30787 }
30788 break_1010: while(0);
30789 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[0]) /*AClosureDef::_n_kwdo*/ = variable[3] /*n_kwdo*/;
30790 /* Register variable[6]: Result */
30791 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable[3] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30792 if (UNTAG_Bool(variable[6])) { /*if*/
30793 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, variable[0]) /*PNode::parent=*/;
30794 }
30795 ATTR_parser_nodes___AClosureDef____n_expr(variable[0]) /*AClosureDef::_n_expr*/ = variable[4] /*n_expr*/;
30796 /* Register variable[6]: Result */
30797 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[4] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_expr*/)( variable[4] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30798 if (UNTAG_Bool(variable[6])) { /*if*/
30799 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_expr*/)( variable[4] /*n_expr*/, variable[0]) /*PNode::parent=*/;
30800 }
30801 return_label1009: while(false);
30802 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i] = 1;
30803 tracehead = trace.prev;
30804 return;
30805 }
30806 void parser_prod___AQualified___n_classid__eq(val_t self, val_t param0) {
30807 struct trace_t trace = {NULL, NULL, 11237, LOCATE_parser_prod___AQualified___n_classid__eq};
30808 val_t variable[4];
30809 struct WBT_ **closurevariable = NULL;
30810 trace.prev = tracehead; tracehead = &trace;
30811 trace.file = LOCATE_parser_prod;
30812 /* Register variable[0]: Local variable */
30813 variable[0] = self;
30814 /* Register variable[1]: Local variable */
30815 variable[1] = param0;
30816 /* Register variable[2]: Method return value and escape marker */
30817 ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/ = variable[1] /*n*/;
30818 /* Register variable[3]: Result */
30819 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30820 if (UNTAG_Bool(variable[3])) { /*if*/
30821 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::parent=*/;
30822 }
30823 return_label1011: while(false);
30824 tracehead = trace.prev;
30825 return;
30826 }
30827 void parser_prod___AQualified___replace_child(val_t self, val_t param0, val_t param1) {
30828 struct trace_t trace = {NULL, NULL, 11265, LOCATE_parser_prod___AQualified___replace_child};
30829 val_t variable[8];
30830 struct WBT_ **closurevariable = NULL;
30831 trace.prev = tracehead; tracehead = &trace;
30832 trace.file = LOCATE_parser_prod;
30833 /* Register variable[0]: Local variable */
30834 variable[0] = self;
30835 /* Register variable[1]: Local variable */
30836 variable[1] = param0;
30837 /* Register variable[2]: Local variable */
30838 variable[2] = param1;
30839 /* Register variable[3]: Method return value and escape marker */
30840 /* Register variable[4]: Result */
30841 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30842 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___replace_child, LOCATE_parser_prod, 11267); nit_exit(1);}
30843 /* Register variable[4]: Result */
30844 variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
30845 /* Register variable[4]: Result */
30846 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
30847 /* Register variable[4]: Result */
30848 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
30849 /* Register variable[4]: For iterator */
30850 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
30851 while (true) { /*for*/
30852 /* Register variable[5]: For 'is_ok' result */
30853 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
30854 if (!UNTAG_Bool(variable[5])) break; /*for*/
30855 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
30856 /* Register variable[6]: Local variable */
30857 variable[6] = variable[5];
30858 /* Register variable[7]: Result */
30859 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
30860 /* Register variable[7]: Result */
30861 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
30862 /* Register variable[7]: Result */
30863 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
30864 if (UNTAG_Bool(variable[7])) { /*if*/
30865 /* Register variable[7]: Result */
30866 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30867 if (UNTAG_Bool(variable[7])) { /*if*/
30868 /* Register variable[7]: Result */
30869 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
30870 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___replace_child, LOCATE_parser_prod, 11271); nit_exit(1);}
30871 /* Register variable[7]: Result */
30872 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
30873 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
30874 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30875 } else { /*if*/
30876 /* Register variable[7]: Result */
30877 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
30878 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
30879 }
30880 goto return_label1012;
30881 }
30882 continue_1013: while(0);
30883 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
30884 }
30885 break_1013: while(0);
30886 /* Register variable[4]: Result */
30887 variable[4] = ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/;
30888 /* Register variable[4]: Result */
30889 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
30890 if (UNTAG_Bool(variable[4])) { /*if*/
30891 /* Register variable[4]: Result */
30892 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30893 if (UNTAG_Bool(variable[4])) { /*if*/
30894 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
30895 /* Register variable[4]: Result */
30896 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
30897 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___replace_child, LOCATE_parser_prod, 11283); nit_exit(1);}
30898 ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/ = variable[2] /*new_child*/;
30899 } else { /*if*/
30900 ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/ = NIT_NULL /*null*/;
30901 }
30902 goto return_label1012;
30903 }
30904 return_label1012: while(false);
30905 tracehead = trace.prev;
30906 return;
30907 }
30908 void parser_prod___AQualified___visit_all(val_t self, val_t param0) {
30909 struct trace_t trace = {NULL, NULL, 11292, LOCATE_parser_prod___AQualified___visit_all};
30910 val_t variable[6];
30911 struct WBT_ **closurevariable = NULL;
30912 trace.prev = tracehead; tracehead = &trace;
30913 trace.file = LOCATE_parser_prod;
30914 /* Register variable[0]: Local variable */
30915 variable[0] = self;
30916 /* Register variable[1]: Local variable */
30917 variable[1] = param0;
30918 /* Register variable[2]: Method return value and escape marker */
30919 /* Register variable[3]: Result */
30920 variable[3] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
30921 /* Register variable[3]: For iterator */
30922 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
30923 while (true) { /*for*/
30924 /* Register variable[4]: For 'is_ok' result */
30925 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
30926 if (!UNTAG_Bool(variable[4])) break; /*for*/
30927 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
30928 /* Register variable[5]: Local variable */
30929 variable[5] = variable[4];
30930 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
30931 continue_1015: while(0);
30932 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
30933 }
30934 break_1015: while(0);
30935 /* Register variable[3]: Result */
30936 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/;
30937 /* Register variable[3]: Result */
30938 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::==*/)))))));
30939 if (UNTAG_Bool(variable[3])) { /*if*/
30940 /* Register variable[3]: Result */
30941 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/;
30942 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30943 }
30944 return_label1014: while(false);
30945 tracehead = trace.prev;
30946 return;
30947 }
30948 void parser_prod___AQualified___visit_all_reverse(val_t self, val_t param0) {
30949 struct trace_t trace = {NULL, NULL, 11302, LOCATE_parser_prod___AQualified___visit_all_reverse};
30950 val_t variable[5];
30951 struct WBT_ **closurevariable = NULL;
30952 trace.prev = tracehead; tracehead = &trace;
30953 trace.file = LOCATE_parser_prod;
30954 /* Register variable[0]: Local variable */
30955 variable[0] = self;
30956 /* Register variable[1]: Local variable */
30957 variable[1] = param0;
30958 /* Register variable[2]: Method return value and escape marker */
30959 /* Register variable[3]: Local variable */
30960 /* Register variable[4]: Result */
30961 variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
30962 /* Register variable[4]: Result */
30963 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
30964 variable[3] = variable[4];
30965 while (true) { /*while*/
30966 /* Register variable[4]: Result */
30967 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
30968 if (!UNTAG_Bool(variable[4])) break; /* while*/
30969 /* Register variable[4]: Result */
30970 variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
30971 /* Register variable[4]: Result */
30972 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
30973 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
30974 /* Register variable[4]: Result */
30975 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
30976 variable[3] = variable[4] /*i=*/;
30977 continue_1017: while(0);
30978 }
30979 break_1017: while(0);
30980 /* Register variable[3]: Result */
30981 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/;
30982 /* Register variable[3]: Result */
30983 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::==*/)))))));
30984 if (UNTAG_Bool(variable[3])) { /*if*/
30985 /* Register variable[3]: Result */
30986 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/;
30987 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
30988 }
30989 return_label1016: while(false);
30990 tracehead = trace.prev;
30991 return;
30992 }
30993 void parser_prod___AQualified___empty_init(val_t self, int* init_table) {
30994 struct trace_t trace = {NULL, NULL, 11245, LOCATE_parser_prod___AQualified___empty_init};
30995 val_t variable[2];
30996 struct WBT_ **closurevariable = NULL;
30997 trace.prev = tracehead; tracehead = &trace;
30998 trace.file = LOCATE_parser_prod;
30999 /* Register variable[0]: Local variable */
31000 variable[0] = self;
31001 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i]) return;
31002 /* Register variable[1]: Method return value and escape marker */
31003 return_label1018: while(false);
31004 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i] = 1;
31005 tracehead = trace.prev;
31006 return;
31007 }
31008 void parser_prod___AQualified___init_aqualified(val_t self, val_t param0, val_t param1, int* init_table) {
31009 struct trace_t trace = {NULL, NULL, 11247, LOCATE_parser_prod___AQualified___init_aqualified};
31010 val_t variable[8];
31011 struct WBT_ **closurevariable = NULL;
31012 trace.prev = tracehead; tracehead = &trace;
31013 trace.file = LOCATE_parser_prod;
31014 /* Register variable[0]: Local variable */
31015 variable[0] = self;
31016 /* Register variable[1]: Local variable */
31017 variable[1] = param0;
31018 /* Register variable[2]: Local variable */
31019 variable[2] = param1;
31020 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i]) return;
31021 /* Register variable[3]: Method return value and escape marker */
31022 CALL_parser_prod___AQualified___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*AQualified::empty_init*/;
31023 /* Register variable[4]: Result */
31024 variable[4] = NEW_List_list___List___init() /*new List[TId]*/;
31025 ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/ = variable[4];
31026 /* Register variable[4]: For iterator */
31027 variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_id*/)( variable[1] /*n_id*/) /*Collection::iterator*/;
31028 while (true) { /*for*/
31029 /* Register variable[5]: For 'is_ok' result */
31030 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
31031 if (!UNTAG_Bool(variable[5])) break; /*for*/
31032 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
31033 /* Register variable[6]: Local variable */
31034 variable[6] = variable[5];
31035 /* Register variable[7]: Result */
31036 variable[7] = TAG_Bool(( variable[6] /*n*/==NIT_NULL) || VAL_ISA( variable[6] /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
31037 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___init_aqualified, LOCATE_parser_prod, 11255); nit_exit(1);}
31038 /* Register variable[7]: Result */
31039 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[0]) /*AQualified::_n_id*/;
31040 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[6] /*n*/) /*IndexedCollection::add*/;
31041 CALL_parser_prod___PNode___parent__eq( variable[6] /*n*/)( variable[6] /*n*/, variable[0]) /*PNode::parent=*/;
31042 continue_1020: while(0);
31043 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
31044 }
31045 break_1020: while(0);
31046 ATTR_parser_nodes___AQualified____n_classid(variable[0]) /*AQualified::_n_classid*/ = variable[2] /*n_classid*/;
31047 /* Register variable[4]: Result */
31048 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_classid*/ == NIT_NULL /*null*/) || (( variable[2] /*n_classid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_classid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_classid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_classid*/)( variable[2] /*n_classid*/, NIT_NULL /*null*/) /*Object::==*/)))))));
31049 if (UNTAG_Bool(variable[4])) { /*if*/
31050 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_classid*/)( variable[2] /*n_classid*/, variable[0]) /*PNode::parent=*/;
31051 }
31052 return_label1019: while(false);
31053 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i] = 1;
31054 tracehead = trace.prev;
31055 return;
31056 }
31057 void parser_prod___ADoc___replace_child(val_t self, val_t param0, val_t param1) {
31058 struct trace_t trace = {NULL, NULL, 11333, LOCATE_parser_prod___ADoc___replace_child};
31059 val_t variable[8];
31060 struct WBT_ **closurevariable = NULL;
31061 trace.prev = tracehead; tracehead = &trace;
31062 trace.file = LOCATE_parser_prod;
31063 /* Register variable[0]: Local variable */
31064 variable[0] = self;
31065 /* Register variable[1]: Local variable */
31066 variable[1] = param0;
31067 /* Register variable[2]: Local variable */
31068 variable[2] = param1;
31069 /* Register variable[3]: Method return value and escape marker */
31070 /* Register variable[4]: Result */
31071 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
31072 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoc___replace_child, LOCATE_parser_prod, 11335); nit_exit(1);}
31073 /* Register variable[4]: Result */
31074 variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31075 /* Register variable[4]: Result */
31076 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
31077 /* Register variable[4]: Result */
31078 variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
31079 /* Register variable[4]: For iterator */
31080 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
31081 while (true) { /*for*/
31082 /* Register variable[5]: For 'is_ok' result */
31083 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
31084 if (!UNTAG_Bool(variable[5])) break; /*for*/
31085 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
31086 /* Register variable[6]: Local variable */
31087 variable[6] = variable[5];
31088 /* Register variable[7]: Result */
31089 variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31090 /* Register variable[7]: Result */
31091 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
31092 /* Register variable[7]: Result */
31093 variable[7] = TAG_Bool((variable[7] == variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*old_child*/) /*Object::==*/)))));
31094 if (UNTAG_Bool(variable[7])) { /*if*/
31095 /* Register variable[7]: Result */
31096 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
31097 if (UNTAG_Bool(variable[7])) { /*if*/
31098 /* Register variable[7]: Result */
31099 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
31100 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoc___replace_child, LOCATE_parser_prod, 11339); nit_exit(1);}
31101 /* Register variable[7]: Result */
31102 variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31103 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
31104 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
31105 } else { /*if*/
31106 /* Register variable[7]: Result */
31107 variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31108 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
31109 }
31110 goto return_label1021;
31111 }
31112 continue_1022: while(0);
31113 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
31114 }
31115 break_1022: while(0);
31116 return_label1021: while(false);
31117 tracehead = trace.prev;
31118 return;
31119 }
31120 void parser_prod___ADoc___visit_all(val_t self, val_t param0) {
31121 struct trace_t trace = {NULL, NULL, 11350, LOCATE_parser_prod___ADoc___visit_all};
31122 val_t variable[6];
31123 struct WBT_ **closurevariable = NULL;
31124 trace.prev = tracehead; tracehead = &trace;
31125 trace.file = LOCATE_parser_prod;
31126 /* Register variable[0]: Local variable */
31127 variable[0] = self;
31128 /* Register variable[1]: Local variable */
31129 variable[1] = param0;
31130 /* Register variable[2]: Method return value and escape marker */
31131 /* Register variable[3]: Result */
31132 variable[3] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31133 /* Register variable[3]: For iterator */
31134 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
31135 while (true) { /*for*/
31136 /* Register variable[4]: For 'is_ok' result */
31137 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
31138 if (!UNTAG_Bool(variable[4])) break; /*for*/
31139 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
31140 /* Register variable[5]: Local variable */
31141 variable[5] = variable[4];
31142 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
31143 continue_1024: while(0);
31144 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
31145 }
31146 break_1024: while(0);
31147 return_label1023: while(false);
31148 tracehead = trace.prev;
31149 return;
31150 }
31151 void parser_prod___ADoc___visit_all_reverse(val_t self, val_t param0) {
31152 struct trace_t trace = {NULL, NULL, 11357, LOCATE_parser_prod___ADoc___visit_all_reverse};
31153 val_t variable[5];
31154 struct WBT_ **closurevariable = NULL;
31155 trace.prev = tracehead; tracehead = &trace;
31156 trace.file = LOCATE_parser_prod;
31157 /* Register variable[0]: Local variable */
31158 variable[0] = self;
31159 /* Register variable[1]: Local variable */
31160 variable[1] = param0;
31161 /* Register variable[2]: Method return value and escape marker */
31162 /* Register variable[3]: Local variable */
31163 /* Register variable[4]: Result */
31164 variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31165 /* Register variable[4]: Result */
31166 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
31167 variable[3] = variable[4];
31168 while (true) { /*while*/
31169 /* Register variable[4]: Result */
31170 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
31171 if (!UNTAG_Bool(variable[4])) break; /* while*/
31172 /* Register variable[4]: Result */
31173 variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31174 /* Register variable[4]: Result */
31175 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
31176 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
31177 /* Register variable[4]: Result */
31178 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
31179 variable[3] = variable[4] /*i=*/;
31180 continue_1026: while(0);
31181 }
31182 break_1026: while(0);
31183 return_label1025: while(false);
31184 tracehead = trace.prev;
31185 return;
31186 }
31187 void parser_prod___ADoc___empty_init(val_t self, int* init_table) {
31188 struct trace_t trace = {NULL, NULL, 11318, LOCATE_parser_prod___ADoc___empty_init};
31189 val_t variable[2];
31190 struct WBT_ **closurevariable = NULL;
31191 trace.prev = tracehead; tracehead = &trace;
31192 trace.file = LOCATE_parser_prod;
31193 /* Register variable[0]: Local variable */
31194 variable[0] = self;
31195 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i]) return;
31196 /* Register variable[1]: Method return value and escape marker */
31197 return_label1027: while(false);
31198 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i] = 1;
31199 tracehead = trace.prev;
31200 return;
31201 }
31202 void parser_prod___ADoc___init_adoc(val_t self, val_t param0, int* init_table) {
31203 struct trace_t trace = {NULL, NULL, 11320, LOCATE_parser_prod___ADoc___init_adoc};
31204 val_t variable[7];
31205 struct WBT_ **closurevariable = NULL;
31206 trace.prev = tracehead; tracehead = &trace;
31207 trace.file = LOCATE_parser_prod;
31208 /* Register variable[0]: Local variable */
31209 variable[0] = self;
31210 /* Register variable[1]: Local variable */
31211 variable[1] = param0;
31212 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i]) return;
31213 /* Register variable[2]: Method return value and escape marker */
31214 CALL_parser_prod___ADoc___empty_init(variable[0])(variable[0], init_table /*YYY*/) /*ADoc::empty_init*/;
31215 /* Register variable[3]: Result */
31216 variable[3] = NEW_List_list___List___init() /*new List[TComment]*/;
31217 ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/ = variable[3];
31218 /* Register variable[3]: For iterator */
31219 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_comment*/)( variable[1] /*n_comment*/) /*Collection::iterator*/;
31220 while (true) { /*for*/
31221 /* Register variable[4]: For 'is_ok' result */
31222 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
31223 if (!UNTAG_Bool(variable[4])) break; /*for*/
31224 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
31225 /* Register variable[5]: Local variable */
31226 variable[5] = variable[4];
31227 /* Register variable[6]: Result */
31228 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
31229 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoc___init_adoc, LOCATE_parser_prod, 11327); nit_exit(1);}
31230 /* Register variable[6]: Result */
31231 variable[6] = ATTR_parser_nodes___ADoc____n_comment(variable[0]) /*ADoc::_n_comment*/;
31232 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
31233 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[0]) /*PNode::parent=*/;
31234 continue_1029: while(0);
31235 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
31236 }
31237 break_1029: while(0);
31238 return_label1028: while(false);
31239 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i] = 1;
31240 tracehead = trace.prev;
31241 return;
31242 }
31243 void parser_prod___Start___replace_child(val_t self, val_t param0, val_t param1) {
31244 struct trace_t trace = {NULL, NULL, 11378, LOCATE_parser_prod___Start___replace_child};
31245 val_t variable[5];
31246 struct WBT_ **closurevariable = NULL;
31247 trace.prev = tracehead; tracehead = &trace;
31248 trace.file = LOCATE_parser_prod;
31249 /* Register variable[0]: Local variable */
31250 variable[0] = self;
31251 /* Register variable[1]: Local variable */
31252 variable[1] = param0;
31253 /* Register variable[2]: Local variable */
31254 variable[2] = param1;
31255 /* Register variable[3]: Method return value and escape marker */
31256 /* Register variable[4]: Result */
31257 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ == NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
31258 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___Start___replace_child, LOCATE_parser_prod, 11380); nit_exit(1);}
31259 /* Register variable[4]: Result */
31260 variable[4] = ATTR_parser_nodes___Start____n_base(variable[0]) /*Start::_n_base*/;
31261 /* Register variable[4]: Result */
31262 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
31263 if (UNTAG_Bool(variable[4])) { /*if*/
31264 /* Register variable[4]: Result */
31265 variable[4] = TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))));
31266 if (UNTAG_Bool(variable[4])) { /*if*/
31267 } else { /*if*/
31268 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[0]) /*PNode::parent=*/;
31269 /* Register variable[4]: Result */
31270 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PModule, ID_PModule)) /*cast PModule*/;
31271 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___Start___replace_child, LOCATE_parser_prod, 11385); nit_exit(1);}
31272 ATTR_parser_nodes___Start____n_base(variable[0]) /*Start::_n_base*/ = variable[2] /*new_child*/;
31273 }
31274 CALL_parser_prod___PNode___parent__eq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*PNode::parent=*/;
31275 goto return_label1030;
31276 }
31277 return_label1030: while(false);
31278 tracehead = trace.prev;
31279 return;
31280 }
31281 void parser_prod___Start___visit_all(val_t self, val_t param0) {
31282 struct trace_t trace = {NULL, NULL, 11393, LOCATE_parser_prod___Start___visit_all};
31283 val_t variable[4];
31284 struct WBT_ **closurevariable = NULL;
31285 trace.prev = tracehead; tracehead = &trace;
31286 trace.file = LOCATE_parser_prod;
31287 /* Register variable[0]: Local variable */
31288 variable[0] = self;
31289 /* Register variable[1]: Local variable */
31290 variable[1] = param0;
31291 /* Register variable[2]: Method return value and escape marker */
31292 /* Register variable[3]: Result */
31293 variable[3] = ATTR_parser_nodes___Start____n_base(variable[0]) /*Start::_n_base*/;
31294 /* Register variable[3]: Result */
31295 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::==*/)))))));
31296 if (UNTAG_Bool(variable[3])) { /*if*/
31297 /* Register variable[3]: Result */
31298 variable[3] = ATTR_parser_nodes___Start____n_base(variable[0]) /*Start::_n_base*/;
31299 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
31300 }
31301 return_label1031: while(false);
31302 tracehead = trace.prev;
31303 return;
31304 }
31305 void parser_prod___Start___visit_all_reverse(val_t self, val_t param0) {
31306 struct trace_t trace = {NULL, NULL, 11400, LOCATE_parser_prod___Start___visit_all_reverse};
31307 val_t variable[4];
31308 struct WBT_ **closurevariable = NULL;
31309 trace.prev = tracehead; tracehead = &trace;
31310 trace.file = LOCATE_parser_prod;
31311 /* Register variable[0]: Local variable */
31312 variable[0] = self;
31313 /* Register variable[1]: Local variable */
31314 variable[1] = param0;
31315 /* Register variable[2]: Method return value and escape marker */
31316 /* Register variable[3]: Result */
31317 variable[3] = ATTR_parser_nodes___Start____n_base(variable[0]) /*Start::_n_base*/;
31318 /* Register variable[3]: Result */
31319 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::==*/)))))));
31320 if (UNTAG_Bool(variable[3])) { /*if*/
31321 /* Register variable[3]: Result */
31322 variable[3] = ATTR_parser_nodes___Start____n_base(variable[0]) /*Start::_n_base*/;
31323 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
31324 }
31325 return_label1032: while(false);
31326 tracehead = trace.prev;
31327 return;
31328 }
31329 void parser_prod___Start___init(val_t self, val_t param0, val_t param1, int* init_table) {
31330 struct trace_t trace = {NULL, NULL, 11370, LOCATE_parser_prod___Start___init};
31331 val_t variable[4];
31332 struct WBT_ **closurevariable = NULL;
31333 trace.prev = tracehead; tracehead = &trace;
31334 trace.file = LOCATE_parser_prod;
31335 /* Register variable[0]: Local variable */
31336 variable[0] = self;
31337 /* Register variable[1]: Local variable */
31338 variable[1] = param0;
31339 /* Register variable[2]: Local variable */
31340 variable[2] = param1;
31341 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Start].i]) return;
31342 /* Register variable[3]: Method return value and escape marker */
31343 ATTR_parser_nodes___Start____n_base(variable[0]) /*Start::_n_base*/ = variable[1] /*n_base*/;
31344 ATTR_parser_nodes___Start____n_eof(variable[0]) /*Start::_n_eof*/ = variable[2] /*n_eof*/;
31345 return_label1033: while(false);
31346 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Start].i] = 1;
31347 tracehead = trace.prev;
31348 return;
31349 }