metamodel: fast-fail in getters
[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 void **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 void **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[4];
25 void **closurevariable = NULL;
26 trace.prev = tracehead; tracehead = &trace;
27 trace.file = LOCATE_parser_prod;
28 variable[0] = self;
29 variable[1] = param0;
30 variable[3] = variable[0];
31 CALL_parser_prod___PNode___replace_child(variable[3])(variable[3], variable[1] /*child*/, NIT_NULL /*null*/) /*PNode::replace_child*/;
32 return_label0: while(false);
33 tracehead = trace.prev;
34 return;
35 }
36 void parser_prod___PNode___replace_child(val_t self, val_t param0, val_t param1) {
37 struct trace_t trace = {NULL, NULL, 18, LOCATE_parser_prod___PNode___replace_child};
38 val_t *variable = NULL;
39 void **closurevariable = NULL;
40 trace.prev = tracehead; tracehead = &trace;
41 trace.file = LOCATE_parser_prod;
42 fprintf(stderr, "Deferred method called");
43 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 18);
44 nit_exit(1);
45 tracehead = trace.prev;
46 return;
47 }
48 void parser_prod___PNode___replace_with(val_t self, val_t param0) {
49 struct trace_t trace = {NULL, NULL, 21, LOCATE_parser_prod___PNode___replace_with};
50 val_t variable[5];
51 void **closurevariable = NULL;
52 trace.prev = tracehead; tracehead = &trace;
53 trace.file = LOCATE_parser_prod;
54 variable[0] = self;
55 variable[1] = param0;
56 variable[3] = variable[0];
57 variable[3] = ATTR_parser_prod___PNode____parent(variable[3]) /*PNode::_parent*/;
58 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
59 if (UNTAG_Bool(variable[3])) { /*if*/
60 variable[3] = variable[0];
61 variable[3] = ATTR_parser_prod___PNode____parent(variable[3]) /*PNode::_parent*/;
62 variable[4] = variable[0];
63 CALL_parser_prod___PNode___replace_child(variable[3])(variable[3], variable[4], variable[1] /*node*/) /*PNode::replace_child*/;
64 }
65 return_label1: while(false);
66 tracehead = trace.prev;
67 return;
68 }
69 void parser_prod___PNode___visit_all(val_t self, val_t param0) {
70 struct trace_t trace = {NULL, NULL, 29, LOCATE_parser_prod___PNode___visit_all};
71 val_t *variable = NULL;
72 void **closurevariable = NULL;
73 trace.prev = tracehead; tracehead = &trace;
74 trace.file = LOCATE_parser_prod;
75 fprintf(stderr, "Deferred method called");
76 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 29);
77 nit_exit(1);
78 tracehead = trace.prev;
79 return;
80 }
81 void parser_prod___PNode___visit_all_reverse(val_t self, val_t param0) {
82 struct trace_t trace = {NULL, NULL, 33, LOCATE_parser_prod___PNode___visit_all_reverse};
83 val_t *variable = NULL;
84 void **closurevariable = NULL;
85 trace.prev = tracehead; tracehead = &trace;
86 trace.file = LOCATE_parser_prod;
87 fprintf(stderr, "Deferred method called");
88 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 33);
89 nit_exit(1);
90 tracehead = trace.prev;
91 return;
92 }
93 val_t parser_prod___PNode___locate(val_t self) {
94 struct trace_t trace = {NULL, NULL, 37, LOCATE_parser_prod___PNode___locate};
95 val_t *variable = NULL;
96 void **closurevariable = NULL;
97 trace.prev = tracehead; tracehead = &trace;
98 trace.file = LOCATE_parser_prod;
99 fprintf(stderr, "Deferred method called");
100 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 37);
101 nit_exit(1);
102 tracehead = trace.prev;
103 return NIT_NULL;
104 }
105 val_t parser_prod___PNode___line_number(val_t self) {
106 struct trace_t trace = {NULL, NULL, 40, LOCATE_parser_prod___PNode___line_number};
107 val_t *variable = NULL;
108 void **closurevariable = NULL;
109 trace.prev = tracehead; tracehead = &trace;
110 trace.file = LOCATE_parser_prod;
111 fprintf(stderr, "Deferred method called");
112 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 40);
113 nit_exit(1);
114 tracehead = trace.prev;
115 return NIT_NULL;
116 }
117 void parser_prod___PNode___printl(val_t self, val_t param0) {
118 struct trace_t trace = {NULL, NULL, 43, LOCATE_parser_prod___PNode___printl};
119 val_t variable[14];
120 void **closurevariable = NULL;
121 trace.prev = tracehead; tracehead = &trace;
122 trace.file = LOCATE_parser_prod;
123 variable[0] = self;
124 variable[1] = param0;
125 variable[3] = variable[0];
126 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
127 variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
128 variable[6] = variable[5];
129 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
130 variable[7] = variable[0];
131 variable[7] = CALL_parser_prod___PNode___locate(variable[7])(variable[7]) /*PNode::locate*/;
132 variable[8] = variable[7];
133 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
134 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
135 variable[10] = variable[9];
136 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
137 variable[11] = variable[1] /*str*/;
138 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
139 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
140 variable[13] = variable[12];
141 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
142 variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
143 CALL_file___Object___print(variable[3])(variable[3], variable[4]) /*Object::print*/;
144 return_label2: while(false);
145 tracehead = trace.prev;
146 return;
147 }
148 void parser_prod___Token___replace_child(val_t self, val_t param0, val_t param1) {
149 struct trace_t trace = {NULL, NULL, 53, LOCATE_parser_prod___Token___replace_child};
150 val_t variable[4];
151 void **closurevariable = NULL;
152 trace.prev = tracehead; tracehead = &trace;
153 trace.file = LOCATE_parser_prod;
154 variable[0] = self;
155 variable[1] = param0;
156 variable[2] = param1;
157 return_label3: while(false);
158 tracehead = trace.prev;
159 return;
160 }
161 void parser_prod___Token___visit_all(val_t self, val_t param0) {
162 struct trace_t trace = {NULL, NULL, 51, LOCATE_parser_prod___Token___visit_all};
163 val_t variable[3];
164 void **closurevariable = NULL;
165 trace.prev = tracehead; tracehead = &trace;
166 trace.file = LOCATE_parser_prod;
167 variable[0] = self;
168 variable[1] = param0;
169 return_label4: while(false);
170 tracehead = trace.prev;
171 return;
172 }
173 void parser_prod___Token___visit_all_reverse(val_t self, val_t param0) {
174 struct trace_t trace = {NULL, NULL, 52, LOCATE_parser_prod___Token___visit_all_reverse};
175 val_t variable[3];
176 void **closurevariable = NULL;
177 trace.prev = tracehead; tracehead = &trace;
178 trace.file = LOCATE_parser_prod;
179 variable[0] = self;
180 variable[1] = param0;
181 return_label5: while(false);
182 tracehead = trace.prev;
183 return;
184 }
185 val_t parser_prod___Token___locate(val_t self) {
186 struct trace_t trace = {NULL, NULL, 55, LOCATE_parser_prod___Token___locate};
187 val_t variable[17];
188 void **closurevariable = NULL;
189 trace.prev = tracehead; tracehead = &trace;
190 trace.file = LOCATE_parser_prod;
191 variable[0] = self;
192 variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
193 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
194 variable[4] = variable[3];
195 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
196 variable[5] = variable[0];
197 variable[5] = CALL_lexer___Token___filename(variable[5])(variable[5]) /*Token::filename*/;
198 variable[6] = variable[5];
199 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
200 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
201 variable[8] = variable[7];
202 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
203 variable[9] = variable[0];
204 variable[9] = CALL_lexer___Token___line(variable[9])(variable[9]) /*Token::line*/;
205 variable[10] = variable[9];
206 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
207 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
208 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
209 variable[12] = variable[11];
210 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
211 variable[13] = variable[0];
212 variable[13] = CALL_lexer___Token___pos(variable[13])(variable[13]) /*Token::pos*/;
213 variable[14] = variable[13];
214 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
215 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
216 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
217 variable[16] = variable[15];
218 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
219 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
220 variable[1] = variable[2];
221 goto return_label6;
222 return_label6: while(false);
223 tracehead = trace.prev;
224 return variable[1];
225 }
226 val_t parser_prod___Token___line_number(val_t self) {
227 struct trace_t trace = {NULL, NULL, 60, LOCATE_parser_prod___Token___line_number};
228 val_t variable[3];
229 void **closurevariable = NULL;
230 trace.prev = tracehead; tracehead = &trace;
231 trace.file = LOCATE_parser_prod;
232 variable[0] = self;
233 variable[2] = variable[0];
234 variable[2] = CALL_lexer___Token___line(variable[2])(variable[2]) /*Token::line*/;
235 variable[1] = variable[2];
236 goto return_label7;
237 return_label7: while(false);
238 tracehead = trace.prev;
239 return variable[1];
240 }
241 void parser_prod___Prod___replace_with(val_t self, val_t param0) {
242 struct trace_t trace = {NULL, NULL, 83, LOCATE_parser_prod___Prod___replace_with};
243 val_t variable[4];
244 void **closurevariable = NULL;
245 trace.prev = tracehead; tracehead = &trace;
246 trace.file = LOCATE_parser_prod;
247 variable[0] = self;
248 variable[1] = param0;
249 CALL_SUPER_parser_prod___Prod___replace_with(variable[0])(variable[0], variable[1]) /*super Prod::replace_with*/;
250 variable[3] = TAG_Bool(( variable[1] /*n*/==NIT_NULL) || VAL_ISA( variable[1] /*n*/, COLOR_Prod, ID_Prod)) /*cast Prod*/;
251 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, 86); nit_exit(1);}
252 variable[3] = variable[0];
253 variable[3] = CALL_parser_prod___Prod___first_token(variable[3])(variable[3]) /*Prod::first_token*/;
254 CALL_parser_prod___Prod___first_token__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*Prod::first_token=*/;
255 variable[3] = variable[0];
256 variable[3] = CALL_parser_prod___Prod___last_token(variable[3])(variable[3]) /*Prod::last_token*/;
257 CALL_parser_prod___Prod___last_token__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*Prod::last_token=*/;
258 return_label8: while(false);
259 tracehead = trace.prev;
260 return;
261 }
262 val_t parser_prod___Prod___locate(val_t self) {
263 struct trace_t trace = {NULL, NULL, 70, LOCATE_parser_prod___Prod___locate};
264 val_t variable[17];
265 void **closurevariable = NULL;
266 trace.prev = tracehead; tracehead = &trace;
267 trace.file = LOCATE_parser_prod;
268 variable[0] = self;
269 variable[2] = variable[0];
270 variable[2] = CALL_parser_prod___Prod___first_token(variable[2])(variable[2]) /*Prod::first_token*/;
271 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::==*/)))));
272 if (UNTAG_Bool(variable[2])) { /*if*/
273 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("????"), TAG_Int(4)); /*new String*/
274 variable[1] = variable[2];
275 goto return_label9;
276 }
277 variable[3] = variable[0];
278 variable[3] = CALL_parser_prod___Prod___last_token(variable[3])(variable[3]) /*Prod::last_token*/;
279 variable[3] = CALL_lexer___Token___pos(variable[3])(variable[3]) /*Token::pos*/;
280 variable[4] = variable[0];
281 variable[4] = CALL_parser_prod___Prod___last_token(variable[4])(variable[4]) /*Prod::last_token*/;
282 variable[4] = CALL_lexer___Token___text(variable[4])(variable[4]) /*Token::text*/;
283 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
284 variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int(variable[4]));
285 variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
286 variable[2] = variable[3];
287 variable[3] = variable[0];
288 variable[3] = CALL_parser_prod___Prod___first_token(variable[3])(variable[3]) /*Prod::first_token*/;
289 variable[3] = CALL_lexer___Token___line(variable[3])(variable[3]) /*Token::line*/;
290 variable[4] = variable[0];
291 variable[4] = CALL_parser_prod___Prod___last_token(variable[4])(variable[4]) /*Prod::last_token*/;
292 variable[4] = CALL_lexer___Token___line(variable[4])(variable[4]) /*Token::line*/;
293 variable[3] = TAG_Bool((variable[3])==(variable[4]));
294 if (UNTAG_Bool(variable[3])) { /*if*/
295 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
296 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
297 variable[5] = variable[4];
298 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
299 variable[6] = variable[0];
300 variable[6] = CALL_parser_prod___Prod___first_token(variable[6])(variable[6]) /*Prod::first_token*/;
301 variable[6] = CALL_parser_prod___PNode___locate(variable[6])(variable[6]) /*Token::locate*/;
302 variable[7] = variable[6];
303 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
304 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
305 variable[9] = variable[8];
306 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
307 variable[10] = variable[2] /*lastpos*/;
308 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
309 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
310 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
311 variable[12] = variable[11];
312 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
313 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
314 variable[1] = variable[3];
315 goto return_label9;
316 } else { /*if*/
317 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
318 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
319 variable[5] = variable[4];
320 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
321 variable[6] = variable[0];
322 variable[6] = CALL_parser_prod___Prod___first_token(variable[6])(variable[6]) /*Prod::first_token*/;
323 variable[6] = CALL_parser_prod___PNode___locate(variable[6])(variable[6]) /*Token::locate*/;
324 variable[7] = variable[6];
325 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
326 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
327 variable[9] = variable[8];
328 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
329 variable[10] = variable[0];
330 variable[10] = CALL_parser_prod___Prod___last_token(variable[10])(variable[10]) /*Prod::last_token*/;
331 variable[10] = CALL_lexer___Token___line(variable[10])(variable[10]) /*Token::line*/;
332 variable[11] = variable[10];
333 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
334 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
335 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
336 variable[13] = variable[12];
337 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
338 variable[14] = variable[2] /*lastpos*/;
339 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
340 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[14]) /*AbstractArray::add*/;
341 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
342 variable[16] = variable[15];
343 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[16]) /*AbstractArray::add*/;
344 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
345 variable[1] = variable[3];
346 goto return_label9;
347 }
348 return_label9: while(false);
349 tracehead = trace.prev;
350 return variable[1];
351 }
352 val_t parser_prod___Prod___line_number(val_t self) {
353 struct trace_t trace = {NULL, NULL, 91, LOCATE_parser_prod___Prod___line_number};
354 val_t variable[3];
355 void **closurevariable = NULL;
356 trace.prev = tracehead; tracehead = &trace;
357 trace.file = LOCATE_parser_prod;
358 variable[0] = self;
359 variable[2] = variable[0];
360 variable[2] = CALL_parser_prod___Prod___first_token(variable[2])(variable[2]) /*Prod::first_token*/;
361 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::==*/)))))));
362 if (UNTAG_Bool(variable[2])) { /*if*/
363 variable[2] = variable[0];
364 variable[2] = CALL_parser_prod___Prod___first_token(variable[2])(variable[2]) /*Prod::first_token*/;
365 variable[2] = CALL_lexer___Token___line(variable[2])(variable[2]) /*Token::line*/;
366 variable[1] = variable[2];
367 goto return_label10;
368 } else { /*if*/
369 variable[1] = TAG_Int(0);
370 goto return_label10;
371 }
372 return_label10: while(false);
373 tracehead = trace.prev;
374 return variable[1];
375 }
376 val_t parser_prod___Prod___first_token(val_t self) {
377 struct trace_t trace = {NULL, NULL, 64, LOCATE_parser_prod___Prod___first_token};
378 val_t *variable = NULL;
379 void **closurevariable = NULL;
380 trace.prev = tracehead; tracehead = &trace;
381 trace.file = LOCATE_parser_prod;
382 tracehead = trace.prev;
383 return ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/;
384 }
385 void parser_prod___Prod___first_token__eq(val_t self, val_t param0) {
386 struct trace_t trace = {NULL, NULL, 64, LOCATE_parser_prod___Prod___first_token__eq};
387 val_t *variable = NULL;
388 void **closurevariable = NULL;
389 trace.prev = tracehead; tracehead = &trace;
390 trace.file = LOCATE_parser_prod;
391 ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/ = param0;
392 tracehead = trace.prev;
393 return;
394 }
395 val_t parser_prod___Prod___last_token(val_t self) {
396 struct trace_t trace = {NULL, NULL, 67, LOCATE_parser_prod___Prod___last_token};
397 val_t *variable = NULL;
398 void **closurevariable = NULL;
399 trace.prev = tracehead; tracehead = &trace;
400 trace.file = LOCATE_parser_prod;
401 tracehead = trace.prev;
402 return ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/;
403 }
404 void parser_prod___Prod___last_token__eq(val_t self, val_t param0) {
405 struct trace_t trace = {NULL, NULL, 67, LOCATE_parser_prod___Prod___last_token__eq};
406 val_t *variable = NULL;
407 void **closurevariable = NULL;
408 trace.prev = tracehead; tracehead = &trace;
409 trace.file = LOCATE_parser_prod;
410 ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/ = param0;
411 tracehead = trace.prev;
412 return;
413 }
414 void parser_prod___Visitor___visit(val_t self, val_t param0) {
415 struct trace_t trace = {NULL, NULL, 103, LOCATE_parser_prod___Visitor___visit};
416 val_t *variable = NULL;
417 void **closurevariable = NULL;
418 trace.prev = tracehead; tracehead = &trace;
419 trace.file = LOCATE_parser_prod;
420 fprintf(stderr, "Deferred method called");
421 fprintf(stderr, " (%s:%d)\n", LOCATE_parser_prod, 103);
422 nit_exit(1);
423 tracehead = trace.prev;
424 return;
425 }
426 void parser_prod___Visitor___init(val_t self, int* init_table) {
427 struct trace_t trace = {NULL, NULL, 0, LOCATE_parser_prod___Visitor___init};
428 val_t *variable = NULL;
429 void **closurevariable = NULL;
430 trace.prev = tracehead; tracehead = &trace;
431 trace.file = LOCATE_parser_prod;
432 tracehead = trace.prev;
433 return;
434 }
435 void parser_prod___AModule___n_packagedecl__eq(val_t self, val_t param0) {
436 struct trace_t trace = {NULL, NULL, 110, LOCATE_parser_prod___AModule___n_packagedecl__eq};
437 val_t variable[4];
438 void **closurevariable = NULL;
439 trace.prev = tracehead; tracehead = &trace;
440 trace.file = LOCATE_parser_prod;
441 variable[0] = self;
442 variable[1] = param0;
443 variable[3] = variable[0];
444 ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/ = variable[1] /*n*/;
445 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
446 if (UNTAG_Bool(variable[3])) { /*if*/
447 variable[3] = variable[0];
448 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
449 }
450 return_label11: while(false);
451 tracehead = trace.prev;
452 return;
453 }
454 void parser_prod___AModule___replace_child(val_t self, val_t param0, val_t param1) {
455 struct trace_t trace = {NULL, NULL, 145, LOCATE_parser_prod___AModule___replace_child};
456 val_t variable[8];
457 void **closurevariable = NULL;
458 trace.prev = tracehead; tracehead = &trace;
459 trace.file = LOCATE_parser_prod;
460 variable[0] = self;
461 variable[1] = param0;
462 variable[2] = param1;
463 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::==*/)))))));
464 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, 147); nit_exit(1);}
465 variable[4] = variable[0];
466 variable[4] = ATTR_parser_nodes___AModule____n_packagedecl(variable[4]) /*AModule::_n_packagedecl*/;
467 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
468 if (UNTAG_Bool(variable[4])) { /*if*/
469 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
470 if (UNTAG_Bool(variable[4])) { /*if*/
471 variable[4] = variable[0];
472 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
473 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
474 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, 151); nit_exit(1);}
475 variable[4] = variable[0];
476 ATTR_parser_nodes___AModule____n_packagedecl(variable[4]) /*AModule::_n_packagedecl*/ = variable[2] /*new_child*/;
477 } else { /*if*/
478 variable[4] = variable[0];
479 ATTR_parser_nodes___AModule____n_packagedecl(variable[4]) /*AModule::_n_packagedecl*/ = NIT_NULL /*null*/;
480 }
481 goto return_label12;
482 }
483 variable[4] = variable[0];
484 variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[4]) /*AModule::_n_imports*/;
485 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
486 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
487 variable[4] = variable[5];
488 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
489 while (true) { /*for*/
490 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
491 if (!UNTAG_Bool(variable[5])) break; /*for*/
492 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
493 variable[6] = variable[5];
494 variable[7] = variable[0];
495 variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[7]) /*AModule::_n_imports*/;
496 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
497 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::==*/)))));
498 if (UNTAG_Bool(variable[7])) { /*if*/
499 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::==*/)))))));
500 if (UNTAG_Bool(variable[7])) { /*if*/
501 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
502 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, 161); nit_exit(1);}
503 variable[7] = variable[0];
504 variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[7]) /*AModule::_n_imports*/;
505 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
506 variable[7] = variable[0];
507 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
508 } else { /*if*/
509 variable[7] = variable[0];
510 variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[7]) /*AModule::_n_imports*/;
511 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
512 }
513 goto return_label12;
514 }
515 continue_13: while(0);
516 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
517 }
518 break_13: while(0);
519 variable[4] = variable[0];
520 variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[4]) /*AModule::_n_classdefs*/;
521 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
522 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
523 variable[4] = variable[5];
524 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
525 while (true) { /*for*/
526 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
527 if (!UNTAG_Bool(variable[5])) break; /*for*/
528 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
529 variable[6] = variable[5];
530 variable[7] = variable[0];
531 variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[7]) /*AModule::_n_classdefs*/;
532 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
533 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::==*/)))));
534 if (UNTAG_Bool(variable[7])) { /*if*/
535 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::==*/)))))));
536 if (UNTAG_Bool(variable[7])) { /*if*/
537 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
538 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, 173); nit_exit(1);}
539 variable[7] = variable[0];
540 variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[7]) /*AModule::_n_classdefs*/;
541 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
542 variable[7] = variable[0];
543 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
544 } else { /*if*/
545 variable[7] = variable[0];
546 variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[7]) /*AModule::_n_classdefs*/;
547 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
548 }
549 goto return_label12;
550 }
551 continue_14: while(0);
552 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
553 }
554 break_14: while(0);
555 return_label12: while(false);
556 tracehead = trace.prev;
557 return;
558 }
559 void parser_prod___AModule___visit_all(val_t self, val_t param0) {
560 struct trace_t trace = {NULL, NULL, 184, LOCATE_parser_prod___AModule___visit_all};
561 val_t variable[6];
562 void **closurevariable = NULL;
563 trace.prev = tracehead; tracehead = &trace;
564 trace.file = LOCATE_parser_prod;
565 variable[0] = self;
566 variable[1] = param0;
567 variable[3] = variable[0];
568 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
569 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
570 if (UNTAG_Bool(variable[3])) { /*if*/
571 variable[3] = variable[0];
572 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
573 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
574 }
575 variable[3] = variable[0];
576 variable[3] = ATTR_parser_nodes___AModule____n_imports(variable[3]) /*AModule::_n_imports*/;
577 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
578 while (true) { /*for*/
579 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
580 if (!UNTAG_Bool(variable[4])) break; /*for*/
581 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
582 variable[5] = variable[4];
583 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
584 continue_16: while(0);
585 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
586 }
587 break_16: while(0);
588 variable[3] = variable[0];
589 variable[3] = ATTR_parser_nodes___AModule____n_classdefs(variable[3]) /*AModule::_n_classdefs*/;
590 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
591 while (true) { /*for*/
592 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
593 if (!UNTAG_Bool(variable[4])) break; /*for*/
594 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
595 variable[5] = variable[4];
596 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
597 continue_17: while(0);
598 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
599 }
600 break_17: while(0);
601 return_label15: while(false);
602 tracehead = trace.prev;
603 return;
604 }
605 void parser_prod___AModule___visit_all_reverse(val_t self, val_t param0) {
606 struct trace_t trace = {NULL, NULL, 197, LOCATE_parser_prod___AModule___visit_all_reverse};
607 val_t variable[5];
608 void **closurevariable = NULL;
609 trace.prev = tracehead; tracehead = &trace;
610 trace.file = LOCATE_parser_prod;
611 variable[0] = self;
612 variable[1] = param0;
613 variable[3] = variable[0];
614 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
615 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
616 if (UNTAG_Bool(variable[3])) { /*if*/
617 variable[3] = variable[0];
618 variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
619 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
620 }
621 variable[4] = variable[0];
622 variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[4]) /*AModule::_n_imports*/;
623 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
624 variable[3] = variable[4];
625 while (true) { /*while*/
626 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
627 if (!UNTAG_Bool(variable[4])) break; /* while*/
628 variable[4] = variable[0];
629 variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[4]) /*AModule::_n_imports*/;
630 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
631 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
632 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
633 variable[3] = variable[4] /*i=*/;
634 continue_19: while(0);
635 }
636 break_19: while(0);
637 variable[4] = variable[0];
638 variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[4]) /*AModule::_n_classdefs*/;
639 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
640 variable[3] = variable[4];
641 while (true) { /*while*/
642 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
643 if (!UNTAG_Bool(variable[4])) break; /* while*/
644 variable[4] = variable[0];
645 variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[4]) /*AModule::_n_classdefs*/;
646 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
647 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
648 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
649 variable[3] = variable[4] /*i=*/;
650 continue_20: while(0);
651 }
652 break_20: while(0);
653 return_label18: while(false);
654 tracehead = trace.prev;
655 return;
656 }
657 void parser_prod___AModule___empty_init(val_t self, int* init_table) {
658 struct trace_t trace = {NULL, NULL, 118, LOCATE_parser_prod___AModule___empty_init};
659 val_t variable[2];
660 void **closurevariable = NULL;
661 trace.prev = tracehead; tracehead = &trace;
662 trace.file = LOCATE_parser_prod;
663 variable[0] = self;
664 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i]) return;
665 return_label21: while(false);
666 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i] = 1;
667 tracehead = trace.prev;
668 return;
669 }
670 void parser_prod___AModule___init_amodule(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
671 struct trace_t trace = {NULL, NULL, 120, LOCATE_parser_prod___AModule___init_amodule};
672 val_t variable[9];
673 void **closurevariable = NULL;
674 trace.prev = tracehead; tracehead = &trace;
675 trace.file = LOCATE_parser_prod;
676 variable[0] = self;
677 variable[1] = param0;
678 variable[2] = param1;
679 variable[3] = param2;
680 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i]) return;
681 variable[5] = variable[0];
682 CALL_parser_prod___AModule___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AModule::empty_init*/;
683 variable[5] = variable[0];
684 ATTR_parser_nodes___AModule____n_packagedecl(variable[5]) /*AModule::_n_packagedecl*/ = variable[1] /*n_packagedecl*/;
685 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::==*/)))))));
686 if (UNTAG_Bool(variable[5])) { /*if*/
687 variable[5] = variable[0];
688 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_packagedecl*/)( variable[1] /*n_packagedecl*/, variable[5]) /*PNode::parent=*/;
689 }
690 variable[5] = variable[0];
691 variable[6] = NEW_List_list___List___init(); /*new List[PImport]*/
692 ATTR_parser_nodes___AModule____n_imports(variable[5]) /*AModule::_n_imports*/ = variable[6];
693 variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_imports*/)( variable[2] /*n_imports*/) /*AbstractArray::iterator*/;
694 while (true) { /*for*/
695 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
696 if (!UNTAG_Bool(variable[6])) break; /*for*/
697 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
698 variable[7] = variable[6];
699 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
700 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, 133); nit_exit(1);}
701 variable[8] = variable[0];
702 variable[8] = ATTR_parser_nodes___AModule____n_imports(variable[8]) /*AModule::_n_imports*/;
703 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
704 variable[8] = variable[0];
705 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
706 continue_23: while(0);
707 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
708 }
709 break_23: while(0);
710 variable[5] = variable[0];
711 variable[6] = NEW_List_list___List___init(); /*new List[PClassdef]*/
712 ATTR_parser_nodes___AModule____n_classdefs(variable[5]) /*AModule::_n_classdefs*/ = variable[6];
713 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_classdefs*/)( variable[3] /*n_classdefs*/) /*AbstractArray::iterator*/;
714 while (true) { /*for*/
715 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
716 if (!UNTAG_Bool(variable[6])) break; /*for*/
717 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
718 variable[7] = variable[6];
719 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
720 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, 139); nit_exit(1);}
721 variable[8] = variable[0];
722 variable[8] = ATTR_parser_nodes___AModule____n_classdefs(variable[8]) /*AModule::_n_classdefs*/;
723 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
724 variable[8] = variable[0];
725 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
726 continue_24: while(0);
727 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
728 }
729 break_24: while(0);
730 return_label22: while(false);
731 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i] = 1;
732 tracehead = trace.prev;
733 return;
734 }
735 void parser_prod___APackagedecl___n_doc__eq(val_t self, val_t param0) {
736 struct trace_t trace = {NULL, NULL, 219, LOCATE_parser_prod___APackagedecl___n_doc__eq};
737 val_t variable[4];
738 void **closurevariable = NULL;
739 trace.prev = tracehead; tracehead = &trace;
740 trace.file = LOCATE_parser_prod;
741 variable[0] = self;
742 variable[1] = param0;
743 variable[3] = variable[0];
744 ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/ = variable[1] /*n*/;
745 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
746 if (UNTAG_Bool(variable[3])) { /*if*/
747 variable[3] = variable[0];
748 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
749 }
750 return_label25: while(false);
751 tracehead = trace.prev;
752 return;
753 }
754 void parser_prod___APackagedecl___n_kwpackage__eq(val_t self, val_t param0) {
755 struct trace_t trace = {NULL, NULL, 226, LOCATE_parser_prod___APackagedecl___n_kwpackage__eq};
756 val_t variable[4];
757 void **closurevariable = NULL;
758 trace.prev = tracehead; tracehead = &trace;
759 trace.file = LOCATE_parser_prod;
760 variable[0] = self;
761 variable[1] = param0;
762 variable[3] = variable[0];
763 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/ = variable[1] /*n*/;
764 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
765 if (UNTAG_Bool(variable[3])) { /*if*/
766 variable[3] = variable[0];
767 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
768 }
769 return_label26: while(false);
770 tracehead = trace.prev;
771 return;
772 }
773 void parser_prod___APackagedecl___n_id__eq(val_t self, val_t param0) {
774 struct trace_t trace = {NULL, NULL, 233, LOCATE_parser_prod___APackagedecl___n_id__eq};
775 val_t variable[4];
776 void **closurevariable = NULL;
777 trace.prev = tracehead; tracehead = &trace;
778 trace.file = LOCATE_parser_prod;
779 variable[0] = self;
780 variable[1] = param0;
781 variable[3] = variable[0];
782 ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/ = variable[1] /*n*/;
783 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
784 if (UNTAG_Bool(variable[3])) { /*if*/
785 variable[3] = variable[0];
786 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
787 }
788 return_label27: while(false);
789 tracehead = trace.prev;
790 return;
791 }
792 void parser_prod___APackagedecl___replace_child(val_t self, val_t param0, val_t param1) {
793 struct trace_t trace = {NULL, NULL, 264, LOCATE_parser_prod___APackagedecl___replace_child};
794 val_t variable[5];
795 void **closurevariable = NULL;
796 trace.prev = tracehead; tracehead = &trace;
797 trace.file = LOCATE_parser_prod;
798 variable[0] = self;
799 variable[1] = param0;
800 variable[2] = param1;
801 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::==*/)))))));
802 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, 266); nit_exit(1);}
803 variable[4] = variable[0];
804 variable[4] = ATTR_parser_nodes___APackagedecl____n_doc(variable[4]) /*APackagedecl::_n_doc*/;
805 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
806 if (UNTAG_Bool(variable[4])) { /*if*/
807 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
808 if (UNTAG_Bool(variable[4])) { /*if*/
809 variable[4] = variable[0];
810 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
811 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
812 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, 270); nit_exit(1);}
813 variable[4] = variable[0];
814 ATTR_parser_nodes___APackagedecl____n_doc(variable[4]) /*APackagedecl::_n_doc*/ = variable[2] /*new_child*/;
815 } else { /*if*/
816 variable[4] = variable[0];
817 ATTR_parser_nodes___APackagedecl____n_doc(variable[4]) /*APackagedecl::_n_doc*/ = NIT_NULL /*null*/;
818 }
819 goto return_label28;
820 }
821 variable[4] = variable[0];
822 variable[4] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[4]) /*APackagedecl::_n_kwpackage*/;
823 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
824 if (UNTAG_Bool(variable[4])) { /*if*/
825 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
826 if (UNTAG_Bool(variable[4])) { /*if*/
827 variable[4] = variable[0];
828 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
829 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwpackage, ID_TKwpackage)) /*cast TKwpackage*/;
830 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, 280); nit_exit(1);}
831 variable[4] = variable[0];
832 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[4]) /*APackagedecl::_n_kwpackage*/ = variable[2] /*new_child*/;
833 } else { /*if*/
834 variable[4] = variable[0];
835 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[4]) /*APackagedecl::_n_kwpackage*/ = NIT_NULL /*null*/;
836 }
837 goto return_label28;
838 }
839 variable[4] = variable[0];
840 variable[4] = ATTR_parser_nodes___APackagedecl____n_id(variable[4]) /*APackagedecl::_n_id*/;
841 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
842 if (UNTAG_Bool(variable[4])) { /*if*/
843 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
844 if (UNTAG_Bool(variable[4])) { /*if*/
845 variable[4] = variable[0];
846 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
847 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
848 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, 290); nit_exit(1);}
849 variable[4] = variable[0];
850 ATTR_parser_nodes___APackagedecl____n_id(variable[4]) /*APackagedecl::_n_id*/ = variable[2] /*new_child*/;
851 } else { /*if*/
852 variable[4] = variable[0];
853 ATTR_parser_nodes___APackagedecl____n_id(variable[4]) /*APackagedecl::_n_id*/ = NIT_NULL /*null*/;
854 }
855 goto return_label28;
856 }
857 return_label28: while(false);
858 tracehead = trace.prev;
859 return;
860 }
861 void parser_prod___APackagedecl___visit_all(val_t self, val_t param0) {
862 struct trace_t trace = {NULL, NULL, 299, LOCATE_parser_prod___APackagedecl___visit_all};
863 val_t variable[4];
864 void **closurevariable = NULL;
865 trace.prev = tracehead; tracehead = &trace;
866 trace.file = LOCATE_parser_prod;
867 variable[0] = self;
868 variable[1] = param0;
869 variable[3] = variable[0];
870 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
871 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
872 if (UNTAG_Bool(variable[3])) { /*if*/
873 variable[3] = variable[0];
874 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
875 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
876 }
877 variable[3] = variable[0];
878 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
879 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
880 if (UNTAG_Bool(variable[3])) { /*if*/
881 variable[3] = variable[0];
882 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
883 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
884 }
885 variable[3] = variable[0];
886 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
887 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
888 if (UNTAG_Bool(variable[3])) { /*if*/
889 variable[3] = variable[0];
890 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
891 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
892 }
893 return_label29: while(false);
894 tracehead = trace.prev;
895 return;
896 }
897 void parser_prod___APackagedecl___visit_all_reverse(val_t self, val_t param0) {
898 struct trace_t trace = {NULL, NULL, 312, LOCATE_parser_prod___APackagedecl___visit_all_reverse};
899 val_t variable[4];
900 void **closurevariable = NULL;
901 trace.prev = tracehead; tracehead = &trace;
902 trace.file = LOCATE_parser_prod;
903 variable[0] = self;
904 variable[1] = param0;
905 variable[3] = variable[0];
906 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
907 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
908 if (UNTAG_Bool(variable[3])) { /*if*/
909 variable[3] = variable[0];
910 variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
911 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
912 }
913 variable[3] = variable[0];
914 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
915 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
916 if (UNTAG_Bool(variable[3])) { /*if*/
917 variable[3] = variable[0];
918 variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
919 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
920 }
921 variable[3] = variable[0];
922 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
923 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
924 if (UNTAG_Bool(variable[3])) { /*if*/
925 variable[3] = variable[0];
926 variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
927 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
928 }
929 return_label30: while(false);
930 tracehead = trace.prev;
931 return;
932 }
933 void parser_prod___APackagedecl___empty_init(val_t self, int* init_table) {
934 struct trace_t trace = {NULL, NULL, 241, LOCATE_parser_prod___APackagedecl___empty_init};
935 val_t variable[2];
936 void **closurevariable = NULL;
937 trace.prev = tracehead; tracehead = &trace;
938 trace.file = LOCATE_parser_prod;
939 variable[0] = self;
940 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i]) return;
941 return_label31: while(false);
942 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
943 tracehead = trace.prev;
944 return;
945 }
946 void parser_prod___APackagedecl___init_apackagedecl(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
947 struct trace_t trace = {NULL, NULL, 243, LOCATE_parser_prod___APackagedecl___init_apackagedecl};
948 val_t variable[6];
949 void **closurevariable = NULL;
950 trace.prev = tracehead; tracehead = &trace;
951 trace.file = LOCATE_parser_prod;
952 variable[0] = self;
953 variable[1] = param0;
954 variable[2] = param1;
955 variable[3] = param2;
956 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i]) return;
957 variable[5] = variable[0];
958 CALL_parser_prod___APackagedecl___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*APackagedecl::empty_init*/;
959 variable[5] = variable[0];
960 ATTR_parser_nodes___APackagedecl____n_doc(variable[5]) /*APackagedecl::_n_doc*/ = variable[1] /*n_doc*/;
961 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::==*/)))))));
962 if (UNTAG_Bool(variable[5])) { /*if*/
963 variable[5] = variable[0];
964 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[5]) /*PNode::parent=*/;
965 }
966 variable[5] = variable[0];
967 ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[5]) /*APackagedecl::_n_kwpackage*/ = variable[2] /*n_kwpackage*/;
968 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::==*/)))))));
969 if (UNTAG_Bool(variable[5])) { /*if*/
970 variable[5] = variable[0];
971 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwpackage*/)( variable[2] /*n_kwpackage*/, variable[5]) /*PNode::parent=*/;
972 }
973 variable[5] = variable[0];
974 ATTR_parser_nodes___APackagedecl____n_id(variable[5]) /*APackagedecl::_n_id*/ = variable[3] /*n_id*/;
975 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::==*/)))))));
976 if (UNTAG_Bool(variable[5])) { /*if*/
977 variable[5] = variable[0];
978 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[5]) /*PNode::parent=*/;
979 }
980 return_label32: while(false);
981 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
982 tracehead = trace.prev;
983 return;
984 }
985 void parser_prod___AImport___n_visibility__eq(val_t self, val_t param0) {
986 struct trace_t trace = {NULL, NULL, 326, LOCATE_parser_prod___AImport___n_visibility__eq};
987 val_t variable[4];
988 void **closurevariable = NULL;
989 trace.prev = tracehead; tracehead = &trace;
990 trace.file = LOCATE_parser_prod;
991 variable[0] = self;
992 variable[1] = param0;
993 variable[3] = variable[0];
994 ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/ = variable[1] /*n*/;
995 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
996 if (UNTAG_Bool(variable[3])) { /*if*/
997 variable[3] = variable[0];
998 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
999 }
1000 return_label33: while(false);
1001 tracehead = trace.prev;
1002 return;
1003 }
1004 void parser_prod___AImport___n_kwimport__eq(val_t self, val_t param0) {
1005 struct trace_t trace = {NULL, NULL, 333, LOCATE_parser_prod___AImport___n_kwimport__eq};
1006 val_t variable[4];
1007 void **closurevariable = NULL;
1008 trace.prev = tracehead; tracehead = &trace;
1009 trace.file = LOCATE_parser_prod;
1010 variable[0] = self;
1011 variable[1] = param0;
1012 variable[3] = variable[0];
1013 ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/ = variable[1] /*n*/;
1014 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1015 if (UNTAG_Bool(variable[3])) { /*if*/
1016 variable[3] = variable[0];
1017 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1018 }
1019 return_label34: while(false);
1020 tracehead = trace.prev;
1021 return;
1022 }
1023 void parser_prod___AImport___n_id__eq(val_t self, val_t param0) {
1024 struct trace_t trace = {NULL, NULL, 340, LOCATE_parser_prod___AImport___n_id__eq};
1025 val_t variable[4];
1026 void **closurevariable = NULL;
1027 trace.prev = tracehead; tracehead = &trace;
1028 trace.file = LOCATE_parser_prod;
1029 variable[0] = self;
1030 variable[1] = param0;
1031 variable[3] = variable[0];
1032 ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/ = variable[1] /*n*/;
1033 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1034 if (UNTAG_Bool(variable[3])) { /*if*/
1035 variable[3] = variable[0];
1036 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1037 }
1038 return_label35: while(false);
1039 tracehead = trace.prev;
1040 return;
1041 }
1042 void parser_prod___AImport___replace_child(val_t self, val_t param0, val_t param1) {
1043 struct trace_t trace = {NULL, NULL, 371, LOCATE_parser_prod___AImport___replace_child};
1044 val_t variable[5];
1045 void **closurevariable = NULL;
1046 trace.prev = tracehead; tracehead = &trace;
1047 trace.file = LOCATE_parser_prod;
1048 variable[0] = self;
1049 variable[1] = param0;
1050 variable[2] = param1;
1051 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::==*/)))))));
1052 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, 373); nit_exit(1);}
1053 variable[4] = variable[0];
1054 variable[4] = ATTR_parser_nodes___AImport____n_visibility(variable[4]) /*AImport::_n_visibility*/;
1055 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1056 if (UNTAG_Bool(variable[4])) { /*if*/
1057 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1058 if (UNTAG_Bool(variable[4])) { /*if*/
1059 variable[4] = variable[0];
1060 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1061 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
1062 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, 377); nit_exit(1);}
1063 variable[4] = variable[0];
1064 ATTR_parser_nodes___AImport____n_visibility(variable[4]) /*AImport::_n_visibility*/ = variable[2] /*new_child*/;
1065 } else { /*if*/
1066 variable[4] = variable[0];
1067 ATTR_parser_nodes___AImport____n_visibility(variable[4]) /*AImport::_n_visibility*/ = NIT_NULL /*null*/;
1068 }
1069 goto return_label36;
1070 }
1071 variable[4] = variable[0];
1072 variable[4] = ATTR_parser_nodes___AImport____n_kwimport(variable[4]) /*AImport::_n_kwimport*/;
1073 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1074 if (UNTAG_Bool(variable[4])) { /*if*/
1075 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1076 if (UNTAG_Bool(variable[4])) { /*if*/
1077 variable[4] = variable[0];
1078 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1079 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
1080 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, 387); nit_exit(1);}
1081 variable[4] = variable[0];
1082 ATTR_parser_nodes___AImport____n_kwimport(variable[4]) /*AImport::_n_kwimport*/ = variable[2] /*new_child*/;
1083 } else { /*if*/
1084 variable[4] = variable[0];
1085 ATTR_parser_nodes___AImport____n_kwimport(variable[4]) /*AImport::_n_kwimport*/ = NIT_NULL /*null*/;
1086 }
1087 goto return_label36;
1088 }
1089 variable[4] = variable[0];
1090 variable[4] = ATTR_parser_nodes___AImport____n_id(variable[4]) /*AImport::_n_id*/;
1091 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1092 if (UNTAG_Bool(variable[4])) { /*if*/
1093 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1094 if (UNTAG_Bool(variable[4])) { /*if*/
1095 variable[4] = variable[0];
1096 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1097 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
1098 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, 397); nit_exit(1);}
1099 variable[4] = variable[0];
1100 ATTR_parser_nodes___AImport____n_id(variable[4]) /*AImport::_n_id*/ = variable[2] /*new_child*/;
1101 } else { /*if*/
1102 variable[4] = variable[0];
1103 ATTR_parser_nodes___AImport____n_id(variable[4]) /*AImport::_n_id*/ = NIT_NULL /*null*/;
1104 }
1105 goto return_label36;
1106 }
1107 return_label36: while(false);
1108 tracehead = trace.prev;
1109 return;
1110 }
1111 void parser_prod___AImport___visit_all(val_t self, val_t param0) {
1112 struct trace_t trace = {NULL, NULL, 406, LOCATE_parser_prod___AImport___visit_all};
1113 val_t variable[4];
1114 void **closurevariable = NULL;
1115 trace.prev = tracehead; tracehead = &trace;
1116 trace.file = LOCATE_parser_prod;
1117 variable[0] = self;
1118 variable[1] = param0;
1119 variable[3] = variable[0];
1120 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
1121 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1122 if (UNTAG_Bool(variable[3])) { /*if*/
1123 variable[3] = variable[0];
1124 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
1125 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1126 }
1127 variable[3] = variable[0];
1128 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
1129 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1130 if (UNTAG_Bool(variable[3])) { /*if*/
1131 variable[3] = variable[0];
1132 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
1133 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1134 }
1135 variable[3] = variable[0];
1136 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
1137 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1138 if (UNTAG_Bool(variable[3])) { /*if*/
1139 variable[3] = variable[0];
1140 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
1141 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1142 }
1143 return_label37: while(false);
1144 tracehead = trace.prev;
1145 return;
1146 }
1147 void parser_prod___AImport___visit_all_reverse(val_t self, val_t param0) {
1148 struct trace_t trace = {NULL, NULL, 419, LOCATE_parser_prod___AImport___visit_all_reverse};
1149 val_t variable[4];
1150 void **closurevariable = NULL;
1151 trace.prev = tracehead; tracehead = &trace;
1152 trace.file = LOCATE_parser_prod;
1153 variable[0] = self;
1154 variable[1] = param0;
1155 variable[3] = variable[0];
1156 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
1157 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1158 if (UNTAG_Bool(variable[3])) { /*if*/
1159 variable[3] = variable[0];
1160 variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
1161 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1162 }
1163 variable[3] = variable[0];
1164 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
1165 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1166 if (UNTAG_Bool(variable[3])) { /*if*/
1167 variable[3] = variable[0];
1168 variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
1169 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1170 }
1171 variable[3] = variable[0];
1172 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
1173 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1174 if (UNTAG_Bool(variable[3])) { /*if*/
1175 variable[3] = variable[0];
1176 variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
1177 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1178 }
1179 return_label38: while(false);
1180 tracehead = trace.prev;
1181 return;
1182 }
1183 void parser_prod___AImport___empty_init(val_t self, int* init_table) {
1184 struct trace_t trace = {NULL, NULL, 348, LOCATE_parser_prod___AImport___empty_init};
1185 val_t variable[2];
1186 void **closurevariable = NULL;
1187 trace.prev = tracehead; tracehead = &trace;
1188 trace.file = LOCATE_parser_prod;
1189 variable[0] = self;
1190 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i]) return;
1191 return_label39: while(false);
1192 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i] = 1;
1193 tracehead = trace.prev;
1194 return;
1195 }
1196 void parser_prod___AImport___init_aimport(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1197 struct trace_t trace = {NULL, NULL, 350, LOCATE_parser_prod___AImport___init_aimport};
1198 val_t variable[6];
1199 void **closurevariable = NULL;
1200 trace.prev = tracehead; tracehead = &trace;
1201 trace.file = LOCATE_parser_prod;
1202 variable[0] = self;
1203 variable[1] = param0;
1204 variable[2] = param1;
1205 variable[3] = param2;
1206 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i]) return;
1207 variable[5] = variable[0];
1208 CALL_parser_prod___AImport___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AImport::empty_init*/;
1209 variable[5] = variable[0];
1210 ATTR_parser_nodes___AImport____n_visibility(variable[5]) /*AImport::_n_visibility*/ = variable[1] /*n_visibility*/;
1211 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::==*/)))))));
1212 if (UNTAG_Bool(variable[5])) { /*if*/
1213 variable[5] = variable[0];
1214 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, variable[5]) /*PNode::parent=*/;
1215 }
1216 variable[5] = variable[0];
1217 ATTR_parser_nodes___AImport____n_kwimport(variable[5]) /*AImport::_n_kwimport*/ = variable[2] /*n_kwimport*/;
1218 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::==*/)))))));
1219 if (UNTAG_Bool(variable[5])) { /*if*/
1220 variable[5] = variable[0];
1221 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, variable[5]) /*PNode::parent=*/;
1222 }
1223 variable[5] = variable[0];
1224 ATTR_parser_nodes___AImport____n_id(variable[5]) /*AImport::_n_id*/ = variable[3] /*n_id*/;
1225 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::==*/)))))));
1226 if (UNTAG_Bool(variable[5])) { /*if*/
1227 variable[5] = variable[0];
1228 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[5]) /*PNode::parent=*/;
1229 }
1230 return_label40: while(false);
1231 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i] = 1;
1232 tracehead = trace.prev;
1233 return;
1234 }
1235 void parser_prod___ANoImport___n_visibility__eq(val_t self, val_t param0) {
1236 struct trace_t trace = {NULL, NULL, 433, LOCATE_parser_prod___ANoImport___n_visibility__eq};
1237 val_t variable[4];
1238 void **closurevariable = NULL;
1239 trace.prev = tracehead; tracehead = &trace;
1240 trace.file = LOCATE_parser_prod;
1241 variable[0] = self;
1242 variable[1] = param0;
1243 variable[3] = variable[0];
1244 ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/ = variable[1] /*n*/;
1245 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1246 if (UNTAG_Bool(variable[3])) { /*if*/
1247 variable[3] = variable[0];
1248 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1249 }
1250 return_label41: while(false);
1251 tracehead = trace.prev;
1252 return;
1253 }
1254 void parser_prod___ANoImport___n_kwimport__eq(val_t self, val_t param0) {
1255 struct trace_t trace = {NULL, NULL, 440, LOCATE_parser_prod___ANoImport___n_kwimport__eq};
1256 val_t variable[4];
1257 void **closurevariable = NULL;
1258 trace.prev = tracehead; tracehead = &trace;
1259 trace.file = LOCATE_parser_prod;
1260 variable[0] = self;
1261 variable[1] = param0;
1262 variable[3] = variable[0];
1263 ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/ = variable[1] /*n*/;
1264 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1265 if (UNTAG_Bool(variable[3])) { /*if*/
1266 variable[3] = variable[0];
1267 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1268 }
1269 return_label42: while(false);
1270 tracehead = trace.prev;
1271 return;
1272 }
1273 void parser_prod___ANoImport___n_kwend__eq(val_t self, val_t param0) {
1274 struct trace_t trace = {NULL, NULL, 447, LOCATE_parser_prod___ANoImport___n_kwend__eq};
1275 val_t variable[4];
1276 void **closurevariable = NULL;
1277 trace.prev = tracehead; tracehead = &trace;
1278 trace.file = LOCATE_parser_prod;
1279 variable[0] = self;
1280 variable[1] = param0;
1281 variable[3] = variable[0];
1282 ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/ = variable[1] /*n*/;
1283 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1284 if (UNTAG_Bool(variable[3])) { /*if*/
1285 variable[3] = variable[0];
1286 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1287 }
1288 return_label43: while(false);
1289 tracehead = trace.prev;
1290 return;
1291 }
1292 void parser_prod___ANoImport___replace_child(val_t self, val_t param0, val_t param1) {
1293 struct trace_t trace = {NULL, NULL, 478, LOCATE_parser_prod___ANoImport___replace_child};
1294 val_t variable[5];
1295 void **closurevariable = NULL;
1296 trace.prev = tracehead; tracehead = &trace;
1297 trace.file = LOCATE_parser_prod;
1298 variable[0] = self;
1299 variable[1] = param0;
1300 variable[2] = param1;
1301 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::==*/)))))));
1302 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, 480); nit_exit(1);}
1303 variable[4] = variable[0];
1304 variable[4] = ATTR_parser_nodes___ANoImport____n_visibility(variable[4]) /*ANoImport::_n_visibility*/;
1305 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1306 if (UNTAG_Bool(variable[4])) { /*if*/
1307 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1308 if (UNTAG_Bool(variable[4])) { /*if*/
1309 variable[4] = variable[0];
1310 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1311 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
1312 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, 484); nit_exit(1);}
1313 variable[4] = variable[0];
1314 ATTR_parser_nodes___ANoImport____n_visibility(variable[4]) /*ANoImport::_n_visibility*/ = variable[2] /*new_child*/;
1315 } else { /*if*/
1316 variable[4] = variable[0];
1317 ATTR_parser_nodes___ANoImport____n_visibility(variable[4]) /*ANoImport::_n_visibility*/ = NIT_NULL /*null*/;
1318 }
1319 goto return_label44;
1320 }
1321 variable[4] = variable[0];
1322 variable[4] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[4]) /*ANoImport::_n_kwimport*/;
1323 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1324 if (UNTAG_Bool(variable[4])) { /*if*/
1325 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1326 if (UNTAG_Bool(variable[4])) { /*if*/
1327 variable[4] = variable[0];
1328 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1329 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
1330 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, 494); nit_exit(1);}
1331 variable[4] = variable[0];
1332 ATTR_parser_nodes___ANoImport____n_kwimport(variable[4]) /*ANoImport::_n_kwimport*/ = variable[2] /*new_child*/;
1333 } else { /*if*/
1334 variable[4] = variable[0];
1335 ATTR_parser_nodes___ANoImport____n_kwimport(variable[4]) /*ANoImport::_n_kwimport*/ = NIT_NULL /*null*/;
1336 }
1337 goto return_label44;
1338 }
1339 variable[4] = variable[0];
1340 variable[4] = ATTR_parser_nodes___ANoImport____n_kwend(variable[4]) /*ANoImport::_n_kwend*/;
1341 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1342 if (UNTAG_Bool(variable[4])) { /*if*/
1343 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1344 if (UNTAG_Bool(variable[4])) { /*if*/
1345 variable[4] = variable[0];
1346 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1347 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwend, ID_TKwend)) /*cast TKwend*/;
1348 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, 504); nit_exit(1);}
1349 variable[4] = variable[0];
1350 ATTR_parser_nodes___ANoImport____n_kwend(variable[4]) /*ANoImport::_n_kwend*/ = variable[2] /*new_child*/;
1351 } else { /*if*/
1352 variable[4] = variable[0];
1353 ATTR_parser_nodes___ANoImport____n_kwend(variable[4]) /*ANoImport::_n_kwend*/ = NIT_NULL /*null*/;
1354 }
1355 goto return_label44;
1356 }
1357 return_label44: while(false);
1358 tracehead = trace.prev;
1359 return;
1360 }
1361 void parser_prod___ANoImport___visit_all(val_t self, val_t param0) {
1362 struct trace_t trace = {NULL, NULL, 513, LOCATE_parser_prod___ANoImport___visit_all};
1363 val_t variable[4];
1364 void **closurevariable = NULL;
1365 trace.prev = tracehead; tracehead = &trace;
1366 trace.file = LOCATE_parser_prod;
1367 variable[0] = self;
1368 variable[1] = param0;
1369 variable[3] = variable[0];
1370 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
1371 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1372 if (UNTAG_Bool(variable[3])) { /*if*/
1373 variable[3] = variable[0];
1374 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
1375 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1376 }
1377 variable[3] = variable[0];
1378 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
1379 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1380 if (UNTAG_Bool(variable[3])) { /*if*/
1381 variable[3] = variable[0];
1382 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
1383 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1384 }
1385 variable[3] = variable[0];
1386 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
1387 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1388 if (UNTAG_Bool(variable[3])) { /*if*/
1389 variable[3] = variable[0];
1390 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
1391 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1392 }
1393 return_label45: while(false);
1394 tracehead = trace.prev;
1395 return;
1396 }
1397 void parser_prod___ANoImport___visit_all_reverse(val_t self, val_t param0) {
1398 struct trace_t trace = {NULL, NULL, 526, LOCATE_parser_prod___ANoImport___visit_all_reverse};
1399 val_t variable[4];
1400 void **closurevariable = NULL;
1401 trace.prev = tracehead; tracehead = &trace;
1402 trace.file = LOCATE_parser_prod;
1403 variable[0] = self;
1404 variable[1] = param0;
1405 variable[3] = variable[0];
1406 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
1407 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1408 if (UNTAG_Bool(variable[3])) { /*if*/
1409 variable[3] = variable[0];
1410 variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
1411 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1412 }
1413 variable[3] = variable[0];
1414 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
1415 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1416 if (UNTAG_Bool(variable[3])) { /*if*/
1417 variable[3] = variable[0];
1418 variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
1419 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1420 }
1421 variable[3] = variable[0];
1422 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
1423 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1424 if (UNTAG_Bool(variable[3])) { /*if*/
1425 variable[3] = variable[0];
1426 variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
1427 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1428 }
1429 return_label46: while(false);
1430 tracehead = trace.prev;
1431 return;
1432 }
1433 void parser_prod___ANoImport___empty_init(val_t self, int* init_table) {
1434 struct trace_t trace = {NULL, NULL, 455, LOCATE_parser_prod___ANoImport___empty_init};
1435 val_t variable[2];
1436 void **closurevariable = NULL;
1437 trace.prev = tracehead; tracehead = &trace;
1438 trace.file = LOCATE_parser_prod;
1439 variable[0] = self;
1440 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i]) return;
1441 return_label47: while(false);
1442 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i] = 1;
1443 tracehead = trace.prev;
1444 return;
1445 }
1446 void parser_prod___ANoImport___init_anoimport(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1447 struct trace_t trace = {NULL, NULL, 457, LOCATE_parser_prod___ANoImport___init_anoimport};
1448 val_t variable[6];
1449 void **closurevariable = NULL;
1450 trace.prev = tracehead; tracehead = &trace;
1451 trace.file = LOCATE_parser_prod;
1452 variable[0] = self;
1453 variable[1] = param0;
1454 variable[2] = param1;
1455 variable[3] = param2;
1456 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i]) return;
1457 variable[5] = variable[0];
1458 CALL_parser_prod___ANoImport___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ANoImport::empty_init*/;
1459 variable[5] = variable[0];
1460 ATTR_parser_nodes___ANoImport____n_visibility(variable[5]) /*ANoImport::_n_visibility*/ = variable[1] /*n_visibility*/;
1461 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::==*/)))))));
1462 if (UNTAG_Bool(variable[5])) { /*if*/
1463 variable[5] = variable[0];
1464 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, variable[5]) /*PNode::parent=*/;
1465 }
1466 variable[5] = variable[0];
1467 ATTR_parser_nodes___ANoImport____n_kwimport(variable[5]) /*ANoImport::_n_kwimport*/ = variable[2] /*n_kwimport*/;
1468 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::==*/)))))));
1469 if (UNTAG_Bool(variable[5])) { /*if*/
1470 variable[5] = variable[0];
1471 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, variable[5]) /*PNode::parent=*/;
1472 }
1473 variable[5] = variable[0];
1474 ATTR_parser_nodes___ANoImport____n_kwend(variable[5]) /*ANoImport::_n_kwend*/ = variable[3] /*n_kwend*/;
1475 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::==*/)))))));
1476 if (UNTAG_Bool(variable[5])) { /*if*/
1477 variable[5] = variable[0];
1478 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwend*/)( variable[3] /*n_kwend*/, variable[5]) /*PNode::parent=*/;
1479 }
1480 return_label48: while(false);
1481 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i] = 1;
1482 tracehead = trace.prev;
1483 return;
1484 }
1485 void parser_prod___APublicVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1486 struct trace_t trace = {NULL, NULL, 548, LOCATE_parser_prod___APublicVisibility___replace_child};
1487 val_t variable[5];
1488 void **closurevariable = NULL;
1489 trace.prev = tracehead; tracehead = &trace;
1490 trace.file = LOCATE_parser_prod;
1491 variable[0] = self;
1492 variable[1] = param0;
1493 variable[2] = param1;
1494 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::==*/)))))));
1495 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, 550); nit_exit(1);}
1496 return_label49: while(false);
1497 tracehead = trace.prev;
1498 return;
1499 }
1500 void parser_prod___APublicVisibility___visit_all(val_t self, val_t param0) {
1501 struct trace_t trace = {NULL, NULL, 553, LOCATE_parser_prod___APublicVisibility___visit_all};
1502 val_t variable[3];
1503 void **closurevariable = NULL;
1504 trace.prev = tracehead; tracehead = &trace;
1505 trace.file = LOCATE_parser_prod;
1506 variable[0] = self;
1507 variable[1] = param0;
1508 return_label50: while(false);
1509 tracehead = trace.prev;
1510 return;
1511 }
1512 void parser_prod___APublicVisibility___visit_all_reverse(val_t self, val_t param0) {
1513 struct trace_t trace = {NULL, NULL, 557, LOCATE_parser_prod___APublicVisibility___visit_all_reverse};
1514 val_t variable[3];
1515 void **closurevariable = NULL;
1516 trace.prev = tracehead; tracehead = &trace;
1517 trace.file = LOCATE_parser_prod;
1518 variable[0] = self;
1519 variable[1] = param0;
1520 return_label51: while(false);
1521 tracehead = trace.prev;
1522 return;
1523 }
1524 void parser_prod___APublicVisibility___empty_init(val_t self, int* init_table) {
1525 struct trace_t trace = {NULL, NULL, 541, LOCATE_parser_prod___APublicVisibility___empty_init};
1526 val_t variable[2];
1527 void **closurevariable = NULL;
1528 trace.prev = tracehead; tracehead = &trace;
1529 trace.file = LOCATE_parser_prod;
1530 variable[0] = self;
1531 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
1532 return_label52: while(false);
1533 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
1534 tracehead = trace.prev;
1535 return;
1536 }
1537 void parser_prod___APublicVisibility___init_apublicvisibility(val_t self, int* init_table) {
1538 struct trace_t trace = {NULL, NULL, 543, LOCATE_parser_prod___APublicVisibility___init_apublicvisibility};
1539 val_t variable[3];
1540 void **closurevariable = NULL;
1541 trace.prev = tracehead; tracehead = &trace;
1542 trace.file = LOCATE_parser_prod;
1543 variable[0] = self;
1544 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
1545 variable[2] = variable[0];
1546 CALL_parser_prod___APublicVisibility___empty_init(variable[2])(variable[2], init_table /*YYY*/) /*APublicVisibility::empty_init*/;
1547 return_label53: while(false);
1548 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
1549 tracehead = trace.prev;
1550 return;
1551 }
1552 void parser_prod___APrivateVisibility___n_kwprivate__eq(val_t self, val_t param0) {
1553 struct trace_t trace = {NULL, NULL, 562, LOCATE_parser_prod___APrivateVisibility___n_kwprivate__eq};
1554 val_t variable[4];
1555 void **closurevariable = NULL;
1556 trace.prev = tracehead; tracehead = &trace;
1557 trace.file = LOCATE_parser_prod;
1558 variable[0] = self;
1559 variable[1] = param0;
1560 variable[3] = variable[0];
1561 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/ = variable[1] /*n*/;
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 variable[3] = variable[0];
1565 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1566 }
1567 return_label54: while(false);
1568 tracehead = trace.prev;
1569 return;
1570 }
1571 void parser_prod___APrivateVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1572 struct trace_t trace = {NULL, NULL, 583, LOCATE_parser_prod___APrivateVisibility___replace_child};
1573 val_t variable[5];
1574 void **closurevariable = NULL;
1575 trace.prev = tracehead; tracehead = &trace;
1576 trace.file = LOCATE_parser_prod;
1577 variable[0] = self;
1578 variable[1] = param0;
1579 variable[2] = param1;
1580 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::==*/)))))));
1581 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, 585); nit_exit(1);}
1582 variable[4] = variable[0];
1583 variable[4] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[4]) /*APrivateVisibility::_n_kwprivate*/;
1584 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1585 if (UNTAG_Bool(variable[4])) { /*if*/
1586 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1587 if (UNTAG_Bool(variable[4])) { /*if*/
1588 variable[4] = variable[0];
1589 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1590 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
1591 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, 589); nit_exit(1);}
1592 variable[4] = variable[0];
1593 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[4]) /*APrivateVisibility::_n_kwprivate*/ = variable[2] /*new_child*/;
1594 } else { /*if*/
1595 variable[4] = variable[0];
1596 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[4]) /*APrivateVisibility::_n_kwprivate*/ = NIT_NULL /*null*/;
1597 }
1598 goto return_label55;
1599 }
1600 return_label55: while(false);
1601 tracehead = trace.prev;
1602 return;
1603 }
1604 void parser_prod___APrivateVisibility___visit_all(val_t self, val_t param0) {
1605 struct trace_t trace = {NULL, NULL, 598, LOCATE_parser_prod___APrivateVisibility___visit_all};
1606 val_t variable[4];
1607 void **closurevariable = NULL;
1608 trace.prev = tracehead; tracehead = &trace;
1609 trace.file = LOCATE_parser_prod;
1610 variable[0] = self;
1611 variable[1] = param0;
1612 variable[3] = variable[0];
1613 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
1614 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1615 if (UNTAG_Bool(variable[3])) { /*if*/
1616 variable[3] = variable[0];
1617 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
1618 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1619 }
1620 return_label56: while(false);
1621 tracehead = trace.prev;
1622 return;
1623 }
1624 void parser_prod___APrivateVisibility___visit_all_reverse(val_t self, val_t param0) {
1625 struct trace_t trace = {NULL, NULL, 605, LOCATE_parser_prod___APrivateVisibility___visit_all_reverse};
1626 val_t variable[4];
1627 void **closurevariable = NULL;
1628 trace.prev = tracehead; tracehead = &trace;
1629 trace.file = LOCATE_parser_prod;
1630 variable[0] = self;
1631 variable[1] = param0;
1632 variable[3] = variable[0];
1633 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
1634 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1635 if (UNTAG_Bool(variable[3])) { /*if*/
1636 variable[3] = variable[0];
1637 variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
1638 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1639 }
1640 return_label57: while(false);
1641 tracehead = trace.prev;
1642 return;
1643 }
1644 void parser_prod___APrivateVisibility___empty_init(val_t self, int* init_table) {
1645 struct trace_t trace = {NULL, NULL, 570, LOCATE_parser_prod___APrivateVisibility___empty_init};
1646 val_t variable[2];
1647 void **closurevariable = NULL;
1648 trace.prev = tracehead; tracehead = &trace;
1649 trace.file = LOCATE_parser_prod;
1650 variable[0] = self;
1651 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
1652 return_label58: while(false);
1653 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
1654 tracehead = trace.prev;
1655 return;
1656 }
1657 void parser_prod___APrivateVisibility___init_aprivatevisibility(val_t self, val_t param0, int* init_table) {
1658 struct trace_t trace = {NULL, NULL, 572, LOCATE_parser_prod___APrivateVisibility___init_aprivatevisibility};
1659 val_t variable[4];
1660 void **closurevariable = NULL;
1661 trace.prev = tracehead; tracehead = &trace;
1662 trace.file = LOCATE_parser_prod;
1663 variable[0] = self;
1664 variable[1] = param0;
1665 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
1666 variable[3] = variable[0];
1667 CALL_parser_prod___APrivateVisibility___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APrivateVisibility::empty_init*/;
1668 variable[3] = variable[0];
1669 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/ = variable[1] /*n_kwprivate*/;
1670 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::==*/)))))));
1671 if (UNTAG_Bool(variable[3])) { /*if*/
1672 variable[3] = variable[0];
1673 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwprivate*/)( variable[1] /*n_kwprivate*/, variable[3]) /*PNode::parent=*/;
1674 }
1675 return_label59: while(false);
1676 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
1677 tracehead = trace.prev;
1678 return;
1679 }
1680 void parser_prod___AProtectedVisibility___n_kwprotected__eq(val_t self, val_t param0) {
1681 struct trace_t trace = {NULL, NULL, 613, LOCATE_parser_prod___AProtectedVisibility___n_kwprotected__eq};
1682 val_t variable[4];
1683 void **closurevariable = NULL;
1684 trace.prev = tracehead; tracehead = &trace;
1685 trace.file = LOCATE_parser_prod;
1686 variable[0] = self;
1687 variable[1] = param0;
1688 variable[3] = variable[0];
1689 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/ = variable[1] /*n*/;
1690 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1691 if (UNTAG_Bool(variable[3])) { /*if*/
1692 variable[3] = variable[0];
1693 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1694 }
1695 return_label60: while(false);
1696 tracehead = trace.prev;
1697 return;
1698 }
1699 void parser_prod___AProtectedVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1700 struct trace_t trace = {NULL, NULL, 634, LOCATE_parser_prod___AProtectedVisibility___replace_child};
1701 val_t variable[5];
1702 void **closurevariable = NULL;
1703 trace.prev = tracehead; tracehead = &trace;
1704 trace.file = LOCATE_parser_prod;
1705 variable[0] = self;
1706 variable[1] = param0;
1707 variable[2] = param1;
1708 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::==*/)))))));
1709 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, 636); nit_exit(1);}
1710 variable[4] = variable[0];
1711 variable[4] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[4]) /*AProtectedVisibility::_n_kwprotected*/;
1712 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1713 if (UNTAG_Bool(variable[4])) { /*if*/
1714 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1715 if (UNTAG_Bool(variable[4])) { /*if*/
1716 variable[4] = variable[0];
1717 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1718 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
1719 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, 640); nit_exit(1);}
1720 variable[4] = variable[0];
1721 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[4]) /*AProtectedVisibility::_n_kwprotected*/ = variable[2] /*new_child*/;
1722 } else { /*if*/
1723 variable[4] = variable[0];
1724 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[4]) /*AProtectedVisibility::_n_kwprotected*/ = NIT_NULL /*null*/;
1725 }
1726 goto return_label61;
1727 }
1728 return_label61: while(false);
1729 tracehead = trace.prev;
1730 return;
1731 }
1732 void parser_prod___AProtectedVisibility___visit_all(val_t self, val_t param0) {
1733 struct trace_t trace = {NULL, NULL, 649, LOCATE_parser_prod___AProtectedVisibility___visit_all};
1734 val_t variable[4];
1735 void **closurevariable = NULL;
1736 trace.prev = tracehead; tracehead = &trace;
1737 trace.file = LOCATE_parser_prod;
1738 variable[0] = self;
1739 variable[1] = param0;
1740 variable[3] = variable[0];
1741 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
1742 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1743 if (UNTAG_Bool(variable[3])) { /*if*/
1744 variable[3] = variable[0];
1745 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
1746 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1747 }
1748 return_label62: while(false);
1749 tracehead = trace.prev;
1750 return;
1751 }
1752 void parser_prod___AProtectedVisibility___visit_all_reverse(val_t self, val_t param0) {
1753 struct trace_t trace = {NULL, NULL, 656, LOCATE_parser_prod___AProtectedVisibility___visit_all_reverse};
1754 val_t variable[4];
1755 void **closurevariable = NULL;
1756 trace.prev = tracehead; tracehead = &trace;
1757 trace.file = LOCATE_parser_prod;
1758 variable[0] = self;
1759 variable[1] = param0;
1760 variable[3] = variable[0];
1761 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
1762 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1763 if (UNTAG_Bool(variable[3])) { /*if*/
1764 variable[3] = variable[0];
1765 variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
1766 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1767 }
1768 return_label63: while(false);
1769 tracehead = trace.prev;
1770 return;
1771 }
1772 void parser_prod___AProtectedVisibility___empty_init(val_t self, int* init_table) {
1773 struct trace_t trace = {NULL, NULL, 621, LOCATE_parser_prod___AProtectedVisibility___empty_init};
1774 val_t variable[2];
1775 void **closurevariable = NULL;
1776 trace.prev = tracehead; tracehead = &trace;
1777 trace.file = LOCATE_parser_prod;
1778 variable[0] = self;
1779 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
1780 return_label64: while(false);
1781 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
1782 tracehead = trace.prev;
1783 return;
1784 }
1785 void parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t self, val_t param0, int* init_table) {
1786 struct trace_t trace = {NULL, NULL, 623, LOCATE_parser_prod___AProtectedVisibility___init_aprotectedvisibility};
1787 val_t variable[4];
1788 void **closurevariable = NULL;
1789 trace.prev = tracehead; tracehead = &trace;
1790 trace.file = LOCATE_parser_prod;
1791 variable[0] = self;
1792 variable[1] = param0;
1793 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
1794 variable[3] = variable[0];
1795 CALL_parser_prod___AProtectedVisibility___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AProtectedVisibility::empty_init*/;
1796 variable[3] = variable[0];
1797 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/ = variable[1] /*n_kwprotected*/;
1798 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::==*/)))))));
1799 if (UNTAG_Bool(variable[3])) { /*if*/
1800 variable[3] = variable[0];
1801 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwprotected*/)( variable[1] /*n_kwprotected*/, variable[3]) /*PNode::parent=*/;
1802 }
1803 return_label65: while(false);
1804 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
1805 tracehead = trace.prev;
1806 return;
1807 }
1808 void parser_prod___AIntrudeVisibility___n_kwintrude__eq(val_t self, val_t param0) {
1809 struct trace_t trace = {NULL, NULL, 664, LOCATE_parser_prod___AIntrudeVisibility___n_kwintrude__eq};
1810 val_t variable[4];
1811 void **closurevariable = NULL;
1812 trace.prev = tracehead; tracehead = &trace;
1813 trace.file = LOCATE_parser_prod;
1814 variable[0] = self;
1815 variable[1] = param0;
1816 variable[3] = variable[0];
1817 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/ = variable[1] /*n*/;
1818 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1819 if (UNTAG_Bool(variable[3])) { /*if*/
1820 variable[3] = variable[0];
1821 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1822 }
1823 return_label66: while(false);
1824 tracehead = trace.prev;
1825 return;
1826 }
1827 void parser_prod___AIntrudeVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1828 struct trace_t trace = {NULL, NULL, 685, LOCATE_parser_prod___AIntrudeVisibility___replace_child};
1829 val_t variable[5];
1830 void **closurevariable = NULL;
1831 trace.prev = tracehead; tracehead = &trace;
1832 trace.file = LOCATE_parser_prod;
1833 variable[0] = self;
1834 variable[1] = param0;
1835 variable[2] = param1;
1836 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::==*/)))))));
1837 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, 687); nit_exit(1);}
1838 variable[4] = variable[0];
1839 variable[4] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[4]) /*AIntrudeVisibility::_n_kwintrude*/;
1840 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
1841 if (UNTAG_Bool(variable[4])) { /*if*/
1842 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1843 if (UNTAG_Bool(variable[4])) { /*if*/
1844 variable[4] = variable[0];
1845 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
1846 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
1847 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, 691); nit_exit(1);}
1848 variable[4] = variable[0];
1849 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[4]) /*AIntrudeVisibility::_n_kwintrude*/ = variable[2] /*new_child*/;
1850 } else { /*if*/
1851 variable[4] = variable[0];
1852 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[4]) /*AIntrudeVisibility::_n_kwintrude*/ = NIT_NULL /*null*/;
1853 }
1854 goto return_label67;
1855 }
1856 return_label67: while(false);
1857 tracehead = trace.prev;
1858 return;
1859 }
1860 void parser_prod___AIntrudeVisibility___visit_all(val_t self, val_t param0) {
1861 struct trace_t trace = {NULL, NULL, 700, LOCATE_parser_prod___AIntrudeVisibility___visit_all};
1862 val_t variable[4];
1863 void **closurevariable = NULL;
1864 trace.prev = tracehead; tracehead = &trace;
1865 trace.file = LOCATE_parser_prod;
1866 variable[0] = self;
1867 variable[1] = param0;
1868 variable[3] = variable[0];
1869 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
1870 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1871 if (UNTAG_Bool(variable[3])) { /*if*/
1872 variable[3] = variable[0];
1873 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
1874 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1875 }
1876 return_label68: while(false);
1877 tracehead = trace.prev;
1878 return;
1879 }
1880 void parser_prod___AIntrudeVisibility___visit_all_reverse(val_t self, val_t param0) {
1881 struct trace_t trace = {NULL, NULL, 707, LOCATE_parser_prod___AIntrudeVisibility___visit_all_reverse};
1882 val_t variable[4];
1883 void **closurevariable = NULL;
1884 trace.prev = tracehead; tracehead = &trace;
1885 trace.file = LOCATE_parser_prod;
1886 variable[0] = self;
1887 variable[1] = param0;
1888 variable[3] = variable[0];
1889 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
1890 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1891 if (UNTAG_Bool(variable[3])) { /*if*/
1892 variable[3] = variable[0];
1893 variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
1894 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
1895 }
1896 return_label69: while(false);
1897 tracehead = trace.prev;
1898 return;
1899 }
1900 void parser_prod___AIntrudeVisibility___empty_init(val_t self, int* init_table) {
1901 struct trace_t trace = {NULL, NULL, 672, LOCATE_parser_prod___AIntrudeVisibility___empty_init};
1902 val_t variable[2];
1903 void **closurevariable = NULL;
1904 trace.prev = tracehead; tracehead = &trace;
1905 trace.file = LOCATE_parser_prod;
1906 variable[0] = self;
1907 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
1908 return_label70: while(false);
1909 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
1910 tracehead = trace.prev;
1911 return;
1912 }
1913 void parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t self, val_t param0, int* init_table) {
1914 struct trace_t trace = {NULL, NULL, 674, LOCATE_parser_prod___AIntrudeVisibility___init_aintrudevisibility};
1915 val_t variable[4];
1916 void **closurevariable = NULL;
1917 trace.prev = tracehead; tracehead = &trace;
1918 trace.file = LOCATE_parser_prod;
1919 variable[0] = self;
1920 variable[1] = param0;
1921 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
1922 variable[3] = variable[0];
1923 CALL_parser_prod___AIntrudeVisibility___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AIntrudeVisibility::empty_init*/;
1924 variable[3] = variable[0];
1925 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/ = variable[1] /*n_kwintrude*/;
1926 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::==*/)))))));
1927 if (UNTAG_Bool(variable[3])) { /*if*/
1928 variable[3] = variable[0];
1929 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwintrude*/)( variable[1] /*n_kwintrude*/, variable[3]) /*PNode::parent=*/;
1930 }
1931 return_label71: while(false);
1932 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
1933 tracehead = trace.prev;
1934 return;
1935 }
1936 void parser_prod___AClassdef___n_doc__eq(val_t self, val_t param0) {
1937 struct trace_t trace = {NULL, NULL, 715, LOCATE_parser_prod___AClassdef___n_doc__eq};
1938 val_t variable[4];
1939 void **closurevariable = NULL;
1940 trace.prev = tracehead; tracehead = &trace;
1941 trace.file = LOCATE_parser_prod;
1942 variable[0] = self;
1943 variable[1] = param0;
1944 variable[3] = variable[0];
1945 ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/ = variable[1] /*n*/;
1946 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1947 if (UNTAG_Bool(variable[3])) { /*if*/
1948 variable[3] = variable[0];
1949 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1950 }
1951 return_label72: while(false);
1952 tracehead = trace.prev;
1953 return;
1954 }
1955 void parser_prod___AClassdef___n_kwredef__eq(val_t self, val_t param0) {
1956 struct trace_t trace = {NULL, NULL, 722, LOCATE_parser_prod___AClassdef___n_kwredef__eq};
1957 val_t variable[4];
1958 void **closurevariable = NULL;
1959 trace.prev = tracehead; tracehead = &trace;
1960 trace.file = LOCATE_parser_prod;
1961 variable[0] = self;
1962 variable[1] = param0;
1963 variable[3] = variable[0];
1964 ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/ = variable[1] /*n*/;
1965 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1966 if (UNTAG_Bool(variable[3])) { /*if*/
1967 variable[3] = variable[0];
1968 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1969 }
1970 return_label73: while(false);
1971 tracehead = trace.prev;
1972 return;
1973 }
1974 void parser_prod___AClassdef___n_visibility__eq(val_t self, val_t param0) {
1975 struct trace_t trace = {NULL, NULL, 729, LOCATE_parser_prod___AClassdef___n_visibility__eq};
1976 val_t variable[4];
1977 void **closurevariable = NULL;
1978 trace.prev = tracehead; tracehead = &trace;
1979 trace.file = LOCATE_parser_prod;
1980 variable[0] = self;
1981 variable[1] = param0;
1982 variable[3] = variable[0];
1983 ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/ = variable[1] /*n*/;
1984 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1985 if (UNTAG_Bool(variable[3])) { /*if*/
1986 variable[3] = variable[0];
1987 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
1988 }
1989 return_label74: while(false);
1990 tracehead = trace.prev;
1991 return;
1992 }
1993 void parser_prod___AClassdef___n_classkind__eq(val_t self, val_t param0) {
1994 struct trace_t trace = {NULL, NULL, 736, LOCATE_parser_prod___AClassdef___n_classkind__eq};
1995 val_t variable[4];
1996 void **closurevariable = NULL;
1997 trace.prev = tracehead; tracehead = &trace;
1998 trace.file = LOCATE_parser_prod;
1999 variable[0] = self;
2000 variable[1] = param0;
2001 variable[3] = variable[0];
2002 ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/ = variable[1] /*n*/;
2003 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2004 if (UNTAG_Bool(variable[3])) { /*if*/
2005 variable[3] = variable[0];
2006 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
2007 }
2008 return_label75: while(false);
2009 tracehead = trace.prev;
2010 return;
2011 }
2012 void parser_prod___AClassdef___n_id__eq(val_t self, val_t param0) {
2013 struct trace_t trace = {NULL, NULL, 743, LOCATE_parser_prod___AClassdef___n_id__eq};
2014 val_t variable[4];
2015 void **closurevariable = NULL;
2016 trace.prev = tracehead; tracehead = &trace;
2017 trace.file = LOCATE_parser_prod;
2018 variable[0] = self;
2019 variable[1] = param0;
2020 variable[3] = variable[0];
2021 ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/ = variable[1] /*n*/;
2022 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2023 if (UNTAG_Bool(variable[3])) { /*if*/
2024 variable[3] = variable[0];
2025 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
2026 }
2027 return_label76: while(false);
2028 tracehead = trace.prev;
2029 return;
2030 }
2031 void parser_prod___AClassdef___replace_child(val_t self, val_t param0, val_t param1) {
2032 struct trace_t trace = {NULL, NULL, 805, LOCATE_parser_prod___AClassdef___replace_child};
2033 val_t variable[8];
2034 void **closurevariable = NULL;
2035 trace.prev = tracehead; tracehead = &trace;
2036 trace.file = LOCATE_parser_prod;
2037 variable[0] = self;
2038 variable[1] = param0;
2039 variable[2] = param1;
2040 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::==*/)))))));
2041 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, 807); nit_exit(1);}
2042 variable[4] = variable[0];
2043 variable[4] = ATTR_parser_nodes___AClassdef____n_doc(variable[4]) /*AClassdef::_n_doc*/;
2044 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2045 if (UNTAG_Bool(variable[4])) { /*if*/
2046 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2047 if (UNTAG_Bool(variable[4])) { /*if*/
2048 variable[4] = variable[0];
2049 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
2050 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
2051 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, 811); nit_exit(1);}
2052 variable[4] = variable[0];
2053 ATTR_parser_nodes___AClassdef____n_doc(variable[4]) /*AClassdef::_n_doc*/ = variable[2] /*new_child*/;
2054 } else { /*if*/
2055 variable[4] = variable[0];
2056 ATTR_parser_nodes___AClassdef____n_doc(variable[4]) /*AClassdef::_n_doc*/ = NIT_NULL /*null*/;
2057 }
2058 goto return_label77;
2059 }
2060 variable[4] = variable[0];
2061 variable[4] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[4]) /*AClassdef::_n_kwredef*/;
2062 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2063 if (UNTAG_Bool(variable[4])) { /*if*/
2064 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2065 if (UNTAG_Bool(variable[4])) { /*if*/
2066 variable[4] = variable[0];
2067 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
2068 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
2069 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, 821); nit_exit(1);}
2070 variable[4] = variable[0];
2071 ATTR_parser_nodes___AClassdef____n_kwredef(variable[4]) /*AClassdef::_n_kwredef*/ = variable[2] /*new_child*/;
2072 } else { /*if*/
2073 variable[4] = variable[0];
2074 ATTR_parser_nodes___AClassdef____n_kwredef(variable[4]) /*AClassdef::_n_kwredef*/ = NIT_NULL /*null*/;
2075 }
2076 goto return_label77;
2077 }
2078 variable[4] = variable[0];
2079 variable[4] = ATTR_parser_nodes___AClassdef____n_visibility(variable[4]) /*AClassdef::_n_visibility*/;
2080 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2081 if (UNTAG_Bool(variable[4])) { /*if*/
2082 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2083 if (UNTAG_Bool(variable[4])) { /*if*/
2084 variable[4] = variable[0];
2085 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
2086 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
2087 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, 831); nit_exit(1);}
2088 variable[4] = variable[0];
2089 ATTR_parser_nodes___AClassdef____n_visibility(variable[4]) /*AClassdef::_n_visibility*/ = variable[2] /*new_child*/;
2090 } else { /*if*/
2091 variable[4] = variable[0];
2092 ATTR_parser_nodes___AClassdef____n_visibility(variable[4]) /*AClassdef::_n_visibility*/ = NIT_NULL /*null*/;
2093 }
2094 goto return_label77;
2095 }
2096 variable[4] = variable[0];
2097 variable[4] = ATTR_parser_nodes___AClassdef____n_classkind(variable[4]) /*AClassdef::_n_classkind*/;
2098 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2099 if (UNTAG_Bool(variable[4])) { /*if*/
2100 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2101 if (UNTAG_Bool(variable[4])) { /*if*/
2102 variable[4] = variable[0];
2103 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
2104 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
2105 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, 841); nit_exit(1);}
2106 variable[4] = variable[0];
2107 ATTR_parser_nodes___AClassdef____n_classkind(variable[4]) /*AClassdef::_n_classkind*/ = variable[2] /*new_child*/;
2108 } else { /*if*/
2109 variable[4] = variable[0];
2110 ATTR_parser_nodes___AClassdef____n_classkind(variable[4]) /*AClassdef::_n_classkind*/ = NIT_NULL /*null*/;
2111 }
2112 goto return_label77;
2113 }
2114 variable[4] = variable[0];
2115 variable[4] = ATTR_parser_nodes___AClassdef____n_id(variable[4]) /*AClassdef::_n_id*/;
2116 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2117 if (UNTAG_Bool(variable[4])) { /*if*/
2118 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2119 if (UNTAG_Bool(variable[4])) { /*if*/
2120 variable[4] = variable[0];
2121 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
2122 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
2123 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, 851); nit_exit(1);}
2124 variable[4] = variable[0];
2125 ATTR_parser_nodes___AClassdef____n_id(variable[4]) /*AClassdef::_n_id*/ = variable[2] /*new_child*/;
2126 } else { /*if*/
2127 variable[4] = variable[0];
2128 ATTR_parser_nodes___AClassdef____n_id(variable[4]) /*AClassdef::_n_id*/ = NIT_NULL /*null*/;
2129 }
2130 goto return_label77;
2131 }
2132 variable[4] = variable[0];
2133 variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[4]) /*AClassdef::_n_formaldefs*/;
2134 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2135 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
2136 variable[4] = variable[5];
2137 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2138 while (true) { /*for*/
2139 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2140 if (!UNTAG_Bool(variable[5])) break; /*for*/
2141 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
2142 variable[6] = variable[5];
2143 variable[7] = variable[0];
2144 variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[7]) /*AClassdef::_n_formaldefs*/;
2145 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2146 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::==*/)))));
2147 if (UNTAG_Bool(variable[7])) { /*if*/
2148 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::==*/)))))));
2149 if (UNTAG_Bool(variable[7])) { /*if*/
2150 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
2151 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, 861); nit_exit(1);}
2152 variable[7] = variable[0];
2153 variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[7]) /*AClassdef::_n_formaldefs*/;
2154 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2155 variable[7] = variable[0];
2156 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
2157 } else { /*if*/
2158 variable[7] = variable[0];
2159 variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[7]) /*AClassdef::_n_formaldefs*/;
2160 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2161 }
2162 goto return_label77;
2163 }
2164 continue_78: while(0);
2165 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2166 }
2167 break_78: while(0);
2168 variable[4] = variable[0];
2169 variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[4]) /*AClassdef::_n_superclasses*/;
2170 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2171 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
2172 variable[4] = variable[5];
2173 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2174 while (true) { /*for*/
2175 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2176 if (!UNTAG_Bool(variable[5])) break; /*for*/
2177 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
2178 variable[6] = variable[5];
2179 variable[7] = variable[0];
2180 variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[7]) /*AClassdef::_n_superclasses*/;
2181 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2182 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::==*/)))));
2183 if (UNTAG_Bool(variable[7])) { /*if*/
2184 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::==*/)))))));
2185 if (UNTAG_Bool(variable[7])) { /*if*/
2186 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
2187 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, 873); nit_exit(1);}
2188 variable[7] = variable[0];
2189 variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[7]) /*AClassdef::_n_superclasses*/;
2190 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2191 variable[7] = variable[0];
2192 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
2193 } else { /*if*/
2194 variable[7] = variable[0];
2195 variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[7]) /*AClassdef::_n_superclasses*/;
2196 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2197 }
2198 goto return_label77;
2199 }
2200 continue_79: while(0);
2201 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2202 }
2203 break_79: while(0);
2204 variable[4] = variable[0];
2205 variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[4]) /*AClassdef::_n_propdefs*/;
2206 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2207 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
2208 variable[4] = variable[5];
2209 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2210 while (true) { /*for*/
2211 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2212 if (!UNTAG_Bool(variable[5])) break; /*for*/
2213 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
2214 variable[6] = variable[5];
2215 variable[7] = variable[0];
2216 variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[7]) /*AClassdef::_n_propdefs*/;
2217 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2218 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::==*/)))));
2219 if (UNTAG_Bool(variable[7])) { /*if*/
2220 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::==*/)))))));
2221 if (UNTAG_Bool(variable[7])) { /*if*/
2222 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2223 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, 885); nit_exit(1);}
2224 variable[7] = variable[0];
2225 variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[7]) /*AClassdef::_n_propdefs*/;
2226 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2227 variable[7] = variable[0];
2228 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
2229 } else { /*if*/
2230 variable[7] = variable[0];
2231 variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[7]) /*AClassdef::_n_propdefs*/;
2232 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2233 }
2234 goto return_label77;
2235 }
2236 continue_80: while(0);
2237 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2238 }
2239 break_80: while(0);
2240 return_label77: while(false);
2241 tracehead = trace.prev;
2242 return;
2243 }
2244 void parser_prod___AClassdef___visit_all(val_t self, val_t param0) {
2245 struct trace_t trace = {NULL, NULL, 896, LOCATE_parser_prod___AClassdef___visit_all};
2246 val_t variable[6];
2247 void **closurevariable = NULL;
2248 trace.prev = tracehead; tracehead = &trace;
2249 trace.file = LOCATE_parser_prod;
2250 variable[0] = self;
2251 variable[1] = param0;
2252 variable[3] = variable[0];
2253 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
2254 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2255 if (UNTAG_Bool(variable[3])) { /*if*/
2256 variable[3] = variable[0];
2257 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
2258 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2259 }
2260 variable[3] = variable[0];
2261 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
2262 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2263 if (UNTAG_Bool(variable[3])) { /*if*/
2264 variable[3] = variable[0];
2265 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
2266 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2267 }
2268 variable[3] = variable[0];
2269 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
2270 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2271 if (UNTAG_Bool(variable[3])) { /*if*/
2272 variable[3] = variable[0];
2273 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
2274 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2275 }
2276 variable[3] = variable[0];
2277 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
2278 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2279 if (UNTAG_Bool(variable[3])) { /*if*/
2280 variable[3] = variable[0];
2281 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
2282 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2283 }
2284 variable[3] = variable[0];
2285 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
2286 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2287 if (UNTAG_Bool(variable[3])) { /*if*/
2288 variable[3] = variable[0];
2289 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
2290 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2291 }
2292 variable[3] = variable[0];
2293 variable[3] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[3]) /*AClassdef::_n_formaldefs*/;
2294 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2295 while (true) { /*for*/
2296 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2297 if (!UNTAG_Bool(variable[4])) break; /*for*/
2298 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
2299 variable[5] = variable[4];
2300 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2301 continue_82: while(0);
2302 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2303 }
2304 break_82: while(0);
2305 variable[3] = variable[0];
2306 variable[3] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[3]) /*AClassdef::_n_superclasses*/;
2307 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2308 while (true) { /*for*/
2309 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2310 if (!UNTAG_Bool(variable[4])) break; /*for*/
2311 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
2312 variable[5] = variable[4];
2313 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2314 continue_83: while(0);
2315 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2316 }
2317 break_83: while(0);
2318 variable[3] = variable[0];
2319 variable[3] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[3]) /*AClassdef::_n_propdefs*/;
2320 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2321 while (true) { /*for*/
2322 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2323 if (!UNTAG_Bool(variable[4])) break; /*for*/
2324 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
2325 variable[5] = variable[4];
2326 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2327 continue_84: while(0);
2328 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2329 }
2330 break_84: while(0);
2331 return_label81: while(false);
2332 tracehead = trace.prev;
2333 return;
2334 }
2335 void parser_prod___AClassdef___visit_all_reverse(val_t self, val_t param0) {
2336 struct trace_t trace = {NULL, NULL, 924, LOCATE_parser_prod___AClassdef___visit_all_reverse};
2337 val_t variable[5];
2338 void **closurevariable = NULL;
2339 trace.prev = tracehead; tracehead = &trace;
2340 trace.file = LOCATE_parser_prod;
2341 variable[0] = self;
2342 variable[1] = param0;
2343 variable[3] = variable[0];
2344 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
2345 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2346 if (UNTAG_Bool(variable[3])) { /*if*/
2347 variable[3] = variable[0];
2348 variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
2349 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2350 }
2351 variable[3] = variable[0];
2352 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
2353 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2354 if (UNTAG_Bool(variable[3])) { /*if*/
2355 variable[3] = variable[0];
2356 variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
2357 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2358 }
2359 variable[3] = variable[0];
2360 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
2361 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2362 if (UNTAG_Bool(variable[3])) { /*if*/
2363 variable[3] = variable[0];
2364 variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
2365 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2366 }
2367 variable[3] = variable[0];
2368 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
2369 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2370 if (UNTAG_Bool(variable[3])) { /*if*/
2371 variable[3] = variable[0];
2372 variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
2373 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2374 }
2375 variable[3] = variable[0];
2376 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
2377 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2378 if (UNTAG_Bool(variable[3])) { /*if*/
2379 variable[3] = variable[0];
2380 variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
2381 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2382 }
2383 variable[4] = variable[0];
2384 variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[4]) /*AClassdef::_n_formaldefs*/;
2385 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2386 variable[3] = variable[4];
2387 while (true) { /*while*/
2388 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2389 if (!UNTAG_Bool(variable[4])) break; /* while*/
2390 variable[4] = variable[0];
2391 variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[4]) /*AClassdef::_n_formaldefs*/;
2392 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2393 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2394 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2395 variable[3] = variable[4] /*i=*/;
2396 continue_86: while(0);
2397 }
2398 break_86: while(0);
2399 variable[4] = variable[0];
2400 variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[4]) /*AClassdef::_n_superclasses*/;
2401 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2402 variable[3] = variable[4];
2403 while (true) { /*while*/
2404 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2405 if (!UNTAG_Bool(variable[4])) break; /* while*/
2406 variable[4] = variable[0];
2407 variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[4]) /*AClassdef::_n_superclasses*/;
2408 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2409 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2410 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2411 variable[3] = variable[4] /*i=*/;
2412 continue_87: while(0);
2413 }
2414 break_87: while(0);
2415 variable[4] = variable[0];
2416 variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[4]) /*AClassdef::_n_propdefs*/;
2417 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2418 variable[3] = variable[4];
2419 while (true) { /*while*/
2420 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2421 if (!UNTAG_Bool(variable[4])) break; /* while*/
2422 variable[4] = variable[0];
2423 variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[4]) /*AClassdef::_n_propdefs*/;
2424 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2425 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2426 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2427 variable[3] = variable[4] /*i=*/;
2428 continue_88: while(0);
2429 }
2430 break_88: while(0);
2431 return_label85: while(false);
2432 tracehead = trace.prev;
2433 return;
2434 }
2435 void parser_prod___AClassdef___empty_init(val_t self, int* init_table) {
2436 struct trace_t trace = {NULL, NULL, 751, LOCATE_parser_prod___AClassdef___empty_init};
2437 val_t variable[2];
2438 void **closurevariable = NULL;
2439 trace.prev = tracehead; tracehead = &trace;
2440 trace.file = LOCATE_parser_prod;
2441 variable[0] = self;
2442 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i]) return;
2443 return_label89: while(false);
2444 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i] = 1;
2445 tracehead = trace.prev;
2446 return;
2447 }
2448 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) {
2449 struct trace_t trace = {NULL, NULL, 753, LOCATE_parser_prod___AClassdef___init_aclassdef};
2450 val_t variable[14];
2451 void **closurevariable = NULL;
2452 trace.prev = tracehead; tracehead = &trace;
2453 trace.file = LOCATE_parser_prod;
2454 variable[0] = self;
2455 variable[1] = param0;
2456 variable[2] = param1;
2457 variable[3] = param2;
2458 variable[4] = param3;
2459 variable[5] = param4;
2460 variable[6] = param5;
2461 variable[7] = param6;
2462 variable[8] = param7;
2463 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i]) return;
2464 variable[10] = variable[0];
2465 CALL_parser_prod___AClassdef___empty_init(variable[10])(variable[10], init_table /*YYY*/) /*AClassdef::empty_init*/;
2466 variable[10] = variable[0];
2467 ATTR_parser_nodes___AClassdef____n_doc(variable[10]) /*AClassdef::_n_doc*/ = variable[1] /*n_doc*/;
2468 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::==*/)))))));
2469 if (UNTAG_Bool(variable[10])) { /*if*/
2470 variable[10] = variable[0];
2471 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[10]) /*PNode::parent=*/;
2472 }
2473 variable[10] = variable[0];
2474 ATTR_parser_nodes___AClassdef____n_kwredef(variable[10]) /*AClassdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
2475 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::==*/)))))));
2476 if (UNTAG_Bool(variable[10])) { /*if*/
2477 variable[10] = variable[0];
2478 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[10]) /*PNode::parent=*/;
2479 }
2480 variable[10] = variable[0];
2481 ATTR_parser_nodes___AClassdef____n_visibility(variable[10]) /*AClassdef::_n_visibility*/ = variable[3] /*n_visibility*/;
2482 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::==*/)))))));
2483 if (UNTAG_Bool(variable[10])) { /*if*/
2484 variable[10] = variable[0];
2485 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[10]) /*PNode::parent=*/;
2486 }
2487 variable[10] = variable[0];
2488 ATTR_parser_nodes___AClassdef____n_classkind(variable[10]) /*AClassdef::_n_classkind*/ = variable[4] /*n_classkind*/;
2489 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::==*/)))))));
2490 if (UNTAG_Bool(variable[10])) { /*if*/
2491 variable[10] = variable[0];
2492 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_classkind*/)( variable[4] /*n_classkind*/, variable[10]) /*PNode::parent=*/;
2493 }
2494 variable[10] = variable[0];
2495 ATTR_parser_nodes___AClassdef____n_id(variable[10]) /*AClassdef::_n_id*/ = variable[5] /*n_id*/;
2496 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::==*/)))))));
2497 if (UNTAG_Bool(variable[10])) { /*if*/
2498 variable[10] = variable[0];
2499 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_id*/)( variable[5] /*n_id*/, variable[10]) /*PNode::parent=*/;
2500 }
2501 variable[10] = variable[0];
2502 variable[11] = NEW_List_list___List___init(); /*new List[PFormaldef]*/
2503 ATTR_parser_nodes___AClassdef____n_formaldefs(variable[10]) /*AClassdef::_n_formaldefs*/ = variable[11];
2504 variable[10] = CALL_abstract_collection___Collection___iterator( variable[6] /*n_formaldefs*/)( variable[6] /*n_formaldefs*/) /*AbstractArray::iterator*/;
2505 while (true) { /*for*/
2506 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
2507 if (!UNTAG_Bool(variable[11])) break; /*for*/
2508 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
2509 variable[12] = variable[11];
2510 variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
2511 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, 787); nit_exit(1);}
2512 variable[13] = variable[0];
2513 variable[13] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[13]) /*AClassdef::_n_formaldefs*/;
2514 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[12] /*n*/) /*IndexedCollection::add*/;
2515 variable[13] = variable[0];
2516 CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
2517 continue_91: while(0);
2518 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
2519 }
2520 break_91: while(0);
2521 variable[10] = variable[0];
2522 variable[11] = NEW_List_list___List___init(); /*new List[PSuperclass]*/
2523 ATTR_parser_nodes___AClassdef____n_superclasses(variable[10]) /*AClassdef::_n_superclasses*/ = variable[11];
2524 variable[10] = CALL_abstract_collection___Collection___iterator( variable[7] /*n_superclasses*/)( variable[7] /*n_superclasses*/) /*AbstractArray::iterator*/;
2525 while (true) { /*for*/
2526 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
2527 if (!UNTAG_Bool(variable[11])) break; /*for*/
2528 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
2529 variable[12] = variable[11];
2530 variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
2531 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, 793); nit_exit(1);}
2532 variable[13] = variable[0];
2533 variable[13] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[13]) /*AClassdef::_n_superclasses*/;
2534 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[12] /*n*/) /*IndexedCollection::add*/;
2535 variable[13] = variable[0];
2536 CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
2537 continue_92: while(0);
2538 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
2539 }
2540 break_92: while(0);
2541 variable[10] = variable[0];
2542 variable[11] = NEW_List_list___List___init(); /*new List[PPropdef]*/
2543 ATTR_parser_nodes___AClassdef____n_propdefs(variable[10]) /*AClassdef::_n_propdefs*/ = variable[11];
2544 variable[10] = CALL_abstract_collection___Collection___iterator( variable[8] /*n_propdefs*/)( variable[8] /*n_propdefs*/) /*AbstractArray::iterator*/;
2545 while (true) { /*for*/
2546 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
2547 if (!UNTAG_Bool(variable[11])) break; /*for*/
2548 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
2549 variable[12] = variable[11];
2550 variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2551 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, 799); nit_exit(1);}
2552 variable[13] = variable[0];
2553 variable[13] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[13]) /*AClassdef::_n_propdefs*/;
2554 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[12] /*n*/) /*IndexedCollection::add*/;
2555 variable[13] = variable[0];
2556 CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
2557 continue_93: while(0);
2558 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
2559 }
2560 break_93: while(0);
2561 return_label90: while(false);
2562 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i] = 1;
2563 tracehead = trace.prev;
2564 return;
2565 }
2566 void parser_prod___ATopClassdef___replace_child(val_t self, val_t param0, val_t param1) {
2567 struct trace_t trace = {NULL, NULL, 981, LOCATE_parser_prod___ATopClassdef___replace_child};
2568 val_t variable[8];
2569 void **closurevariable = NULL;
2570 trace.prev = tracehead; tracehead = &trace;
2571 trace.file = LOCATE_parser_prod;
2572 variable[0] = self;
2573 variable[1] = param0;
2574 variable[2] = param1;
2575 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::==*/)))))));
2576 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, 983); nit_exit(1);}
2577 variable[4] = variable[0];
2578 variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[4]) /*ATopClassdef::_n_propdefs*/;
2579 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2580 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
2581 variable[4] = variable[5];
2582 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2583 while (true) { /*for*/
2584 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2585 if (!UNTAG_Bool(variable[5])) break; /*for*/
2586 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
2587 variable[6] = variable[5];
2588 variable[7] = variable[0];
2589 variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[7]) /*ATopClassdef::_n_propdefs*/;
2590 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2591 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::==*/)))));
2592 if (UNTAG_Bool(variable[7])) { /*if*/
2593 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::==*/)))))));
2594 if (UNTAG_Bool(variable[7])) { /*if*/
2595 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2596 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, 987); nit_exit(1);}
2597 variable[7] = variable[0];
2598 variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[7]) /*ATopClassdef::_n_propdefs*/;
2599 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2600 variable[7] = variable[0];
2601 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
2602 } else { /*if*/
2603 variable[7] = variable[0];
2604 variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[7]) /*ATopClassdef::_n_propdefs*/;
2605 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2606 }
2607 goto return_label94;
2608 }
2609 continue_95: while(0);
2610 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2611 }
2612 break_95: while(0);
2613 return_label94: while(false);
2614 tracehead = trace.prev;
2615 return;
2616 }
2617 void parser_prod___ATopClassdef___visit_all(val_t self, val_t param0) {
2618 struct trace_t trace = {NULL, NULL, 998, LOCATE_parser_prod___ATopClassdef___visit_all};
2619 val_t variable[6];
2620 void **closurevariable = NULL;
2621 trace.prev = tracehead; tracehead = &trace;
2622 trace.file = LOCATE_parser_prod;
2623 variable[0] = self;
2624 variable[1] = param0;
2625 variable[3] = variable[0];
2626 variable[3] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[3]) /*ATopClassdef::_n_propdefs*/;
2627 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2628 while (true) { /*for*/
2629 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2630 if (!UNTAG_Bool(variable[4])) break; /*for*/
2631 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
2632 variable[5] = variable[4];
2633 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2634 continue_97: while(0);
2635 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2636 }
2637 break_97: while(0);
2638 return_label96: while(false);
2639 tracehead = trace.prev;
2640 return;
2641 }
2642 void parser_prod___ATopClassdef___visit_all_reverse(val_t self, val_t param0) {
2643 struct trace_t trace = {NULL, NULL, 1005, LOCATE_parser_prod___ATopClassdef___visit_all_reverse};
2644 val_t variable[5];
2645 void **closurevariable = NULL;
2646 trace.prev = tracehead; tracehead = &trace;
2647 trace.file = LOCATE_parser_prod;
2648 variable[0] = self;
2649 variable[1] = param0;
2650 variable[4] = variable[0];
2651 variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[4]) /*ATopClassdef::_n_propdefs*/;
2652 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2653 variable[3] = variable[4];
2654 while (true) { /*while*/
2655 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2656 if (!UNTAG_Bool(variable[4])) break; /* while*/
2657 variable[4] = variable[0];
2658 variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[4]) /*ATopClassdef::_n_propdefs*/;
2659 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2660 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2661 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2662 variable[3] = variable[4] /*i=*/;
2663 continue_99: while(0);
2664 }
2665 break_99: while(0);
2666 return_label98: while(false);
2667 tracehead = trace.prev;
2668 return;
2669 }
2670 void parser_prod___ATopClassdef___empty_init(val_t self, int* init_table) {
2671 struct trace_t trace = {NULL, NULL, 966, LOCATE_parser_prod___ATopClassdef___empty_init};
2672 val_t variable[2];
2673 void **closurevariable = NULL;
2674 trace.prev = tracehead; tracehead = &trace;
2675 trace.file = LOCATE_parser_prod;
2676 variable[0] = self;
2677 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
2678 return_label100: while(false);
2679 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
2680 tracehead = trace.prev;
2681 return;
2682 }
2683 void parser_prod___ATopClassdef___init_atopclassdef(val_t self, val_t param0, int* init_table) {
2684 struct trace_t trace = {NULL, NULL, 968, LOCATE_parser_prod___ATopClassdef___init_atopclassdef};
2685 val_t variable[7];
2686 void **closurevariable = NULL;
2687 trace.prev = tracehead; tracehead = &trace;
2688 trace.file = LOCATE_parser_prod;
2689 variable[0] = self;
2690 variable[1] = param0;
2691 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
2692 variable[3] = variable[0];
2693 CALL_parser_prod___ATopClassdef___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ATopClassdef::empty_init*/;
2694 variable[3] = variable[0];
2695 variable[4] = NEW_List_list___List___init(); /*new List[PPropdef]*/
2696 ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[3]) /*ATopClassdef::_n_propdefs*/ = variable[4];
2697 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_propdefs*/)( variable[1] /*n_propdefs*/) /*AbstractArray::iterator*/;
2698 while (true) { /*for*/
2699 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
2700 if (!UNTAG_Bool(variable[4])) break; /*for*/
2701 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
2702 variable[5] = variable[4];
2703 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2704 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, 975); nit_exit(1);}
2705 variable[6] = variable[0];
2706 variable[6] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[6]) /*ATopClassdef::_n_propdefs*/;
2707 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
2708 variable[6] = variable[0];
2709 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
2710 continue_102: while(0);
2711 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
2712 }
2713 break_102: while(0);
2714 return_label101: while(false);
2715 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
2716 tracehead = trace.prev;
2717 return;
2718 }
2719 void parser_prod___AMainClassdef___replace_child(val_t self, val_t param0, val_t param1) {
2720 struct trace_t trace = {NULL, NULL, 1033, LOCATE_parser_prod___AMainClassdef___replace_child};
2721 val_t variable[8];
2722 void **closurevariable = NULL;
2723 trace.prev = tracehead; tracehead = &trace;
2724 trace.file = LOCATE_parser_prod;
2725 variable[0] = self;
2726 variable[1] = param0;
2727 variable[2] = param1;
2728 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::==*/)))))));
2729 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, 1035); nit_exit(1);}
2730 variable[4] = variable[0];
2731 variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[4]) /*AMainClassdef::_n_propdefs*/;
2732 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2733 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
2734 variable[4] = variable[5];
2735 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
2736 while (true) { /*for*/
2737 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
2738 if (!UNTAG_Bool(variable[5])) break; /*for*/
2739 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
2740 variable[6] = variable[5];
2741 variable[7] = variable[0];
2742 variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[7]) /*AMainClassdef::_n_propdefs*/;
2743 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
2744 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::==*/)))));
2745 if (UNTAG_Bool(variable[7])) { /*if*/
2746 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::==*/)))))));
2747 if (UNTAG_Bool(variable[7])) { /*if*/
2748 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2749 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, 1039); nit_exit(1);}
2750 variable[7] = variable[0];
2751 variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[7]) /*AMainClassdef::_n_propdefs*/;
2752 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
2753 variable[7] = variable[0];
2754 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
2755 } else { /*if*/
2756 variable[7] = variable[0];
2757 variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[7]) /*AMainClassdef::_n_propdefs*/;
2758 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
2759 }
2760 goto return_label103;
2761 }
2762 continue_104: while(0);
2763 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2764 }
2765 break_104: while(0);
2766 return_label103: while(false);
2767 tracehead = trace.prev;
2768 return;
2769 }
2770 void parser_prod___AMainClassdef___visit_all(val_t self, val_t param0) {
2771 struct trace_t trace = {NULL, NULL, 1050, LOCATE_parser_prod___AMainClassdef___visit_all};
2772 val_t variable[6];
2773 void **closurevariable = NULL;
2774 trace.prev = tracehead; tracehead = &trace;
2775 trace.file = LOCATE_parser_prod;
2776 variable[0] = self;
2777 variable[1] = param0;
2778 variable[3] = variable[0];
2779 variable[3] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[3]) /*AMainClassdef::_n_propdefs*/;
2780 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
2781 while (true) { /*for*/
2782 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
2783 if (!UNTAG_Bool(variable[4])) break; /*for*/
2784 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
2785 variable[5] = variable[4];
2786 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
2787 continue_106: while(0);
2788 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
2789 }
2790 break_106: while(0);
2791 return_label105: while(false);
2792 tracehead = trace.prev;
2793 return;
2794 }
2795 void parser_prod___AMainClassdef___visit_all_reverse(val_t self, val_t param0) {
2796 struct trace_t trace = {NULL, NULL, 1057, LOCATE_parser_prod___AMainClassdef___visit_all_reverse};
2797 val_t variable[5];
2798 void **closurevariable = NULL;
2799 trace.prev = tracehead; tracehead = &trace;
2800 trace.file = LOCATE_parser_prod;
2801 variable[0] = self;
2802 variable[1] = param0;
2803 variable[4] = variable[0];
2804 variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[4]) /*AMainClassdef::_n_propdefs*/;
2805 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
2806 variable[3] = variable[4];
2807 while (true) { /*while*/
2808 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
2809 if (!UNTAG_Bool(variable[4])) break; /* while*/
2810 variable[4] = variable[0];
2811 variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[4]) /*AMainClassdef::_n_propdefs*/;
2812 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
2813 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
2814 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
2815 variable[3] = variable[4] /*i=*/;
2816 continue_108: while(0);
2817 }
2818 break_108: while(0);
2819 return_label107: while(false);
2820 tracehead = trace.prev;
2821 return;
2822 }
2823 void parser_prod___AMainClassdef___empty_init(val_t self, int* init_table) {
2824 struct trace_t trace = {NULL, NULL, 1018, LOCATE_parser_prod___AMainClassdef___empty_init};
2825 val_t variable[2];
2826 void **closurevariable = NULL;
2827 trace.prev = tracehead; tracehead = &trace;
2828 trace.file = LOCATE_parser_prod;
2829 variable[0] = self;
2830 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
2831 return_label109: while(false);
2832 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
2833 tracehead = trace.prev;
2834 return;
2835 }
2836 void parser_prod___AMainClassdef___init_amainclassdef(val_t self, val_t param0, int* init_table) {
2837 struct trace_t trace = {NULL, NULL, 1020, LOCATE_parser_prod___AMainClassdef___init_amainclassdef};
2838 val_t variable[7];
2839 void **closurevariable = NULL;
2840 trace.prev = tracehead; tracehead = &trace;
2841 trace.file = LOCATE_parser_prod;
2842 variable[0] = self;
2843 variable[1] = param0;
2844 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
2845 variable[3] = variable[0];
2846 CALL_parser_prod___AMainClassdef___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMainClassdef::empty_init*/;
2847 variable[3] = variable[0];
2848 variable[4] = NEW_List_list___List___init(); /*new List[PPropdef]*/
2849 ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[3]) /*AMainClassdef::_n_propdefs*/ = variable[4];
2850 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_propdefs*/)( variable[1] /*n_propdefs*/) /*AbstractArray::iterator*/;
2851 while (true) { /*for*/
2852 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
2853 if (!UNTAG_Bool(variable[4])) break; /*for*/
2854 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
2855 variable[5] = variable[4];
2856 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2857 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, 1027); nit_exit(1);}
2858 variable[6] = variable[0];
2859 variable[6] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[6]) /*AMainClassdef::_n_propdefs*/;
2860 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
2861 variable[6] = variable[0];
2862 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
2863 continue_111: while(0);
2864 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
2865 }
2866 break_111: while(0);
2867 return_label110: while(false);
2868 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
2869 tracehead = trace.prev;
2870 return;
2871 }
2872 void parser_prod___AConcreteClasskind___n_kwclass__eq(val_t self, val_t param0) {
2873 struct trace_t trace = {NULL, NULL, 1069, LOCATE_parser_prod___AConcreteClasskind___n_kwclass__eq};
2874 val_t variable[4];
2875 void **closurevariable = NULL;
2876 trace.prev = tracehead; tracehead = &trace;
2877 trace.file = LOCATE_parser_prod;
2878 variable[0] = self;
2879 variable[1] = param0;
2880 variable[3] = variable[0];
2881 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/ = variable[1] /*n*/;
2882 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2883 if (UNTAG_Bool(variable[3])) { /*if*/
2884 variable[3] = variable[0];
2885 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
2886 }
2887 return_label112: while(false);
2888 tracehead = trace.prev;
2889 return;
2890 }
2891 void parser_prod___AConcreteClasskind___replace_child(val_t self, val_t param0, val_t param1) {
2892 struct trace_t trace = {NULL, NULL, 1090, LOCATE_parser_prod___AConcreteClasskind___replace_child};
2893 val_t variable[5];
2894 void **closurevariable = NULL;
2895 trace.prev = tracehead; tracehead = &trace;
2896 trace.file = LOCATE_parser_prod;
2897 variable[0] = self;
2898 variable[1] = param0;
2899 variable[2] = param1;
2900 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::==*/)))))));
2901 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, 1092); nit_exit(1);}
2902 variable[4] = variable[0];
2903 variable[4] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[4]) /*AConcreteClasskind::_n_kwclass*/;
2904 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
2905 if (UNTAG_Bool(variable[4])) { /*if*/
2906 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2907 if (UNTAG_Bool(variable[4])) { /*if*/
2908 variable[4] = variable[0];
2909 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
2910 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
2911 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, 1096); nit_exit(1);}
2912 variable[4] = variable[0];
2913 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[4]) /*AConcreteClasskind::_n_kwclass*/ = variable[2] /*new_child*/;
2914 } else { /*if*/
2915 variable[4] = variable[0];
2916 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[4]) /*AConcreteClasskind::_n_kwclass*/ = NIT_NULL /*null*/;
2917 }
2918 goto return_label113;
2919 }
2920 return_label113: while(false);
2921 tracehead = trace.prev;
2922 return;
2923 }
2924 void parser_prod___AConcreteClasskind___visit_all(val_t self, val_t param0) {
2925 struct trace_t trace = {NULL, NULL, 1105, LOCATE_parser_prod___AConcreteClasskind___visit_all};
2926 val_t variable[4];
2927 void **closurevariable = NULL;
2928 trace.prev = tracehead; tracehead = &trace;
2929 trace.file = LOCATE_parser_prod;
2930 variable[0] = self;
2931 variable[1] = param0;
2932 variable[3] = variable[0];
2933 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
2934 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2935 if (UNTAG_Bool(variable[3])) { /*if*/
2936 variable[3] = variable[0];
2937 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
2938 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2939 }
2940 return_label114: while(false);
2941 tracehead = trace.prev;
2942 return;
2943 }
2944 void parser_prod___AConcreteClasskind___visit_all_reverse(val_t self, val_t param0) {
2945 struct trace_t trace = {NULL, NULL, 1112, LOCATE_parser_prod___AConcreteClasskind___visit_all_reverse};
2946 val_t variable[4];
2947 void **closurevariable = NULL;
2948 trace.prev = tracehead; tracehead = &trace;
2949 trace.file = LOCATE_parser_prod;
2950 variable[0] = self;
2951 variable[1] = param0;
2952 variable[3] = variable[0];
2953 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
2954 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
2955 if (UNTAG_Bool(variable[3])) { /*if*/
2956 variable[3] = variable[0];
2957 variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
2958 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
2959 }
2960 return_label115: while(false);
2961 tracehead = trace.prev;
2962 return;
2963 }
2964 void parser_prod___AConcreteClasskind___empty_init(val_t self, int* init_table) {
2965 struct trace_t trace = {NULL, NULL, 1077, LOCATE_parser_prod___AConcreteClasskind___empty_init};
2966 val_t variable[2];
2967 void **closurevariable = NULL;
2968 trace.prev = tracehead; tracehead = &trace;
2969 trace.file = LOCATE_parser_prod;
2970 variable[0] = self;
2971 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
2972 return_label116: while(false);
2973 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
2974 tracehead = trace.prev;
2975 return;
2976 }
2977 void parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t self, val_t param0, int* init_table) {
2978 struct trace_t trace = {NULL, NULL, 1079, LOCATE_parser_prod___AConcreteClasskind___init_aconcreteclasskind};
2979 val_t variable[4];
2980 void **closurevariable = NULL;
2981 trace.prev = tracehead; tracehead = &trace;
2982 trace.file = LOCATE_parser_prod;
2983 variable[0] = self;
2984 variable[1] = param0;
2985 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
2986 variable[3] = variable[0];
2987 CALL_parser_prod___AConcreteClasskind___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AConcreteClasskind::empty_init*/;
2988 variable[3] = variable[0];
2989 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/ = variable[1] /*n_kwclass*/;
2990 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::==*/)))))));
2991 if (UNTAG_Bool(variable[3])) { /*if*/
2992 variable[3] = variable[0];
2993 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwclass*/)( variable[1] /*n_kwclass*/, variable[3]) /*PNode::parent=*/;
2994 }
2995 return_label117: while(false);
2996 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
2997 tracehead = trace.prev;
2998 return;
2999 }
3000 void parser_prod___AAbstractClasskind___n_kwabstract__eq(val_t self, val_t param0) {
3001 struct trace_t trace = {NULL, NULL, 1120, LOCATE_parser_prod___AAbstractClasskind___n_kwabstract__eq};
3002 val_t variable[4];
3003 void **closurevariable = NULL;
3004 trace.prev = tracehead; tracehead = &trace;
3005 trace.file = LOCATE_parser_prod;
3006 variable[0] = self;
3007 variable[1] = param0;
3008 variable[3] = variable[0];
3009 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/ = variable[1] /*n*/;
3010 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3011 if (UNTAG_Bool(variable[3])) { /*if*/
3012 variable[3] = variable[0];
3013 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3014 }
3015 return_label118: while(false);
3016 tracehead = trace.prev;
3017 return;
3018 }
3019 void parser_prod___AAbstractClasskind___n_kwclass__eq(val_t self, val_t param0) {
3020 struct trace_t trace = {NULL, NULL, 1127, LOCATE_parser_prod___AAbstractClasskind___n_kwclass__eq};
3021 val_t variable[4];
3022 void **closurevariable = NULL;
3023 trace.prev = tracehead; tracehead = &trace;
3024 trace.file = LOCATE_parser_prod;
3025 variable[0] = self;
3026 variable[1] = param0;
3027 variable[3] = variable[0];
3028 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/ = variable[1] /*n*/;
3029 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3030 if (UNTAG_Bool(variable[3])) { /*if*/
3031 variable[3] = variable[0];
3032 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3033 }
3034 return_label119: while(false);
3035 tracehead = trace.prev;
3036 return;
3037 }
3038 void parser_prod___AAbstractClasskind___replace_child(val_t self, val_t param0, val_t param1) {
3039 struct trace_t trace = {NULL, NULL, 1153, LOCATE_parser_prod___AAbstractClasskind___replace_child};
3040 val_t variable[5];
3041 void **closurevariable = NULL;
3042 trace.prev = tracehead; tracehead = &trace;
3043 trace.file = LOCATE_parser_prod;
3044 variable[0] = self;
3045 variable[1] = param0;
3046 variable[2] = param1;
3047 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::==*/)))))));
3048 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, 1155); nit_exit(1);}
3049 variable[4] = variable[0];
3050 variable[4] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[4]) /*AAbstractClasskind::_n_kwabstract*/;
3051 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3052 if (UNTAG_Bool(variable[4])) { /*if*/
3053 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3054 if (UNTAG_Bool(variable[4])) { /*if*/
3055 variable[4] = variable[0];
3056 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3057 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
3058 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, 1159); nit_exit(1);}
3059 variable[4] = variable[0];
3060 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[4]) /*AAbstractClasskind::_n_kwabstract*/ = variable[2] /*new_child*/;
3061 } else { /*if*/
3062 variable[4] = variable[0];
3063 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[4]) /*AAbstractClasskind::_n_kwabstract*/ = NIT_NULL /*null*/;
3064 }
3065 goto return_label120;
3066 }
3067 variable[4] = variable[0];
3068 variable[4] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[4]) /*AAbstractClasskind::_n_kwclass*/;
3069 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3070 if (UNTAG_Bool(variable[4])) { /*if*/
3071 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3072 if (UNTAG_Bool(variable[4])) { /*if*/
3073 variable[4] = variable[0];
3074 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3075 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
3076 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, 1169); nit_exit(1);}
3077 variable[4] = variable[0];
3078 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[4]) /*AAbstractClasskind::_n_kwclass*/ = variable[2] /*new_child*/;
3079 } else { /*if*/
3080 variable[4] = variable[0];
3081 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[4]) /*AAbstractClasskind::_n_kwclass*/ = NIT_NULL /*null*/;
3082 }
3083 goto return_label120;
3084 }
3085 return_label120: while(false);
3086 tracehead = trace.prev;
3087 return;
3088 }
3089 void parser_prod___AAbstractClasskind___visit_all(val_t self, val_t param0) {
3090 struct trace_t trace = {NULL, NULL, 1178, LOCATE_parser_prod___AAbstractClasskind___visit_all};
3091 val_t variable[4];
3092 void **closurevariable = NULL;
3093 trace.prev = tracehead; tracehead = &trace;
3094 trace.file = LOCATE_parser_prod;
3095 variable[0] = self;
3096 variable[1] = param0;
3097 variable[3] = variable[0];
3098 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
3099 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3100 if (UNTAG_Bool(variable[3])) { /*if*/
3101 variable[3] = variable[0];
3102 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
3103 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3104 }
3105 variable[3] = variable[0];
3106 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
3107 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3108 if (UNTAG_Bool(variable[3])) { /*if*/
3109 variable[3] = variable[0];
3110 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
3111 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3112 }
3113 return_label121: while(false);
3114 tracehead = trace.prev;
3115 return;
3116 }
3117 void parser_prod___AAbstractClasskind___visit_all_reverse(val_t self, val_t param0) {
3118 struct trace_t trace = {NULL, NULL, 1188, LOCATE_parser_prod___AAbstractClasskind___visit_all_reverse};
3119 val_t variable[4];
3120 void **closurevariable = NULL;
3121 trace.prev = tracehead; tracehead = &trace;
3122 trace.file = LOCATE_parser_prod;
3123 variable[0] = self;
3124 variable[1] = param0;
3125 variable[3] = variable[0];
3126 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
3127 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3128 if (UNTAG_Bool(variable[3])) { /*if*/
3129 variable[3] = variable[0];
3130 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
3131 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3132 }
3133 variable[3] = variable[0];
3134 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
3135 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3136 if (UNTAG_Bool(variable[3])) { /*if*/
3137 variable[3] = variable[0];
3138 variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
3139 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3140 }
3141 return_label122: while(false);
3142 tracehead = trace.prev;
3143 return;
3144 }
3145 void parser_prod___AAbstractClasskind___empty_init(val_t self, int* init_table) {
3146 struct trace_t trace = {NULL, NULL, 1135, LOCATE_parser_prod___AAbstractClasskind___empty_init};
3147 val_t variable[2];
3148 void **closurevariable = NULL;
3149 trace.prev = tracehead; tracehead = &trace;
3150 trace.file = LOCATE_parser_prod;
3151 variable[0] = self;
3152 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
3153 return_label123: while(false);
3154 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
3155 tracehead = trace.prev;
3156 return;
3157 }
3158 void parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t self, val_t param0, val_t param1, int* init_table) {
3159 struct trace_t trace = {NULL, NULL, 1137, LOCATE_parser_prod___AAbstractClasskind___init_aabstractclasskind};
3160 val_t variable[5];
3161 void **closurevariable = NULL;
3162 trace.prev = tracehead; tracehead = &trace;
3163 trace.file = LOCATE_parser_prod;
3164 variable[0] = self;
3165 variable[1] = param0;
3166 variable[2] = param1;
3167 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
3168 variable[4] = variable[0];
3169 CALL_parser_prod___AAbstractClasskind___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAbstractClasskind::empty_init*/;
3170 variable[4] = variable[0];
3171 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[4]) /*AAbstractClasskind::_n_kwabstract*/ = variable[1] /*n_kwabstract*/;
3172 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::==*/)))))));
3173 if (UNTAG_Bool(variable[4])) { /*if*/
3174 variable[4] = variable[0];
3175 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwabstract*/)( variable[1] /*n_kwabstract*/, variable[4]) /*PNode::parent=*/;
3176 }
3177 variable[4] = variable[0];
3178 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[4]) /*AAbstractClasskind::_n_kwclass*/ = variable[2] /*n_kwclass*/;
3179 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::==*/)))))));
3180 if (UNTAG_Bool(variable[4])) { /*if*/
3181 variable[4] = variable[0];
3182 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwclass*/)( variable[2] /*n_kwclass*/, variable[4]) /*PNode::parent=*/;
3183 }
3184 return_label124: while(false);
3185 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
3186 tracehead = trace.prev;
3187 return;
3188 }
3189 void parser_prod___AInterfaceClasskind___n_kwinterface__eq(val_t self, val_t param0) {
3190 struct trace_t trace = {NULL, NULL, 1199, LOCATE_parser_prod___AInterfaceClasskind___n_kwinterface__eq};
3191 val_t variable[4];
3192 void **closurevariable = NULL;
3193 trace.prev = tracehead; tracehead = &trace;
3194 trace.file = LOCATE_parser_prod;
3195 variable[0] = self;
3196 variable[1] = param0;
3197 variable[3] = variable[0];
3198 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/ = variable[1] /*n*/;
3199 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3200 if (UNTAG_Bool(variable[3])) { /*if*/
3201 variable[3] = variable[0];
3202 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3203 }
3204 return_label125: while(false);
3205 tracehead = trace.prev;
3206 return;
3207 }
3208 void parser_prod___AInterfaceClasskind___replace_child(val_t self, val_t param0, val_t param1) {
3209 struct trace_t trace = {NULL, NULL, 1220, LOCATE_parser_prod___AInterfaceClasskind___replace_child};
3210 val_t variable[5];
3211 void **closurevariable = NULL;
3212 trace.prev = tracehead; tracehead = &trace;
3213 trace.file = LOCATE_parser_prod;
3214 variable[0] = self;
3215 variable[1] = param0;
3216 variable[2] = param1;
3217 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::==*/)))))));
3218 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, 1222); nit_exit(1);}
3219 variable[4] = variable[0];
3220 variable[4] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[4]) /*AInterfaceClasskind::_n_kwinterface*/;
3221 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3222 if (UNTAG_Bool(variable[4])) { /*if*/
3223 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3224 if (UNTAG_Bool(variable[4])) { /*if*/
3225 variable[4] = variable[0];
3226 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3227 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
3228 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, 1226); nit_exit(1);}
3229 variable[4] = variable[0];
3230 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[4]) /*AInterfaceClasskind::_n_kwinterface*/ = variable[2] /*new_child*/;
3231 } else { /*if*/
3232 variable[4] = variable[0];
3233 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[4]) /*AInterfaceClasskind::_n_kwinterface*/ = NIT_NULL /*null*/;
3234 }
3235 goto return_label126;
3236 }
3237 return_label126: while(false);
3238 tracehead = trace.prev;
3239 return;
3240 }
3241 void parser_prod___AInterfaceClasskind___visit_all(val_t self, val_t param0) {
3242 struct trace_t trace = {NULL, NULL, 1235, LOCATE_parser_prod___AInterfaceClasskind___visit_all};
3243 val_t variable[4];
3244 void **closurevariable = NULL;
3245 trace.prev = tracehead; tracehead = &trace;
3246 trace.file = LOCATE_parser_prod;
3247 variable[0] = self;
3248 variable[1] = param0;
3249 variable[3] = variable[0];
3250 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
3251 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3252 if (UNTAG_Bool(variable[3])) { /*if*/
3253 variable[3] = variable[0];
3254 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
3255 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3256 }
3257 return_label127: while(false);
3258 tracehead = trace.prev;
3259 return;
3260 }
3261 void parser_prod___AInterfaceClasskind___visit_all_reverse(val_t self, val_t param0) {
3262 struct trace_t trace = {NULL, NULL, 1242, LOCATE_parser_prod___AInterfaceClasskind___visit_all_reverse};
3263 val_t variable[4];
3264 void **closurevariable = NULL;
3265 trace.prev = tracehead; tracehead = &trace;
3266 trace.file = LOCATE_parser_prod;
3267 variable[0] = self;
3268 variable[1] = param0;
3269 variable[3] = variable[0];
3270 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
3271 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3272 if (UNTAG_Bool(variable[3])) { /*if*/
3273 variable[3] = variable[0];
3274 variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
3275 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3276 }
3277 return_label128: while(false);
3278 tracehead = trace.prev;
3279 return;
3280 }
3281 void parser_prod___AInterfaceClasskind___empty_init(val_t self, int* init_table) {
3282 struct trace_t trace = {NULL, NULL, 1207, LOCATE_parser_prod___AInterfaceClasskind___empty_init};
3283 val_t variable[2];
3284 void **closurevariable = NULL;
3285 trace.prev = tracehead; tracehead = &trace;
3286 trace.file = LOCATE_parser_prod;
3287 variable[0] = self;
3288 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
3289 return_label129: while(false);
3290 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
3291 tracehead = trace.prev;
3292 return;
3293 }
3294 void parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t self, val_t param0, int* init_table) {
3295 struct trace_t trace = {NULL, NULL, 1209, LOCATE_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind};
3296 val_t variable[4];
3297 void **closurevariable = NULL;
3298 trace.prev = tracehead; tracehead = &trace;
3299 trace.file = LOCATE_parser_prod;
3300 variable[0] = self;
3301 variable[1] = param0;
3302 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
3303 variable[3] = variable[0];
3304 CALL_parser_prod___AInterfaceClasskind___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AInterfaceClasskind::empty_init*/;
3305 variable[3] = variable[0];
3306 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/ = variable[1] /*n_kwinterface*/;
3307 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::==*/)))))));
3308 if (UNTAG_Bool(variable[3])) { /*if*/
3309 variable[3] = variable[0];
3310 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwinterface*/)( variable[1] /*n_kwinterface*/, variable[3]) /*PNode::parent=*/;
3311 }
3312 return_label130: while(false);
3313 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
3314 tracehead = trace.prev;
3315 return;
3316 }
3317 void parser_prod___AUniversalClasskind___n_kwuniversal__eq(val_t self, val_t param0) {
3318 struct trace_t trace = {NULL, NULL, 1250, LOCATE_parser_prod___AUniversalClasskind___n_kwuniversal__eq};
3319 val_t variable[4];
3320 void **closurevariable = NULL;
3321 trace.prev = tracehead; tracehead = &trace;
3322 trace.file = LOCATE_parser_prod;
3323 variable[0] = self;
3324 variable[1] = param0;
3325 variable[3] = variable[0];
3326 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/ = variable[1] /*n*/;
3327 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3328 if (UNTAG_Bool(variable[3])) { /*if*/
3329 variable[3] = variable[0];
3330 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3331 }
3332 return_label131: while(false);
3333 tracehead = trace.prev;
3334 return;
3335 }
3336 void parser_prod___AUniversalClasskind___replace_child(val_t self, val_t param0, val_t param1) {
3337 struct trace_t trace = {NULL, NULL, 1271, LOCATE_parser_prod___AUniversalClasskind___replace_child};
3338 val_t variable[5];
3339 void **closurevariable = NULL;
3340 trace.prev = tracehead; tracehead = &trace;
3341 trace.file = LOCATE_parser_prod;
3342 variable[0] = self;
3343 variable[1] = param0;
3344 variable[2] = param1;
3345 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::==*/)))))));
3346 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, 1273); nit_exit(1);}
3347 variable[4] = variable[0];
3348 variable[4] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[4]) /*AUniversalClasskind::_n_kwuniversal*/;
3349 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3350 if (UNTAG_Bool(variable[4])) { /*if*/
3351 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3352 if (UNTAG_Bool(variable[4])) { /*if*/
3353 variable[4] = variable[0];
3354 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3355 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwuniversal, ID_TKwuniversal)) /*cast TKwuniversal*/;
3356 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, 1277); nit_exit(1);}
3357 variable[4] = variable[0];
3358 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[4]) /*AUniversalClasskind::_n_kwuniversal*/ = variable[2] /*new_child*/;
3359 } else { /*if*/
3360 variable[4] = variable[0];
3361 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[4]) /*AUniversalClasskind::_n_kwuniversal*/ = NIT_NULL /*null*/;
3362 }
3363 goto return_label132;
3364 }
3365 return_label132: while(false);
3366 tracehead = trace.prev;
3367 return;
3368 }
3369 void parser_prod___AUniversalClasskind___visit_all(val_t self, val_t param0) {
3370 struct trace_t trace = {NULL, NULL, 1286, LOCATE_parser_prod___AUniversalClasskind___visit_all};
3371 val_t variable[4];
3372 void **closurevariable = NULL;
3373 trace.prev = tracehead; tracehead = &trace;
3374 trace.file = LOCATE_parser_prod;
3375 variable[0] = self;
3376 variable[1] = param0;
3377 variable[3] = variable[0];
3378 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
3379 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3380 if (UNTAG_Bool(variable[3])) { /*if*/
3381 variable[3] = variable[0];
3382 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
3383 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3384 }
3385 return_label133: while(false);
3386 tracehead = trace.prev;
3387 return;
3388 }
3389 void parser_prod___AUniversalClasskind___visit_all_reverse(val_t self, val_t param0) {
3390 struct trace_t trace = {NULL, NULL, 1293, LOCATE_parser_prod___AUniversalClasskind___visit_all_reverse};
3391 val_t variable[4];
3392 void **closurevariable = NULL;
3393 trace.prev = tracehead; tracehead = &trace;
3394 trace.file = LOCATE_parser_prod;
3395 variable[0] = self;
3396 variable[1] = param0;
3397 variable[3] = variable[0];
3398 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
3399 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3400 if (UNTAG_Bool(variable[3])) { /*if*/
3401 variable[3] = variable[0];
3402 variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
3403 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3404 }
3405 return_label134: while(false);
3406 tracehead = trace.prev;
3407 return;
3408 }
3409 void parser_prod___AUniversalClasskind___empty_init(val_t self, int* init_table) {
3410 struct trace_t trace = {NULL, NULL, 1258, LOCATE_parser_prod___AUniversalClasskind___empty_init};
3411 val_t variable[2];
3412 void **closurevariable = NULL;
3413 trace.prev = tracehead; tracehead = &trace;
3414 trace.file = LOCATE_parser_prod;
3415 variable[0] = self;
3416 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
3417 return_label135: while(false);
3418 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
3419 tracehead = trace.prev;
3420 return;
3421 }
3422 void parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t self, val_t param0, int* init_table) {
3423 struct trace_t trace = {NULL, NULL, 1260, LOCATE_parser_prod___AUniversalClasskind___init_auniversalclasskind};
3424 val_t variable[4];
3425 void **closurevariable = NULL;
3426 trace.prev = tracehead; tracehead = &trace;
3427 trace.file = LOCATE_parser_prod;
3428 variable[0] = self;
3429 variable[1] = param0;
3430 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
3431 variable[3] = variable[0];
3432 CALL_parser_prod___AUniversalClasskind___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AUniversalClasskind::empty_init*/;
3433 variable[3] = variable[0];
3434 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/ = variable[1] /*n_kwuniversal*/;
3435 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::==*/)))))));
3436 if (UNTAG_Bool(variable[3])) { /*if*/
3437 variable[3] = variable[0];
3438 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwuniversal*/)( variable[1] /*n_kwuniversal*/, variable[3]) /*PNode::parent=*/;
3439 }
3440 return_label136: while(false);
3441 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
3442 tracehead = trace.prev;
3443 return;
3444 }
3445 void parser_prod___AFormaldef___n_id__eq(val_t self, val_t param0) {
3446 struct trace_t trace = {NULL, NULL, 1301, LOCATE_parser_prod___AFormaldef___n_id__eq};
3447 val_t variable[4];
3448 void **closurevariable = NULL;
3449 trace.prev = tracehead; tracehead = &trace;
3450 trace.file = LOCATE_parser_prod;
3451 variable[0] = self;
3452 variable[1] = param0;
3453 variable[3] = variable[0];
3454 ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/ = variable[1] /*n*/;
3455 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3456 if (UNTAG_Bool(variable[3])) { /*if*/
3457 variable[3] = variable[0];
3458 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3459 }
3460 return_label137: while(false);
3461 tracehead = trace.prev;
3462 return;
3463 }
3464 void parser_prod___AFormaldef___n_type__eq(val_t self, val_t param0) {
3465 struct trace_t trace = {NULL, NULL, 1308, LOCATE_parser_prod___AFormaldef___n_type__eq};
3466 val_t variable[4];
3467 void **closurevariable = NULL;
3468 trace.prev = tracehead; tracehead = &trace;
3469 trace.file = LOCATE_parser_prod;
3470 variable[0] = self;
3471 variable[1] = param0;
3472 variable[3] = variable[0];
3473 ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/ = variable[1] /*n*/;
3474 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3475 if (UNTAG_Bool(variable[3])) { /*if*/
3476 variable[3] = variable[0];
3477 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3478 }
3479 return_label138: while(false);
3480 tracehead = trace.prev;
3481 return;
3482 }
3483 void parser_prod___AFormaldef___replace_child(val_t self, val_t param0, val_t param1) {
3484 struct trace_t trace = {NULL, NULL, 1334, LOCATE_parser_prod___AFormaldef___replace_child};
3485 val_t variable[5];
3486 void **closurevariable = NULL;
3487 trace.prev = tracehead; tracehead = &trace;
3488 trace.file = LOCATE_parser_prod;
3489 variable[0] = self;
3490 variable[1] = param0;
3491 variable[2] = param1;
3492 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::==*/)))))));
3493 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, 1336); nit_exit(1);}
3494 variable[4] = variable[0];
3495 variable[4] = ATTR_parser_nodes___AFormaldef____n_id(variable[4]) /*AFormaldef::_n_id*/;
3496 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3497 if (UNTAG_Bool(variable[4])) { /*if*/
3498 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3499 if (UNTAG_Bool(variable[4])) { /*if*/
3500 variable[4] = variable[0];
3501 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3502 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
3503 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, 1340); nit_exit(1);}
3504 variable[4] = variable[0];
3505 ATTR_parser_nodes___AFormaldef____n_id(variable[4]) /*AFormaldef::_n_id*/ = variable[2] /*new_child*/;
3506 } else { /*if*/
3507 variable[4] = variable[0];
3508 ATTR_parser_nodes___AFormaldef____n_id(variable[4]) /*AFormaldef::_n_id*/ = NIT_NULL /*null*/;
3509 }
3510 goto return_label139;
3511 }
3512 variable[4] = variable[0];
3513 variable[4] = ATTR_parser_nodes___AFormaldef____n_type(variable[4]) /*AFormaldef::_n_type*/;
3514 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3515 if (UNTAG_Bool(variable[4])) { /*if*/
3516 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3517 if (UNTAG_Bool(variable[4])) { /*if*/
3518 variable[4] = variable[0];
3519 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3520 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
3521 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, 1350); nit_exit(1);}
3522 variable[4] = variable[0];
3523 ATTR_parser_nodes___AFormaldef____n_type(variable[4]) /*AFormaldef::_n_type*/ = variable[2] /*new_child*/;
3524 } else { /*if*/
3525 variable[4] = variable[0];
3526 ATTR_parser_nodes___AFormaldef____n_type(variable[4]) /*AFormaldef::_n_type*/ = NIT_NULL /*null*/;
3527 }
3528 goto return_label139;
3529 }
3530 return_label139: while(false);
3531 tracehead = trace.prev;
3532 return;
3533 }
3534 void parser_prod___AFormaldef___visit_all(val_t self, val_t param0) {
3535 struct trace_t trace = {NULL, NULL, 1359, LOCATE_parser_prod___AFormaldef___visit_all};
3536 val_t variable[4];
3537 void **closurevariable = NULL;
3538 trace.prev = tracehead; tracehead = &trace;
3539 trace.file = LOCATE_parser_prod;
3540 variable[0] = self;
3541 variable[1] = param0;
3542 variable[3] = variable[0];
3543 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
3544 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3545 if (UNTAG_Bool(variable[3])) { /*if*/
3546 variable[3] = variable[0];
3547 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
3548 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3549 }
3550 variable[3] = variable[0];
3551 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
3552 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3553 if (UNTAG_Bool(variable[3])) { /*if*/
3554 variable[3] = variable[0];
3555 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
3556 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3557 }
3558 return_label140: while(false);
3559 tracehead = trace.prev;
3560 return;
3561 }
3562 void parser_prod___AFormaldef___visit_all_reverse(val_t self, val_t param0) {
3563 struct trace_t trace = {NULL, NULL, 1369, LOCATE_parser_prod___AFormaldef___visit_all_reverse};
3564 val_t variable[4];
3565 void **closurevariable = NULL;
3566 trace.prev = tracehead; tracehead = &trace;
3567 trace.file = LOCATE_parser_prod;
3568 variable[0] = self;
3569 variable[1] = param0;
3570 variable[3] = variable[0];
3571 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
3572 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3573 if (UNTAG_Bool(variable[3])) { /*if*/
3574 variable[3] = variable[0];
3575 variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
3576 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3577 }
3578 variable[3] = variable[0];
3579 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
3580 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3581 if (UNTAG_Bool(variable[3])) { /*if*/
3582 variable[3] = variable[0];
3583 variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
3584 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3585 }
3586 return_label141: while(false);
3587 tracehead = trace.prev;
3588 return;
3589 }
3590 void parser_prod___AFormaldef___empty_init(val_t self, int* init_table) {
3591 struct trace_t trace = {NULL, NULL, 1316, LOCATE_parser_prod___AFormaldef___empty_init};
3592 val_t variable[2];
3593 void **closurevariable = NULL;
3594 trace.prev = tracehead; tracehead = &trace;
3595 trace.file = LOCATE_parser_prod;
3596 variable[0] = self;
3597 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i]) return;
3598 return_label142: while(false);
3599 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
3600 tracehead = trace.prev;
3601 return;
3602 }
3603 void parser_prod___AFormaldef___init_aformaldef(val_t self, val_t param0, val_t param1, int* init_table) {
3604 struct trace_t trace = {NULL, NULL, 1318, LOCATE_parser_prod___AFormaldef___init_aformaldef};
3605 val_t variable[5];
3606 void **closurevariable = NULL;
3607 trace.prev = tracehead; tracehead = &trace;
3608 trace.file = LOCATE_parser_prod;
3609 variable[0] = self;
3610 variable[1] = param0;
3611 variable[2] = param1;
3612 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i]) return;
3613 variable[4] = variable[0];
3614 CALL_parser_prod___AFormaldef___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AFormaldef::empty_init*/;
3615 variable[4] = variable[0];
3616 ATTR_parser_nodes___AFormaldef____n_id(variable[4]) /*AFormaldef::_n_id*/ = variable[1] /*n_id*/;
3617 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::==*/)))))));
3618 if (UNTAG_Bool(variable[4])) { /*if*/
3619 variable[4] = variable[0];
3620 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
3621 }
3622 variable[4] = variable[0];
3623 ATTR_parser_nodes___AFormaldef____n_type(variable[4]) /*AFormaldef::_n_type*/ = variable[2] /*n_type*/;
3624 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::==*/)))))));
3625 if (UNTAG_Bool(variable[4])) { /*if*/
3626 variable[4] = variable[0];
3627 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
3628 }
3629 return_label143: while(false);
3630 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
3631 tracehead = trace.prev;
3632 return;
3633 }
3634 void parser_prod___ASuperclass___n_kwspecial__eq(val_t self, val_t param0) {
3635 struct trace_t trace = {NULL, NULL, 1380, LOCATE_parser_prod___ASuperclass___n_kwspecial__eq};
3636 val_t variable[4];
3637 void **closurevariable = NULL;
3638 trace.prev = tracehead; tracehead = &trace;
3639 trace.file = LOCATE_parser_prod;
3640 variable[0] = self;
3641 variable[1] = param0;
3642 variable[3] = variable[0];
3643 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/ = variable[1] /*n*/;
3644 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3645 if (UNTAG_Bool(variable[3])) { /*if*/
3646 variable[3] = variable[0];
3647 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3648 }
3649 return_label144: while(false);
3650 tracehead = trace.prev;
3651 return;
3652 }
3653 void parser_prod___ASuperclass___n_type__eq(val_t self, val_t param0) {
3654 struct trace_t trace = {NULL, NULL, 1387, LOCATE_parser_prod___ASuperclass___n_type__eq};
3655 val_t variable[4];
3656 void **closurevariable = NULL;
3657 trace.prev = tracehead; tracehead = &trace;
3658 trace.file = LOCATE_parser_prod;
3659 variable[0] = self;
3660 variable[1] = param0;
3661 variable[3] = variable[0];
3662 ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/ = variable[1] /*n*/;
3663 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3664 if (UNTAG_Bool(variable[3])) { /*if*/
3665 variable[3] = variable[0];
3666 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3667 }
3668 return_label145: while(false);
3669 tracehead = trace.prev;
3670 return;
3671 }
3672 void parser_prod___ASuperclass___replace_child(val_t self, val_t param0, val_t param1) {
3673 struct trace_t trace = {NULL, NULL, 1413, LOCATE_parser_prod___ASuperclass___replace_child};
3674 val_t variable[5];
3675 void **closurevariable = NULL;
3676 trace.prev = tracehead; tracehead = &trace;
3677 trace.file = LOCATE_parser_prod;
3678 variable[0] = self;
3679 variable[1] = param0;
3680 variable[2] = param1;
3681 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::==*/)))))));
3682 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, 1415); nit_exit(1);}
3683 variable[4] = variable[0];
3684 variable[4] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[4]) /*ASuperclass::_n_kwspecial*/;
3685 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3686 if (UNTAG_Bool(variable[4])) { /*if*/
3687 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3688 if (UNTAG_Bool(variable[4])) { /*if*/
3689 variable[4] = variable[0];
3690 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3691 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
3692 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, 1419); nit_exit(1);}
3693 variable[4] = variable[0];
3694 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[4]) /*ASuperclass::_n_kwspecial*/ = variable[2] /*new_child*/;
3695 } else { /*if*/
3696 variable[4] = variable[0];
3697 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[4]) /*ASuperclass::_n_kwspecial*/ = NIT_NULL /*null*/;
3698 }
3699 goto return_label146;
3700 }
3701 variable[4] = variable[0];
3702 variable[4] = ATTR_parser_nodes___ASuperclass____n_type(variable[4]) /*ASuperclass::_n_type*/;
3703 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
3704 if (UNTAG_Bool(variable[4])) { /*if*/
3705 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3706 if (UNTAG_Bool(variable[4])) { /*if*/
3707 variable[4] = variable[0];
3708 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
3709 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
3710 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, 1429); nit_exit(1);}
3711 variable[4] = variable[0];
3712 ATTR_parser_nodes___ASuperclass____n_type(variable[4]) /*ASuperclass::_n_type*/ = variable[2] /*new_child*/;
3713 } else { /*if*/
3714 variable[4] = variable[0];
3715 ATTR_parser_nodes___ASuperclass____n_type(variable[4]) /*ASuperclass::_n_type*/ = NIT_NULL /*null*/;
3716 }
3717 goto return_label146;
3718 }
3719 return_label146: while(false);
3720 tracehead = trace.prev;
3721 return;
3722 }
3723 void parser_prod___ASuperclass___visit_all(val_t self, val_t param0) {
3724 struct trace_t trace = {NULL, NULL, 1438, LOCATE_parser_prod___ASuperclass___visit_all};
3725 val_t variable[4];
3726 void **closurevariable = NULL;
3727 trace.prev = tracehead; tracehead = &trace;
3728 trace.file = LOCATE_parser_prod;
3729 variable[0] = self;
3730 variable[1] = param0;
3731 variable[3] = variable[0];
3732 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
3733 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3734 if (UNTAG_Bool(variable[3])) { /*if*/
3735 variable[3] = variable[0];
3736 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
3737 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3738 }
3739 variable[3] = variable[0];
3740 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
3741 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3742 if (UNTAG_Bool(variable[3])) { /*if*/
3743 variable[3] = variable[0];
3744 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
3745 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3746 }
3747 return_label147: while(false);
3748 tracehead = trace.prev;
3749 return;
3750 }
3751 void parser_prod___ASuperclass___visit_all_reverse(val_t self, val_t param0) {
3752 struct trace_t trace = {NULL, NULL, 1448, LOCATE_parser_prod___ASuperclass___visit_all_reverse};
3753 val_t variable[4];
3754 void **closurevariable = NULL;
3755 trace.prev = tracehead; tracehead = &trace;
3756 trace.file = LOCATE_parser_prod;
3757 variable[0] = self;
3758 variable[1] = param0;
3759 variable[3] = variable[0];
3760 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
3761 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3762 if (UNTAG_Bool(variable[3])) { /*if*/
3763 variable[3] = variable[0];
3764 variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
3765 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3766 }
3767 variable[3] = variable[0];
3768 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
3769 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
3770 if (UNTAG_Bool(variable[3])) { /*if*/
3771 variable[3] = variable[0];
3772 variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
3773 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
3774 }
3775 return_label148: while(false);
3776 tracehead = trace.prev;
3777 return;
3778 }
3779 void parser_prod___ASuperclass___empty_init(val_t self, int* init_table) {
3780 struct trace_t trace = {NULL, NULL, 1395, LOCATE_parser_prod___ASuperclass___empty_init};
3781 val_t variable[2];
3782 void **closurevariable = NULL;
3783 trace.prev = tracehead; tracehead = &trace;
3784 trace.file = LOCATE_parser_prod;
3785 variable[0] = self;
3786 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i]) return;
3787 return_label149: while(false);
3788 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
3789 tracehead = trace.prev;
3790 return;
3791 }
3792 void parser_prod___ASuperclass___init_asuperclass(val_t self, val_t param0, val_t param1, int* init_table) {
3793 struct trace_t trace = {NULL, NULL, 1397, LOCATE_parser_prod___ASuperclass___init_asuperclass};
3794 val_t variable[5];
3795 void **closurevariable = NULL;
3796 trace.prev = tracehead; tracehead = &trace;
3797 trace.file = LOCATE_parser_prod;
3798 variable[0] = self;
3799 variable[1] = param0;
3800 variable[2] = param1;
3801 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i]) return;
3802 variable[4] = variable[0];
3803 CALL_parser_prod___ASuperclass___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ASuperclass::empty_init*/;
3804 variable[4] = variable[0];
3805 ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[4]) /*ASuperclass::_n_kwspecial*/ = variable[1] /*n_kwspecial*/;
3806 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::==*/)))))));
3807 if (UNTAG_Bool(variable[4])) { /*if*/
3808 variable[4] = variable[0];
3809 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwspecial*/)( variable[1] /*n_kwspecial*/, variable[4]) /*PNode::parent=*/;
3810 }
3811 variable[4] = variable[0];
3812 ATTR_parser_nodes___ASuperclass____n_type(variable[4]) /*ASuperclass::_n_type*/ = variable[2] /*n_type*/;
3813 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::==*/)))))));
3814 if (UNTAG_Bool(variable[4])) { /*if*/
3815 variable[4] = variable[0];
3816 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
3817 }
3818 return_label150: while(false);
3819 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
3820 tracehead = trace.prev;
3821 return;
3822 }
3823 void parser_prod___AAttrPropdef___n_doc__eq(val_t self, val_t param0) {
3824 struct trace_t trace = {NULL, NULL, 1459, LOCATE_parser_prod___AAttrPropdef___n_doc__eq};
3825 val_t variable[4];
3826 void **closurevariable = NULL;
3827 trace.prev = tracehead; tracehead = &trace;
3828 trace.file = LOCATE_parser_prod;
3829 variable[0] = self;
3830 variable[1] = param0;
3831 variable[3] = variable[0];
3832 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
3833 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3834 if (UNTAG_Bool(variable[3])) { /*if*/
3835 variable[3] = variable[0];
3836 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3837 }
3838 return_label151: while(false);
3839 tracehead = trace.prev;
3840 return;
3841 }
3842 void parser_prod___AAttrPropdef___n_kwredef__eq(val_t self, val_t param0) {
3843 struct trace_t trace = {NULL, NULL, 1480, LOCATE_parser_prod___AAttrPropdef___n_kwredef__eq};
3844 val_t variable[4];
3845 void **closurevariable = NULL;
3846 trace.prev = tracehead; tracehead = &trace;
3847 trace.file = LOCATE_parser_prod;
3848 variable[0] = self;
3849 variable[1] = param0;
3850 variable[3] = variable[0];
3851 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/ = variable[1] /*n*/;
3852 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3853 if (UNTAG_Bool(variable[3])) { /*if*/
3854 variable[3] = variable[0];
3855 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3856 }
3857 return_label152: while(false);
3858 tracehead = trace.prev;
3859 return;
3860 }
3861 void parser_prod___AAttrPropdef___n_visibility__eq(val_t self, val_t param0) {
3862 struct trace_t trace = {NULL, NULL, 1487, LOCATE_parser_prod___AAttrPropdef___n_visibility__eq};
3863 val_t variable[4];
3864 void **closurevariable = NULL;
3865 trace.prev = tracehead; tracehead = &trace;
3866 trace.file = LOCATE_parser_prod;
3867 variable[0] = self;
3868 variable[1] = param0;
3869 variable[3] = variable[0];
3870 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/ = variable[1] /*n*/;
3871 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3872 if (UNTAG_Bool(variable[3])) { /*if*/
3873 variable[3] = variable[0];
3874 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3875 }
3876 return_label153: while(false);
3877 tracehead = trace.prev;
3878 return;
3879 }
3880 void parser_prod___AAttrPropdef___n_kwattr__eq(val_t self, val_t param0) {
3881 struct trace_t trace = {NULL, NULL, 1494, LOCATE_parser_prod___AAttrPropdef___n_kwattr__eq};
3882 val_t variable[4];
3883 void **closurevariable = NULL;
3884 trace.prev = tracehead; tracehead = &trace;
3885 trace.file = LOCATE_parser_prod;
3886 variable[0] = self;
3887 variable[1] = param0;
3888 variable[3] = variable[0];
3889 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/ = variable[1] /*n*/;
3890 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3891 if (UNTAG_Bool(variable[3])) { /*if*/
3892 variable[3] = variable[0];
3893 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3894 }
3895 return_label154: while(false);
3896 tracehead = trace.prev;
3897 return;
3898 }
3899 void parser_prod___AAttrPropdef___n_id__eq(val_t self, val_t param0) {
3900 struct trace_t trace = {NULL, NULL, 1501, LOCATE_parser_prod___AAttrPropdef___n_id__eq};
3901 val_t variable[4];
3902 void **closurevariable = NULL;
3903 trace.prev = tracehead; tracehead = &trace;
3904 trace.file = LOCATE_parser_prod;
3905 variable[0] = self;
3906 variable[1] = param0;
3907 variable[3] = variable[0];
3908 ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/ = variable[1] /*n*/;
3909 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3910 if (UNTAG_Bool(variable[3])) { /*if*/
3911 variable[3] = variable[0];
3912 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3913 }
3914 return_label155: while(false);
3915 tracehead = trace.prev;
3916 return;
3917 }
3918 void parser_prod___AAttrPropdef___n_type__eq(val_t self, val_t param0) {
3919 struct trace_t trace = {NULL, NULL, 1508, LOCATE_parser_prod___AAttrPropdef___n_type__eq};
3920 val_t variable[4];
3921 void **closurevariable = NULL;
3922 trace.prev = tracehead; tracehead = &trace;
3923 trace.file = LOCATE_parser_prod;
3924 variable[0] = self;
3925 variable[1] = param0;
3926 variable[3] = variable[0];
3927 ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/ = variable[1] /*n*/;
3928 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3929 if (UNTAG_Bool(variable[3])) { /*if*/
3930 variable[3] = variable[0];
3931 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3932 }
3933 return_label156: while(false);
3934 tracehead = trace.prev;
3935 return;
3936 }
3937 void parser_prod___AAttrPropdef___n_readable__eq(val_t self, val_t param0) {
3938 struct trace_t trace = {NULL, NULL, 1466, LOCATE_parser_prod___AAttrPropdef___n_readable__eq};
3939 val_t variable[4];
3940 void **closurevariable = NULL;
3941 trace.prev = tracehead; tracehead = &trace;
3942 trace.file = LOCATE_parser_prod;
3943 variable[0] = self;
3944 variable[1] = param0;
3945 variable[3] = variable[0];
3946 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/ = variable[1] /*n*/;
3947 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3948 if (UNTAG_Bool(variable[3])) { /*if*/
3949 variable[3] = variable[0];
3950 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3951 }
3952 return_label157: while(false);
3953 tracehead = trace.prev;
3954 return;
3955 }
3956 void parser_prod___AAttrPropdef___n_writable__eq(val_t self, val_t param0) {
3957 struct trace_t trace = {NULL, NULL, 1473, LOCATE_parser_prod___AAttrPropdef___n_writable__eq};
3958 val_t variable[4];
3959 void **closurevariable = NULL;
3960 trace.prev = tracehead; tracehead = &trace;
3961 trace.file = LOCATE_parser_prod;
3962 variable[0] = self;
3963 variable[1] = param0;
3964 variable[3] = variable[0];
3965 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/ = variable[1] /*n*/;
3966 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3967 if (UNTAG_Bool(variable[3])) { /*if*/
3968 variable[3] = variable[0];
3969 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3970 }
3971 return_label158: while(false);
3972 tracehead = trace.prev;
3973 return;
3974 }
3975 void parser_prod___AAttrPropdef___n_expr__eq(val_t self, val_t param0) {
3976 struct trace_t trace = {NULL, NULL, 1515, LOCATE_parser_prod___AAttrPropdef___n_expr__eq};
3977 val_t variable[4];
3978 void **closurevariable = NULL;
3979 trace.prev = tracehead; tracehead = &trace;
3980 trace.file = LOCATE_parser_prod;
3981 variable[0] = self;
3982 variable[1] = param0;
3983 variable[3] = variable[0];
3984 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/ = variable[1] /*n*/;
3985 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3986 if (UNTAG_Bool(variable[3])) { /*if*/
3987 variable[3] = variable[0];
3988 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
3989 }
3990 return_label159: while(false);
3991 tracehead = trace.prev;
3992 return;
3993 }
3994 void parser_prod___AAttrPropdef___replace_child(val_t self, val_t param0, val_t param1) {
3995 struct trace_t trace = {NULL, NULL, 1576, LOCATE_parser_prod___AAttrPropdef___replace_child};
3996 val_t variable[5];
3997 void **closurevariable = NULL;
3998 trace.prev = tracehead; tracehead = &trace;
3999 trace.file = LOCATE_parser_prod;
4000 variable[0] = self;
4001 variable[1] = param0;
4002 variable[2] = param1;
4003 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::==*/)))))));
4004 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, 1578); nit_exit(1);}
4005 variable[4] = variable[0];
4006 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
4007 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4008 if (UNTAG_Bool(variable[4])) { /*if*/
4009 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4010 if (UNTAG_Bool(variable[4])) { /*if*/
4011 variable[4] = variable[0];
4012 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4013 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
4014 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, 1582); nit_exit(1);}
4015 variable[4] = variable[0];
4016 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
4017 } else { /*if*/
4018 variable[4] = variable[0];
4019 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
4020 }
4021 goto return_label160;
4022 }
4023 variable[4] = variable[0];
4024 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[4]) /*AAttrPropdef::_n_readable*/;
4025 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4026 if (UNTAG_Bool(variable[4])) { /*if*/
4027 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4028 if (UNTAG_Bool(variable[4])) { /*if*/
4029 variable[4] = variable[0];
4030 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4031 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
4032 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, 1592); nit_exit(1);}
4033 variable[4] = variable[0];
4034 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[4]) /*AAttrPropdef::_n_readable*/ = variable[2] /*new_child*/;
4035 } else { /*if*/
4036 variable[4] = variable[0];
4037 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[4]) /*AAttrPropdef::_n_readable*/ = NIT_NULL /*null*/;
4038 }
4039 goto return_label160;
4040 }
4041 variable[4] = variable[0];
4042 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[4]) /*AAttrPropdef::_n_writable*/;
4043 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4044 if (UNTAG_Bool(variable[4])) { /*if*/
4045 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4046 if (UNTAG_Bool(variable[4])) { /*if*/
4047 variable[4] = variable[0];
4048 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4049 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
4050 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, 1602); nit_exit(1);}
4051 variable[4] = variable[0];
4052 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[4]) /*AAttrPropdef::_n_writable*/ = variable[2] /*new_child*/;
4053 } else { /*if*/
4054 variable[4] = variable[0];
4055 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[4]) /*AAttrPropdef::_n_writable*/ = NIT_NULL /*null*/;
4056 }
4057 goto return_label160;
4058 }
4059 variable[4] = variable[0];
4060 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[4]) /*AAttrPropdef::_n_kwredef*/;
4061 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4062 if (UNTAG_Bool(variable[4])) { /*if*/
4063 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4064 if (UNTAG_Bool(variable[4])) { /*if*/
4065 variable[4] = variable[0];
4066 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4067 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
4068 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, 1612); nit_exit(1);}
4069 variable[4] = variable[0];
4070 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[4]) /*AAttrPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
4071 } else { /*if*/
4072 variable[4] = variable[0];
4073 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[4]) /*AAttrPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
4074 }
4075 goto return_label160;
4076 }
4077 variable[4] = variable[0];
4078 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[4]) /*AAttrPropdef::_n_visibility*/;
4079 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4080 if (UNTAG_Bool(variable[4])) { /*if*/
4081 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4082 if (UNTAG_Bool(variable[4])) { /*if*/
4083 variable[4] = variable[0];
4084 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4085 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
4086 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, 1622); nit_exit(1);}
4087 variable[4] = variable[0];
4088 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[4]) /*AAttrPropdef::_n_visibility*/ = variable[2] /*new_child*/;
4089 } else { /*if*/
4090 variable[4] = variable[0];
4091 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[4]) /*AAttrPropdef::_n_visibility*/ = NIT_NULL /*null*/;
4092 }
4093 goto return_label160;
4094 }
4095 variable[4] = variable[0];
4096 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[4]) /*AAttrPropdef::_n_kwattr*/;
4097 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4098 if (UNTAG_Bool(variable[4])) { /*if*/
4099 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4100 if (UNTAG_Bool(variable[4])) { /*if*/
4101 variable[4] = variable[0];
4102 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4103 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
4104 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, 1632); nit_exit(1);}
4105 variable[4] = variable[0];
4106 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[4]) /*AAttrPropdef::_n_kwattr*/ = variable[2] /*new_child*/;
4107 } else { /*if*/
4108 variable[4] = variable[0];
4109 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[4]) /*AAttrPropdef::_n_kwattr*/ = NIT_NULL /*null*/;
4110 }
4111 goto return_label160;
4112 }
4113 variable[4] = variable[0];
4114 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[4]) /*AAttrPropdef::_n_id*/;
4115 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4116 if (UNTAG_Bool(variable[4])) { /*if*/
4117 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4118 if (UNTAG_Bool(variable[4])) { /*if*/
4119 variable[4] = variable[0];
4120 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4121 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
4122 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, 1642); nit_exit(1);}
4123 variable[4] = variable[0];
4124 ATTR_parser_nodes___AAttrPropdef____n_id(variable[4]) /*AAttrPropdef::_n_id*/ = variable[2] /*new_child*/;
4125 } else { /*if*/
4126 variable[4] = variable[0];
4127 ATTR_parser_nodes___AAttrPropdef____n_id(variable[4]) /*AAttrPropdef::_n_id*/ = NIT_NULL /*null*/;
4128 }
4129 goto return_label160;
4130 }
4131 variable[4] = variable[0];
4132 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[4]) /*AAttrPropdef::_n_type*/;
4133 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4134 if (UNTAG_Bool(variable[4])) { /*if*/
4135 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4136 if (UNTAG_Bool(variable[4])) { /*if*/
4137 variable[4] = variable[0];
4138 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4139 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
4140 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, 1652); nit_exit(1);}
4141 variable[4] = variable[0];
4142 ATTR_parser_nodes___AAttrPropdef____n_type(variable[4]) /*AAttrPropdef::_n_type*/ = variable[2] /*new_child*/;
4143 } else { /*if*/
4144 variable[4] = variable[0];
4145 ATTR_parser_nodes___AAttrPropdef____n_type(variable[4]) /*AAttrPropdef::_n_type*/ = NIT_NULL /*null*/;
4146 }
4147 goto return_label160;
4148 }
4149 variable[4] = variable[0];
4150 variable[4] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[4]) /*AAttrPropdef::_n_expr*/;
4151 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4152 if (UNTAG_Bool(variable[4])) { /*if*/
4153 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4154 if (UNTAG_Bool(variable[4])) { /*if*/
4155 variable[4] = variable[0];
4156 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4157 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
4158 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, 1662); nit_exit(1);}
4159 variable[4] = variable[0];
4160 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[4]) /*AAttrPropdef::_n_expr*/ = variable[2] /*new_child*/;
4161 } else { /*if*/
4162 variable[4] = variable[0];
4163 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[4]) /*AAttrPropdef::_n_expr*/ = NIT_NULL /*null*/;
4164 }
4165 goto return_label160;
4166 }
4167 return_label160: while(false);
4168 tracehead = trace.prev;
4169 return;
4170 }
4171 void parser_prod___AAttrPropdef___visit_all(val_t self, val_t param0) {
4172 struct trace_t trace = {NULL, NULL, 1671, LOCATE_parser_prod___AAttrPropdef___visit_all};
4173 val_t variable[4];
4174 void **closurevariable = NULL;
4175 trace.prev = tracehead; tracehead = &trace;
4176 trace.file = LOCATE_parser_prod;
4177 variable[0] = self;
4178 variable[1] = param0;
4179 variable[3] = variable[0];
4180 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4181 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4182 if (UNTAG_Bool(variable[3])) { /*if*/
4183 variable[3] = variable[0];
4184 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4185 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4186 }
4187 variable[3] = variable[0];
4188 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
4189 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4190 if (UNTAG_Bool(variable[3])) { /*if*/
4191 variable[3] = variable[0];
4192 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
4193 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4194 }
4195 variable[3] = variable[0];
4196 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
4197 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4198 if (UNTAG_Bool(variable[3])) { /*if*/
4199 variable[3] = variable[0];
4200 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
4201 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4202 }
4203 variable[3] = variable[0];
4204 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
4205 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4206 if (UNTAG_Bool(variable[3])) { /*if*/
4207 variable[3] = variable[0];
4208 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
4209 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4210 }
4211 variable[3] = variable[0];
4212 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
4213 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4214 if (UNTAG_Bool(variable[3])) { /*if*/
4215 variable[3] = variable[0];
4216 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
4217 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4218 }
4219 variable[3] = variable[0];
4220 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
4221 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4222 if (UNTAG_Bool(variable[3])) { /*if*/
4223 variable[3] = variable[0];
4224 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
4225 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4226 }
4227 variable[3] = variable[0];
4228 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
4229 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4230 if (UNTAG_Bool(variable[3])) { /*if*/
4231 variable[3] = variable[0];
4232 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
4233 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4234 }
4235 variable[3] = variable[0];
4236 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
4237 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4238 if (UNTAG_Bool(variable[3])) { /*if*/
4239 variable[3] = variable[0];
4240 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
4241 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4242 }
4243 variable[3] = variable[0];
4244 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
4245 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4246 if (UNTAG_Bool(variable[3])) { /*if*/
4247 variable[3] = variable[0];
4248 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
4249 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4250 }
4251 return_label161: while(false);
4252 tracehead = trace.prev;
4253 return;
4254 }
4255 void parser_prod___AAttrPropdef___visit_all_reverse(val_t self, val_t param0) {
4256 struct trace_t trace = {NULL, NULL, 1702, LOCATE_parser_prod___AAttrPropdef___visit_all_reverse};
4257 val_t variable[4];
4258 void **closurevariable = NULL;
4259 trace.prev = tracehead; tracehead = &trace;
4260 trace.file = LOCATE_parser_prod;
4261 variable[0] = self;
4262 variable[1] = param0;
4263 variable[3] = variable[0];
4264 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4265 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4266 if (UNTAG_Bool(variable[3])) { /*if*/
4267 variable[3] = variable[0];
4268 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4269 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4270 }
4271 variable[3] = variable[0];
4272 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
4273 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4274 if (UNTAG_Bool(variable[3])) { /*if*/
4275 variable[3] = variable[0];
4276 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
4277 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4278 }
4279 variable[3] = variable[0];
4280 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
4281 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4282 if (UNTAG_Bool(variable[3])) { /*if*/
4283 variable[3] = variable[0];
4284 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
4285 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4286 }
4287 variable[3] = variable[0];
4288 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
4289 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4290 if (UNTAG_Bool(variable[3])) { /*if*/
4291 variable[3] = variable[0];
4292 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
4293 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4294 }
4295 variable[3] = variable[0];
4296 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
4297 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4298 if (UNTAG_Bool(variable[3])) { /*if*/
4299 variable[3] = variable[0];
4300 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
4301 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4302 }
4303 variable[3] = variable[0];
4304 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
4305 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4306 if (UNTAG_Bool(variable[3])) { /*if*/
4307 variable[3] = variable[0];
4308 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
4309 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4310 }
4311 variable[3] = variable[0];
4312 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
4313 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4314 if (UNTAG_Bool(variable[3])) { /*if*/
4315 variable[3] = variable[0];
4316 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
4317 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4318 }
4319 variable[3] = variable[0];
4320 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
4321 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4322 if (UNTAG_Bool(variable[3])) { /*if*/
4323 variable[3] = variable[0];
4324 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
4325 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4326 }
4327 variable[3] = variable[0];
4328 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
4329 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4330 if (UNTAG_Bool(variable[3])) { /*if*/
4331 variable[3] = variable[0];
4332 variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
4333 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4334 }
4335 return_label162: while(false);
4336 tracehead = trace.prev;
4337 return;
4338 }
4339 void parser_prod___AAttrPropdef___empty_init(val_t self, int* init_table) {
4340 struct trace_t trace = {NULL, NULL, 1523, LOCATE_parser_prod___AAttrPropdef___empty_init};
4341 val_t variable[2];
4342 void **closurevariable = NULL;
4343 trace.prev = tracehead; tracehead = &trace;
4344 trace.file = LOCATE_parser_prod;
4345 variable[0] = self;
4346 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
4347 return_label163: while(false);
4348 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
4349 tracehead = trace.prev;
4350 return;
4351 }
4352 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, int* init_table) {
4353 struct trace_t trace = {NULL, NULL, 1525, LOCATE_parser_prod___AAttrPropdef___init_aattrpropdef};
4354 val_t variable[12];
4355 void **closurevariable = NULL;
4356 trace.prev = tracehead; tracehead = &trace;
4357 trace.file = LOCATE_parser_prod;
4358 variable[0] = self;
4359 variable[1] = param0;
4360 variable[2] = param1;
4361 variable[3] = param2;
4362 variable[4] = param3;
4363 variable[5] = param4;
4364 variable[6] = param5;
4365 variable[7] = param6;
4366 variable[8] = param7;
4367 variable[9] = param8;
4368 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
4369 variable[11] = variable[0];
4370 CALL_parser_prod___AAttrPropdef___empty_init(variable[11])(variable[11], init_table /*YYY*/) /*AAttrPropdef::empty_init*/;
4371 variable[11] = variable[0];
4372 ATTR_parser_nodes___PPropdef____n_doc(variable[11]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
4373 variable[11] = 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::==*/)))))));
4374 if (UNTAG_Bool(variable[11])) { /*if*/
4375 variable[11] = variable[0];
4376 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[11]) /*PNode::parent=*/;
4377 }
4378 variable[11] = variable[0];
4379 ATTR_parser_nodes___AAttrPropdef____n_readable(variable[11]) /*AAttrPropdef::_n_readable*/ = variable[2] /*n_readable*/;
4380 variable[11] = 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::==*/)))))));
4381 if (UNTAG_Bool(variable[11])) { /*if*/
4382 variable[11] = variable[0];
4383 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_readable*/)( variable[2] /*n_readable*/, variable[11]) /*PNode::parent=*/;
4384 }
4385 variable[11] = variable[0];
4386 ATTR_parser_nodes___AAttrPropdef____n_writable(variable[11]) /*AAttrPropdef::_n_writable*/ = variable[3] /*n_writable*/;
4387 variable[11] = 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::==*/)))))));
4388 if (UNTAG_Bool(variable[11])) { /*if*/
4389 variable[11] = variable[0];
4390 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_writable*/)( variable[3] /*n_writable*/, variable[11]) /*PNode::parent=*/;
4391 }
4392 variable[11] = variable[0];
4393 ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[11]) /*AAttrPropdef::_n_kwredef*/ = variable[4] /*n_kwredef*/;
4394 variable[11] = 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::==*/)))))));
4395 if (UNTAG_Bool(variable[11])) { /*if*/
4396 variable[11] = variable[0];
4397 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwredef*/)( variable[4] /*n_kwredef*/, variable[11]) /*PNode::parent=*/;
4398 }
4399 variable[11] = variable[0];
4400 ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[11]) /*AAttrPropdef::_n_visibility*/ = variable[5] /*n_visibility*/;
4401 variable[11] = 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::==*/)))))));
4402 if (UNTAG_Bool(variable[11])) { /*if*/
4403 variable[11] = variable[0];
4404 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_visibility*/)( variable[5] /*n_visibility*/, variable[11]) /*PNode::parent=*/;
4405 }
4406 variable[11] = variable[0];
4407 ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[11]) /*AAttrPropdef::_n_kwattr*/ = variable[6] /*n_kwattr*/;
4408 variable[11] = 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::==*/)))))));
4409 if (UNTAG_Bool(variable[11])) { /*if*/
4410 variable[11] = variable[0];
4411 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_kwattr*/)( variable[6] /*n_kwattr*/, variable[11]) /*PNode::parent=*/;
4412 }
4413 variable[11] = variable[0];
4414 ATTR_parser_nodes___AAttrPropdef____n_id(variable[11]) /*AAttrPropdef::_n_id*/ = variable[7] /*n_id*/;
4415 variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_id*/ == NIT_NULL /*null*/) || (( variable[7] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_id*/)( variable[7] /*n_id*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4416 if (UNTAG_Bool(variable[11])) { /*if*/
4417 variable[11] = variable[0];
4418 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_id*/)( variable[7] /*n_id*/, variable[11]) /*PNode::parent=*/;
4419 }
4420 variable[11] = variable[0];
4421 ATTR_parser_nodes___AAttrPropdef____n_type(variable[11]) /*AAttrPropdef::_n_type*/ = variable[8] /*n_type*/;
4422 variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*n_type*/ == NIT_NULL /*null*/) || (( variable[8] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*n_type*/)( variable[8] /*n_type*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4423 if (UNTAG_Bool(variable[11])) { /*if*/
4424 variable[11] = variable[0];
4425 CALL_parser_prod___PNode___parent__eq( variable[8] /*n_type*/)( variable[8] /*n_type*/, variable[11]) /*PNode::parent=*/;
4426 }
4427 variable[11] = variable[0];
4428 ATTR_parser_nodes___AAttrPropdef____n_expr(variable[11]) /*AAttrPropdef::_n_expr*/ = variable[9] /*n_expr*/;
4429 variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*n_expr*/ == NIT_NULL /*null*/) || (( variable[9] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*n_expr*/)( variable[9] /*n_expr*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4430 if (UNTAG_Bool(variable[11])) { /*if*/
4431 variable[11] = variable[0];
4432 CALL_parser_prod___PNode___parent__eq( variable[9] /*n_expr*/)( variable[9] /*n_expr*/, variable[11]) /*PNode::parent=*/;
4433 }
4434 return_label164: while(false);
4435 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
4436 tracehead = trace.prev;
4437 return;
4438 }
4439 void parser_prod___AMethPropdef___n_doc__eq(val_t self, val_t param0) {
4440 struct trace_t trace = {NULL, NULL, 1734, LOCATE_parser_prod___AMethPropdef___n_doc__eq};
4441 val_t variable[4];
4442 void **closurevariable = NULL;
4443 trace.prev = tracehead; tracehead = &trace;
4444 trace.file = LOCATE_parser_prod;
4445 variable[0] = self;
4446 variable[1] = param0;
4447 variable[3] = variable[0];
4448 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
4449 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4450 if (UNTAG_Bool(variable[3])) { /*if*/
4451 variable[3] = variable[0];
4452 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4453 }
4454 return_label165: while(false);
4455 tracehead = trace.prev;
4456 return;
4457 }
4458 void parser_prod___AMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
4459 struct trace_t trace = {NULL, NULL, 1741, LOCATE_parser_prod___AMethPropdef___n_kwredef__eq};
4460 val_t variable[4];
4461 void **closurevariable = NULL;
4462 trace.prev = tracehead; tracehead = &trace;
4463 trace.file = LOCATE_parser_prod;
4464 variable[0] = self;
4465 variable[1] = param0;
4466 variable[3] = variable[0];
4467 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
4468 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4469 if (UNTAG_Bool(variable[3])) { /*if*/
4470 variable[3] = variable[0];
4471 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4472 }
4473 return_label166: while(false);
4474 tracehead = trace.prev;
4475 return;
4476 }
4477 void parser_prod___AMethPropdef___n_visibility__eq(val_t self, val_t param0) {
4478 struct trace_t trace = {NULL, NULL, 1748, LOCATE_parser_prod___AMethPropdef___n_visibility__eq};
4479 val_t variable[4];
4480 void **closurevariable = NULL;
4481 trace.prev = tracehead; tracehead = &trace;
4482 trace.file = LOCATE_parser_prod;
4483 variable[0] = self;
4484 variable[1] = param0;
4485 variable[3] = variable[0];
4486 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
4487 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4488 if (UNTAG_Bool(variable[3])) { /*if*/
4489 variable[3] = variable[0];
4490 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4491 }
4492 return_label167: while(false);
4493 tracehead = trace.prev;
4494 return;
4495 }
4496 void parser_prod___AMethPropdef___n_methid__eq(val_t self, val_t param0) {
4497 struct trace_t trace = {NULL, NULL, 1755, LOCATE_parser_prod___AMethPropdef___n_methid__eq};
4498 val_t variable[4];
4499 void **closurevariable = NULL;
4500 trace.prev = tracehead; tracehead = &trace;
4501 trace.file = LOCATE_parser_prod;
4502 variable[0] = self;
4503 variable[1] = param0;
4504 variable[3] = variable[0];
4505 ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
4506 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4507 if (UNTAG_Bool(variable[3])) { /*if*/
4508 variable[3] = variable[0];
4509 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4510 }
4511 return_label168: while(false);
4512 tracehead = trace.prev;
4513 return;
4514 }
4515 void parser_prod___AMethPropdef___n_signature__eq(val_t self, val_t param0) {
4516 struct trace_t trace = {NULL, NULL, 1762, LOCATE_parser_prod___AMethPropdef___n_signature__eq};
4517 val_t variable[4];
4518 void **closurevariable = NULL;
4519 trace.prev = tracehead; tracehead = &trace;
4520 trace.file = LOCATE_parser_prod;
4521 variable[0] = self;
4522 variable[1] = param0;
4523 variable[3] = variable[0];
4524 ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
4525 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4526 if (UNTAG_Bool(variable[3])) { /*if*/
4527 variable[3] = variable[0];
4528 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4529 }
4530 return_label169: while(false);
4531 tracehead = trace.prev;
4532 return;
4533 }
4534 void parser_prod___AMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
4535 struct trace_t trace = {NULL, NULL, 1803, LOCATE_parser_prod___AMethPropdef___replace_child};
4536 val_t variable[5];
4537 void **closurevariable = NULL;
4538 trace.prev = tracehead; tracehead = &trace;
4539 trace.file = LOCATE_parser_prod;
4540 variable[0] = self;
4541 variable[1] = param0;
4542 variable[2] = param1;
4543 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::==*/)))))));
4544 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, 1805); nit_exit(1);}
4545 variable[4] = variable[0];
4546 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
4547 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4548 if (UNTAG_Bool(variable[4])) { /*if*/
4549 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4550 if (UNTAG_Bool(variable[4])) { /*if*/
4551 variable[4] = variable[0];
4552 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4553 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
4554 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, 1809); nit_exit(1);}
4555 variable[4] = variable[0];
4556 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
4557 } else { /*if*/
4558 variable[4] = variable[0];
4559 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
4560 }
4561 goto return_label170;
4562 }
4563 variable[4] = variable[0];
4564 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
4565 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4566 if (UNTAG_Bool(variable[4])) { /*if*/
4567 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4568 if (UNTAG_Bool(variable[4])) { /*if*/
4569 variable[4] = variable[0];
4570 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4571 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
4572 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, 1819); nit_exit(1);}
4573 variable[4] = variable[0];
4574 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
4575 } else { /*if*/
4576 variable[4] = variable[0];
4577 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
4578 }
4579 goto return_label170;
4580 }
4581 variable[4] = variable[0];
4582 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
4583 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4584 if (UNTAG_Bool(variable[4])) { /*if*/
4585 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4586 if (UNTAG_Bool(variable[4])) { /*if*/
4587 variable[4] = variable[0];
4588 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4589 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
4590 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, 1829); nit_exit(1);}
4591 variable[4] = variable[0];
4592 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
4593 } else { /*if*/
4594 variable[4] = variable[0];
4595 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
4596 }
4597 goto return_label170;
4598 }
4599 variable[4] = variable[0];
4600 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
4601 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4602 if (UNTAG_Bool(variable[4])) { /*if*/
4603 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4604 if (UNTAG_Bool(variable[4])) { /*if*/
4605 variable[4] = variable[0];
4606 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4607 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
4608 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, 1839); nit_exit(1);}
4609 variable[4] = variable[0];
4610 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
4611 } else { /*if*/
4612 variable[4] = variable[0];
4613 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
4614 }
4615 goto return_label170;
4616 }
4617 variable[4] = variable[0];
4618 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
4619 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4620 if (UNTAG_Bool(variable[4])) { /*if*/
4621 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4622 if (UNTAG_Bool(variable[4])) { /*if*/
4623 variable[4] = variable[0];
4624 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4625 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
4626 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, 1849); nit_exit(1);}
4627 variable[4] = variable[0];
4628 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
4629 } else { /*if*/
4630 variable[4] = variable[0];
4631 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
4632 }
4633 goto return_label170;
4634 }
4635 return_label170: while(false);
4636 tracehead = trace.prev;
4637 return;
4638 }
4639 void parser_prod___AMethPropdef___visit_all(val_t self, val_t param0) {
4640 struct trace_t trace = {NULL, NULL, 1858, LOCATE_parser_prod___AMethPropdef___visit_all};
4641 val_t variable[4];
4642 void **closurevariable = NULL;
4643 trace.prev = tracehead; tracehead = &trace;
4644 trace.file = LOCATE_parser_prod;
4645 variable[0] = self;
4646 variable[1] = param0;
4647 variable[3] = variable[0];
4648 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4649 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4650 if (UNTAG_Bool(variable[3])) { /*if*/
4651 variable[3] = variable[0];
4652 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4653 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4654 }
4655 variable[3] = variable[0];
4656 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
4657 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4658 if (UNTAG_Bool(variable[3])) { /*if*/
4659 variable[3] = variable[0];
4660 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
4661 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4662 }
4663 variable[3] = variable[0];
4664 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
4665 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4666 if (UNTAG_Bool(variable[3])) { /*if*/
4667 variable[3] = variable[0];
4668 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
4669 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4670 }
4671 variable[3] = variable[0];
4672 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
4673 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4674 if (UNTAG_Bool(variable[3])) { /*if*/
4675 variable[3] = variable[0];
4676 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
4677 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4678 }
4679 variable[3] = variable[0];
4680 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
4681 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4682 if (UNTAG_Bool(variable[3])) { /*if*/
4683 variable[3] = variable[0];
4684 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
4685 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4686 }
4687 return_label171: while(false);
4688 tracehead = trace.prev;
4689 return;
4690 }
4691 void parser_prod___AMethPropdef___visit_all_reverse(val_t self, val_t param0) {
4692 struct trace_t trace = {NULL, NULL, 1877, LOCATE_parser_prod___AMethPropdef___visit_all_reverse};
4693 val_t variable[4];
4694 void **closurevariable = NULL;
4695 trace.prev = tracehead; tracehead = &trace;
4696 trace.file = LOCATE_parser_prod;
4697 variable[0] = self;
4698 variable[1] = param0;
4699 variable[3] = variable[0];
4700 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4701 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4702 if (UNTAG_Bool(variable[3])) { /*if*/
4703 variable[3] = variable[0];
4704 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
4705 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4706 }
4707 variable[3] = variable[0];
4708 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
4709 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4710 if (UNTAG_Bool(variable[3])) { /*if*/
4711 variable[3] = variable[0];
4712 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
4713 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4714 }
4715 variable[3] = variable[0];
4716 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
4717 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4718 if (UNTAG_Bool(variable[3])) { /*if*/
4719 variable[3] = variable[0];
4720 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
4721 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4722 }
4723 variable[3] = variable[0];
4724 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
4725 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4726 if (UNTAG_Bool(variable[3])) { /*if*/
4727 variable[3] = variable[0];
4728 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
4729 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4730 }
4731 variable[3] = variable[0];
4732 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
4733 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4734 if (UNTAG_Bool(variable[3])) { /*if*/
4735 variable[3] = variable[0];
4736 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
4737 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
4738 }
4739 return_label172: while(false);
4740 tracehead = trace.prev;
4741 return;
4742 }
4743 void parser_prod___AMethPropdef___empty_init(val_t self, int* init_table) {
4744 struct trace_t trace = {NULL, NULL, 1770, LOCATE_parser_prod___AMethPropdef___empty_init};
4745 val_t variable[2];
4746 void **closurevariable = NULL;
4747 trace.prev = tracehead; tracehead = &trace;
4748 trace.file = LOCATE_parser_prod;
4749 variable[0] = self;
4750 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
4751 return_label173: while(false);
4752 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
4753 tracehead = trace.prev;
4754 return;
4755 }
4756 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) {
4757 struct trace_t trace = {NULL, NULL, 1772, LOCATE_parser_prod___AMethPropdef___init_amethpropdef};
4758 val_t variable[8];
4759 void **closurevariable = NULL;
4760 trace.prev = tracehead; tracehead = &trace;
4761 trace.file = LOCATE_parser_prod;
4762 variable[0] = self;
4763 variable[1] = param0;
4764 variable[2] = param1;
4765 variable[3] = param2;
4766 variable[4] = param3;
4767 variable[5] = param4;
4768 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
4769 variable[7] = variable[0];
4770 CALL_parser_prod___AMethPropdef___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*AMethPropdef::empty_init*/;
4771 variable[7] = variable[0];
4772 ATTR_parser_nodes___PPropdef____n_doc(variable[7]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
4773 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::==*/)))))));
4774 if (UNTAG_Bool(variable[7])) { /*if*/
4775 variable[7] = variable[0];
4776 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[7]) /*PNode::parent=*/;
4777 }
4778 variable[7] = variable[0];
4779 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[7]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
4780 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::==*/)))))));
4781 if (UNTAG_Bool(variable[7])) { /*if*/
4782 variable[7] = variable[0];
4783 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[7]) /*PNode::parent=*/;
4784 }
4785 variable[7] = variable[0];
4786 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[7]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
4787 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::==*/)))))));
4788 if (UNTAG_Bool(variable[7])) { /*if*/
4789 variable[7] = variable[0];
4790 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[7]) /*PNode::parent=*/;
4791 }
4792 variable[7] = variable[0];
4793 ATTR_parser_nodes___AMethPropdef____n_methid(variable[7]) /*AMethPropdef::_n_methid*/ = variable[4] /*n_methid*/;
4794 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::==*/)))))));
4795 if (UNTAG_Bool(variable[7])) { /*if*/
4796 variable[7] = variable[0];
4797 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_methid*/)( variable[4] /*n_methid*/, variable[7]) /*PNode::parent=*/;
4798 }
4799 variable[7] = variable[0];
4800 ATTR_parser_nodes___AMethPropdef____n_signature(variable[7]) /*AMethPropdef::_n_signature*/ = variable[5] /*n_signature*/;
4801 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::==*/)))))));
4802 if (UNTAG_Bool(variable[7])) { /*if*/
4803 variable[7] = variable[0];
4804 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_signature*/)( variable[5] /*n_signature*/, variable[7]) /*PNode::parent=*/;
4805 }
4806 return_label174: while(false);
4807 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
4808 tracehead = trace.prev;
4809 return;
4810 }
4811 void parser_prod___ADeferredMethPropdef___n_doc__eq(val_t self, val_t param0) {
4812 struct trace_t trace = {NULL, NULL, 1897, LOCATE_parser_prod___ADeferredMethPropdef___n_doc__eq};
4813 val_t variable[4];
4814 void **closurevariable = NULL;
4815 trace.prev = tracehead; tracehead = &trace;
4816 trace.file = LOCATE_parser_prod;
4817 variable[0] = self;
4818 variable[1] = param0;
4819 variable[3] = variable[0];
4820 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
4821 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4822 if (UNTAG_Bool(variable[3])) { /*if*/
4823 variable[3] = variable[0];
4824 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4825 }
4826 return_label175: while(false);
4827 tracehead = trace.prev;
4828 return;
4829 }
4830 void parser_prod___ADeferredMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
4831 struct trace_t trace = {NULL, NULL, 1904, LOCATE_parser_prod___ADeferredMethPropdef___n_kwredef__eq};
4832 val_t variable[4];
4833 void **closurevariable = NULL;
4834 trace.prev = tracehead; tracehead = &trace;
4835 trace.file = LOCATE_parser_prod;
4836 variable[0] = self;
4837 variable[1] = param0;
4838 variable[3] = variable[0];
4839 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
4840 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4841 if (UNTAG_Bool(variable[3])) { /*if*/
4842 variable[3] = variable[0];
4843 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4844 }
4845 return_label176: while(false);
4846 tracehead = trace.prev;
4847 return;
4848 }
4849 void parser_prod___ADeferredMethPropdef___n_visibility__eq(val_t self, val_t param0) {
4850 struct trace_t trace = {NULL, NULL, 1911, LOCATE_parser_prod___ADeferredMethPropdef___n_visibility__eq};
4851 val_t variable[4];
4852 void **closurevariable = NULL;
4853 trace.prev = tracehead; tracehead = &trace;
4854 trace.file = LOCATE_parser_prod;
4855 variable[0] = self;
4856 variable[1] = param0;
4857 variable[3] = variable[0];
4858 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
4859 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4860 if (UNTAG_Bool(variable[3])) { /*if*/
4861 variable[3] = variable[0];
4862 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4863 }
4864 return_label177: while(false);
4865 tracehead = trace.prev;
4866 return;
4867 }
4868 void parser_prod___ADeferredMethPropdef___n_methid__eq(val_t self, val_t param0) {
4869 struct trace_t trace = {NULL, NULL, 1925, LOCATE_parser_prod___ADeferredMethPropdef___n_methid__eq};
4870 val_t variable[4];
4871 void **closurevariable = NULL;
4872 trace.prev = tracehead; tracehead = &trace;
4873 trace.file = LOCATE_parser_prod;
4874 variable[0] = self;
4875 variable[1] = param0;
4876 variable[3] = variable[0];
4877 ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
4878 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4879 if (UNTAG_Bool(variable[3])) { /*if*/
4880 variable[3] = variable[0];
4881 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4882 }
4883 return_label178: while(false);
4884 tracehead = trace.prev;
4885 return;
4886 }
4887 void parser_prod___ADeferredMethPropdef___n_signature__eq(val_t self, val_t param0) {
4888 struct trace_t trace = {NULL, NULL, 1932, LOCATE_parser_prod___ADeferredMethPropdef___n_signature__eq};
4889 val_t variable[4];
4890 void **closurevariable = NULL;
4891 trace.prev = tracehead; tracehead = &trace;
4892 trace.file = LOCATE_parser_prod;
4893 variable[0] = self;
4894 variable[1] = param0;
4895 variable[3] = variable[0];
4896 ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
4897 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4898 if (UNTAG_Bool(variable[3])) { /*if*/
4899 variable[3] = variable[0];
4900 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4901 }
4902 return_label179: while(false);
4903 tracehead = trace.prev;
4904 return;
4905 }
4906 void parser_prod___ADeferredMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
4907 struct trace_t trace = {NULL, NULL, 1918, LOCATE_parser_prod___ADeferredMethPropdef___n_kwmeth__eq};
4908 val_t variable[4];
4909 void **closurevariable = NULL;
4910 trace.prev = tracehead; tracehead = &trace;
4911 trace.file = LOCATE_parser_prod;
4912 variable[0] = self;
4913 variable[1] = param0;
4914 variable[3] = variable[0];
4915 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
4916 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4917 if (UNTAG_Bool(variable[3])) { /*if*/
4918 variable[3] = variable[0];
4919 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
4920 }
4921 return_label180: while(false);
4922 tracehead = trace.prev;
4923 return;
4924 }
4925 void parser_prod___ADeferredMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
4926 struct trace_t trace = {NULL, NULL, 1978, LOCATE_parser_prod___ADeferredMethPropdef___replace_child};
4927 val_t variable[5];
4928 void **closurevariable = NULL;
4929 trace.prev = tracehead; tracehead = &trace;
4930 trace.file = LOCATE_parser_prod;
4931 variable[0] = self;
4932 variable[1] = param0;
4933 variable[2] = param1;
4934 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::==*/)))))));
4935 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, 1980); nit_exit(1);}
4936 variable[4] = variable[0];
4937 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
4938 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4939 if (UNTAG_Bool(variable[4])) { /*if*/
4940 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4941 if (UNTAG_Bool(variable[4])) { /*if*/
4942 variable[4] = variable[0];
4943 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4944 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
4945 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, 1984); nit_exit(1);}
4946 variable[4] = variable[0];
4947 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
4948 } else { /*if*/
4949 variable[4] = variable[0];
4950 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
4951 }
4952 goto return_label181;
4953 }
4954 variable[4] = variable[0];
4955 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
4956 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4957 if (UNTAG_Bool(variable[4])) { /*if*/
4958 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4959 if (UNTAG_Bool(variable[4])) { /*if*/
4960 variable[4] = variable[0];
4961 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4962 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
4963 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, 1994); nit_exit(1);}
4964 variable[4] = variable[0];
4965 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
4966 } else { /*if*/
4967 variable[4] = variable[0];
4968 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
4969 }
4970 goto return_label181;
4971 }
4972 variable[4] = variable[0];
4973 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
4974 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4975 if (UNTAG_Bool(variable[4])) { /*if*/
4976 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4977 if (UNTAG_Bool(variable[4])) { /*if*/
4978 variable[4] = variable[0];
4979 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4980 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
4981 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, 2004); nit_exit(1);}
4982 variable[4] = variable[0];
4983 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
4984 } else { /*if*/
4985 variable[4] = variable[0];
4986 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
4987 }
4988 goto return_label181;
4989 }
4990 variable[4] = variable[0];
4991 variable[4] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[4]) /*ADeferredMethPropdef::_n_kwmeth*/;
4992 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
4993 if (UNTAG_Bool(variable[4])) { /*if*/
4994 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4995 if (UNTAG_Bool(variable[4])) { /*if*/
4996 variable[4] = variable[0];
4997 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
4998 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
4999 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, 2014); nit_exit(1);}
5000 variable[4] = variable[0];
5001 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[4]) /*ADeferredMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
5002 } else { /*if*/
5003 variable[4] = variable[0];
5004 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[4]) /*ADeferredMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
5005 }
5006 goto return_label181;
5007 }
5008 variable[4] = variable[0];
5009 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
5010 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5011 if (UNTAG_Bool(variable[4])) { /*if*/
5012 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5013 if (UNTAG_Bool(variable[4])) { /*if*/
5014 variable[4] = variable[0];
5015 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5016 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
5017 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, 2024); nit_exit(1);}
5018 variable[4] = variable[0];
5019 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
5020 } else { /*if*/
5021 variable[4] = variable[0];
5022 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
5023 }
5024 goto return_label181;
5025 }
5026 variable[4] = variable[0];
5027 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
5028 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5029 if (UNTAG_Bool(variable[4])) { /*if*/
5030 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5031 if (UNTAG_Bool(variable[4])) { /*if*/
5032 variable[4] = variable[0];
5033 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5034 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
5035 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, 2034); nit_exit(1);}
5036 variable[4] = variable[0];
5037 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
5038 } else { /*if*/
5039 variable[4] = variable[0];
5040 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
5041 }
5042 goto return_label181;
5043 }
5044 return_label181: while(false);
5045 tracehead = trace.prev;
5046 return;
5047 }
5048 void parser_prod___ADeferredMethPropdef___visit_all(val_t self, val_t param0) {
5049 struct trace_t trace = {NULL, NULL, 2043, LOCATE_parser_prod___ADeferredMethPropdef___visit_all};
5050 val_t variable[4];
5051 void **closurevariable = NULL;
5052 trace.prev = tracehead; tracehead = &trace;
5053 trace.file = LOCATE_parser_prod;
5054 variable[0] = self;
5055 variable[1] = param0;
5056 variable[3] = variable[0];
5057 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5058 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5059 if (UNTAG_Bool(variable[3])) { /*if*/
5060 variable[3] = variable[0];
5061 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5062 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5063 }
5064 variable[3] = variable[0];
5065 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5066 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5067 if (UNTAG_Bool(variable[3])) { /*if*/
5068 variable[3] = variable[0];
5069 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5070 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5071 }
5072 variable[3] = variable[0];
5073 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5074 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5075 if (UNTAG_Bool(variable[3])) { /*if*/
5076 variable[3] = variable[0];
5077 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5078 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5079 }
5080 variable[3] = variable[0];
5081 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
5082 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5083 if (UNTAG_Bool(variable[3])) { /*if*/
5084 variable[3] = variable[0];
5085 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
5086 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5087 }
5088 variable[3] = variable[0];
5089 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5090 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5091 if (UNTAG_Bool(variable[3])) { /*if*/
5092 variable[3] = variable[0];
5093 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5094 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5095 }
5096 variable[3] = variable[0];
5097 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5098 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5099 if (UNTAG_Bool(variable[3])) { /*if*/
5100 variable[3] = variable[0];
5101 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5102 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5103 }
5104 return_label182: while(false);
5105 tracehead = trace.prev;
5106 return;
5107 }
5108 void parser_prod___ADeferredMethPropdef___visit_all_reverse(val_t self, val_t param0) {
5109 struct trace_t trace = {NULL, NULL, 2065, LOCATE_parser_prod___ADeferredMethPropdef___visit_all_reverse};
5110 val_t variable[4];
5111 void **closurevariable = NULL;
5112 trace.prev = tracehead; tracehead = &trace;
5113 trace.file = LOCATE_parser_prod;
5114 variable[0] = self;
5115 variable[1] = param0;
5116 variable[3] = variable[0];
5117 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5118 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5119 if (UNTAG_Bool(variable[3])) { /*if*/
5120 variable[3] = variable[0];
5121 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5122 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5123 }
5124 variable[3] = variable[0];
5125 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5126 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5127 if (UNTAG_Bool(variable[3])) { /*if*/
5128 variable[3] = variable[0];
5129 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5130 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5131 }
5132 variable[3] = variable[0];
5133 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5134 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5135 if (UNTAG_Bool(variable[3])) { /*if*/
5136 variable[3] = variable[0];
5137 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5138 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5139 }
5140 variable[3] = variable[0];
5141 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
5142 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5143 if (UNTAG_Bool(variable[3])) { /*if*/
5144 variable[3] = variable[0];
5145 variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
5146 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5147 }
5148 variable[3] = variable[0];
5149 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5150 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5151 if (UNTAG_Bool(variable[3])) { /*if*/
5152 variable[3] = variable[0];
5153 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5154 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5155 }
5156 variable[3] = variable[0];
5157 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5158 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5159 if (UNTAG_Bool(variable[3])) { /*if*/
5160 variable[3] = variable[0];
5161 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5162 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5163 }
5164 return_label183: while(false);
5165 tracehead = trace.prev;
5166 return;
5167 }
5168 void parser_prod___ADeferredMethPropdef___empty_init(val_t self, int* init_table) {
5169 struct trace_t trace = {NULL, NULL, 1940, LOCATE_parser_prod___ADeferredMethPropdef___empty_init};
5170 val_t variable[2];
5171 void **closurevariable = NULL;
5172 trace.prev = tracehead; tracehead = &trace;
5173 trace.file = LOCATE_parser_prod;
5174 variable[0] = self;
5175 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
5176 return_label184: while(false);
5177 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
5178 tracehead = trace.prev;
5179 return;
5180 }
5181 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) {
5182 struct trace_t trace = {NULL, NULL, 1942, LOCATE_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef};
5183 val_t variable[9];
5184 void **closurevariable = NULL;
5185 trace.prev = tracehead; tracehead = &trace;
5186 trace.file = LOCATE_parser_prod;
5187 variable[0] = self;
5188 variable[1] = param0;
5189 variable[2] = param1;
5190 variable[3] = param2;
5191 variable[4] = param3;
5192 variable[5] = param4;
5193 variable[6] = param5;
5194 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
5195 variable[8] = variable[0];
5196 CALL_parser_prod___ADeferredMethPropdef___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*ADeferredMethPropdef::empty_init*/;
5197 variable[8] = variable[0];
5198 ATTR_parser_nodes___PPropdef____n_doc(variable[8]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
5199 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::==*/)))))));
5200 if (UNTAG_Bool(variable[8])) { /*if*/
5201 variable[8] = variable[0];
5202 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
5203 }
5204 variable[8] = variable[0];
5205 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[8]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
5206 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::==*/)))))));
5207 if (UNTAG_Bool(variable[8])) { /*if*/
5208 variable[8] = variable[0];
5209 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
5210 }
5211 variable[8] = variable[0];
5212 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[8]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
5213 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::==*/)))))));
5214 if (UNTAG_Bool(variable[8])) { /*if*/
5215 variable[8] = variable[0];
5216 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
5217 }
5218 variable[8] = variable[0];
5219 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[8]) /*ADeferredMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
5220 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::==*/)))))));
5221 if (UNTAG_Bool(variable[8])) { /*if*/
5222 variable[8] = variable[0];
5223 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[8]) /*PNode::parent=*/;
5224 }
5225 variable[8] = variable[0];
5226 ATTR_parser_nodes___AMethPropdef____n_methid(variable[8]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
5227 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::==*/)))))));
5228 if (UNTAG_Bool(variable[8])) { /*if*/
5229 variable[8] = variable[0];
5230 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[8]) /*PNode::parent=*/;
5231 }
5232 variable[8] = variable[0];
5233 ATTR_parser_nodes___AMethPropdef____n_signature(variable[8]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
5234 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::==*/)))))));
5235 if (UNTAG_Bool(variable[8])) { /*if*/
5236 variable[8] = variable[0];
5237 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[8]) /*PNode::parent=*/;
5238 }
5239 return_label185: while(false);
5240 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
5241 tracehead = trace.prev;
5242 return;
5243 }
5244 void parser_prod___AInternMethPropdef___n_doc__eq(val_t self, val_t param0) {
5245 struct trace_t trace = {NULL, NULL, 2088, LOCATE_parser_prod___AInternMethPropdef___n_doc__eq};
5246 val_t variable[4];
5247 void **closurevariable = NULL;
5248 trace.prev = tracehead; tracehead = &trace;
5249 trace.file = LOCATE_parser_prod;
5250 variable[0] = self;
5251 variable[1] = param0;
5252 variable[3] = variable[0];
5253 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
5254 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5255 if (UNTAG_Bool(variable[3])) { /*if*/
5256 variable[3] = variable[0];
5257 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5258 }
5259 return_label186: while(false);
5260 tracehead = trace.prev;
5261 return;
5262 }
5263 void parser_prod___AInternMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
5264 struct trace_t trace = {NULL, NULL, 2095, LOCATE_parser_prod___AInternMethPropdef___n_kwredef__eq};
5265 val_t variable[4];
5266 void **closurevariable = NULL;
5267 trace.prev = tracehead; tracehead = &trace;
5268 trace.file = LOCATE_parser_prod;
5269 variable[0] = self;
5270 variable[1] = param0;
5271 variable[3] = variable[0];
5272 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
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 variable[3] = variable[0];
5276 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5277 }
5278 return_label187: while(false);
5279 tracehead = trace.prev;
5280 return;
5281 }
5282 void parser_prod___AInternMethPropdef___n_visibility__eq(val_t self, val_t param0) {
5283 struct trace_t trace = {NULL, NULL, 2102, LOCATE_parser_prod___AInternMethPropdef___n_visibility__eq};
5284 val_t variable[4];
5285 void **closurevariable = NULL;
5286 trace.prev = tracehead; tracehead = &trace;
5287 trace.file = LOCATE_parser_prod;
5288 variable[0] = self;
5289 variable[1] = param0;
5290 variable[3] = variable[0];
5291 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
5292 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5293 if (UNTAG_Bool(variable[3])) { /*if*/
5294 variable[3] = variable[0];
5295 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5296 }
5297 return_label188: while(false);
5298 tracehead = trace.prev;
5299 return;
5300 }
5301 void parser_prod___AInternMethPropdef___n_methid__eq(val_t self, val_t param0) {
5302 struct trace_t trace = {NULL, NULL, 2116, LOCATE_parser_prod___AInternMethPropdef___n_methid__eq};
5303 val_t variable[4];
5304 void **closurevariable = NULL;
5305 trace.prev = tracehead; tracehead = &trace;
5306 trace.file = LOCATE_parser_prod;
5307 variable[0] = self;
5308 variable[1] = param0;
5309 variable[3] = variable[0];
5310 ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
5311 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5312 if (UNTAG_Bool(variable[3])) { /*if*/
5313 variable[3] = variable[0];
5314 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5315 }
5316 return_label189: while(false);
5317 tracehead = trace.prev;
5318 return;
5319 }
5320 void parser_prod___AInternMethPropdef___n_signature__eq(val_t self, val_t param0) {
5321 struct trace_t trace = {NULL, NULL, 2123, LOCATE_parser_prod___AInternMethPropdef___n_signature__eq};
5322 val_t variable[4];
5323 void **closurevariable = NULL;
5324 trace.prev = tracehead; tracehead = &trace;
5325 trace.file = LOCATE_parser_prod;
5326 variable[0] = self;
5327 variable[1] = param0;
5328 variable[3] = variable[0];
5329 ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
5330 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5331 if (UNTAG_Bool(variable[3])) { /*if*/
5332 variable[3] = variable[0];
5333 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5334 }
5335 return_label190: while(false);
5336 tracehead = trace.prev;
5337 return;
5338 }
5339 void parser_prod___AInternMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
5340 struct trace_t trace = {NULL, NULL, 2109, LOCATE_parser_prod___AInternMethPropdef___n_kwmeth__eq};
5341 val_t variable[4];
5342 void **closurevariable = NULL;
5343 trace.prev = tracehead; tracehead = &trace;
5344 trace.file = LOCATE_parser_prod;
5345 variable[0] = self;
5346 variable[1] = param0;
5347 variable[3] = variable[0];
5348 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
5349 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5350 if (UNTAG_Bool(variable[3])) { /*if*/
5351 variable[3] = variable[0];
5352 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5353 }
5354 return_label191: while(false);
5355 tracehead = trace.prev;
5356 return;
5357 }
5358 void parser_prod___AInternMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
5359 struct trace_t trace = {NULL, NULL, 2169, LOCATE_parser_prod___AInternMethPropdef___replace_child};
5360 val_t variable[5];
5361 void **closurevariable = NULL;
5362 trace.prev = tracehead; tracehead = &trace;
5363 trace.file = LOCATE_parser_prod;
5364 variable[0] = self;
5365 variable[1] = param0;
5366 variable[2] = param1;
5367 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::==*/)))))));
5368 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, 2171); nit_exit(1);}
5369 variable[4] = variable[0];
5370 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
5371 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5372 if (UNTAG_Bool(variable[4])) { /*if*/
5373 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5374 if (UNTAG_Bool(variable[4])) { /*if*/
5375 variable[4] = variable[0];
5376 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5377 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
5378 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, 2175); nit_exit(1);}
5379 variable[4] = variable[0];
5380 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
5381 } else { /*if*/
5382 variable[4] = variable[0];
5383 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
5384 }
5385 goto return_label192;
5386 }
5387 variable[4] = variable[0];
5388 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
5389 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5390 if (UNTAG_Bool(variable[4])) { /*if*/
5391 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5392 if (UNTAG_Bool(variable[4])) { /*if*/
5393 variable[4] = variable[0];
5394 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5395 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5396 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, 2185); nit_exit(1);}
5397 variable[4] = variable[0];
5398 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
5399 } else { /*if*/
5400 variable[4] = variable[0];
5401 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
5402 }
5403 goto return_label192;
5404 }
5405 variable[4] = variable[0];
5406 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
5407 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5408 if (UNTAG_Bool(variable[4])) { /*if*/
5409 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5410 if (UNTAG_Bool(variable[4])) { /*if*/
5411 variable[4] = variable[0];
5412 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5413 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
5414 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, 2195); nit_exit(1);}
5415 variable[4] = variable[0];
5416 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
5417 } else { /*if*/
5418 variable[4] = variable[0];
5419 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
5420 }
5421 goto return_label192;
5422 }
5423 variable[4] = variable[0];
5424 variable[4] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[4]) /*AInternMethPropdef::_n_kwmeth*/;
5425 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5426 if (UNTAG_Bool(variable[4])) { /*if*/
5427 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5428 if (UNTAG_Bool(variable[4])) { /*if*/
5429 variable[4] = variable[0];
5430 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5431 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
5432 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, 2205); nit_exit(1);}
5433 variable[4] = variable[0];
5434 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[4]) /*AInternMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
5435 } else { /*if*/
5436 variable[4] = variable[0];
5437 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[4]) /*AInternMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
5438 }
5439 goto return_label192;
5440 }
5441 variable[4] = variable[0];
5442 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
5443 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5444 if (UNTAG_Bool(variable[4])) { /*if*/
5445 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5446 if (UNTAG_Bool(variable[4])) { /*if*/
5447 variable[4] = variable[0];
5448 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5449 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
5450 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, 2215); nit_exit(1);}
5451 variable[4] = variable[0];
5452 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
5453 } else { /*if*/
5454 variable[4] = variable[0];
5455 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
5456 }
5457 goto return_label192;
5458 }
5459 variable[4] = variable[0];
5460 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
5461 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5462 if (UNTAG_Bool(variable[4])) { /*if*/
5463 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5464 if (UNTAG_Bool(variable[4])) { /*if*/
5465 variable[4] = variable[0];
5466 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5467 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
5468 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, 2225); nit_exit(1);}
5469 variable[4] = variable[0];
5470 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
5471 } else { /*if*/
5472 variable[4] = variable[0];
5473 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
5474 }
5475 goto return_label192;
5476 }
5477 return_label192: while(false);
5478 tracehead = trace.prev;
5479 return;
5480 }
5481 void parser_prod___AInternMethPropdef___visit_all(val_t self, val_t param0) {
5482 struct trace_t trace = {NULL, NULL, 2234, LOCATE_parser_prod___AInternMethPropdef___visit_all};
5483 val_t variable[4];
5484 void **closurevariable = NULL;
5485 trace.prev = tracehead; tracehead = &trace;
5486 trace.file = LOCATE_parser_prod;
5487 variable[0] = self;
5488 variable[1] = param0;
5489 variable[3] = variable[0];
5490 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5491 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5492 if (UNTAG_Bool(variable[3])) { /*if*/
5493 variable[3] = variable[0];
5494 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5495 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5496 }
5497 variable[3] = variable[0];
5498 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5499 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5500 if (UNTAG_Bool(variable[3])) { /*if*/
5501 variable[3] = variable[0];
5502 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5503 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5504 }
5505 variable[3] = variable[0];
5506 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
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 variable[3] = variable[0];
5510 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5511 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5512 }
5513 variable[3] = variable[0];
5514 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
5515 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5516 if (UNTAG_Bool(variable[3])) { /*if*/
5517 variable[3] = variable[0];
5518 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
5519 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5520 }
5521 variable[3] = variable[0];
5522 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5523 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5524 if (UNTAG_Bool(variable[3])) { /*if*/
5525 variable[3] = variable[0];
5526 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5527 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5528 }
5529 variable[3] = variable[0];
5530 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5531 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5532 if (UNTAG_Bool(variable[3])) { /*if*/
5533 variable[3] = variable[0];
5534 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5535 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5536 }
5537 return_label193: while(false);
5538 tracehead = trace.prev;
5539 return;
5540 }
5541 void parser_prod___AInternMethPropdef___visit_all_reverse(val_t self, val_t param0) {
5542 struct trace_t trace = {NULL, NULL, 2256, LOCATE_parser_prod___AInternMethPropdef___visit_all_reverse};
5543 val_t variable[4];
5544 void **closurevariable = NULL;
5545 trace.prev = tracehead; tracehead = &trace;
5546 trace.file = LOCATE_parser_prod;
5547 variable[0] = self;
5548 variable[1] = param0;
5549 variable[3] = variable[0];
5550 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5551 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5552 if (UNTAG_Bool(variable[3])) { /*if*/
5553 variable[3] = variable[0];
5554 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5555 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5556 }
5557 variable[3] = variable[0];
5558 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5559 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5560 if (UNTAG_Bool(variable[3])) { /*if*/
5561 variable[3] = variable[0];
5562 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5563 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5564 }
5565 variable[3] = variable[0];
5566 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5567 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5568 if (UNTAG_Bool(variable[3])) { /*if*/
5569 variable[3] = variable[0];
5570 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5571 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5572 }
5573 variable[3] = variable[0];
5574 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
5575 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5576 if (UNTAG_Bool(variable[3])) { /*if*/
5577 variable[3] = variable[0];
5578 variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
5579 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5580 }
5581 variable[3] = variable[0];
5582 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5583 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5584 if (UNTAG_Bool(variable[3])) { /*if*/
5585 variable[3] = variable[0];
5586 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5587 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5588 }
5589 variable[3] = variable[0];
5590 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5591 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5592 if (UNTAG_Bool(variable[3])) { /*if*/
5593 variable[3] = variable[0];
5594 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
5595 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5596 }
5597 return_label194: while(false);
5598 tracehead = trace.prev;
5599 return;
5600 }
5601 void parser_prod___AInternMethPropdef___empty_init(val_t self, int* init_table) {
5602 struct trace_t trace = {NULL, NULL, 2131, LOCATE_parser_prod___AInternMethPropdef___empty_init};
5603 val_t variable[2];
5604 void **closurevariable = NULL;
5605 trace.prev = tracehead; tracehead = &trace;
5606 trace.file = LOCATE_parser_prod;
5607 variable[0] = self;
5608 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
5609 return_label195: while(false);
5610 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
5611 tracehead = trace.prev;
5612 return;
5613 }
5614 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) {
5615 struct trace_t trace = {NULL, NULL, 2133, LOCATE_parser_prod___AInternMethPropdef___init_ainternmethpropdef};
5616 val_t variable[9];
5617 void **closurevariable = NULL;
5618 trace.prev = tracehead; tracehead = &trace;
5619 trace.file = LOCATE_parser_prod;
5620 variable[0] = self;
5621 variable[1] = param0;
5622 variable[2] = param1;
5623 variable[3] = param2;
5624 variable[4] = param3;
5625 variable[5] = param4;
5626 variable[6] = param5;
5627 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
5628 variable[8] = variable[0];
5629 CALL_parser_prod___AInternMethPropdef___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*AInternMethPropdef::empty_init*/;
5630 variable[8] = variable[0];
5631 ATTR_parser_nodes___PPropdef____n_doc(variable[8]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
5632 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::==*/)))))));
5633 if (UNTAG_Bool(variable[8])) { /*if*/
5634 variable[8] = variable[0];
5635 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
5636 }
5637 variable[8] = variable[0];
5638 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[8]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
5639 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::==*/)))))));
5640 if (UNTAG_Bool(variable[8])) { /*if*/
5641 variable[8] = variable[0];
5642 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
5643 }
5644 variable[8] = variable[0];
5645 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[8]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
5646 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::==*/)))))));
5647 if (UNTAG_Bool(variable[8])) { /*if*/
5648 variable[8] = variable[0];
5649 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
5650 }
5651 variable[8] = variable[0];
5652 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[8]) /*AInternMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
5653 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::==*/)))))));
5654 if (UNTAG_Bool(variable[8])) { /*if*/
5655 variable[8] = variable[0];
5656 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[8]) /*PNode::parent=*/;
5657 }
5658 variable[8] = variable[0];
5659 ATTR_parser_nodes___AMethPropdef____n_methid(variable[8]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
5660 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::==*/)))))));
5661 if (UNTAG_Bool(variable[8])) { /*if*/
5662 variable[8] = variable[0];
5663 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[8]) /*PNode::parent=*/;
5664 }
5665 variable[8] = variable[0];
5666 ATTR_parser_nodes___AMethPropdef____n_signature(variable[8]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
5667 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::==*/)))))));
5668 if (UNTAG_Bool(variable[8])) { /*if*/
5669 variable[8] = variable[0];
5670 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[8]) /*PNode::parent=*/;
5671 }
5672 return_label196: while(false);
5673 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
5674 tracehead = trace.prev;
5675 return;
5676 }
5677 void parser_prod___AExternMethPropdef___n_doc__eq(val_t self, val_t param0) {
5678 struct trace_t trace = {NULL, NULL, 2279, LOCATE_parser_prod___AExternMethPropdef___n_doc__eq};
5679 val_t variable[4];
5680 void **closurevariable = NULL;
5681 trace.prev = tracehead; tracehead = &trace;
5682 trace.file = LOCATE_parser_prod;
5683 variable[0] = self;
5684 variable[1] = param0;
5685 variable[3] = variable[0];
5686 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
5687 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5688 if (UNTAG_Bool(variable[3])) { /*if*/
5689 variable[3] = variable[0];
5690 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5691 }
5692 return_label197: while(false);
5693 tracehead = trace.prev;
5694 return;
5695 }
5696 void parser_prod___AExternMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
5697 struct trace_t trace = {NULL, NULL, 2286, LOCATE_parser_prod___AExternMethPropdef___n_kwredef__eq};
5698 val_t variable[4];
5699 void **closurevariable = NULL;
5700 trace.prev = tracehead; tracehead = &trace;
5701 trace.file = LOCATE_parser_prod;
5702 variable[0] = self;
5703 variable[1] = param0;
5704 variable[3] = variable[0];
5705 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
5706 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5707 if (UNTAG_Bool(variable[3])) { /*if*/
5708 variable[3] = variable[0];
5709 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5710 }
5711 return_label198: while(false);
5712 tracehead = trace.prev;
5713 return;
5714 }
5715 void parser_prod___AExternMethPropdef___n_visibility__eq(val_t self, val_t param0) {
5716 struct trace_t trace = {NULL, NULL, 2293, LOCATE_parser_prod___AExternMethPropdef___n_visibility__eq};
5717 val_t variable[4];
5718 void **closurevariable = NULL;
5719 trace.prev = tracehead; tracehead = &trace;
5720 trace.file = LOCATE_parser_prod;
5721 variable[0] = self;
5722 variable[1] = param0;
5723 variable[3] = variable[0];
5724 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
5725 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5726 if (UNTAG_Bool(variable[3])) { /*if*/
5727 variable[3] = variable[0];
5728 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5729 }
5730 return_label199: while(false);
5731 tracehead = trace.prev;
5732 return;
5733 }
5734 void parser_prod___AExternMethPropdef___n_methid__eq(val_t self, val_t param0) {
5735 struct trace_t trace = {NULL, NULL, 2307, LOCATE_parser_prod___AExternMethPropdef___n_methid__eq};
5736 val_t variable[4];
5737 void **closurevariable = NULL;
5738 trace.prev = tracehead; tracehead = &trace;
5739 trace.file = LOCATE_parser_prod;
5740 variable[0] = self;
5741 variable[1] = param0;
5742 variable[3] = variable[0];
5743 ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
5744 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5745 if (UNTAG_Bool(variable[3])) { /*if*/
5746 variable[3] = variable[0];
5747 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5748 }
5749 return_label200: while(false);
5750 tracehead = trace.prev;
5751 return;
5752 }
5753 void parser_prod___AExternMethPropdef___n_signature__eq(val_t self, val_t param0) {
5754 struct trace_t trace = {NULL, NULL, 2314, LOCATE_parser_prod___AExternMethPropdef___n_signature__eq};
5755 val_t variable[4];
5756 void **closurevariable = NULL;
5757 trace.prev = tracehead; tracehead = &trace;
5758 trace.file = LOCATE_parser_prod;
5759 variable[0] = self;
5760 variable[1] = param0;
5761 variable[3] = variable[0];
5762 ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
5763 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5764 if (UNTAG_Bool(variable[3])) { /*if*/
5765 variable[3] = variable[0];
5766 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5767 }
5768 return_label201: while(false);
5769 tracehead = trace.prev;
5770 return;
5771 }
5772 void parser_prod___AExternMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
5773 struct trace_t trace = {NULL, NULL, 2300, LOCATE_parser_prod___AExternMethPropdef___n_kwmeth__eq};
5774 val_t variable[4];
5775 void **closurevariable = NULL;
5776 trace.prev = tracehead; tracehead = &trace;
5777 trace.file = LOCATE_parser_prod;
5778 variable[0] = self;
5779 variable[1] = param0;
5780 variable[3] = variable[0];
5781 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
5782 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5783 if (UNTAG_Bool(variable[3])) { /*if*/
5784 variable[3] = variable[0];
5785 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5786 }
5787 return_label202: while(false);
5788 tracehead = trace.prev;
5789 return;
5790 }
5791 void parser_prod___AExternMethPropdef___n_extern__eq(val_t self, val_t param0) {
5792 struct trace_t trace = {NULL, NULL, 2321, LOCATE_parser_prod___AExternMethPropdef___n_extern__eq};
5793 val_t variable[4];
5794 void **closurevariable = NULL;
5795 trace.prev = tracehead; tracehead = &trace;
5796 trace.file = LOCATE_parser_prod;
5797 variable[0] = self;
5798 variable[1] = param0;
5799 variable[3] = variable[0];
5800 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/ = variable[1] /*n*/;
5801 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5802 if (UNTAG_Bool(variable[3])) { /*if*/
5803 variable[3] = variable[0];
5804 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
5805 }
5806 return_label203: while(false);
5807 tracehead = trace.prev;
5808 return;
5809 }
5810 void parser_prod___AExternMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
5811 struct trace_t trace = {NULL, NULL, 2372, LOCATE_parser_prod___AExternMethPropdef___replace_child};
5812 val_t variable[5];
5813 void **closurevariable = NULL;
5814 trace.prev = tracehead; tracehead = &trace;
5815 trace.file = LOCATE_parser_prod;
5816 variable[0] = self;
5817 variable[1] = param0;
5818 variable[2] = param1;
5819 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::==*/)))))));
5820 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, 2374); nit_exit(1);}
5821 variable[4] = variable[0];
5822 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
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 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5826 if (UNTAG_Bool(variable[4])) { /*if*/
5827 variable[4] = variable[0];
5828 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5829 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
5830 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, 2378); nit_exit(1);}
5831 variable[4] = variable[0];
5832 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
5833 } else { /*if*/
5834 variable[4] = variable[0];
5835 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
5836 }
5837 goto return_label204;
5838 }
5839 variable[4] = variable[0];
5840 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
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 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5844 if (UNTAG_Bool(variable[4])) { /*if*/
5845 variable[4] = variable[0];
5846 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5847 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5848 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, 2388); nit_exit(1);}
5849 variable[4] = variable[0];
5850 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
5851 } else { /*if*/
5852 variable[4] = variable[0];
5853 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
5854 }
5855 goto return_label204;
5856 }
5857 variable[4] = variable[0];
5858 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
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 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5862 if (UNTAG_Bool(variable[4])) { /*if*/
5863 variable[4] = variable[0];
5864 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5865 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
5866 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, 2398); nit_exit(1);}
5867 variable[4] = variable[0];
5868 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
5869 } else { /*if*/
5870 variable[4] = variable[0];
5871 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
5872 }
5873 goto return_label204;
5874 }
5875 variable[4] = variable[0];
5876 variable[4] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[4]) /*AExternMethPropdef::_n_kwmeth*/;
5877 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5878 if (UNTAG_Bool(variable[4])) { /*if*/
5879 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5880 if (UNTAG_Bool(variable[4])) { /*if*/
5881 variable[4] = variable[0];
5882 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5883 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
5884 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, 2408); nit_exit(1);}
5885 variable[4] = variable[0];
5886 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[4]) /*AExternMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
5887 } else { /*if*/
5888 variable[4] = variable[0];
5889 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[4]) /*AExternMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
5890 }
5891 goto return_label204;
5892 }
5893 variable[4] = variable[0];
5894 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
5895 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5896 if (UNTAG_Bool(variable[4])) { /*if*/
5897 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5898 if (UNTAG_Bool(variable[4])) { /*if*/
5899 variable[4] = variable[0];
5900 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5901 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
5902 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, 2418); nit_exit(1);}
5903 variable[4] = variable[0];
5904 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
5905 } else { /*if*/
5906 variable[4] = variable[0];
5907 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
5908 }
5909 goto return_label204;
5910 }
5911 variable[4] = variable[0];
5912 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
5913 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5914 if (UNTAG_Bool(variable[4])) { /*if*/
5915 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5916 if (UNTAG_Bool(variable[4])) { /*if*/
5917 variable[4] = variable[0];
5918 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5919 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
5920 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, 2428); nit_exit(1);}
5921 variable[4] = variable[0];
5922 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
5923 } else { /*if*/
5924 variable[4] = variable[0];
5925 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
5926 }
5927 goto return_label204;
5928 }
5929 variable[4] = variable[0];
5930 variable[4] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[4]) /*AExternMethPropdef::_n_extern*/;
5931 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
5932 if (UNTAG_Bool(variable[4])) { /*if*/
5933 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
5934 if (UNTAG_Bool(variable[4])) { /*if*/
5935 variable[4] = variable[0];
5936 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
5937 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
5938 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, 2438); nit_exit(1);}
5939 variable[4] = variable[0];
5940 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[4]) /*AExternMethPropdef::_n_extern*/ = variable[2] /*new_child*/;
5941 } else { /*if*/
5942 variable[4] = variable[0];
5943 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[4]) /*AExternMethPropdef::_n_extern*/ = NIT_NULL /*null*/;
5944 }
5945 goto return_label204;
5946 }
5947 return_label204: while(false);
5948 tracehead = trace.prev;
5949 return;
5950 }
5951 void parser_prod___AExternMethPropdef___visit_all(val_t self, val_t param0) {
5952 struct trace_t trace = {NULL, NULL, 2447, LOCATE_parser_prod___AExternMethPropdef___visit_all};
5953 val_t variable[4];
5954 void **closurevariable = NULL;
5955 trace.prev = tracehead; tracehead = &trace;
5956 trace.file = LOCATE_parser_prod;
5957 variable[0] = self;
5958 variable[1] = param0;
5959 variable[3] = variable[0];
5960 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
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 variable[3] = variable[0];
5964 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
5965 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5966 }
5967 variable[3] = variable[0];
5968 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5969 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5970 if (UNTAG_Bool(variable[3])) { /*if*/
5971 variable[3] = variable[0];
5972 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
5973 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5974 }
5975 variable[3] = variable[0];
5976 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5977 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5978 if (UNTAG_Bool(variable[3])) { /*if*/
5979 variable[3] = variable[0];
5980 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
5981 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5982 }
5983 variable[3] = variable[0];
5984 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
5985 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5986 if (UNTAG_Bool(variable[3])) { /*if*/
5987 variable[3] = variable[0];
5988 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
5989 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5990 }
5991 variable[3] = variable[0];
5992 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5993 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
5994 if (UNTAG_Bool(variable[3])) { /*if*/
5995 variable[3] = variable[0];
5996 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
5997 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
5998 }
5999 variable[3] = variable[0];
6000 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6001 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6002 if (UNTAG_Bool(variable[3])) { /*if*/
6003 variable[3] = variable[0];
6004 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6005 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6006 }
6007 variable[3] = variable[0];
6008 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
6009 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6010 if (UNTAG_Bool(variable[3])) { /*if*/
6011 variable[3] = variable[0];
6012 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
6013 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6014 }
6015 return_label205: while(false);
6016 tracehead = trace.prev;
6017 return;
6018 }
6019 void parser_prod___AExternMethPropdef___visit_all_reverse(val_t self, val_t param0) {
6020 struct trace_t trace = {NULL, NULL, 2472, LOCATE_parser_prod___AExternMethPropdef___visit_all_reverse};
6021 val_t variable[4];
6022 void **closurevariable = NULL;
6023 trace.prev = tracehead; tracehead = &trace;
6024 trace.file = LOCATE_parser_prod;
6025 variable[0] = self;
6026 variable[1] = param0;
6027 variable[3] = variable[0];
6028 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6029 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6030 if (UNTAG_Bool(variable[3])) { /*if*/
6031 variable[3] = variable[0];
6032 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6033 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6034 }
6035 variable[3] = variable[0];
6036 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6037 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6038 if (UNTAG_Bool(variable[3])) { /*if*/
6039 variable[3] = variable[0];
6040 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6041 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6042 }
6043 variable[3] = variable[0];
6044 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6045 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6046 if (UNTAG_Bool(variable[3])) { /*if*/
6047 variable[3] = variable[0];
6048 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6049 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6050 }
6051 variable[3] = variable[0];
6052 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
6053 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6054 if (UNTAG_Bool(variable[3])) { /*if*/
6055 variable[3] = variable[0];
6056 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
6057 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6058 }
6059 variable[3] = variable[0];
6060 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6061 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6062 if (UNTAG_Bool(variable[3])) { /*if*/
6063 variable[3] = variable[0];
6064 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6065 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6066 }
6067 variable[3] = variable[0];
6068 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6069 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6070 if (UNTAG_Bool(variable[3])) { /*if*/
6071 variable[3] = variable[0];
6072 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6073 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6074 }
6075 variable[3] = variable[0];
6076 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
6077 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6078 if (UNTAG_Bool(variable[3])) { /*if*/
6079 variable[3] = variable[0];
6080 variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
6081 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6082 }
6083 return_label206: while(false);
6084 tracehead = trace.prev;
6085 return;
6086 }
6087 void parser_prod___AExternMethPropdef___empty_init(val_t self, int* init_table) {
6088 struct trace_t trace = {NULL, NULL, 2329, LOCATE_parser_prod___AExternMethPropdef___empty_init};
6089 val_t variable[2];
6090 void **closurevariable = NULL;
6091 trace.prev = tracehead; tracehead = &trace;
6092 trace.file = LOCATE_parser_prod;
6093 variable[0] = self;
6094 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
6095 return_label207: while(false);
6096 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
6097 tracehead = trace.prev;
6098 return;
6099 }
6100 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) {
6101 struct trace_t trace = {NULL, NULL, 2331, LOCATE_parser_prod___AExternMethPropdef___init_aexternmethpropdef};
6102 val_t variable[10];
6103 void **closurevariable = NULL;
6104 trace.prev = tracehead; tracehead = &trace;
6105 trace.file = LOCATE_parser_prod;
6106 variable[0] = self;
6107 variable[1] = param0;
6108 variable[2] = param1;
6109 variable[3] = param2;
6110 variable[4] = param3;
6111 variable[5] = param4;
6112 variable[6] = param5;
6113 variable[7] = param6;
6114 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
6115 variable[9] = variable[0];
6116 CALL_parser_prod___AExternMethPropdef___empty_init(variable[9])(variable[9], init_table /*YYY*/) /*AExternMethPropdef::empty_init*/;
6117 variable[9] = variable[0];
6118 ATTR_parser_nodes___PPropdef____n_doc(variable[9]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
6119 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::==*/)))))));
6120 if (UNTAG_Bool(variable[9])) { /*if*/
6121 variable[9] = variable[0];
6122 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
6123 }
6124 variable[9] = variable[0];
6125 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[9]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
6126 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::==*/)))))));
6127 if (UNTAG_Bool(variable[9])) { /*if*/
6128 variable[9] = variable[0];
6129 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
6130 }
6131 variable[9] = variable[0];
6132 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[9]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
6133 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::==*/)))))));
6134 if (UNTAG_Bool(variable[9])) { /*if*/
6135 variable[9] = variable[0];
6136 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
6137 }
6138 variable[9] = variable[0];
6139 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[9]) /*AExternMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
6140 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::==*/)))))));
6141 if (UNTAG_Bool(variable[9])) { /*if*/
6142 variable[9] = variable[0];
6143 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[9]) /*PNode::parent=*/;
6144 }
6145 variable[9] = variable[0];
6146 ATTR_parser_nodes___AMethPropdef____n_methid(variable[9]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
6147 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::==*/)))))));
6148 if (UNTAG_Bool(variable[9])) { /*if*/
6149 variable[9] = variable[0];
6150 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
6151 }
6152 variable[9] = variable[0];
6153 ATTR_parser_nodes___AMethPropdef____n_signature(variable[9]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
6154 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::==*/)))))));
6155 if (UNTAG_Bool(variable[9])) { /*if*/
6156 variable[9] = variable[0];
6157 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
6158 }
6159 variable[9] = variable[0];
6160 ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[9]) /*AExternMethPropdef::_n_extern*/ = variable[7] /*n_extern*/;
6161 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::==*/)))))));
6162 if (UNTAG_Bool(variable[9])) { /*if*/
6163 variable[9] = variable[0];
6164 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_extern*/)( variable[7] /*n_extern*/, variable[9]) /*PNode::parent=*/;
6165 }
6166 return_label208: while(false);
6167 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
6168 tracehead = trace.prev;
6169 return;
6170 }
6171 void parser_prod___AConcreteMethPropdef___n_doc__eq(val_t self, val_t param0) {
6172 struct trace_t trace = {NULL, NULL, 2498, LOCATE_parser_prod___AConcreteMethPropdef___n_doc__eq};
6173 val_t variable[4];
6174 void **closurevariable = NULL;
6175 trace.prev = tracehead; tracehead = &trace;
6176 trace.file = LOCATE_parser_prod;
6177 variable[0] = self;
6178 variable[1] = param0;
6179 variable[3] = variable[0];
6180 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
6181 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6182 if (UNTAG_Bool(variable[3])) { /*if*/
6183 variable[3] = variable[0];
6184 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6185 }
6186 return_label209: while(false);
6187 tracehead = trace.prev;
6188 return;
6189 }
6190 void parser_prod___AConcreteMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
6191 struct trace_t trace = {NULL, NULL, 2505, LOCATE_parser_prod___AConcreteMethPropdef___n_kwredef__eq};
6192 val_t variable[4];
6193 void **closurevariable = NULL;
6194 trace.prev = tracehead; tracehead = &trace;
6195 trace.file = LOCATE_parser_prod;
6196 variable[0] = self;
6197 variable[1] = param0;
6198 variable[3] = variable[0];
6199 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
6200 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6201 if (UNTAG_Bool(variable[3])) { /*if*/
6202 variable[3] = variable[0];
6203 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6204 }
6205 return_label210: while(false);
6206 tracehead = trace.prev;
6207 return;
6208 }
6209 void parser_prod___AConcreteMethPropdef___n_visibility__eq(val_t self, val_t param0) {
6210 struct trace_t trace = {NULL, NULL, 2512, LOCATE_parser_prod___AConcreteMethPropdef___n_visibility__eq};
6211 val_t variable[4];
6212 void **closurevariable = NULL;
6213 trace.prev = tracehead; tracehead = &trace;
6214 trace.file = LOCATE_parser_prod;
6215 variable[0] = self;
6216 variable[1] = param0;
6217 variable[3] = variable[0];
6218 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
6219 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6220 if (UNTAG_Bool(variable[3])) { /*if*/
6221 variable[3] = variable[0];
6222 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6223 }
6224 return_label211: while(false);
6225 tracehead = trace.prev;
6226 return;
6227 }
6228 void parser_prod___AConcreteMethPropdef___n_methid__eq(val_t self, val_t param0) {
6229 struct trace_t trace = {NULL, NULL, 2526, LOCATE_parser_prod___AConcreteMethPropdef___n_methid__eq};
6230 val_t variable[4];
6231 void **closurevariable = NULL;
6232 trace.prev = tracehead; tracehead = &trace;
6233 trace.file = LOCATE_parser_prod;
6234 variable[0] = self;
6235 variable[1] = param0;
6236 variable[3] = variable[0];
6237 ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
6238 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6239 if (UNTAG_Bool(variable[3])) { /*if*/
6240 variable[3] = variable[0];
6241 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6242 }
6243 return_label212: while(false);
6244 tracehead = trace.prev;
6245 return;
6246 }
6247 void parser_prod___AConcreteMethPropdef___n_signature__eq(val_t self, val_t param0) {
6248 struct trace_t trace = {NULL, NULL, 2533, LOCATE_parser_prod___AConcreteMethPropdef___n_signature__eq};
6249 val_t variable[4];
6250 void **closurevariable = NULL;
6251 trace.prev = tracehead; tracehead = &trace;
6252 trace.file = LOCATE_parser_prod;
6253 variable[0] = self;
6254 variable[1] = param0;
6255 variable[3] = variable[0];
6256 ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
6257 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6258 if (UNTAG_Bool(variable[3])) { /*if*/
6259 variable[3] = variable[0];
6260 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6261 }
6262 return_label213: while(false);
6263 tracehead = trace.prev;
6264 return;
6265 }
6266 void parser_prod___AConcreteMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
6267 struct trace_t trace = {NULL, NULL, 2519, LOCATE_parser_prod___AConcreteMethPropdef___n_kwmeth__eq};
6268 val_t variable[4];
6269 void **closurevariable = NULL;
6270 trace.prev = tracehead; tracehead = &trace;
6271 trace.file = LOCATE_parser_prod;
6272 variable[0] = self;
6273 variable[1] = param0;
6274 variable[3] = variable[0];
6275 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/ = variable[1] /*n*/;
6276 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6277 if (UNTAG_Bool(variable[3])) { /*if*/
6278 variable[3] = variable[0];
6279 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6280 }
6281 return_label214: while(false);
6282 tracehead = trace.prev;
6283 return;
6284 }
6285 void parser_prod___AConcreteMethPropdef___n_block__eq(val_t self, val_t param0) {
6286 struct trace_t trace = {NULL, NULL, 2540, LOCATE_parser_prod___AConcreteMethPropdef___n_block__eq};
6287 val_t variable[4];
6288 void **closurevariable = NULL;
6289 trace.prev = tracehead; tracehead = &trace;
6290 trace.file = LOCATE_parser_prod;
6291 variable[0] = self;
6292 variable[1] = param0;
6293 variable[3] = variable[0];
6294 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/ = variable[1] /*n*/;
6295 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6296 if (UNTAG_Bool(variable[3])) { /*if*/
6297 variable[3] = variable[0];
6298 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6299 }
6300 return_label215: while(false);
6301 tracehead = trace.prev;
6302 return;
6303 }
6304 void parser_prod___AConcreteMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
6305 struct trace_t trace = {NULL, NULL, 2591, LOCATE_parser_prod___AConcreteMethPropdef___replace_child};
6306 val_t variable[5];
6307 void **closurevariable = NULL;
6308 trace.prev = tracehead; tracehead = &trace;
6309 trace.file = LOCATE_parser_prod;
6310 variable[0] = self;
6311 variable[1] = param0;
6312 variable[2] = param1;
6313 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::==*/)))))));
6314 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, 2593); nit_exit(1);}
6315 variable[4] = variable[0];
6316 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
6317 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6318 if (UNTAG_Bool(variable[4])) { /*if*/
6319 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6320 if (UNTAG_Bool(variable[4])) { /*if*/
6321 variable[4] = variable[0];
6322 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6323 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
6324 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, 2597); nit_exit(1);}
6325 variable[4] = variable[0];
6326 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
6327 } else { /*if*/
6328 variable[4] = variable[0];
6329 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
6330 }
6331 goto return_label216;
6332 }
6333 variable[4] = variable[0];
6334 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
6335 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6336 if (UNTAG_Bool(variable[4])) { /*if*/
6337 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6338 if (UNTAG_Bool(variable[4])) { /*if*/
6339 variable[4] = variable[0];
6340 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6341 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6342 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, 2607); nit_exit(1);}
6343 variable[4] = variable[0];
6344 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
6345 } else { /*if*/
6346 variable[4] = variable[0];
6347 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
6348 }
6349 goto return_label216;
6350 }
6351 variable[4] = variable[0];
6352 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
6353 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6354 if (UNTAG_Bool(variable[4])) { /*if*/
6355 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6356 if (UNTAG_Bool(variable[4])) { /*if*/
6357 variable[4] = variable[0];
6358 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6359 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
6360 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, 2617); nit_exit(1);}
6361 variable[4] = variable[0];
6362 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
6363 } else { /*if*/
6364 variable[4] = variable[0];
6365 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
6366 }
6367 goto return_label216;
6368 }
6369 variable[4] = variable[0];
6370 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[4]) /*AConcreteMethPropdef::_n_kwmeth*/;
6371 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6372 if (UNTAG_Bool(variable[4])) { /*if*/
6373 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6374 if (UNTAG_Bool(variable[4])) { /*if*/
6375 variable[4] = variable[0];
6376 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6377 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
6378 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, 2627); nit_exit(1);}
6379 variable[4] = variable[0];
6380 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[4]) /*AConcreteMethPropdef::_n_kwmeth*/ = variable[2] /*new_child*/;
6381 } else { /*if*/
6382 variable[4] = variable[0];
6383 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[4]) /*AConcreteMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
6384 }
6385 goto return_label216;
6386 }
6387 variable[4] = variable[0];
6388 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
6389 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6390 if (UNTAG_Bool(variable[4])) { /*if*/
6391 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6392 if (UNTAG_Bool(variable[4])) { /*if*/
6393 variable[4] = variable[0];
6394 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6395 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
6396 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, 2637); nit_exit(1);}
6397 variable[4] = variable[0];
6398 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
6399 } else { /*if*/
6400 variable[4] = variable[0];
6401 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
6402 }
6403 goto return_label216;
6404 }
6405 variable[4] = variable[0];
6406 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
6407 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6408 if (UNTAG_Bool(variable[4])) { /*if*/
6409 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6410 if (UNTAG_Bool(variable[4])) { /*if*/
6411 variable[4] = variable[0];
6412 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6413 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
6414 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, 2647); nit_exit(1);}
6415 variable[4] = variable[0];
6416 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
6417 } else { /*if*/
6418 variable[4] = variable[0];
6419 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
6420 }
6421 goto return_label216;
6422 }
6423 variable[4] = variable[0];
6424 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/;
6425 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6426 if (UNTAG_Bool(variable[4])) { /*if*/
6427 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6428 if (UNTAG_Bool(variable[4])) { /*if*/
6429 variable[4] = variable[0];
6430 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6431 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
6432 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, 2657); nit_exit(1);}
6433 variable[4] = variable[0];
6434 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*new_child*/;
6435 } else { /*if*/
6436 variable[4] = variable[0];
6437 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ = NIT_NULL /*null*/;
6438 }
6439 goto return_label216;
6440 }
6441 return_label216: while(false);
6442 tracehead = trace.prev;
6443 return;
6444 }
6445 void parser_prod___AConcreteMethPropdef___visit_all(val_t self, val_t param0) {
6446 struct trace_t trace = {NULL, NULL, 2666, LOCATE_parser_prod___AConcreteMethPropdef___visit_all};
6447 val_t variable[4];
6448 void **closurevariable = NULL;
6449 trace.prev = tracehead; tracehead = &trace;
6450 trace.file = LOCATE_parser_prod;
6451 variable[0] = self;
6452 variable[1] = param0;
6453 variable[3] = variable[0];
6454 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6455 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6456 if (UNTAG_Bool(variable[3])) { /*if*/
6457 variable[3] = variable[0];
6458 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6459 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6460 }
6461 variable[3] = variable[0];
6462 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6463 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6464 if (UNTAG_Bool(variable[3])) { /*if*/
6465 variable[3] = variable[0];
6466 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6467 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6468 }
6469 variable[3] = variable[0];
6470 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6471 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6472 if (UNTAG_Bool(variable[3])) { /*if*/
6473 variable[3] = variable[0];
6474 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6475 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6476 }
6477 variable[3] = variable[0];
6478 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
6479 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6480 if (UNTAG_Bool(variable[3])) { /*if*/
6481 variable[3] = variable[0];
6482 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
6483 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6484 }
6485 variable[3] = variable[0];
6486 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6487 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6488 if (UNTAG_Bool(variable[3])) { /*if*/
6489 variable[3] = variable[0];
6490 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6491 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6492 }
6493 variable[3] = variable[0];
6494 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6495 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6496 if (UNTAG_Bool(variable[3])) { /*if*/
6497 variable[3] = variable[0];
6498 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6499 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6500 }
6501 variable[3] = variable[0];
6502 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
6503 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6504 if (UNTAG_Bool(variable[3])) { /*if*/
6505 variable[3] = variable[0];
6506 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
6507 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6508 }
6509 return_label217: while(false);
6510 tracehead = trace.prev;
6511 return;
6512 }
6513 void parser_prod___AConcreteMethPropdef___visit_all_reverse(val_t self, val_t param0) {
6514 struct trace_t trace = {NULL, NULL, 2691, LOCATE_parser_prod___AConcreteMethPropdef___visit_all_reverse};
6515 val_t variable[4];
6516 void **closurevariable = NULL;
6517 trace.prev = tracehead; tracehead = &trace;
6518 trace.file = LOCATE_parser_prod;
6519 variable[0] = self;
6520 variable[1] = param0;
6521 variable[3] = variable[0];
6522 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6523 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6524 if (UNTAG_Bool(variable[3])) { /*if*/
6525 variable[3] = variable[0];
6526 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6527 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6528 }
6529 variable[3] = variable[0];
6530 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6531 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6532 if (UNTAG_Bool(variable[3])) { /*if*/
6533 variable[3] = variable[0];
6534 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6535 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6536 }
6537 variable[3] = variable[0];
6538 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6539 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6540 if (UNTAG_Bool(variable[3])) { /*if*/
6541 variable[3] = variable[0];
6542 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6543 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6544 }
6545 variable[3] = variable[0];
6546 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
6547 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6548 if (UNTAG_Bool(variable[3])) { /*if*/
6549 variable[3] = variable[0];
6550 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
6551 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6552 }
6553 variable[3] = variable[0];
6554 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6555 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6556 if (UNTAG_Bool(variable[3])) { /*if*/
6557 variable[3] = variable[0];
6558 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6559 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6560 }
6561 variable[3] = variable[0];
6562 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6563 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6564 if (UNTAG_Bool(variable[3])) { /*if*/
6565 variable[3] = variable[0];
6566 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6567 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6568 }
6569 variable[3] = variable[0];
6570 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
6571 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6572 if (UNTAG_Bool(variable[3])) { /*if*/
6573 variable[3] = variable[0];
6574 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
6575 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6576 }
6577 return_label218: while(false);
6578 tracehead = trace.prev;
6579 return;
6580 }
6581 void parser_prod___AConcreteMethPropdef___empty_init(val_t self, int* init_table) {
6582 struct trace_t trace = {NULL, NULL, 2548, LOCATE_parser_prod___AConcreteMethPropdef___empty_init};
6583 val_t variable[2];
6584 void **closurevariable = NULL;
6585 trace.prev = tracehead; tracehead = &trace;
6586 trace.file = LOCATE_parser_prod;
6587 variable[0] = self;
6588 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
6589 return_label219: while(false);
6590 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
6591 tracehead = trace.prev;
6592 return;
6593 }
6594 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) {
6595 struct trace_t trace = {NULL, NULL, 2550, LOCATE_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef};
6596 val_t variable[10];
6597 void **closurevariable = NULL;
6598 trace.prev = tracehead; tracehead = &trace;
6599 trace.file = LOCATE_parser_prod;
6600 variable[0] = self;
6601 variable[1] = param0;
6602 variable[2] = param1;
6603 variable[3] = param2;
6604 variable[4] = param3;
6605 variable[5] = param4;
6606 variable[6] = param5;
6607 variable[7] = param6;
6608 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
6609 variable[9] = variable[0];
6610 CALL_parser_prod___AConcreteMethPropdef___empty_init(variable[9])(variable[9], init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
6611 variable[9] = variable[0];
6612 ATTR_parser_nodes___PPropdef____n_doc(variable[9]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
6613 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::==*/)))))));
6614 if (UNTAG_Bool(variable[9])) { /*if*/
6615 variable[9] = variable[0];
6616 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
6617 }
6618 variable[9] = variable[0];
6619 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[9]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
6620 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::==*/)))))));
6621 if (UNTAG_Bool(variable[9])) { /*if*/
6622 variable[9] = variable[0];
6623 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
6624 }
6625 variable[9] = variable[0];
6626 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[9]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
6627 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::==*/)))))));
6628 if (UNTAG_Bool(variable[9])) { /*if*/
6629 variable[9] = variable[0];
6630 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
6631 }
6632 variable[9] = variable[0];
6633 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[9]) /*AConcreteMethPropdef::_n_kwmeth*/ = variable[4] /*n_kwmeth*/;
6634 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::==*/)))))));
6635 if (UNTAG_Bool(variable[9])) { /*if*/
6636 variable[9] = variable[0];
6637 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[9]) /*PNode::parent=*/;
6638 }
6639 variable[9] = variable[0];
6640 ATTR_parser_nodes___AMethPropdef____n_methid(variable[9]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
6641 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::==*/)))))));
6642 if (UNTAG_Bool(variable[9])) { /*if*/
6643 variable[9] = variable[0];
6644 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
6645 }
6646 variable[9] = variable[0];
6647 ATTR_parser_nodes___AMethPropdef____n_signature(variable[9]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
6648 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::==*/)))))));
6649 if (UNTAG_Bool(variable[9])) { /*if*/
6650 variable[9] = variable[0];
6651 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
6652 }
6653 variable[9] = variable[0];
6654 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[9]) /*AConcreteMethPropdef::_n_block*/ = variable[7] /*n_block*/;
6655 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::==*/)))))));
6656 if (UNTAG_Bool(variable[9])) { /*if*/
6657 variable[9] = variable[0];
6658 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_block*/)( variable[7] /*n_block*/, variable[9]) /*PNode::parent=*/;
6659 }
6660 return_label220: while(false);
6661 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
6662 tracehead = trace.prev;
6663 return;
6664 }
6665 void parser_prod___AConcreteInitPropdef___n_doc__eq(val_t self, val_t param0) {
6666 struct trace_t trace = {NULL, NULL, 2717, LOCATE_parser_prod___AConcreteInitPropdef___n_doc__eq};
6667 val_t variable[4];
6668 void **closurevariable = NULL;
6669 trace.prev = tracehead; tracehead = &trace;
6670 trace.file = LOCATE_parser_prod;
6671 variable[0] = self;
6672 variable[1] = param0;
6673 variable[3] = variable[0];
6674 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
6675 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6676 if (UNTAG_Bool(variable[3])) { /*if*/
6677 variable[3] = variable[0];
6678 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6679 }
6680 return_label221: while(false);
6681 tracehead = trace.prev;
6682 return;
6683 }
6684 void parser_prod___AConcreteInitPropdef___n_kwredef__eq(val_t self, val_t param0) {
6685 struct trace_t trace = {NULL, NULL, 2724, LOCATE_parser_prod___AConcreteInitPropdef___n_kwredef__eq};
6686 val_t variable[4];
6687 void **closurevariable = NULL;
6688 trace.prev = tracehead; tracehead = &trace;
6689 trace.file = LOCATE_parser_prod;
6690 variable[0] = self;
6691 variable[1] = param0;
6692 variable[3] = variable[0];
6693 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
6694 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6695 if (UNTAG_Bool(variable[3])) { /*if*/
6696 variable[3] = variable[0];
6697 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6698 }
6699 return_label222: while(false);
6700 tracehead = trace.prev;
6701 return;
6702 }
6703 void parser_prod___AConcreteInitPropdef___n_visibility__eq(val_t self, val_t param0) {
6704 struct trace_t trace = {NULL, NULL, 2731, LOCATE_parser_prod___AConcreteInitPropdef___n_visibility__eq};
6705 val_t variable[4];
6706 void **closurevariable = NULL;
6707 trace.prev = tracehead; tracehead = &trace;
6708 trace.file = LOCATE_parser_prod;
6709 variable[0] = self;
6710 variable[1] = param0;
6711 variable[3] = variable[0];
6712 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ = variable[1] /*n*/;
6713 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6714 if (UNTAG_Bool(variable[3])) { /*if*/
6715 variable[3] = variable[0];
6716 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6717 }
6718 return_label223: while(false);
6719 tracehead = trace.prev;
6720 return;
6721 }
6722 void parser_prod___AConcreteInitPropdef___n_methid__eq(val_t self, val_t param0) {
6723 struct trace_t trace = {NULL, NULL, 2745, LOCATE_parser_prod___AConcreteInitPropdef___n_methid__eq};
6724 val_t variable[4];
6725 void **closurevariable = NULL;
6726 trace.prev = tracehead; tracehead = &trace;
6727 trace.file = LOCATE_parser_prod;
6728 variable[0] = self;
6729 variable[1] = param0;
6730 variable[3] = variable[0];
6731 ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ = variable[1] /*n*/;
6732 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6733 if (UNTAG_Bool(variable[3])) { /*if*/
6734 variable[3] = variable[0];
6735 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6736 }
6737 return_label224: while(false);
6738 tracehead = trace.prev;
6739 return;
6740 }
6741 void parser_prod___AConcreteInitPropdef___n_signature__eq(val_t self, val_t param0) {
6742 struct trace_t trace = {NULL, NULL, 2752, LOCATE_parser_prod___AConcreteInitPropdef___n_signature__eq};
6743 val_t variable[4];
6744 void **closurevariable = NULL;
6745 trace.prev = tracehead; tracehead = &trace;
6746 trace.file = LOCATE_parser_prod;
6747 variable[0] = self;
6748 variable[1] = param0;
6749 variable[3] = variable[0];
6750 ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ = variable[1] /*n*/;
6751 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6752 if (UNTAG_Bool(variable[3])) { /*if*/
6753 variable[3] = variable[0];
6754 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6755 }
6756 return_label225: while(false);
6757 tracehead = trace.prev;
6758 return;
6759 }
6760 void parser_prod___AConcreteInitPropdef___n_block__eq(val_t self, val_t param0) {
6761 struct trace_t trace = {NULL, NULL, 2759, LOCATE_parser_prod___AConcreteInitPropdef___n_block__eq};
6762 val_t variable[4];
6763 void **closurevariable = NULL;
6764 trace.prev = tracehead; tracehead = &trace;
6765 trace.file = LOCATE_parser_prod;
6766 variable[0] = self;
6767 variable[1] = param0;
6768 variable[3] = variable[0];
6769 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/ = variable[1] /*n*/;
6770 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6771 if (UNTAG_Bool(variable[3])) { /*if*/
6772 variable[3] = variable[0];
6773 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6774 }
6775 return_label226: while(false);
6776 tracehead = trace.prev;
6777 return;
6778 }
6779 void parser_prod___AConcreteInitPropdef___n_kwinit__eq(val_t self, val_t param0) {
6780 struct trace_t trace = {NULL, NULL, 2738, LOCATE_parser_prod___AConcreteInitPropdef___n_kwinit__eq};
6781 val_t variable[4];
6782 void **closurevariable = NULL;
6783 trace.prev = tracehead; tracehead = &trace;
6784 trace.file = LOCATE_parser_prod;
6785 variable[0] = self;
6786 variable[1] = param0;
6787 variable[3] = variable[0];
6788 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/ = variable[1] /*n*/;
6789 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6790 if (UNTAG_Bool(variable[3])) { /*if*/
6791 variable[3] = variable[0];
6792 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
6793 }
6794 return_label227: while(false);
6795 tracehead = trace.prev;
6796 return;
6797 }
6798 void parser_prod___AConcreteInitPropdef___replace_child(val_t self, val_t param0, val_t param1) {
6799 struct trace_t trace = {NULL, NULL, 2810, LOCATE_parser_prod___AConcreteInitPropdef___replace_child};
6800 val_t variable[5];
6801 void **closurevariable = NULL;
6802 trace.prev = tracehead; tracehead = &trace;
6803 trace.file = LOCATE_parser_prod;
6804 variable[0] = self;
6805 variable[1] = param0;
6806 variable[2] = param1;
6807 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::==*/)))))));
6808 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, 2812); nit_exit(1);}
6809 variable[4] = variable[0];
6810 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
6811 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6812 if (UNTAG_Bool(variable[4])) { /*if*/
6813 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6814 if (UNTAG_Bool(variable[4])) { /*if*/
6815 variable[4] = variable[0];
6816 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6817 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
6818 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, 2816); nit_exit(1);}
6819 variable[4] = variable[0];
6820 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
6821 } else { /*if*/
6822 variable[4] = variable[0];
6823 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
6824 }
6825 goto return_label228;
6826 }
6827 variable[4] = variable[0];
6828 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
6829 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6830 if (UNTAG_Bool(variable[4])) { /*if*/
6831 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6832 if (UNTAG_Bool(variable[4])) { /*if*/
6833 variable[4] = variable[0];
6834 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6835 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6836 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, 2826); nit_exit(1);}
6837 variable[4] = variable[0];
6838 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
6839 } else { /*if*/
6840 variable[4] = variable[0];
6841 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
6842 }
6843 goto return_label228;
6844 }
6845 variable[4] = variable[0];
6846 variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
6847 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6848 if (UNTAG_Bool(variable[4])) { /*if*/
6849 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6850 if (UNTAG_Bool(variable[4])) { /*if*/
6851 variable[4] = variable[0];
6852 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6853 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
6854 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, 2836); nit_exit(1);}
6855 variable[4] = variable[0];
6856 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = variable[2] /*new_child*/;
6857 } else { /*if*/
6858 variable[4] = variable[0];
6859 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
6860 }
6861 goto return_label228;
6862 }
6863 variable[4] = variable[0];
6864 variable[4] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[4]) /*AConcreteInitPropdef::_n_kwinit*/;
6865 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6866 if (UNTAG_Bool(variable[4])) { /*if*/
6867 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6868 if (UNTAG_Bool(variable[4])) { /*if*/
6869 variable[4] = variable[0];
6870 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6871 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
6872 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, 2846); nit_exit(1);}
6873 variable[4] = variable[0];
6874 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[4]) /*AConcreteInitPropdef::_n_kwinit*/ = variable[2] /*new_child*/;
6875 } else { /*if*/
6876 variable[4] = variable[0];
6877 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[4]) /*AConcreteInitPropdef::_n_kwinit*/ = NIT_NULL /*null*/;
6878 }
6879 goto return_label228;
6880 }
6881 variable[4] = variable[0];
6882 variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
6883 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6884 if (UNTAG_Bool(variable[4])) { /*if*/
6885 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6886 if (UNTAG_Bool(variable[4])) { /*if*/
6887 variable[4] = variable[0];
6888 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6889 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
6890 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, 2856); nit_exit(1);}
6891 variable[4] = variable[0];
6892 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = variable[2] /*new_child*/;
6893 } else { /*if*/
6894 variable[4] = variable[0];
6895 ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
6896 }
6897 goto return_label228;
6898 }
6899 variable[4] = variable[0];
6900 variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
6901 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6902 if (UNTAG_Bool(variable[4])) { /*if*/
6903 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6904 if (UNTAG_Bool(variable[4])) { /*if*/
6905 variable[4] = variable[0];
6906 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6907 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
6908 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, 2866); nit_exit(1);}
6909 variable[4] = variable[0];
6910 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = variable[2] /*new_child*/;
6911 } else { /*if*/
6912 variable[4] = variable[0];
6913 ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
6914 }
6915 goto return_label228;
6916 }
6917 variable[4] = variable[0];
6918 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/;
6919 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
6920 if (UNTAG_Bool(variable[4])) { /*if*/
6921 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
6922 if (UNTAG_Bool(variable[4])) { /*if*/
6923 variable[4] = variable[0];
6924 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
6925 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
6926 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, 2876); nit_exit(1);}
6927 variable[4] = variable[0];
6928 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*new_child*/;
6929 } else { /*if*/
6930 variable[4] = variable[0];
6931 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ = NIT_NULL /*null*/;
6932 }
6933 goto return_label228;
6934 }
6935 return_label228: while(false);
6936 tracehead = trace.prev;
6937 return;
6938 }
6939 void parser_prod___AConcreteInitPropdef___visit_all(val_t self, val_t param0) {
6940 struct trace_t trace = {NULL, NULL, 2885, LOCATE_parser_prod___AConcreteInitPropdef___visit_all};
6941 val_t variable[4];
6942 void **closurevariable = NULL;
6943 trace.prev = tracehead; tracehead = &trace;
6944 trace.file = LOCATE_parser_prod;
6945 variable[0] = self;
6946 variable[1] = param0;
6947 variable[3] = variable[0];
6948 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6949 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6950 if (UNTAG_Bool(variable[3])) { /*if*/
6951 variable[3] = variable[0];
6952 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
6953 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6954 }
6955 variable[3] = variable[0];
6956 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6957 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6958 if (UNTAG_Bool(variable[3])) { /*if*/
6959 variable[3] = variable[0];
6960 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
6961 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6962 }
6963 variable[3] = variable[0];
6964 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6965 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6966 if (UNTAG_Bool(variable[3])) { /*if*/
6967 variable[3] = variable[0];
6968 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
6969 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6970 }
6971 variable[3] = variable[0];
6972 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
6973 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6974 if (UNTAG_Bool(variable[3])) { /*if*/
6975 variable[3] = variable[0];
6976 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
6977 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6978 }
6979 variable[3] = variable[0];
6980 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6981 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6982 if (UNTAG_Bool(variable[3])) { /*if*/
6983 variable[3] = variable[0];
6984 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
6985 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6986 }
6987 variable[3] = variable[0];
6988 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6989 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6990 if (UNTAG_Bool(variable[3])) { /*if*/
6991 variable[3] = variable[0];
6992 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
6993 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
6994 }
6995 variable[3] = variable[0];
6996 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
6997 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
6998 if (UNTAG_Bool(variable[3])) { /*if*/
6999 variable[3] = variable[0];
7000 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
7001 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7002 }
7003 return_label229: while(false);
7004 tracehead = trace.prev;
7005 return;
7006 }
7007 void parser_prod___AConcreteInitPropdef___visit_all_reverse(val_t self, val_t param0) {
7008 struct trace_t trace = {NULL, NULL, 2910, LOCATE_parser_prod___AConcreteInitPropdef___visit_all_reverse};
7009 val_t variable[4];
7010 void **closurevariable = NULL;
7011 trace.prev = tracehead; tracehead = &trace;
7012 trace.file = LOCATE_parser_prod;
7013 variable[0] = self;
7014 variable[1] = param0;
7015 variable[3] = variable[0];
7016 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
7017 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7018 if (UNTAG_Bool(variable[3])) { /*if*/
7019 variable[3] = variable[0];
7020 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
7021 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7022 }
7023 variable[3] = variable[0];
7024 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
7025 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7026 if (UNTAG_Bool(variable[3])) { /*if*/
7027 variable[3] = variable[0];
7028 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
7029 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7030 }
7031 variable[3] = variable[0];
7032 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
7033 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7034 if (UNTAG_Bool(variable[3])) { /*if*/
7035 variable[3] = variable[0];
7036 variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
7037 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7038 }
7039 variable[3] = variable[0];
7040 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
7041 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7042 if (UNTAG_Bool(variable[3])) { /*if*/
7043 variable[3] = variable[0];
7044 variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
7045 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7046 }
7047 variable[3] = variable[0];
7048 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
7049 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7050 if (UNTAG_Bool(variable[3])) { /*if*/
7051 variable[3] = variable[0];
7052 variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
7053 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7054 }
7055 variable[3] = variable[0];
7056 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
7057 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7058 if (UNTAG_Bool(variable[3])) { /*if*/
7059 variable[3] = variable[0];
7060 variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
7061 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7062 }
7063 variable[3] = variable[0];
7064 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
7065 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7066 if (UNTAG_Bool(variable[3])) { /*if*/
7067 variable[3] = variable[0];
7068 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
7069 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7070 }
7071 return_label230: while(false);
7072 tracehead = trace.prev;
7073 return;
7074 }
7075 void parser_prod___AConcreteInitPropdef___empty_init(val_t self, int* init_table) {
7076 struct trace_t trace = {NULL, NULL, 2767, LOCATE_parser_prod___AConcreteInitPropdef___empty_init};
7077 val_t variable[2];
7078 void **closurevariable = NULL;
7079 trace.prev = tracehead; tracehead = &trace;
7080 trace.file = LOCATE_parser_prod;
7081 variable[0] = self;
7082 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
7083 return_label231: while(false);
7084 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
7085 tracehead = trace.prev;
7086 return;
7087 }
7088 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) {
7089 struct trace_t trace = {NULL, NULL, 2769, LOCATE_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef};
7090 val_t variable[10];
7091 void **closurevariable = NULL;
7092 trace.prev = tracehead; tracehead = &trace;
7093 trace.file = LOCATE_parser_prod;
7094 variable[0] = self;
7095 variable[1] = param0;
7096 variable[2] = param1;
7097 variable[3] = param2;
7098 variable[4] = param3;
7099 variable[5] = param4;
7100 variable[6] = param5;
7101 variable[7] = param6;
7102 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
7103 variable[9] = variable[0];
7104 CALL_parser_prod___AConcreteInitPropdef___empty_init(variable[9])(variable[9], init_table /*YYY*/) /*AConcreteInitPropdef::empty_init*/;
7105 variable[9] = variable[0];
7106 ATTR_parser_nodes___PPropdef____n_doc(variable[9]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
7107 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::==*/)))))));
7108 if (UNTAG_Bool(variable[9])) { /*if*/
7109 variable[9] = variable[0];
7110 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
7111 }
7112 variable[9] = variable[0];
7113 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[9]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
7114 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::==*/)))))));
7115 if (UNTAG_Bool(variable[9])) { /*if*/
7116 variable[9] = variable[0];
7117 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
7118 }
7119 variable[9] = variable[0];
7120 ATTR_parser_nodes___AMethPropdef____n_visibility(variable[9]) /*AMethPropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
7121 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::==*/)))))));
7122 if (UNTAG_Bool(variable[9])) { /*if*/
7123 variable[9] = variable[0];
7124 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
7125 }
7126 variable[9] = variable[0];
7127 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[9]) /*AConcreteInitPropdef::_n_kwinit*/ = variable[4] /*n_kwinit*/;
7128 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::==*/)))))));
7129 if (UNTAG_Bool(variable[9])) { /*if*/
7130 variable[9] = variable[0];
7131 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwinit*/)( variable[4] /*n_kwinit*/, variable[9]) /*PNode::parent=*/;
7132 }
7133 variable[9] = variable[0];
7134 ATTR_parser_nodes___AMethPropdef____n_methid(variable[9]) /*AMethPropdef::_n_methid*/ = variable[5] /*n_methid*/;
7135 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::==*/)))))));
7136 if (UNTAG_Bool(variable[9])) { /*if*/
7137 variable[9] = variable[0];
7138 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
7139 }
7140 variable[9] = variable[0];
7141 ATTR_parser_nodes___AMethPropdef____n_signature(variable[9]) /*AMethPropdef::_n_signature*/ = variable[6] /*n_signature*/;
7142 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::==*/)))))));
7143 if (UNTAG_Bool(variable[9])) { /*if*/
7144 variable[9] = variable[0];
7145 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
7146 }
7147 variable[9] = variable[0];
7148 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[9]) /*AConcreteMethPropdef::_n_block*/ = variable[7] /*n_block*/;
7149 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::==*/)))))));
7150 if (UNTAG_Bool(variable[9])) { /*if*/
7151 variable[9] = variable[0];
7152 CALL_parser_prod___PNode___parent__eq( variable[7] /*n_block*/)( variable[7] /*n_block*/, variable[9]) /*PNode::parent=*/;
7153 }
7154 return_label232: while(false);
7155 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
7156 tracehead = trace.prev;
7157 return;
7158 }
7159 void parser_prod___AMainMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
7160 struct trace_t trace = {NULL, NULL, 2936, LOCATE_parser_prod___AMainMethPropdef___n_kwredef__eq};
7161 val_t variable[4];
7162 void **closurevariable = NULL;
7163 trace.prev = tracehead; tracehead = &trace;
7164 trace.file = LOCATE_parser_prod;
7165 variable[0] = self;
7166 variable[1] = param0;
7167 variable[3] = variable[0];
7168 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n*/;
7169 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7170 if (UNTAG_Bool(variable[3])) { /*if*/
7171 variable[3] = variable[0];
7172 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7173 }
7174 return_label233: while(false);
7175 tracehead = trace.prev;
7176 return;
7177 }
7178 void parser_prod___AMainMethPropdef___n_block__eq(val_t self, val_t param0) {
7179 struct trace_t trace = {NULL, NULL, 2943, LOCATE_parser_prod___AMainMethPropdef___n_block__eq};
7180 val_t variable[4];
7181 void **closurevariable = NULL;
7182 trace.prev = tracehead; tracehead = &trace;
7183 trace.file = LOCATE_parser_prod;
7184 variable[0] = self;
7185 variable[1] = param0;
7186 variable[3] = variable[0];
7187 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/ = variable[1] /*n*/;
7188 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7189 if (UNTAG_Bool(variable[3])) { /*if*/
7190 variable[3] = variable[0];
7191 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7192 }
7193 return_label234: while(false);
7194 tracehead = trace.prev;
7195 return;
7196 }
7197 void parser_prod___AMainMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
7198 struct trace_t trace = {NULL, NULL, 2969, LOCATE_parser_prod___AMainMethPropdef___replace_child};
7199 val_t variable[5];
7200 void **closurevariable = NULL;
7201 trace.prev = tracehead; tracehead = &trace;
7202 trace.file = LOCATE_parser_prod;
7203 variable[0] = self;
7204 variable[1] = param0;
7205 variable[2] = param1;
7206 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::==*/)))))));
7207 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, 2971); nit_exit(1);}
7208 variable[4] = variable[0];
7209 variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
7210 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7211 if (UNTAG_Bool(variable[4])) { /*if*/
7212 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7213 if (UNTAG_Bool(variable[4])) { /*if*/
7214 variable[4] = variable[0];
7215 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7216 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7217 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, 2975); nit_exit(1);}
7218 variable[4] = variable[0];
7219 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[2] /*new_child*/;
7220 } else { /*if*/
7221 variable[4] = variable[0];
7222 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
7223 }
7224 goto return_label235;
7225 }
7226 variable[4] = variable[0];
7227 variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/;
7228 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7229 if (UNTAG_Bool(variable[4])) { /*if*/
7230 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7231 if (UNTAG_Bool(variable[4])) { /*if*/
7232 variable[4] = variable[0];
7233 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7234 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
7235 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, 2985); nit_exit(1);}
7236 variable[4] = variable[0];
7237 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*new_child*/;
7238 } else { /*if*/
7239 variable[4] = variable[0];
7240 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ = NIT_NULL /*null*/;
7241 }
7242 goto return_label235;
7243 }
7244 return_label235: while(false);
7245 tracehead = trace.prev;
7246 return;
7247 }
7248 void parser_prod___AMainMethPropdef___visit_all(val_t self, val_t param0) {
7249 struct trace_t trace = {NULL, NULL, 2994, LOCATE_parser_prod___AMainMethPropdef___visit_all};
7250 val_t variable[4];
7251 void **closurevariable = NULL;
7252 trace.prev = tracehead; tracehead = &trace;
7253 trace.file = LOCATE_parser_prod;
7254 variable[0] = self;
7255 variable[1] = param0;
7256 variable[3] = variable[0];
7257 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
7258 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7259 if (UNTAG_Bool(variable[3])) { /*if*/
7260 variable[3] = variable[0];
7261 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
7262 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7263 }
7264 variable[3] = variable[0];
7265 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
7266 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7267 if (UNTAG_Bool(variable[3])) { /*if*/
7268 variable[3] = variable[0];
7269 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
7270 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7271 }
7272 return_label236: while(false);
7273 tracehead = trace.prev;
7274 return;
7275 }
7276 void parser_prod___AMainMethPropdef___visit_all_reverse(val_t self, val_t param0) {
7277 struct trace_t trace = {NULL, NULL, 3004, LOCATE_parser_prod___AMainMethPropdef___visit_all_reverse};
7278 val_t variable[4];
7279 void **closurevariable = NULL;
7280 trace.prev = tracehead; tracehead = &trace;
7281 trace.file = LOCATE_parser_prod;
7282 variable[0] = self;
7283 variable[1] = param0;
7284 variable[3] = variable[0];
7285 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
7286 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7287 if (UNTAG_Bool(variable[3])) { /*if*/
7288 variable[3] = variable[0];
7289 variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
7290 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7291 }
7292 variable[3] = variable[0];
7293 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
7294 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7295 if (UNTAG_Bool(variable[3])) { /*if*/
7296 variable[3] = variable[0];
7297 variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
7298 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7299 }
7300 return_label237: while(false);
7301 tracehead = trace.prev;
7302 return;
7303 }
7304 void parser_prod___AMainMethPropdef___empty_init(val_t self, int* init_table) {
7305 struct trace_t trace = {NULL, NULL, 2951, LOCATE_parser_prod___AMainMethPropdef___empty_init};
7306 val_t variable[2];
7307 void **closurevariable = NULL;
7308 trace.prev = tracehead; tracehead = &trace;
7309 trace.file = LOCATE_parser_prod;
7310 variable[0] = self;
7311 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
7312 return_label238: while(false);
7313 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
7314 tracehead = trace.prev;
7315 return;
7316 }
7317 void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t self, val_t param0, val_t param1, int* init_table) {
7318 struct trace_t trace = {NULL, NULL, 2953, LOCATE_parser_prod___AMainMethPropdef___init_amainmethpropdef};
7319 val_t variable[5];
7320 void **closurevariable = NULL;
7321 trace.prev = tracehead; tracehead = &trace;
7322 trace.file = LOCATE_parser_prod;
7323 variable[0] = self;
7324 variable[1] = param0;
7325 variable[2] = param1;
7326 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
7327 variable[4] = variable[0];
7328 CALL_parser_prod___AMainMethPropdef___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AMainMethPropdef::empty_init*/;
7329 variable[4] = variable[0];
7330 ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ = variable[1] /*n_kwredef*/;
7331 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::==*/)))))));
7332 if (UNTAG_Bool(variable[4])) { /*if*/
7333 variable[4] = variable[0];
7334 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
7335 }
7336 variable[4] = variable[0];
7337 ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ = variable[2] /*n_block*/;
7338 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::==*/)))))));
7339 if (UNTAG_Bool(variable[4])) { /*if*/
7340 variable[4] = variable[0];
7341 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_block*/)( variable[2] /*n_block*/, variable[4]) /*PNode::parent=*/;
7342 }
7343 return_label239: while(false);
7344 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
7345 tracehead = trace.prev;
7346 return;
7347 }
7348 void parser_prod___ATypePropdef___n_doc__eq(val_t self, val_t param0) {
7349 struct trace_t trace = {NULL, NULL, 3015, LOCATE_parser_prod___ATypePropdef___n_doc__eq};
7350 val_t variable[4];
7351 void **closurevariable = NULL;
7352 trace.prev = tracehead; tracehead = &trace;
7353 trace.file = LOCATE_parser_prod;
7354 variable[0] = self;
7355 variable[1] = param0;
7356 variable[3] = variable[0];
7357 ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ = variable[1] /*n*/;
7358 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7359 if (UNTAG_Bool(variable[3])) { /*if*/
7360 variable[3] = variable[0];
7361 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7362 }
7363 return_label240: while(false);
7364 tracehead = trace.prev;
7365 return;
7366 }
7367 void parser_prod___ATypePropdef___n_kwredef__eq(val_t self, val_t param0) {
7368 struct trace_t trace = {NULL, NULL, 3022, LOCATE_parser_prod___ATypePropdef___n_kwredef__eq};
7369 val_t variable[4];
7370 void **closurevariable = NULL;
7371 trace.prev = tracehead; tracehead = &trace;
7372 trace.file = LOCATE_parser_prod;
7373 variable[0] = self;
7374 variable[1] = param0;
7375 variable[3] = variable[0];
7376 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/ = variable[1] /*n*/;
7377 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7378 if (UNTAG_Bool(variable[3])) { /*if*/
7379 variable[3] = variable[0];
7380 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7381 }
7382 return_label241: while(false);
7383 tracehead = trace.prev;
7384 return;
7385 }
7386 void parser_prod___ATypePropdef___n_visibility__eq(val_t self, val_t param0) {
7387 struct trace_t trace = {NULL, NULL, 3029, LOCATE_parser_prod___ATypePropdef___n_visibility__eq};
7388 val_t variable[4];
7389 void **closurevariable = NULL;
7390 trace.prev = tracehead; tracehead = &trace;
7391 trace.file = LOCATE_parser_prod;
7392 variable[0] = self;
7393 variable[1] = param0;
7394 variable[3] = variable[0];
7395 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/ = variable[1] /*n*/;
7396 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7397 if (UNTAG_Bool(variable[3])) { /*if*/
7398 variable[3] = variable[0];
7399 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7400 }
7401 return_label242: while(false);
7402 tracehead = trace.prev;
7403 return;
7404 }
7405 void parser_prod___ATypePropdef___n_kwtype__eq(val_t self, val_t param0) {
7406 struct trace_t trace = {NULL, NULL, 3036, LOCATE_parser_prod___ATypePropdef___n_kwtype__eq};
7407 val_t variable[4];
7408 void **closurevariable = NULL;
7409 trace.prev = tracehead; tracehead = &trace;
7410 trace.file = LOCATE_parser_prod;
7411 variable[0] = self;
7412 variable[1] = param0;
7413 variable[3] = variable[0];
7414 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/ = variable[1] /*n*/;
7415 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7416 if (UNTAG_Bool(variable[3])) { /*if*/
7417 variable[3] = variable[0];
7418 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7419 }
7420 return_label243: while(false);
7421 tracehead = trace.prev;
7422 return;
7423 }
7424 void parser_prod___ATypePropdef___n_id__eq(val_t self, val_t param0) {
7425 struct trace_t trace = {NULL, NULL, 3043, LOCATE_parser_prod___ATypePropdef___n_id__eq};
7426 val_t variable[4];
7427 void **closurevariable = NULL;
7428 trace.prev = tracehead; tracehead = &trace;
7429 trace.file = LOCATE_parser_prod;
7430 variable[0] = self;
7431 variable[1] = param0;
7432 variable[3] = variable[0];
7433 ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/ = variable[1] /*n*/;
7434 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7435 if (UNTAG_Bool(variable[3])) { /*if*/
7436 variable[3] = variable[0];
7437 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7438 }
7439 return_label244: while(false);
7440 tracehead = trace.prev;
7441 return;
7442 }
7443 void parser_prod___ATypePropdef___n_type__eq(val_t self, val_t param0) {
7444 struct trace_t trace = {NULL, NULL, 3050, LOCATE_parser_prod___ATypePropdef___n_type__eq};
7445 val_t variable[4];
7446 void **closurevariable = NULL;
7447 trace.prev = tracehead; tracehead = &trace;
7448 trace.file = LOCATE_parser_prod;
7449 variable[0] = self;
7450 variable[1] = param0;
7451 variable[3] = variable[0];
7452 ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/ = variable[1] /*n*/;
7453 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7454 if (UNTAG_Bool(variable[3])) { /*if*/
7455 variable[3] = variable[0];
7456 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7457 }
7458 return_label245: while(false);
7459 tracehead = trace.prev;
7460 return;
7461 }
7462 void parser_prod___ATypePropdef___replace_child(val_t self, val_t param0, val_t param1) {
7463 struct trace_t trace = {NULL, NULL, 3096, LOCATE_parser_prod___ATypePropdef___replace_child};
7464 val_t variable[5];
7465 void **closurevariable = NULL;
7466 trace.prev = tracehead; tracehead = &trace;
7467 trace.file = LOCATE_parser_prod;
7468 variable[0] = self;
7469 variable[1] = param0;
7470 variable[2] = param1;
7471 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::==*/)))))));
7472 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, 3098); nit_exit(1);}
7473 variable[4] = variable[0];
7474 variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
7475 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7476 if (UNTAG_Bool(variable[4])) { /*if*/
7477 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7478 if (UNTAG_Bool(variable[4])) { /*if*/
7479 variable[4] = variable[0];
7480 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7481 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
7482 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, 3102); nit_exit(1);}
7483 variable[4] = variable[0];
7484 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = variable[2] /*new_child*/;
7485 } else { /*if*/
7486 variable[4] = variable[0];
7487 ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/ = NIT_NULL /*null*/;
7488 }
7489 goto return_label246;
7490 }
7491 variable[4] = variable[0];
7492 variable[4] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[4]) /*ATypePropdef::_n_kwredef*/;
7493 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7494 if (UNTAG_Bool(variable[4])) { /*if*/
7495 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7496 if (UNTAG_Bool(variable[4])) { /*if*/
7497 variable[4] = variable[0];
7498 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7499 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7500 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, 3112); nit_exit(1);}
7501 variable[4] = variable[0];
7502 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[4]) /*ATypePropdef::_n_kwredef*/ = variable[2] /*new_child*/;
7503 } else { /*if*/
7504 variable[4] = variable[0];
7505 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[4]) /*ATypePropdef::_n_kwredef*/ = NIT_NULL /*null*/;
7506 }
7507 goto return_label246;
7508 }
7509 variable[4] = variable[0];
7510 variable[4] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[4]) /*ATypePropdef::_n_visibility*/;
7511 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7512 if (UNTAG_Bool(variable[4])) { /*if*/
7513 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7514 if (UNTAG_Bool(variable[4])) { /*if*/
7515 variable[4] = variable[0];
7516 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7517 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
7518 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, 3122); nit_exit(1);}
7519 variable[4] = variable[0];
7520 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[4]) /*ATypePropdef::_n_visibility*/ = variable[2] /*new_child*/;
7521 } else { /*if*/
7522 variable[4] = variable[0];
7523 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[4]) /*ATypePropdef::_n_visibility*/ = NIT_NULL /*null*/;
7524 }
7525 goto return_label246;
7526 }
7527 variable[4] = variable[0];
7528 variable[4] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[4]) /*ATypePropdef::_n_kwtype*/;
7529 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7530 if (UNTAG_Bool(variable[4])) { /*if*/
7531 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7532 if (UNTAG_Bool(variable[4])) { /*if*/
7533 variable[4] = variable[0];
7534 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7535 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
7536 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, 3132); nit_exit(1);}
7537 variable[4] = variable[0];
7538 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[4]) /*ATypePropdef::_n_kwtype*/ = variable[2] /*new_child*/;
7539 } else { /*if*/
7540 variable[4] = variable[0];
7541 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[4]) /*ATypePropdef::_n_kwtype*/ = NIT_NULL /*null*/;
7542 }
7543 goto return_label246;
7544 }
7545 variable[4] = variable[0];
7546 variable[4] = ATTR_parser_nodes___ATypePropdef____n_id(variable[4]) /*ATypePropdef::_n_id*/;
7547 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7548 if (UNTAG_Bool(variable[4])) { /*if*/
7549 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7550 if (UNTAG_Bool(variable[4])) { /*if*/
7551 variable[4] = variable[0];
7552 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7553 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
7554 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, 3142); nit_exit(1);}
7555 variable[4] = variable[0];
7556 ATTR_parser_nodes___ATypePropdef____n_id(variable[4]) /*ATypePropdef::_n_id*/ = variable[2] /*new_child*/;
7557 } else { /*if*/
7558 variable[4] = variable[0];
7559 ATTR_parser_nodes___ATypePropdef____n_id(variable[4]) /*ATypePropdef::_n_id*/ = NIT_NULL /*null*/;
7560 }
7561 goto return_label246;
7562 }
7563 variable[4] = variable[0];
7564 variable[4] = ATTR_parser_nodes___ATypePropdef____n_type(variable[4]) /*ATypePropdef::_n_type*/;
7565 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7566 if (UNTAG_Bool(variable[4])) { /*if*/
7567 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7568 if (UNTAG_Bool(variable[4])) { /*if*/
7569 variable[4] = variable[0];
7570 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7571 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
7572 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, 3152); nit_exit(1);}
7573 variable[4] = variable[0];
7574 ATTR_parser_nodes___ATypePropdef____n_type(variable[4]) /*ATypePropdef::_n_type*/ = variable[2] /*new_child*/;
7575 } else { /*if*/
7576 variable[4] = variable[0];
7577 ATTR_parser_nodes___ATypePropdef____n_type(variable[4]) /*ATypePropdef::_n_type*/ = NIT_NULL /*null*/;
7578 }
7579 goto return_label246;
7580 }
7581 return_label246: while(false);
7582 tracehead = trace.prev;
7583 return;
7584 }
7585 void parser_prod___ATypePropdef___visit_all(val_t self, val_t param0) {
7586 struct trace_t trace = {NULL, NULL, 3161, LOCATE_parser_prod___ATypePropdef___visit_all};
7587 val_t variable[4];
7588 void **closurevariable = NULL;
7589 trace.prev = tracehead; tracehead = &trace;
7590 trace.file = LOCATE_parser_prod;
7591 variable[0] = self;
7592 variable[1] = param0;
7593 variable[3] = variable[0];
7594 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
7595 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7596 if (UNTAG_Bool(variable[3])) { /*if*/
7597 variable[3] = variable[0];
7598 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
7599 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7600 }
7601 variable[3] = variable[0];
7602 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
7603 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7604 if (UNTAG_Bool(variable[3])) { /*if*/
7605 variable[3] = variable[0];
7606 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
7607 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7608 }
7609 variable[3] = variable[0];
7610 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
7611 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7612 if (UNTAG_Bool(variable[3])) { /*if*/
7613 variable[3] = variable[0];
7614 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
7615 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7616 }
7617 variable[3] = variable[0];
7618 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
7619 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7620 if (UNTAG_Bool(variable[3])) { /*if*/
7621 variable[3] = variable[0];
7622 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
7623 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7624 }
7625 variable[3] = variable[0];
7626 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
7627 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7628 if (UNTAG_Bool(variable[3])) { /*if*/
7629 variable[3] = variable[0];
7630 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
7631 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7632 }
7633 variable[3] = variable[0];
7634 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
7635 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7636 if (UNTAG_Bool(variable[3])) { /*if*/
7637 variable[3] = variable[0];
7638 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
7639 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7640 }
7641 return_label247: while(false);
7642 tracehead = trace.prev;
7643 return;
7644 }
7645 void parser_prod___ATypePropdef___visit_all_reverse(val_t self, val_t param0) {
7646 struct trace_t trace = {NULL, NULL, 3183, LOCATE_parser_prod___ATypePropdef___visit_all_reverse};
7647 val_t variable[4];
7648 void **closurevariable = NULL;
7649 trace.prev = tracehead; tracehead = &trace;
7650 trace.file = LOCATE_parser_prod;
7651 variable[0] = self;
7652 variable[1] = param0;
7653 variable[3] = variable[0];
7654 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
7655 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7656 if (UNTAG_Bool(variable[3])) { /*if*/
7657 variable[3] = variable[0];
7658 variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
7659 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7660 }
7661 variable[3] = variable[0];
7662 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
7663 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7664 if (UNTAG_Bool(variable[3])) { /*if*/
7665 variable[3] = variable[0];
7666 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
7667 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7668 }
7669 variable[3] = variable[0];
7670 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
7671 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7672 if (UNTAG_Bool(variable[3])) { /*if*/
7673 variable[3] = variable[0];
7674 variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
7675 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7676 }
7677 variable[3] = variable[0];
7678 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
7679 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7680 if (UNTAG_Bool(variable[3])) { /*if*/
7681 variable[3] = variable[0];
7682 variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
7683 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7684 }
7685 variable[3] = variable[0];
7686 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
7687 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7688 if (UNTAG_Bool(variable[3])) { /*if*/
7689 variable[3] = variable[0];
7690 variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
7691 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7692 }
7693 variable[3] = variable[0];
7694 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
7695 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7696 if (UNTAG_Bool(variable[3])) { /*if*/
7697 variable[3] = variable[0];
7698 variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
7699 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7700 }
7701 return_label248: while(false);
7702 tracehead = trace.prev;
7703 return;
7704 }
7705 void parser_prod___ATypePropdef___empty_init(val_t self, int* init_table) {
7706 struct trace_t trace = {NULL, NULL, 3058, LOCATE_parser_prod___ATypePropdef___empty_init};
7707 val_t variable[2];
7708 void **closurevariable = NULL;
7709 trace.prev = tracehead; tracehead = &trace;
7710 trace.file = LOCATE_parser_prod;
7711 variable[0] = self;
7712 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
7713 return_label249: while(false);
7714 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
7715 tracehead = trace.prev;
7716 return;
7717 }
7718 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) {
7719 struct trace_t trace = {NULL, NULL, 3060, LOCATE_parser_prod___ATypePropdef___init_atypepropdef};
7720 val_t variable[9];
7721 void **closurevariable = NULL;
7722 trace.prev = tracehead; tracehead = &trace;
7723 trace.file = LOCATE_parser_prod;
7724 variable[0] = self;
7725 variable[1] = param0;
7726 variable[2] = param1;
7727 variable[3] = param2;
7728 variable[4] = param3;
7729 variable[5] = param4;
7730 variable[6] = param5;
7731 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
7732 variable[8] = variable[0];
7733 CALL_parser_prod___ATypePropdef___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*ATypePropdef::empty_init*/;
7734 variable[8] = variable[0];
7735 ATTR_parser_nodes___PPropdef____n_doc(variable[8]) /*PPropdef::_n_doc*/ = variable[1] /*n_doc*/;
7736 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::==*/)))))));
7737 if (UNTAG_Bool(variable[8])) { /*if*/
7738 variable[8] = variable[0];
7739 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
7740 }
7741 variable[8] = variable[0];
7742 ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[8]) /*ATypePropdef::_n_kwredef*/ = variable[2] /*n_kwredef*/;
7743 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::==*/)))))));
7744 if (UNTAG_Bool(variable[8])) { /*if*/
7745 variable[8] = variable[0];
7746 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
7747 }
7748 variable[8] = variable[0];
7749 ATTR_parser_nodes___ATypePropdef____n_visibility(variable[8]) /*ATypePropdef::_n_visibility*/ = variable[3] /*n_visibility*/;
7750 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::==*/)))))));
7751 if (UNTAG_Bool(variable[8])) { /*if*/
7752 variable[8] = variable[0];
7753 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
7754 }
7755 variable[8] = variable[0];
7756 ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[8]) /*ATypePropdef::_n_kwtype*/ = variable[4] /*n_kwtype*/;
7757 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::==*/)))))));
7758 if (UNTAG_Bool(variable[8])) { /*if*/
7759 variable[8] = variable[0];
7760 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwtype*/)( variable[4] /*n_kwtype*/, variable[8]) /*PNode::parent=*/;
7761 }
7762 variable[8] = variable[0];
7763 ATTR_parser_nodes___ATypePropdef____n_id(variable[8]) /*ATypePropdef::_n_id*/ = variable[5] /*n_id*/;
7764 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::==*/)))))));
7765 if (UNTAG_Bool(variable[8])) { /*if*/
7766 variable[8] = variable[0];
7767 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_id*/)( variable[5] /*n_id*/, variable[8]) /*PNode::parent=*/;
7768 }
7769 variable[8] = variable[0];
7770 ATTR_parser_nodes___ATypePropdef____n_type(variable[8]) /*ATypePropdef::_n_type*/ = variable[6] /*n_type*/;
7771 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::==*/)))))));
7772 if (UNTAG_Bool(variable[8])) { /*if*/
7773 variable[8] = variable[0];
7774 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_type*/)( variable[6] /*n_type*/, variable[8]) /*PNode::parent=*/;
7775 }
7776 return_label250: while(false);
7777 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
7778 tracehead = trace.prev;
7779 return;
7780 }
7781 void parser_prod___AReadAble___n_kwredef__eq(val_t self, val_t param0) {
7782 struct trace_t trace = {NULL, NULL, 3206, LOCATE_parser_prod___AReadAble___n_kwredef__eq};
7783 val_t variable[4];
7784 void **closurevariable = NULL;
7785 trace.prev = tracehead; tracehead = &trace;
7786 trace.file = LOCATE_parser_prod;
7787 variable[0] = self;
7788 variable[1] = param0;
7789 variable[3] = variable[0];
7790 ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/ = variable[1] /*n*/;
7791 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7792 if (UNTAG_Bool(variable[3])) { /*if*/
7793 variable[3] = variable[0];
7794 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7795 }
7796 return_label251: while(false);
7797 tracehead = trace.prev;
7798 return;
7799 }
7800 void parser_prod___AReadAble___n_kwreadable__eq(val_t self, val_t param0) {
7801 struct trace_t trace = {NULL, NULL, 3213, LOCATE_parser_prod___AReadAble___n_kwreadable__eq};
7802 val_t variable[4];
7803 void **closurevariable = NULL;
7804 trace.prev = tracehead; tracehead = &trace;
7805 trace.file = LOCATE_parser_prod;
7806 variable[0] = self;
7807 variable[1] = param0;
7808 variable[3] = variable[0];
7809 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/ = variable[1] /*n*/;
7810 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7811 if (UNTAG_Bool(variable[3])) { /*if*/
7812 variable[3] = variable[0];
7813 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7814 }
7815 return_label252: while(false);
7816 tracehead = trace.prev;
7817 return;
7818 }
7819 void parser_prod___AReadAble___replace_child(val_t self, val_t param0, val_t param1) {
7820 struct trace_t trace = {NULL, NULL, 3239, LOCATE_parser_prod___AReadAble___replace_child};
7821 val_t variable[5];
7822 void **closurevariable = NULL;
7823 trace.prev = tracehead; tracehead = &trace;
7824 trace.file = LOCATE_parser_prod;
7825 variable[0] = self;
7826 variable[1] = param0;
7827 variable[2] = param1;
7828 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::==*/)))))));
7829 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, 3241); nit_exit(1);}
7830 variable[4] = variable[0];
7831 variable[4] = ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/;
7832 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7833 if (UNTAG_Bool(variable[4])) { /*if*/
7834 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7835 if (UNTAG_Bool(variable[4])) { /*if*/
7836 variable[4] = variable[0];
7837 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7838 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7839 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, 3245); nit_exit(1);}
7840 variable[4] = variable[0];
7841 ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ = variable[2] /*new_child*/;
7842 } else { /*if*/
7843 variable[4] = variable[0];
7844 ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ = NIT_NULL /*null*/;
7845 }
7846 goto return_label253;
7847 }
7848 variable[4] = variable[0];
7849 variable[4] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[4]) /*AReadAble::_n_kwreadable*/;
7850 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
7851 if (UNTAG_Bool(variable[4])) { /*if*/
7852 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7853 if (UNTAG_Bool(variable[4])) { /*if*/
7854 variable[4] = variable[0];
7855 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
7856 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
7857 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, 3255); nit_exit(1);}
7858 variable[4] = variable[0];
7859 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[4]) /*AReadAble::_n_kwreadable*/ = variable[2] /*new_child*/;
7860 } else { /*if*/
7861 variable[4] = variable[0];
7862 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[4]) /*AReadAble::_n_kwreadable*/ = NIT_NULL /*null*/;
7863 }
7864 goto return_label253;
7865 }
7866 return_label253: while(false);
7867 tracehead = trace.prev;
7868 return;
7869 }
7870 void parser_prod___AReadAble___visit_all(val_t self, val_t param0) {
7871 struct trace_t trace = {NULL, NULL, 3264, LOCATE_parser_prod___AReadAble___visit_all};
7872 val_t variable[4];
7873 void **closurevariable = NULL;
7874 trace.prev = tracehead; tracehead = &trace;
7875 trace.file = LOCATE_parser_prod;
7876 variable[0] = self;
7877 variable[1] = param0;
7878 variable[3] = variable[0];
7879 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
7880 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7881 if (UNTAG_Bool(variable[3])) { /*if*/
7882 variable[3] = variable[0];
7883 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
7884 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7885 }
7886 variable[3] = variable[0];
7887 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
7888 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7889 if (UNTAG_Bool(variable[3])) { /*if*/
7890 variable[3] = variable[0];
7891 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
7892 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7893 }
7894 return_label254: while(false);
7895 tracehead = trace.prev;
7896 return;
7897 }
7898 void parser_prod___AReadAble___visit_all_reverse(val_t self, val_t param0) {
7899 struct trace_t trace = {NULL, NULL, 3274, LOCATE_parser_prod___AReadAble___visit_all_reverse};
7900 val_t variable[4];
7901 void **closurevariable = NULL;
7902 trace.prev = tracehead; tracehead = &trace;
7903 trace.file = LOCATE_parser_prod;
7904 variable[0] = self;
7905 variable[1] = param0;
7906 variable[3] = variable[0];
7907 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
7908 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7909 if (UNTAG_Bool(variable[3])) { /*if*/
7910 variable[3] = variable[0];
7911 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
7912 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7913 }
7914 variable[3] = variable[0];
7915 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
7916 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
7917 if (UNTAG_Bool(variable[3])) { /*if*/
7918 variable[3] = variable[0];
7919 variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
7920 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
7921 }
7922 return_label255: while(false);
7923 tracehead = trace.prev;
7924 return;
7925 }
7926 void parser_prod___AReadAble___empty_init(val_t self, int* init_table) {
7927 struct trace_t trace = {NULL, NULL, 3221, LOCATE_parser_prod___AReadAble___empty_init};
7928 val_t variable[2];
7929 void **closurevariable = NULL;
7930 trace.prev = tracehead; tracehead = &trace;
7931 trace.file = LOCATE_parser_prod;
7932 variable[0] = self;
7933 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i]) return;
7934 return_label256: while(false);
7935 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i] = 1;
7936 tracehead = trace.prev;
7937 return;
7938 }
7939 void parser_prod___AReadAble___init_areadable(val_t self, val_t param0, val_t param1, int* init_table) {
7940 struct trace_t trace = {NULL, NULL, 3223, LOCATE_parser_prod___AReadAble___init_areadable};
7941 val_t variable[5];
7942 void **closurevariable = NULL;
7943 trace.prev = tracehead; tracehead = &trace;
7944 trace.file = LOCATE_parser_prod;
7945 variable[0] = self;
7946 variable[1] = param0;
7947 variable[2] = param1;
7948 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i]) return;
7949 variable[4] = variable[0];
7950 CALL_parser_prod___AReadAble___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AReadAble::empty_init*/;
7951 variable[4] = variable[0];
7952 ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ = variable[1] /*n_kwredef*/;
7953 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::==*/)))))));
7954 if (UNTAG_Bool(variable[4])) { /*if*/
7955 variable[4] = variable[0];
7956 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
7957 }
7958 variable[4] = variable[0];
7959 ATTR_parser_nodes___AReadAble____n_kwreadable(variable[4]) /*AReadAble::_n_kwreadable*/ = variable[2] /*n_kwreadable*/;
7960 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::==*/)))))));
7961 if (UNTAG_Bool(variable[4])) { /*if*/
7962 variable[4] = variable[0];
7963 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwreadable*/)( variable[2] /*n_kwreadable*/, variable[4]) /*PNode::parent=*/;
7964 }
7965 return_label257: while(false);
7966 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i] = 1;
7967 tracehead = trace.prev;
7968 return;
7969 }
7970 void parser_prod___AWriteAble___n_kwredef__eq(val_t self, val_t param0) {
7971 struct trace_t trace = {NULL, NULL, 3285, LOCATE_parser_prod___AWriteAble___n_kwredef__eq};
7972 val_t variable[4];
7973 void **closurevariable = NULL;
7974 trace.prev = tracehead; tracehead = &trace;
7975 trace.file = LOCATE_parser_prod;
7976 variable[0] = self;
7977 variable[1] = param0;
7978 variable[3] = variable[0];
7979 ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/ = variable[1] /*n*/;
7980 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
7981 if (UNTAG_Bool(variable[3])) { /*if*/
7982 variable[3] = variable[0];
7983 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
7984 }
7985 return_label258: while(false);
7986 tracehead = trace.prev;
7987 return;
7988 }
7989 void parser_prod___AWriteAble___n_kwwritable__eq(val_t self, val_t param0) {
7990 struct trace_t trace = {NULL, NULL, 3292, LOCATE_parser_prod___AWriteAble___n_kwwritable__eq};
7991 val_t variable[4];
7992 void **closurevariable = NULL;
7993 trace.prev = tracehead; tracehead = &trace;
7994 trace.file = LOCATE_parser_prod;
7995 variable[0] = self;
7996 variable[1] = param0;
7997 variable[3] = variable[0];
7998 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/ = variable[1] /*n*/;
7999 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8000 if (UNTAG_Bool(variable[3])) { /*if*/
8001 variable[3] = variable[0];
8002 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8003 }
8004 return_label259: while(false);
8005 tracehead = trace.prev;
8006 return;
8007 }
8008 void parser_prod___AWriteAble___replace_child(val_t self, val_t param0, val_t param1) {
8009 struct trace_t trace = {NULL, NULL, 3318, LOCATE_parser_prod___AWriteAble___replace_child};
8010 val_t variable[5];
8011 void **closurevariable = NULL;
8012 trace.prev = tracehead; tracehead = &trace;
8013 trace.file = LOCATE_parser_prod;
8014 variable[0] = self;
8015 variable[1] = param0;
8016 variable[2] = param1;
8017 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::==*/)))))));
8018 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, 3320); nit_exit(1);}
8019 variable[4] = variable[0];
8020 variable[4] = ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/;
8021 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8022 if (UNTAG_Bool(variable[4])) { /*if*/
8023 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8024 if (UNTAG_Bool(variable[4])) { /*if*/
8025 variable[4] = variable[0];
8026 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8027 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8028 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, 3324); nit_exit(1);}
8029 variable[4] = variable[0];
8030 ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ = variable[2] /*new_child*/;
8031 } else { /*if*/
8032 variable[4] = variable[0];
8033 ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ = NIT_NULL /*null*/;
8034 }
8035 goto return_label260;
8036 }
8037 variable[4] = variable[0];
8038 variable[4] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[4]) /*AWriteAble::_n_kwwritable*/;
8039 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8040 if (UNTAG_Bool(variable[4])) { /*if*/
8041 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8042 if (UNTAG_Bool(variable[4])) { /*if*/
8043 variable[4] = variable[0];
8044 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8045 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
8046 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, 3334); nit_exit(1);}
8047 variable[4] = variable[0];
8048 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[4]) /*AWriteAble::_n_kwwritable*/ = variable[2] /*new_child*/;
8049 } else { /*if*/
8050 variable[4] = variable[0];
8051 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[4]) /*AWriteAble::_n_kwwritable*/ = NIT_NULL /*null*/;
8052 }
8053 goto return_label260;
8054 }
8055 return_label260: while(false);
8056 tracehead = trace.prev;
8057 return;
8058 }
8059 void parser_prod___AWriteAble___visit_all(val_t self, val_t param0) {
8060 struct trace_t trace = {NULL, NULL, 3343, LOCATE_parser_prod___AWriteAble___visit_all};
8061 val_t variable[4];
8062 void **closurevariable = NULL;
8063 trace.prev = tracehead; tracehead = &trace;
8064 trace.file = LOCATE_parser_prod;
8065 variable[0] = self;
8066 variable[1] = param0;
8067 variable[3] = variable[0];
8068 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
8069 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8070 if (UNTAG_Bool(variable[3])) { /*if*/
8071 variable[3] = variable[0];
8072 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
8073 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8074 }
8075 variable[3] = variable[0];
8076 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
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 variable[3] = variable[0];
8080 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
8081 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8082 }
8083 return_label261: while(false);
8084 tracehead = trace.prev;
8085 return;
8086 }
8087 void parser_prod___AWriteAble___visit_all_reverse(val_t self, val_t param0) {
8088 struct trace_t trace = {NULL, NULL, 3353, LOCATE_parser_prod___AWriteAble___visit_all_reverse};
8089 val_t variable[4];
8090 void **closurevariable = NULL;
8091 trace.prev = tracehead; tracehead = &trace;
8092 trace.file = LOCATE_parser_prod;
8093 variable[0] = self;
8094 variable[1] = param0;
8095 variable[3] = variable[0];
8096 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
8097 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8098 if (UNTAG_Bool(variable[3])) { /*if*/
8099 variable[3] = variable[0];
8100 variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
8101 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8102 }
8103 variable[3] = variable[0];
8104 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
8105 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8106 if (UNTAG_Bool(variable[3])) { /*if*/
8107 variable[3] = variable[0];
8108 variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
8109 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8110 }
8111 return_label262: while(false);
8112 tracehead = trace.prev;
8113 return;
8114 }
8115 void parser_prod___AWriteAble___empty_init(val_t self, int* init_table) {
8116 struct trace_t trace = {NULL, NULL, 3300, LOCATE_parser_prod___AWriteAble___empty_init};
8117 val_t variable[2];
8118 void **closurevariable = NULL;
8119 trace.prev = tracehead; tracehead = &trace;
8120 trace.file = LOCATE_parser_prod;
8121 variable[0] = self;
8122 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i]) return;
8123 return_label263: while(false);
8124 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
8125 tracehead = trace.prev;
8126 return;
8127 }
8128 void parser_prod___AWriteAble___init_awriteable(val_t self, val_t param0, val_t param1, int* init_table) {
8129 struct trace_t trace = {NULL, NULL, 3302, LOCATE_parser_prod___AWriteAble___init_awriteable};
8130 val_t variable[5];
8131 void **closurevariable = NULL;
8132 trace.prev = tracehead; tracehead = &trace;
8133 trace.file = LOCATE_parser_prod;
8134 variable[0] = self;
8135 variable[1] = param0;
8136 variable[2] = param1;
8137 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i]) return;
8138 variable[4] = variable[0];
8139 CALL_parser_prod___AWriteAble___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AWriteAble::empty_init*/;
8140 variable[4] = variable[0];
8141 ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ = variable[1] /*n_kwredef*/;
8142 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::==*/)))))));
8143 if (UNTAG_Bool(variable[4])) { /*if*/
8144 variable[4] = variable[0];
8145 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
8146 }
8147 variable[4] = variable[0];
8148 ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[4]) /*AWriteAble::_n_kwwritable*/ = variable[2] /*n_kwwritable*/;
8149 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::==*/)))))));
8150 if (UNTAG_Bool(variable[4])) { /*if*/
8151 variable[4] = variable[0];
8152 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwwritable*/)( variable[2] /*n_kwwritable*/, variable[4]) /*PNode::parent=*/;
8153 }
8154 return_label264: while(false);
8155 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
8156 tracehead = trace.prev;
8157 return;
8158 }
8159 void parser_prod___AIdMethid___n_id__eq(val_t self, val_t param0) {
8160 struct trace_t trace = {NULL, NULL, 3364, LOCATE_parser_prod___AIdMethid___n_id__eq};
8161 val_t variable[4];
8162 void **closurevariable = NULL;
8163 trace.prev = tracehead; tracehead = &trace;
8164 trace.file = LOCATE_parser_prod;
8165 variable[0] = self;
8166 variable[1] = param0;
8167 variable[3] = variable[0];
8168 ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/ = variable[1] /*n*/;
8169 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8170 if (UNTAG_Bool(variable[3])) { /*if*/
8171 variable[3] = variable[0];
8172 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8173 }
8174 return_label265: while(false);
8175 tracehead = trace.prev;
8176 return;
8177 }
8178 void parser_prod___AIdMethid___replace_child(val_t self, val_t param0, val_t param1) {
8179 struct trace_t trace = {NULL, NULL, 3385, LOCATE_parser_prod___AIdMethid___replace_child};
8180 val_t variable[5];
8181 void **closurevariable = NULL;
8182 trace.prev = tracehead; tracehead = &trace;
8183 trace.file = LOCATE_parser_prod;
8184 variable[0] = self;
8185 variable[1] = param0;
8186 variable[2] = param1;
8187 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::==*/)))))));
8188 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, 3387); nit_exit(1);}
8189 variable[4] = variable[0];
8190 variable[4] = ATTR_parser_nodes___AIdMethid____n_id(variable[4]) /*AIdMethid::_n_id*/;
8191 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8192 if (UNTAG_Bool(variable[4])) { /*if*/
8193 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8194 if (UNTAG_Bool(variable[4])) { /*if*/
8195 variable[4] = variable[0];
8196 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8197 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
8198 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, 3391); nit_exit(1);}
8199 variable[4] = variable[0];
8200 ATTR_parser_nodes___AIdMethid____n_id(variable[4]) /*AIdMethid::_n_id*/ = variable[2] /*new_child*/;
8201 } else { /*if*/
8202 variable[4] = variable[0];
8203 ATTR_parser_nodes___AIdMethid____n_id(variable[4]) /*AIdMethid::_n_id*/ = NIT_NULL /*null*/;
8204 }
8205 goto return_label266;
8206 }
8207 return_label266: while(false);
8208 tracehead = trace.prev;
8209 return;
8210 }
8211 void parser_prod___AIdMethid___visit_all(val_t self, val_t param0) {
8212 struct trace_t trace = {NULL, NULL, 3400, LOCATE_parser_prod___AIdMethid___visit_all};
8213 val_t variable[4];
8214 void **closurevariable = NULL;
8215 trace.prev = tracehead; tracehead = &trace;
8216 trace.file = LOCATE_parser_prod;
8217 variable[0] = self;
8218 variable[1] = param0;
8219 variable[3] = variable[0];
8220 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
8221 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8222 if (UNTAG_Bool(variable[3])) { /*if*/
8223 variable[3] = variable[0];
8224 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
8225 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8226 }
8227 return_label267: while(false);
8228 tracehead = trace.prev;
8229 return;
8230 }
8231 void parser_prod___AIdMethid___visit_all_reverse(val_t self, val_t param0) {
8232 struct trace_t trace = {NULL, NULL, 3407, LOCATE_parser_prod___AIdMethid___visit_all_reverse};
8233 val_t variable[4];
8234 void **closurevariable = NULL;
8235 trace.prev = tracehead; tracehead = &trace;
8236 trace.file = LOCATE_parser_prod;
8237 variable[0] = self;
8238 variable[1] = param0;
8239 variable[3] = variable[0];
8240 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
8241 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8242 if (UNTAG_Bool(variable[3])) { /*if*/
8243 variable[3] = variable[0];
8244 variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
8245 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8246 }
8247 return_label268: while(false);
8248 tracehead = trace.prev;
8249 return;
8250 }
8251 void parser_prod___AIdMethid___empty_init(val_t self, int* init_table) {
8252 struct trace_t trace = {NULL, NULL, 3372, LOCATE_parser_prod___AIdMethid___empty_init};
8253 val_t variable[2];
8254 void **closurevariable = NULL;
8255 trace.prev = tracehead; tracehead = &trace;
8256 trace.file = LOCATE_parser_prod;
8257 variable[0] = self;
8258 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i]) return;
8259 return_label269: while(false);
8260 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
8261 tracehead = trace.prev;
8262 return;
8263 }
8264 void parser_prod___AIdMethid___init_aidmethid(val_t self, val_t param0, int* init_table) {
8265 struct trace_t trace = {NULL, NULL, 3374, LOCATE_parser_prod___AIdMethid___init_aidmethid};
8266 val_t variable[4];
8267 void **closurevariable = NULL;
8268 trace.prev = tracehead; tracehead = &trace;
8269 trace.file = LOCATE_parser_prod;
8270 variable[0] = self;
8271 variable[1] = param0;
8272 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i]) return;
8273 variable[3] = variable[0];
8274 CALL_parser_prod___AIdMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AIdMethid::empty_init*/;
8275 variable[3] = variable[0];
8276 ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/ = variable[1] /*n_id*/;
8277 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::==*/)))))));
8278 if (UNTAG_Bool(variable[3])) { /*if*/
8279 variable[3] = variable[0];
8280 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[3]) /*PNode::parent=*/;
8281 }
8282 return_label270: while(false);
8283 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
8284 tracehead = trace.prev;
8285 return;
8286 }
8287 void parser_prod___APlusMethid___n_plus__eq(val_t self, val_t param0) {
8288 struct trace_t trace = {NULL, NULL, 3415, LOCATE_parser_prod___APlusMethid___n_plus__eq};
8289 val_t variable[4];
8290 void **closurevariable = NULL;
8291 trace.prev = tracehead; tracehead = &trace;
8292 trace.file = LOCATE_parser_prod;
8293 variable[0] = self;
8294 variable[1] = param0;
8295 variable[3] = variable[0];
8296 ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/ = variable[1] /*n*/;
8297 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8298 if (UNTAG_Bool(variable[3])) { /*if*/
8299 variable[3] = variable[0];
8300 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8301 }
8302 return_label271: while(false);
8303 tracehead = trace.prev;
8304 return;
8305 }
8306 void parser_prod___APlusMethid___replace_child(val_t self, val_t param0, val_t param1) {
8307 struct trace_t trace = {NULL, NULL, 3436, LOCATE_parser_prod___APlusMethid___replace_child};
8308 val_t variable[5];
8309 void **closurevariable = NULL;
8310 trace.prev = tracehead; tracehead = &trace;
8311 trace.file = LOCATE_parser_prod;
8312 variable[0] = self;
8313 variable[1] = param0;
8314 variable[2] = param1;
8315 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::==*/)))))));
8316 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, 3438); nit_exit(1);}
8317 variable[4] = variable[0];
8318 variable[4] = ATTR_parser_nodes___APlusMethid____n_plus(variable[4]) /*APlusMethid::_n_plus*/;
8319 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8320 if (UNTAG_Bool(variable[4])) { /*if*/
8321 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8322 if (UNTAG_Bool(variable[4])) { /*if*/
8323 variable[4] = variable[0];
8324 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8325 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
8326 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, 3442); nit_exit(1);}
8327 variable[4] = variable[0];
8328 ATTR_parser_nodes___APlusMethid____n_plus(variable[4]) /*APlusMethid::_n_plus*/ = variable[2] /*new_child*/;
8329 } else { /*if*/
8330 variable[4] = variable[0];
8331 ATTR_parser_nodes___APlusMethid____n_plus(variable[4]) /*APlusMethid::_n_plus*/ = NIT_NULL /*null*/;
8332 }
8333 goto return_label272;
8334 }
8335 return_label272: while(false);
8336 tracehead = trace.prev;
8337 return;
8338 }
8339 void parser_prod___APlusMethid___visit_all(val_t self, val_t param0) {
8340 struct trace_t trace = {NULL, NULL, 3451, LOCATE_parser_prod___APlusMethid___visit_all};
8341 val_t variable[4];
8342 void **closurevariable = NULL;
8343 trace.prev = tracehead; tracehead = &trace;
8344 trace.file = LOCATE_parser_prod;
8345 variable[0] = self;
8346 variable[1] = param0;
8347 variable[3] = variable[0];
8348 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
8349 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8350 if (UNTAG_Bool(variable[3])) { /*if*/
8351 variable[3] = variable[0];
8352 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
8353 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8354 }
8355 return_label273: while(false);
8356 tracehead = trace.prev;
8357 return;
8358 }
8359 void parser_prod___APlusMethid___visit_all_reverse(val_t self, val_t param0) {
8360 struct trace_t trace = {NULL, NULL, 3458, LOCATE_parser_prod___APlusMethid___visit_all_reverse};
8361 val_t variable[4];
8362 void **closurevariable = NULL;
8363 trace.prev = tracehead; tracehead = &trace;
8364 trace.file = LOCATE_parser_prod;
8365 variable[0] = self;
8366 variable[1] = param0;
8367 variable[3] = variable[0];
8368 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
8369 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8370 if (UNTAG_Bool(variable[3])) { /*if*/
8371 variable[3] = variable[0];
8372 variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
8373 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8374 }
8375 return_label274: while(false);
8376 tracehead = trace.prev;
8377 return;
8378 }
8379 void parser_prod___APlusMethid___empty_init(val_t self, int* init_table) {
8380 struct trace_t trace = {NULL, NULL, 3423, LOCATE_parser_prod___APlusMethid___empty_init};
8381 val_t variable[2];
8382 void **closurevariable = NULL;
8383 trace.prev = tracehead; tracehead = &trace;
8384 trace.file = LOCATE_parser_prod;
8385 variable[0] = self;
8386 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i]) return;
8387 return_label275: while(false);
8388 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
8389 tracehead = trace.prev;
8390 return;
8391 }
8392 void parser_prod___APlusMethid___init_aplusmethid(val_t self, val_t param0, int* init_table) {
8393 struct trace_t trace = {NULL, NULL, 3425, LOCATE_parser_prod___APlusMethid___init_aplusmethid};
8394 val_t variable[4];
8395 void **closurevariable = NULL;
8396 trace.prev = tracehead; tracehead = &trace;
8397 trace.file = LOCATE_parser_prod;
8398 variable[0] = self;
8399 variable[1] = param0;
8400 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i]) return;
8401 variable[3] = variable[0];
8402 CALL_parser_prod___APlusMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APlusMethid::empty_init*/;
8403 variable[3] = variable[0];
8404 ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/ = variable[1] /*n_plus*/;
8405 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::==*/)))))));
8406 if (UNTAG_Bool(variable[3])) { /*if*/
8407 variable[3] = variable[0];
8408 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_plus*/)( variable[1] /*n_plus*/, variable[3]) /*PNode::parent=*/;
8409 }
8410 return_label276: while(false);
8411 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
8412 tracehead = trace.prev;
8413 return;
8414 }
8415 void parser_prod___AMinusMethid___n_minus__eq(val_t self, val_t param0) {
8416 struct trace_t trace = {NULL, NULL, 3466, LOCATE_parser_prod___AMinusMethid___n_minus__eq};
8417 val_t variable[4];
8418 void **closurevariable = NULL;
8419 trace.prev = tracehead; tracehead = &trace;
8420 trace.file = LOCATE_parser_prod;
8421 variable[0] = self;
8422 variable[1] = param0;
8423 variable[3] = variable[0];
8424 ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/ = variable[1] /*n*/;
8425 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8426 if (UNTAG_Bool(variable[3])) { /*if*/
8427 variable[3] = variable[0];
8428 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8429 }
8430 return_label277: while(false);
8431 tracehead = trace.prev;
8432 return;
8433 }
8434 void parser_prod___AMinusMethid___replace_child(val_t self, val_t param0, val_t param1) {
8435 struct trace_t trace = {NULL, NULL, 3487, LOCATE_parser_prod___AMinusMethid___replace_child};
8436 val_t variable[5];
8437 void **closurevariable = NULL;
8438 trace.prev = tracehead; tracehead = &trace;
8439 trace.file = LOCATE_parser_prod;
8440 variable[0] = self;
8441 variable[1] = param0;
8442 variable[2] = param1;
8443 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::==*/)))))));
8444 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, 3489); nit_exit(1);}
8445 variable[4] = variable[0];
8446 variable[4] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[4]) /*AMinusMethid::_n_minus*/;
8447 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8448 if (UNTAG_Bool(variable[4])) { /*if*/
8449 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8450 if (UNTAG_Bool(variable[4])) { /*if*/
8451 variable[4] = variable[0];
8452 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8453 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
8454 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, 3493); nit_exit(1);}
8455 variable[4] = variable[0];
8456 ATTR_parser_nodes___AMinusMethid____n_minus(variable[4]) /*AMinusMethid::_n_minus*/ = variable[2] /*new_child*/;
8457 } else { /*if*/
8458 variable[4] = variable[0];
8459 ATTR_parser_nodes___AMinusMethid____n_minus(variable[4]) /*AMinusMethid::_n_minus*/ = NIT_NULL /*null*/;
8460 }
8461 goto return_label278;
8462 }
8463 return_label278: while(false);
8464 tracehead = trace.prev;
8465 return;
8466 }
8467 void parser_prod___AMinusMethid___visit_all(val_t self, val_t param0) {
8468 struct trace_t trace = {NULL, NULL, 3502, LOCATE_parser_prod___AMinusMethid___visit_all};
8469 val_t variable[4];
8470 void **closurevariable = NULL;
8471 trace.prev = tracehead; tracehead = &trace;
8472 trace.file = LOCATE_parser_prod;
8473 variable[0] = self;
8474 variable[1] = param0;
8475 variable[3] = variable[0];
8476 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
8477 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8478 if (UNTAG_Bool(variable[3])) { /*if*/
8479 variable[3] = variable[0];
8480 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
8481 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8482 }
8483 return_label279: while(false);
8484 tracehead = trace.prev;
8485 return;
8486 }
8487 void parser_prod___AMinusMethid___visit_all_reverse(val_t self, val_t param0) {
8488 struct trace_t trace = {NULL, NULL, 3509, LOCATE_parser_prod___AMinusMethid___visit_all_reverse};
8489 val_t variable[4];
8490 void **closurevariable = NULL;
8491 trace.prev = tracehead; tracehead = &trace;
8492 trace.file = LOCATE_parser_prod;
8493 variable[0] = self;
8494 variable[1] = param0;
8495 variable[3] = variable[0];
8496 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
8497 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8498 if (UNTAG_Bool(variable[3])) { /*if*/
8499 variable[3] = variable[0];
8500 variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
8501 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8502 }
8503 return_label280: while(false);
8504 tracehead = trace.prev;
8505 return;
8506 }
8507 void parser_prod___AMinusMethid___empty_init(val_t self, int* init_table) {
8508 struct trace_t trace = {NULL, NULL, 3474, LOCATE_parser_prod___AMinusMethid___empty_init};
8509 val_t variable[2];
8510 void **closurevariable = NULL;
8511 trace.prev = tracehead; tracehead = &trace;
8512 trace.file = LOCATE_parser_prod;
8513 variable[0] = self;
8514 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
8515 return_label281: while(false);
8516 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
8517 tracehead = trace.prev;
8518 return;
8519 }
8520 void parser_prod___AMinusMethid___init_aminusmethid(val_t self, val_t param0, int* init_table) {
8521 struct trace_t trace = {NULL, NULL, 3476, LOCATE_parser_prod___AMinusMethid___init_aminusmethid};
8522 val_t variable[4];
8523 void **closurevariable = NULL;
8524 trace.prev = tracehead; tracehead = &trace;
8525 trace.file = LOCATE_parser_prod;
8526 variable[0] = self;
8527 variable[1] = param0;
8528 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
8529 variable[3] = variable[0];
8530 CALL_parser_prod___AMinusMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMinusMethid::empty_init*/;
8531 variable[3] = variable[0];
8532 ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/ = variable[1] /*n_minus*/;
8533 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::==*/)))))));
8534 if (UNTAG_Bool(variable[3])) { /*if*/
8535 variable[3] = variable[0];
8536 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, variable[3]) /*PNode::parent=*/;
8537 }
8538 return_label282: while(false);
8539 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
8540 tracehead = trace.prev;
8541 return;
8542 }
8543 void parser_prod___AStarMethid___n_star__eq(val_t self, val_t param0) {
8544 struct trace_t trace = {NULL, NULL, 3517, LOCATE_parser_prod___AStarMethid___n_star__eq};
8545 val_t variable[4];
8546 void **closurevariable = NULL;
8547 trace.prev = tracehead; tracehead = &trace;
8548 trace.file = LOCATE_parser_prod;
8549 variable[0] = self;
8550 variable[1] = param0;
8551 variable[3] = variable[0];
8552 ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/ = variable[1] /*n*/;
8553 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8554 if (UNTAG_Bool(variable[3])) { /*if*/
8555 variable[3] = variable[0];
8556 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8557 }
8558 return_label283: while(false);
8559 tracehead = trace.prev;
8560 return;
8561 }
8562 void parser_prod___AStarMethid___replace_child(val_t self, val_t param0, val_t param1) {
8563 struct trace_t trace = {NULL, NULL, 3538, LOCATE_parser_prod___AStarMethid___replace_child};
8564 val_t variable[5];
8565 void **closurevariable = NULL;
8566 trace.prev = tracehead; tracehead = &trace;
8567 trace.file = LOCATE_parser_prod;
8568 variable[0] = self;
8569 variable[1] = param0;
8570 variable[2] = param1;
8571 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::==*/)))))));
8572 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, 3540); nit_exit(1);}
8573 variable[4] = variable[0];
8574 variable[4] = ATTR_parser_nodes___AStarMethid____n_star(variable[4]) /*AStarMethid::_n_star*/;
8575 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8576 if (UNTAG_Bool(variable[4])) { /*if*/
8577 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8578 if (UNTAG_Bool(variable[4])) { /*if*/
8579 variable[4] = variable[0];
8580 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8581 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStar, ID_TStar)) /*cast TStar*/;
8582 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, 3544); nit_exit(1);}
8583 variable[4] = variable[0];
8584 ATTR_parser_nodes___AStarMethid____n_star(variable[4]) /*AStarMethid::_n_star*/ = variable[2] /*new_child*/;
8585 } else { /*if*/
8586 variable[4] = variable[0];
8587 ATTR_parser_nodes___AStarMethid____n_star(variable[4]) /*AStarMethid::_n_star*/ = NIT_NULL /*null*/;
8588 }
8589 goto return_label284;
8590 }
8591 return_label284: while(false);
8592 tracehead = trace.prev;
8593 return;
8594 }
8595 void parser_prod___AStarMethid___visit_all(val_t self, val_t param0) {
8596 struct trace_t trace = {NULL, NULL, 3553, LOCATE_parser_prod___AStarMethid___visit_all};
8597 val_t variable[4];
8598 void **closurevariable = NULL;
8599 trace.prev = tracehead; tracehead = &trace;
8600 trace.file = LOCATE_parser_prod;
8601 variable[0] = self;
8602 variable[1] = param0;
8603 variable[3] = variable[0];
8604 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
8605 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8606 if (UNTAG_Bool(variable[3])) { /*if*/
8607 variable[3] = variable[0];
8608 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
8609 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8610 }
8611 return_label285: while(false);
8612 tracehead = trace.prev;
8613 return;
8614 }
8615 void parser_prod___AStarMethid___visit_all_reverse(val_t self, val_t param0) {
8616 struct trace_t trace = {NULL, NULL, 3560, LOCATE_parser_prod___AStarMethid___visit_all_reverse};
8617 val_t variable[4];
8618 void **closurevariable = NULL;
8619 trace.prev = tracehead; tracehead = &trace;
8620 trace.file = LOCATE_parser_prod;
8621 variable[0] = self;
8622 variable[1] = param0;
8623 variable[3] = variable[0];
8624 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
8625 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8626 if (UNTAG_Bool(variable[3])) { /*if*/
8627 variable[3] = variable[0];
8628 variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
8629 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8630 }
8631 return_label286: while(false);
8632 tracehead = trace.prev;
8633 return;
8634 }
8635 void parser_prod___AStarMethid___empty_init(val_t self, int* init_table) {
8636 struct trace_t trace = {NULL, NULL, 3525, LOCATE_parser_prod___AStarMethid___empty_init};
8637 val_t variable[2];
8638 void **closurevariable = NULL;
8639 trace.prev = tracehead; tracehead = &trace;
8640 trace.file = LOCATE_parser_prod;
8641 variable[0] = self;
8642 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i]) return;
8643 return_label287: while(false);
8644 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
8645 tracehead = trace.prev;
8646 return;
8647 }
8648 void parser_prod___AStarMethid___init_astarmethid(val_t self, val_t param0, int* init_table) {
8649 struct trace_t trace = {NULL, NULL, 3527, LOCATE_parser_prod___AStarMethid___init_astarmethid};
8650 val_t variable[4];
8651 void **closurevariable = NULL;
8652 trace.prev = tracehead; tracehead = &trace;
8653 trace.file = LOCATE_parser_prod;
8654 variable[0] = self;
8655 variable[1] = param0;
8656 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i]) return;
8657 variable[3] = variable[0];
8658 CALL_parser_prod___AStarMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStarMethid::empty_init*/;
8659 variable[3] = variable[0];
8660 ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/ = variable[1] /*n_star*/;
8661 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::==*/)))))));
8662 if (UNTAG_Bool(variable[3])) { /*if*/
8663 variable[3] = variable[0];
8664 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_star*/)( variable[1] /*n_star*/, variable[3]) /*PNode::parent=*/;
8665 }
8666 return_label288: while(false);
8667 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
8668 tracehead = trace.prev;
8669 return;
8670 }
8671 void parser_prod___ASlashMethid___n_slash__eq(val_t self, val_t param0) {
8672 struct trace_t trace = {NULL, NULL, 3568, LOCATE_parser_prod___ASlashMethid___n_slash__eq};
8673 val_t variable[4];
8674 void **closurevariable = NULL;
8675 trace.prev = tracehead; tracehead = &trace;
8676 trace.file = LOCATE_parser_prod;
8677 variable[0] = self;
8678 variable[1] = param0;
8679 variable[3] = variable[0];
8680 ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/ = variable[1] /*n*/;
8681 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8682 if (UNTAG_Bool(variable[3])) { /*if*/
8683 variable[3] = variable[0];
8684 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8685 }
8686 return_label289: while(false);
8687 tracehead = trace.prev;
8688 return;
8689 }
8690 void parser_prod___ASlashMethid___replace_child(val_t self, val_t param0, val_t param1) {
8691 struct trace_t trace = {NULL, NULL, 3589, LOCATE_parser_prod___ASlashMethid___replace_child};
8692 val_t variable[5];
8693 void **closurevariable = NULL;
8694 trace.prev = tracehead; tracehead = &trace;
8695 trace.file = LOCATE_parser_prod;
8696 variable[0] = self;
8697 variable[1] = param0;
8698 variable[2] = param1;
8699 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::==*/)))))));
8700 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, 3591); nit_exit(1);}
8701 variable[4] = variable[0];
8702 variable[4] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[4]) /*ASlashMethid::_n_slash*/;
8703 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8704 if (UNTAG_Bool(variable[4])) { /*if*/
8705 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8706 if (UNTAG_Bool(variable[4])) { /*if*/
8707 variable[4] = variable[0];
8708 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8709 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
8710 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, 3595); nit_exit(1);}
8711 variable[4] = variable[0];
8712 ATTR_parser_nodes___ASlashMethid____n_slash(variable[4]) /*ASlashMethid::_n_slash*/ = variable[2] /*new_child*/;
8713 } else { /*if*/
8714 variable[4] = variable[0];
8715 ATTR_parser_nodes___ASlashMethid____n_slash(variable[4]) /*ASlashMethid::_n_slash*/ = NIT_NULL /*null*/;
8716 }
8717 goto return_label290;
8718 }
8719 return_label290: while(false);
8720 tracehead = trace.prev;
8721 return;
8722 }
8723 void parser_prod___ASlashMethid___visit_all(val_t self, val_t param0) {
8724 struct trace_t trace = {NULL, NULL, 3604, LOCATE_parser_prod___ASlashMethid___visit_all};
8725 val_t variable[4];
8726 void **closurevariable = NULL;
8727 trace.prev = tracehead; tracehead = &trace;
8728 trace.file = LOCATE_parser_prod;
8729 variable[0] = self;
8730 variable[1] = param0;
8731 variable[3] = variable[0];
8732 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
8733 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8734 if (UNTAG_Bool(variable[3])) { /*if*/
8735 variable[3] = variable[0];
8736 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
8737 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8738 }
8739 return_label291: while(false);
8740 tracehead = trace.prev;
8741 return;
8742 }
8743 void parser_prod___ASlashMethid___visit_all_reverse(val_t self, val_t param0) {
8744 struct trace_t trace = {NULL, NULL, 3611, LOCATE_parser_prod___ASlashMethid___visit_all_reverse};
8745 val_t variable[4];
8746 void **closurevariable = NULL;
8747 trace.prev = tracehead; tracehead = &trace;
8748 trace.file = LOCATE_parser_prod;
8749 variable[0] = self;
8750 variable[1] = param0;
8751 variable[3] = variable[0];
8752 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
8753 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8754 if (UNTAG_Bool(variable[3])) { /*if*/
8755 variable[3] = variable[0];
8756 variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
8757 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8758 }
8759 return_label292: while(false);
8760 tracehead = trace.prev;
8761 return;
8762 }
8763 void parser_prod___ASlashMethid___empty_init(val_t self, int* init_table) {
8764 struct trace_t trace = {NULL, NULL, 3576, LOCATE_parser_prod___ASlashMethid___empty_init};
8765 val_t variable[2];
8766 void **closurevariable = NULL;
8767 trace.prev = tracehead; tracehead = &trace;
8768 trace.file = LOCATE_parser_prod;
8769 variable[0] = self;
8770 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
8771 return_label293: while(false);
8772 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
8773 tracehead = trace.prev;
8774 return;
8775 }
8776 void parser_prod___ASlashMethid___init_aslashmethid(val_t self, val_t param0, int* init_table) {
8777 struct trace_t trace = {NULL, NULL, 3578, LOCATE_parser_prod___ASlashMethid___init_aslashmethid};
8778 val_t variable[4];
8779 void **closurevariable = NULL;
8780 trace.prev = tracehead; tracehead = &trace;
8781 trace.file = LOCATE_parser_prod;
8782 variable[0] = self;
8783 variable[1] = param0;
8784 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
8785 variable[3] = variable[0];
8786 CALL_parser_prod___ASlashMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASlashMethid::empty_init*/;
8787 variable[3] = variable[0];
8788 ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/ = variable[1] /*n_slash*/;
8789 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::==*/)))))));
8790 if (UNTAG_Bool(variable[3])) { /*if*/
8791 variable[3] = variable[0];
8792 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_slash*/)( variable[1] /*n_slash*/, variable[3]) /*PNode::parent=*/;
8793 }
8794 return_label294: while(false);
8795 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
8796 tracehead = trace.prev;
8797 return;
8798 }
8799 void parser_prod___APercentMethid___n_percent__eq(val_t self, val_t param0) {
8800 struct trace_t trace = {NULL, NULL, 3619, LOCATE_parser_prod___APercentMethid___n_percent__eq};
8801 val_t variable[4];
8802 void **closurevariable = NULL;
8803 trace.prev = tracehead; tracehead = &trace;
8804 trace.file = LOCATE_parser_prod;
8805 variable[0] = self;
8806 variable[1] = param0;
8807 variable[3] = variable[0];
8808 ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/ = variable[1] /*n*/;
8809 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8810 if (UNTAG_Bool(variable[3])) { /*if*/
8811 variable[3] = variable[0];
8812 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8813 }
8814 return_label295: while(false);
8815 tracehead = trace.prev;
8816 return;
8817 }
8818 void parser_prod___APercentMethid___replace_child(val_t self, val_t param0, val_t param1) {
8819 struct trace_t trace = {NULL, NULL, 3640, LOCATE_parser_prod___APercentMethid___replace_child};
8820 val_t variable[5];
8821 void **closurevariable = NULL;
8822 trace.prev = tracehead; tracehead = &trace;
8823 trace.file = LOCATE_parser_prod;
8824 variable[0] = self;
8825 variable[1] = param0;
8826 variable[2] = param1;
8827 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::==*/)))))));
8828 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, 3642); nit_exit(1);}
8829 variable[4] = variable[0];
8830 variable[4] = ATTR_parser_nodes___APercentMethid____n_percent(variable[4]) /*APercentMethid::_n_percent*/;
8831 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8832 if (UNTAG_Bool(variable[4])) { /*if*/
8833 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8834 if (UNTAG_Bool(variable[4])) { /*if*/
8835 variable[4] = variable[0];
8836 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8837 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
8838 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, 3646); nit_exit(1);}
8839 variable[4] = variable[0];
8840 ATTR_parser_nodes___APercentMethid____n_percent(variable[4]) /*APercentMethid::_n_percent*/ = variable[2] /*new_child*/;
8841 } else { /*if*/
8842 variable[4] = variable[0];
8843 ATTR_parser_nodes___APercentMethid____n_percent(variable[4]) /*APercentMethid::_n_percent*/ = NIT_NULL /*null*/;
8844 }
8845 goto return_label296;
8846 }
8847 return_label296: while(false);
8848 tracehead = trace.prev;
8849 return;
8850 }
8851 void parser_prod___APercentMethid___visit_all(val_t self, val_t param0) {
8852 struct trace_t trace = {NULL, NULL, 3655, LOCATE_parser_prod___APercentMethid___visit_all};
8853 val_t variable[4];
8854 void **closurevariable = NULL;
8855 trace.prev = tracehead; tracehead = &trace;
8856 trace.file = LOCATE_parser_prod;
8857 variable[0] = self;
8858 variable[1] = param0;
8859 variable[3] = variable[0];
8860 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
8861 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8862 if (UNTAG_Bool(variable[3])) { /*if*/
8863 variable[3] = variable[0];
8864 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
8865 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8866 }
8867 return_label297: while(false);
8868 tracehead = trace.prev;
8869 return;
8870 }
8871 void parser_prod___APercentMethid___visit_all_reverse(val_t self, val_t param0) {
8872 struct trace_t trace = {NULL, NULL, 3662, LOCATE_parser_prod___APercentMethid___visit_all_reverse};
8873 val_t variable[4];
8874 void **closurevariable = NULL;
8875 trace.prev = tracehead; tracehead = &trace;
8876 trace.file = LOCATE_parser_prod;
8877 variable[0] = self;
8878 variable[1] = param0;
8879 variable[3] = variable[0];
8880 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
8881 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8882 if (UNTAG_Bool(variable[3])) { /*if*/
8883 variable[3] = variable[0];
8884 variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
8885 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8886 }
8887 return_label298: while(false);
8888 tracehead = trace.prev;
8889 return;
8890 }
8891 void parser_prod___APercentMethid___empty_init(val_t self, int* init_table) {
8892 struct trace_t trace = {NULL, NULL, 3627, LOCATE_parser_prod___APercentMethid___empty_init};
8893 val_t variable[2];
8894 void **closurevariable = NULL;
8895 trace.prev = tracehead; tracehead = &trace;
8896 trace.file = LOCATE_parser_prod;
8897 variable[0] = self;
8898 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i]) return;
8899 return_label299: while(false);
8900 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
8901 tracehead = trace.prev;
8902 return;
8903 }
8904 void parser_prod___APercentMethid___init_apercentmethid(val_t self, val_t param0, int* init_table) {
8905 struct trace_t trace = {NULL, NULL, 3629, LOCATE_parser_prod___APercentMethid___init_apercentmethid};
8906 val_t variable[4];
8907 void **closurevariable = NULL;
8908 trace.prev = tracehead; tracehead = &trace;
8909 trace.file = LOCATE_parser_prod;
8910 variable[0] = self;
8911 variable[1] = param0;
8912 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i]) return;
8913 variable[3] = variable[0];
8914 CALL_parser_prod___APercentMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APercentMethid::empty_init*/;
8915 variable[3] = variable[0];
8916 ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/ = variable[1] /*n_percent*/;
8917 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::==*/)))))));
8918 if (UNTAG_Bool(variable[3])) { /*if*/
8919 variable[3] = variable[0];
8920 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_percent*/)( variable[1] /*n_percent*/, variable[3]) /*PNode::parent=*/;
8921 }
8922 return_label300: while(false);
8923 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
8924 tracehead = trace.prev;
8925 return;
8926 }
8927 void parser_prod___AEqMethid___n_eq__eq(val_t self, val_t param0) {
8928 struct trace_t trace = {NULL, NULL, 3670, LOCATE_parser_prod___AEqMethid___n_eq__eq};
8929 val_t variable[4];
8930 void **closurevariable = NULL;
8931 trace.prev = tracehead; tracehead = &trace;
8932 trace.file = LOCATE_parser_prod;
8933 variable[0] = self;
8934 variable[1] = param0;
8935 variable[3] = variable[0];
8936 ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/ = variable[1] /*n*/;
8937 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8938 if (UNTAG_Bool(variable[3])) { /*if*/
8939 variable[3] = variable[0];
8940 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
8941 }
8942 return_label301: while(false);
8943 tracehead = trace.prev;
8944 return;
8945 }
8946 void parser_prod___AEqMethid___replace_child(val_t self, val_t param0, val_t param1) {
8947 struct trace_t trace = {NULL, NULL, 3691, LOCATE_parser_prod___AEqMethid___replace_child};
8948 val_t variable[5];
8949 void **closurevariable = NULL;
8950 trace.prev = tracehead; tracehead = &trace;
8951 trace.file = LOCATE_parser_prod;
8952 variable[0] = self;
8953 variable[1] = param0;
8954 variable[2] = param1;
8955 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::==*/)))))));
8956 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, 3693); nit_exit(1);}
8957 variable[4] = variable[0];
8958 variable[4] = ATTR_parser_nodes___AEqMethid____n_eq(variable[4]) /*AEqMethid::_n_eq*/;
8959 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
8960 if (UNTAG_Bool(variable[4])) { /*if*/
8961 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
8962 if (UNTAG_Bool(variable[4])) { /*if*/
8963 variable[4] = variable[0];
8964 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
8965 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TEq, ID_TEq)) /*cast TEq*/;
8966 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, 3697); nit_exit(1);}
8967 variable[4] = variable[0];
8968 ATTR_parser_nodes___AEqMethid____n_eq(variable[4]) /*AEqMethid::_n_eq*/ = variable[2] /*new_child*/;
8969 } else { /*if*/
8970 variable[4] = variable[0];
8971 ATTR_parser_nodes___AEqMethid____n_eq(variable[4]) /*AEqMethid::_n_eq*/ = NIT_NULL /*null*/;
8972 }
8973 goto return_label302;
8974 }
8975 return_label302: while(false);
8976 tracehead = trace.prev;
8977 return;
8978 }
8979 void parser_prod___AEqMethid___visit_all(val_t self, val_t param0) {
8980 struct trace_t trace = {NULL, NULL, 3706, LOCATE_parser_prod___AEqMethid___visit_all};
8981 val_t variable[4];
8982 void **closurevariable = NULL;
8983 trace.prev = tracehead; tracehead = &trace;
8984 trace.file = LOCATE_parser_prod;
8985 variable[0] = self;
8986 variable[1] = param0;
8987 variable[3] = variable[0];
8988 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
8989 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
8990 if (UNTAG_Bool(variable[3])) { /*if*/
8991 variable[3] = variable[0];
8992 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
8993 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
8994 }
8995 return_label303: while(false);
8996 tracehead = trace.prev;
8997 return;
8998 }
8999 void parser_prod___AEqMethid___visit_all_reverse(val_t self, val_t param0) {
9000 struct trace_t trace = {NULL, NULL, 3713, LOCATE_parser_prod___AEqMethid___visit_all_reverse};
9001 val_t variable[4];
9002 void **closurevariable = NULL;
9003 trace.prev = tracehead; tracehead = &trace;
9004 trace.file = LOCATE_parser_prod;
9005 variable[0] = self;
9006 variable[1] = param0;
9007 variable[3] = variable[0];
9008 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
9009 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9010 if (UNTAG_Bool(variable[3])) { /*if*/
9011 variable[3] = variable[0];
9012 variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
9013 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9014 }
9015 return_label304: while(false);
9016 tracehead = trace.prev;
9017 return;
9018 }
9019 void parser_prod___AEqMethid___empty_init(val_t self, int* init_table) {
9020 struct trace_t trace = {NULL, NULL, 3678, LOCATE_parser_prod___AEqMethid___empty_init};
9021 val_t variable[2];
9022 void **closurevariable = NULL;
9023 trace.prev = tracehead; tracehead = &trace;
9024 trace.file = LOCATE_parser_prod;
9025 variable[0] = self;
9026 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i]) return;
9027 return_label305: while(false);
9028 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
9029 tracehead = trace.prev;
9030 return;
9031 }
9032 void parser_prod___AEqMethid___init_aeqmethid(val_t self, val_t param0, int* init_table) {
9033 struct trace_t trace = {NULL, NULL, 3680, LOCATE_parser_prod___AEqMethid___init_aeqmethid};
9034 val_t variable[4];
9035 void **closurevariable = NULL;
9036 trace.prev = tracehead; tracehead = &trace;
9037 trace.file = LOCATE_parser_prod;
9038 variable[0] = self;
9039 variable[1] = param0;
9040 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i]) return;
9041 variable[3] = variable[0];
9042 CALL_parser_prod___AEqMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AEqMethid::empty_init*/;
9043 variable[3] = variable[0];
9044 ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/ = variable[1] /*n_eq*/;
9045 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::==*/)))))));
9046 if (UNTAG_Bool(variable[3])) { /*if*/
9047 variable[3] = variable[0];
9048 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_eq*/)( variable[1] /*n_eq*/, variable[3]) /*PNode::parent=*/;
9049 }
9050 return_label306: while(false);
9051 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
9052 tracehead = trace.prev;
9053 return;
9054 }
9055 void parser_prod___ANeMethid___n_ne__eq(val_t self, val_t param0) {
9056 struct trace_t trace = {NULL, NULL, 3721, LOCATE_parser_prod___ANeMethid___n_ne__eq};
9057 val_t variable[4];
9058 void **closurevariable = NULL;
9059 trace.prev = tracehead; tracehead = &trace;
9060 trace.file = LOCATE_parser_prod;
9061 variable[0] = self;
9062 variable[1] = param0;
9063 variable[3] = variable[0];
9064 ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/ = variable[1] /*n*/;
9065 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9066 if (UNTAG_Bool(variable[3])) { /*if*/
9067 variable[3] = variable[0];
9068 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9069 }
9070 return_label307: while(false);
9071 tracehead = trace.prev;
9072 return;
9073 }
9074 void parser_prod___ANeMethid___replace_child(val_t self, val_t param0, val_t param1) {
9075 struct trace_t trace = {NULL, NULL, 3742, LOCATE_parser_prod___ANeMethid___replace_child};
9076 val_t variable[5];
9077 void **closurevariable = NULL;
9078 trace.prev = tracehead; tracehead = &trace;
9079 trace.file = LOCATE_parser_prod;
9080 variable[0] = self;
9081 variable[1] = param0;
9082 variable[2] = param1;
9083 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::==*/)))))));
9084 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, 3744); nit_exit(1);}
9085 variable[4] = variable[0];
9086 variable[4] = ATTR_parser_nodes___ANeMethid____n_ne(variable[4]) /*ANeMethid::_n_ne*/;
9087 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9088 if (UNTAG_Bool(variable[4])) { /*if*/
9089 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9090 if (UNTAG_Bool(variable[4])) { /*if*/
9091 variable[4] = variable[0];
9092 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9093 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TNe, ID_TNe)) /*cast TNe*/;
9094 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, 3748); nit_exit(1);}
9095 variable[4] = variable[0];
9096 ATTR_parser_nodes___ANeMethid____n_ne(variable[4]) /*ANeMethid::_n_ne*/ = variable[2] /*new_child*/;
9097 } else { /*if*/
9098 variable[4] = variable[0];
9099 ATTR_parser_nodes___ANeMethid____n_ne(variable[4]) /*ANeMethid::_n_ne*/ = NIT_NULL /*null*/;
9100 }
9101 goto return_label308;
9102 }
9103 return_label308: while(false);
9104 tracehead = trace.prev;
9105 return;
9106 }
9107 void parser_prod___ANeMethid___visit_all(val_t self, val_t param0) {
9108 struct trace_t trace = {NULL, NULL, 3757, LOCATE_parser_prod___ANeMethid___visit_all};
9109 val_t variable[4];
9110 void **closurevariable = NULL;
9111 trace.prev = tracehead; tracehead = &trace;
9112 trace.file = LOCATE_parser_prod;
9113 variable[0] = self;
9114 variable[1] = param0;
9115 variable[3] = variable[0];
9116 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
9117 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9118 if (UNTAG_Bool(variable[3])) { /*if*/
9119 variable[3] = variable[0];
9120 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
9121 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9122 }
9123 return_label309: while(false);
9124 tracehead = trace.prev;
9125 return;
9126 }
9127 void parser_prod___ANeMethid___visit_all_reverse(val_t self, val_t param0) {
9128 struct trace_t trace = {NULL, NULL, 3764, LOCATE_parser_prod___ANeMethid___visit_all_reverse};
9129 val_t variable[4];
9130 void **closurevariable = NULL;
9131 trace.prev = tracehead; tracehead = &trace;
9132 trace.file = LOCATE_parser_prod;
9133 variable[0] = self;
9134 variable[1] = param0;
9135 variable[3] = variable[0];
9136 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
9137 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9138 if (UNTAG_Bool(variable[3])) { /*if*/
9139 variable[3] = variable[0];
9140 variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
9141 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9142 }
9143 return_label310: while(false);
9144 tracehead = trace.prev;
9145 return;
9146 }
9147 void parser_prod___ANeMethid___empty_init(val_t self, int* init_table) {
9148 struct trace_t trace = {NULL, NULL, 3729, LOCATE_parser_prod___ANeMethid___empty_init};
9149 val_t variable[2];
9150 void **closurevariable = NULL;
9151 trace.prev = tracehead; tracehead = &trace;
9152 trace.file = LOCATE_parser_prod;
9153 variable[0] = self;
9154 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i]) return;
9155 return_label311: while(false);
9156 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
9157 tracehead = trace.prev;
9158 return;
9159 }
9160 void parser_prod___ANeMethid___init_anemethid(val_t self, val_t param0, int* init_table) {
9161 struct trace_t trace = {NULL, NULL, 3731, LOCATE_parser_prod___ANeMethid___init_anemethid};
9162 val_t variable[4];
9163 void **closurevariable = NULL;
9164 trace.prev = tracehead; tracehead = &trace;
9165 trace.file = LOCATE_parser_prod;
9166 variable[0] = self;
9167 variable[1] = param0;
9168 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i]) return;
9169 variable[3] = variable[0];
9170 CALL_parser_prod___ANeMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ANeMethid::empty_init*/;
9171 variable[3] = variable[0];
9172 ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/ = variable[1] /*n_ne*/;
9173 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::==*/)))))));
9174 if (UNTAG_Bool(variable[3])) { /*if*/
9175 variable[3] = variable[0];
9176 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_ne*/)( variable[1] /*n_ne*/, variable[3]) /*PNode::parent=*/;
9177 }
9178 return_label312: while(false);
9179 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
9180 tracehead = trace.prev;
9181 return;
9182 }
9183 void parser_prod___ALeMethid___n_le__eq(val_t self, val_t param0) {
9184 struct trace_t trace = {NULL, NULL, 3772, LOCATE_parser_prod___ALeMethid___n_le__eq};
9185 val_t variable[4];
9186 void **closurevariable = NULL;
9187 trace.prev = tracehead; tracehead = &trace;
9188 trace.file = LOCATE_parser_prod;
9189 variable[0] = self;
9190 variable[1] = param0;
9191 variable[3] = variable[0];
9192 ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/ = variable[1] /*n*/;
9193 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9194 if (UNTAG_Bool(variable[3])) { /*if*/
9195 variable[3] = variable[0];
9196 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9197 }
9198 return_label313: while(false);
9199 tracehead = trace.prev;
9200 return;
9201 }
9202 void parser_prod___ALeMethid___replace_child(val_t self, val_t param0, val_t param1) {
9203 struct trace_t trace = {NULL, NULL, 3793, LOCATE_parser_prod___ALeMethid___replace_child};
9204 val_t variable[5];
9205 void **closurevariable = NULL;
9206 trace.prev = tracehead; tracehead = &trace;
9207 trace.file = LOCATE_parser_prod;
9208 variable[0] = self;
9209 variable[1] = param0;
9210 variable[2] = param1;
9211 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::==*/)))))));
9212 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, 3795); nit_exit(1);}
9213 variable[4] = variable[0];
9214 variable[4] = ATTR_parser_nodes___ALeMethid____n_le(variable[4]) /*ALeMethid::_n_le*/;
9215 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9216 if (UNTAG_Bool(variable[4])) { /*if*/
9217 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9218 if (UNTAG_Bool(variable[4])) { /*if*/
9219 variable[4] = variable[0];
9220 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9221 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TLe, ID_TLe)) /*cast TLe*/;
9222 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, 3799); nit_exit(1);}
9223 variable[4] = variable[0];
9224 ATTR_parser_nodes___ALeMethid____n_le(variable[4]) /*ALeMethid::_n_le*/ = variable[2] /*new_child*/;
9225 } else { /*if*/
9226 variable[4] = variable[0];
9227 ATTR_parser_nodes___ALeMethid____n_le(variable[4]) /*ALeMethid::_n_le*/ = NIT_NULL /*null*/;
9228 }
9229 goto return_label314;
9230 }
9231 return_label314: while(false);
9232 tracehead = trace.prev;
9233 return;
9234 }
9235 void parser_prod___ALeMethid___visit_all(val_t self, val_t param0) {
9236 struct trace_t trace = {NULL, NULL, 3808, LOCATE_parser_prod___ALeMethid___visit_all};
9237 val_t variable[4];
9238 void **closurevariable = NULL;
9239 trace.prev = tracehead; tracehead = &trace;
9240 trace.file = LOCATE_parser_prod;
9241 variable[0] = self;
9242 variable[1] = param0;
9243 variable[3] = variable[0];
9244 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
9245 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9246 if (UNTAG_Bool(variable[3])) { /*if*/
9247 variable[3] = variable[0];
9248 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
9249 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9250 }
9251 return_label315: while(false);
9252 tracehead = trace.prev;
9253 return;
9254 }
9255 void parser_prod___ALeMethid___visit_all_reverse(val_t self, val_t param0) {
9256 struct trace_t trace = {NULL, NULL, 3815, LOCATE_parser_prod___ALeMethid___visit_all_reverse};
9257 val_t variable[4];
9258 void **closurevariable = NULL;
9259 trace.prev = tracehead; tracehead = &trace;
9260 trace.file = LOCATE_parser_prod;
9261 variable[0] = self;
9262 variable[1] = param0;
9263 variable[3] = variable[0];
9264 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
9265 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9266 if (UNTAG_Bool(variable[3])) { /*if*/
9267 variable[3] = variable[0];
9268 variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
9269 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9270 }
9271 return_label316: while(false);
9272 tracehead = trace.prev;
9273 return;
9274 }
9275 void parser_prod___ALeMethid___empty_init(val_t self, int* init_table) {
9276 struct trace_t trace = {NULL, NULL, 3780, LOCATE_parser_prod___ALeMethid___empty_init};
9277 val_t variable[2];
9278 void **closurevariable = NULL;
9279 trace.prev = tracehead; tracehead = &trace;
9280 trace.file = LOCATE_parser_prod;
9281 variable[0] = self;
9282 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i]) return;
9283 return_label317: while(false);
9284 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
9285 tracehead = trace.prev;
9286 return;
9287 }
9288 void parser_prod___ALeMethid___init_alemethid(val_t self, val_t param0, int* init_table) {
9289 struct trace_t trace = {NULL, NULL, 3782, LOCATE_parser_prod___ALeMethid___init_alemethid};
9290 val_t variable[4];
9291 void **closurevariable = NULL;
9292 trace.prev = tracehead; tracehead = &trace;
9293 trace.file = LOCATE_parser_prod;
9294 variable[0] = self;
9295 variable[1] = param0;
9296 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i]) return;
9297 variable[3] = variable[0];
9298 CALL_parser_prod___ALeMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ALeMethid::empty_init*/;
9299 variable[3] = variable[0];
9300 ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/ = variable[1] /*n_le*/;
9301 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::==*/)))))));
9302 if (UNTAG_Bool(variable[3])) { /*if*/
9303 variable[3] = variable[0];
9304 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_le*/)( variable[1] /*n_le*/, variable[3]) /*PNode::parent=*/;
9305 }
9306 return_label318: while(false);
9307 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
9308 tracehead = trace.prev;
9309 return;
9310 }
9311 void parser_prod___AGeMethid___n_ge__eq(val_t self, val_t param0) {
9312 struct trace_t trace = {NULL, NULL, 3823, LOCATE_parser_prod___AGeMethid___n_ge__eq};
9313 val_t variable[4];
9314 void **closurevariable = NULL;
9315 trace.prev = tracehead; tracehead = &trace;
9316 trace.file = LOCATE_parser_prod;
9317 variable[0] = self;
9318 variable[1] = param0;
9319 variable[3] = variable[0];
9320 ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/ = variable[1] /*n*/;
9321 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9322 if (UNTAG_Bool(variable[3])) { /*if*/
9323 variable[3] = variable[0];
9324 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9325 }
9326 return_label319: while(false);
9327 tracehead = trace.prev;
9328 return;
9329 }
9330 void parser_prod___AGeMethid___replace_child(val_t self, val_t param0, val_t param1) {
9331 struct trace_t trace = {NULL, NULL, 3844, LOCATE_parser_prod___AGeMethid___replace_child};
9332 val_t variable[5];
9333 void **closurevariable = NULL;
9334 trace.prev = tracehead; tracehead = &trace;
9335 trace.file = LOCATE_parser_prod;
9336 variable[0] = self;
9337 variable[1] = param0;
9338 variable[2] = param1;
9339 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::==*/)))))));
9340 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, 3846); nit_exit(1);}
9341 variable[4] = variable[0];
9342 variable[4] = ATTR_parser_nodes___AGeMethid____n_ge(variable[4]) /*AGeMethid::_n_ge*/;
9343 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9344 if (UNTAG_Bool(variable[4])) { /*if*/
9345 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9346 if (UNTAG_Bool(variable[4])) { /*if*/
9347 variable[4] = variable[0];
9348 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9349 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TGe, ID_TGe)) /*cast TGe*/;
9350 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, 3850); nit_exit(1);}
9351 variable[4] = variable[0];
9352 ATTR_parser_nodes___AGeMethid____n_ge(variable[4]) /*AGeMethid::_n_ge*/ = variable[2] /*new_child*/;
9353 } else { /*if*/
9354 variable[4] = variable[0];
9355 ATTR_parser_nodes___AGeMethid____n_ge(variable[4]) /*AGeMethid::_n_ge*/ = NIT_NULL /*null*/;
9356 }
9357 goto return_label320;
9358 }
9359 return_label320: while(false);
9360 tracehead = trace.prev;
9361 return;
9362 }
9363 void parser_prod___AGeMethid___visit_all(val_t self, val_t param0) {
9364 struct trace_t trace = {NULL, NULL, 3859, LOCATE_parser_prod___AGeMethid___visit_all};
9365 val_t variable[4];
9366 void **closurevariable = NULL;
9367 trace.prev = tracehead; tracehead = &trace;
9368 trace.file = LOCATE_parser_prod;
9369 variable[0] = self;
9370 variable[1] = param0;
9371 variable[3] = variable[0];
9372 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
9373 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9374 if (UNTAG_Bool(variable[3])) { /*if*/
9375 variable[3] = variable[0];
9376 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
9377 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9378 }
9379 return_label321: while(false);
9380 tracehead = trace.prev;
9381 return;
9382 }
9383 void parser_prod___AGeMethid___visit_all_reverse(val_t self, val_t param0) {
9384 struct trace_t trace = {NULL, NULL, 3866, LOCATE_parser_prod___AGeMethid___visit_all_reverse};
9385 val_t variable[4];
9386 void **closurevariable = NULL;
9387 trace.prev = tracehead; tracehead = &trace;
9388 trace.file = LOCATE_parser_prod;
9389 variable[0] = self;
9390 variable[1] = param0;
9391 variable[3] = variable[0];
9392 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
9393 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9394 if (UNTAG_Bool(variable[3])) { /*if*/
9395 variable[3] = variable[0];
9396 variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
9397 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9398 }
9399 return_label322: while(false);
9400 tracehead = trace.prev;
9401 return;
9402 }
9403 void parser_prod___AGeMethid___empty_init(val_t self, int* init_table) {
9404 struct trace_t trace = {NULL, NULL, 3831, LOCATE_parser_prod___AGeMethid___empty_init};
9405 val_t variable[2];
9406 void **closurevariable = NULL;
9407 trace.prev = tracehead; tracehead = &trace;
9408 trace.file = LOCATE_parser_prod;
9409 variable[0] = self;
9410 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i]) return;
9411 return_label323: while(false);
9412 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
9413 tracehead = trace.prev;
9414 return;
9415 }
9416 void parser_prod___AGeMethid___init_agemethid(val_t self, val_t param0, int* init_table) {
9417 struct trace_t trace = {NULL, NULL, 3833, LOCATE_parser_prod___AGeMethid___init_agemethid};
9418 val_t variable[4];
9419 void **closurevariable = NULL;
9420 trace.prev = tracehead; tracehead = &trace;
9421 trace.file = LOCATE_parser_prod;
9422 variable[0] = self;
9423 variable[1] = param0;
9424 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i]) return;
9425 variable[3] = variable[0];
9426 CALL_parser_prod___AGeMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AGeMethid::empty_init*/;
9427 variable[3] = variable[0];
9428 ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/ = variable[1] /*n_ge*/;
9429 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::==*/)))))));
9430 if (UNTAG_Bool(variable[3])) { /*if*/
9431 variable[3] = variable[0];
9432 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_ge*/)( variable[1] /*n_ge*/, variable[3]) /*PNode::parent=*/;
9433 }
9434 return_label324: while(false);
9435 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
9436 tracehead = trace.prev;
9437 return;
9438 }
9439 void parser_prod___ALtMethid___n_lt__eq(val_t self, val_t param0) {
9440 struct trace_t trace = {NULL, NULL, 3874, LOCATE_parser_prod___ALtMethid___n_lt__eq};
9441 val_t variable[4];
9442 void **closurevariable = NULL;
9443 trace.prev = tracehead; tracehead = &trace;
9444 trace.file = LOCATE_parser_prod;
9445 variable[0] = self;
9446 variable[1] = param0;
9447 variable[3] = variable[0];
9448 ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/ = variable[1] /*n*/;
9449 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9450 if (UNTAG_Bool(variable[3])) { /*if*/
9451 variable[3] = variable[0];
9452 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9453 }
9454 return_label325: while(false);
9455 tracehead = trace.prev;
9456 return;
9457 }
9458 void parser_prod___ALtMethid___replace_child(val_t self, val_t param0, val_t param1) {
9459 struct trace_t trace = {NULL, NULL, 3895, LOCATE_parser_prod___ALtMethid___replace_child};
9460 val_t variable[5];
9461 void **closurevariable = NULL;
9462 trace.prev = tracehead; tracehead = &trace;
9463 trace.file = LOCATE_parser_prod;
9464 variable[0] = self;
9465 variable[1] = param0;
9466 variable[2] = param1;
9467 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::==*/)))))));
9468 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, 3897); nit_exit(1);}
9469 variable[4] = variable[0];
9470 variable[4] = ATTR_parser_nodes___ALtMethid____n_lt(variable[4]) /*ALtMethid::_n_lt*/;
9471 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9472 if (UNTAG_Bool(variable[4])) { /*if*/
9473 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9474 if (UNTAG_Bool(variable[4])) { /*if*/
9475 variable[4] = variable[0];
9476 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9477 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TLt, ID_TLt)) /*cast TLt*/;
9478 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, 3901); nit_exit(1);}
9479 variable[4] = variable[0];
9480 ATTR_parser_nodes___ALtMethid____n_lt(variable[4]) /*ALtMethid::_n_lt*/ = variable[2] /*new_child*/;
9481 } else { /*if*/
9482 variable[4] = variable[0];
9483 ATTR_parser_nodes___ALtMethid____n_lt(variable[4]) /*ALtMethid::_n_lt*/ = NIT_NULL /*null*/;
9484 }
9485 goto return_label326;
9486 }
9487 return_label326: while(false);
9488 tracehead = trace.prev;
9489 return;
9490 }
9491 void parser_prod___ALtMethid___visit_all(val_t self, val_t param0) {
9492 struct trace_t trace = {NULL, NULL, 3910, LOCATE_parser_prod___ALtMethid___visit_all};
9493 val_t variable[4];
9494 void **closurevariable = NULL;
9495 trace.prev = tracehead; tracehead = &trace;
9496 trace.file = LOCATE_parser_prod;
9497 variable[0] = self;
9498 variable[1] = param0;
9499 variable[3] = variable[0];
9500 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
9501 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9502 if (UNTAG_Bool(variable[3])) { /*if*/
9503 variable[3] = variable[0];
9504 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
9505 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9506 }
9507 return_label327: while(false);
9508 tracehead = trace.prev;
9509 return;
9510 }
9511 void parser_prod___ALtMethid___visit_all_reverse(val_t self, val_t param0) {
9512 struct trace_t trace = {NULL, NULL, 3917, LOCATE_parser_prod___ALtMethid___visit_all_reverse};
9513 val_t variable[4];
9514 void **closurevariable = NULL;
9515 trace.prev = tracehead; tracehead = &trace;
9516 trace.file = LOCATE_parser_prod;
9517 variable[0] = self;
9518 variable[1] = param0;
9519 variable[3] = variable[0];
9520 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
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 variable[3] = variable[0];
9524 variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
9525 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9526 }
9527 return_label328: while(false);
9528 tracehead = trace.prev;
9529 return;
9530 }
9531 void parser_prod___ALtMethid___empty_init(val_t self, int* init_table) {
9532 struct trace_t trace = {NULL, NULL, 3882, LOCATE_parser_prod___ALtMethid___empty_init};
9533 val_t variable[2];
9534 void **closurevariable = NULL;
9535 trace.prev = tracehead; tracehead = &trace;
9536 trace.file = LOCATE_parser_prod;
9537 variable[0] = self;
9538 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i]) return;
9539 return_label329: while(false);
9540 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
9541 tracehead = trace.prev;
9542 return;
9543 }
9544 void parser_prod___ALtMethid___init_altmethid(val_t self, val_t param0, int* init_table) {
9545 struct trace_t trace = {NULL, NULL, 3884, LOCATE_parser_prod___ALtMethid___init_altmethid};
9546 val_t variable[4];
9547 void **closurevariable = NULL;
9548 trace.prev = tracehead; tracehead = &trace;
9549 trace.file = LOCATE_parser_prod;
9550 variable[0] = self;
9551 variable[1] = param0;
9552 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i]) return;
9553 variable[3] = variable[0];
9554 CALL_parser_prod___ALtMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ALtMethid::empty_init*/;
9555 variable[3] = variable[0];
9556 ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/ = variable[1] /*n_lt*/;
9557 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::==*/)))))));
9558 if (UNTAG_Bool(variable[3])) { /*if*/
9559 variable[3] = variable[0];
9560 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_lt*/)( variable[1] /*n_lt*/, variable[3]) /*PNode::parent=*/;
9561 }
9562 return_label330: while(false);
9563 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
9564 tracehead = trace.prev;
9565 return;
9566 }
9567 void parser_prod___AGtMethid___n_gt__eq(val_t self, val_t param0) {
9568 struct trace_t trace = {NULL, NULL, 3925, LOCATE_parser_prod___AGtMethid___n_gt__eq};
9569 val_t variable[4];
9570 void **closurevariable = NULL;
9571 trace.prev = tracehead; tracehead = &trace;
9572 trace.file = LOCATE_parser_prod;
9573 variable[0] = self;
9574 variable[1] = param0;
9575 variable[3] = variable[0];
9576 ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/ = variable[1] /*n*/;
9577 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9578 if (UNTAG_Bool(variable[3])) { /*if*/
9579 variable[3] = variable[0];
9580 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9581 }
9582 return_label331: while(false);
9583 tracehead = trace.prev;
9584 return;
9585 }
9586 void parser_prod___AGtMethid___replace_child(val_t self, val_t param0, val_t param1) {
9587 struct trace_t trace = {NULL, NULL, 3946, LOCATE_parser_prod___AGtMethid___replace_child};
9588 val_t variable[5];
9589 void **closurevariable = NULL;
9590 trace.prev = tracehead; tracehead = &trace;
9591 trace.file = LOCATE_parser_prod;
9592 variable[0] = self;
9593 variable[1] = param0;
9594 variable[2] = param1;
9595 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::==*/)))))));
9596 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, 3948); nit_exit(1);}
9597 variable[4] = variable[0];
9598 variable[4] = ATTR_parser_nodes___AGtMethid____n_gt(variable[4]) /*AGtMethid::_n_gt*/;
9599 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9600 if (UNTAG_Bool(variable[4])) { /*if*/
9601 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9602 if (UNTAG_Bool(variable[4])) { /*if*/
9603 variable[4] = variable[0];
9604 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9605 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TGt, ID_TGt)) /*cast TGt*/;
9606 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, 3952); nit_exit(1);}
9607 variable[4] = variable[0];
9608 ATTR_parser_nodes___AGtMethid____n_gt(variable[4]) /*AGtMethid::_n_gt*/ = variable[2] /*new_child*/;
9609 } else { /*if*/
9610 variable[4] = variable[0];
9611 ATTR_parser_nodes___AGtMethid____n_gt(variable[4]) /*AGtMethid::_n_gt*/ = NIT_NULL /*null*/;
9612 }
9613 goto return_label332;
9614 }
9615 return_label332: while(false);
9616 tracehead = trace.prev;
9617 return;
9618 }
9619 void parser_prod___AGtMethid___visit_all(val_t self, val_t param0) {
9620 struct trace_t trace = {NULL, NULL, 3961, LOCATE_parser_prod___AGtMethid___visit_all};
9621 val_t variable[4];
9622 void **closurevariable = NULL;
9623 trace.prev = tracehead; tracehead = &trace;
9624 trace.file = LOCATE_parser_prod;
9625 variable[0] = self;
9626 variable[1] = param0;
9627 variable[3] = variable[0];
9628 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
9629 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9630 if (UNTAG_Bool(variable[3])) { /*if*/
9631 variable[3] = variable[0];
9632 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
9633 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9634 }
9635 return_label333: while(false);
9636 tracehead = trace.prev;
9637 return;
9638 }
9639 void parser_prod___AGtMethid___visit_all_reverse(val_t self, val_t param0) {
9640 struct trace_t trace = {NULL, NULL, 3968, LOCATE_parser_prod___AGtMethid___visit_all_reverse};
9641 val_t variable[4];
9642 void **closurevariable = NULL;
9643 trace.prev = tracehead; tracehead = &trace;
9644 trace.file = LOCATE_parser_prod;
9645 variable[0] = self;
9646 variable[1] = param0;
9647 variable[3] = variable[0];
9648 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
9649 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9650 if (UNTAG_Bool(variable[3])) { /*if*/
9651 variable[3] = variable[0];
9652 variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
9653 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9654 }
9655 return_label334: while(false);
9656 tracehead = trace.prev;
9657 return;
9658 }
9659 void parser_prod___AGtMethid___empty_init(val_t self, int* init_table) {
9660 struct trace_t trace = {NULL, NULL, 3933, LOCATE_parser_prod___AGtMethid___empty_init};
9661 val_t variable[2];
9662 void **closurevariable = NULL;
9663 trace.prev = tracehead; tracehead = &trace;
9664 trace.file = LOCATE_parser_prod;
9665 variable[0] = self;
9666 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i]) return;
9667 return_label335: while(false);
9668 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
9669 tracehead = trace.prev;
9670 return;
9671 }
9672 void parser_prod___AGtMethid___init_agtmethid(val_t self, val_t param0, int* init_table) {
9673 struct trace_t trace = {NULL, NULL, 3935, LOCATE_parser_prod___AGtMethid___init_agtmethid};
9674 val_t variable[4];
9675 void **closurevariable = NULL;
9676 trace.prev = tracehead; tracehead = &trace;
9677 trace.file = LOCATE_parser_prod;
9678 variable[0] = self;
9679 variable[1] = param0;
9680 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i]) return;
9681 variable[3] = variable[0];
9682 CALL_parser_prod___AGtMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AGtMethid::empty_init*/;
9683 variable[3] = variable[0];
9684 ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/ = variable[1] /*n_gt*/;
9685 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::==*/)))))));
9686 if (UNTAG_Bool(variable[3])) { /*if*/
9687 variable[3] = variable[0];
9688 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_gt*/)( variable[1] /*n_gt*/, variable[3]) /*PNode::parent=*/;
9689 }
9690 return_label336: while(false);
9691 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
9692 tracehead = trace.prev;
9693 return;
9694 }
9695 void parser_prod___ABraMethid___n_obra__eq(val_t self, val_t param0) {
9696 struct trace_t trace = {NULL, NULL, 3976, LOCATE_parser_prod___ABraMethid___n_obra__eq};
9697 val_t variable[4];
9698 void **closurevariable = NULL;
9699 trace.prev = tracehead; tracehead = &trace;
9700 trace.file = LOCATE_parser_prod;
9701 variable[0] = self;
9702 variable[1] = param0;
9703 variable[3] = variable[0];
9704 ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/ = variable[1] /*n*/;
9705 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9706 if (UNTAG_Bool(variable[3])) { /*if*/
9707 variable[3] = variable[0];
9708 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9709 }
9710 return_label337: while(false);
9711 tracehead = trace.prev;
9712 return;
9713 }
9714 void parser_prod___ABraMethid___n_cbra__eq(val_t self, val_t param0) {
9715 struct trace_t trace = {NULL, NULL, 3983, LOCATE_parser_prod___ABraMethid___n_cbra__eq};
9716 val_t variable[4];
9717 void **closurevariable = NULL;
9718 trace.prev = tracehead; tracehead = &trace;
9719 trace.file = LOCATE_parser_prod;
9720 variable[0] = self;
9721 variable[1] = param0;
9722 variable[3] = variable[0];
9723 ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/ = variable[1] /*n*/;
9724 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9725 if (UNTAG_Bool(variable[3])) { /*if*/
9726 variable[3] = variable[0];
9727 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9728 }
9729 return_label338: while(false);
9730 tracehead = trace.prev;
9731 return;
9732 }
9733 void parser_prod___ABraMethid___replace_child(val_t self, val_t param0, val_t param1) {
9734 struct trace_t trace = {NULL, NULL, 4009, LOCATE_parser_prod___ABraMethid___replace_child};
9735 val_t variable[5];
9736 void **closurevariable = NULL;
9737 trace.prev = tracehead; tracehead = &trace;
9738 trace.file = LOCATE_parser_prod;
9739 variable[0] = self;
9740 variable[1] = param0;
9741 variable[2] = param1;
9742 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::==*/)))))));
9743 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, 4011); nit_exit(1);}
9744 variable[4] = variable[0];
9745 variable[4] = ATTR_parser_nodes___ABraMethid____n_obra(variable[4]) /*ABraMethid::_n_obra*/;
9746 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9747 if (UNTAG_Bool(variable[4])) { /*if*/
9748 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9749 if (UNTAG_Bool(variable[4])) { /*if*/
9750 variable[4] = variable[0];
9751 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9752 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
9753 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, 4015); nit_exit(1);}
9754 variable[4] = variable[0];
9755 ATTR_parser_nodes___ABraMethid____n_obra(variable[4]) /*ABraMethid::_n_obra*/ = variable[2] /*new_child*/;
9756 } else { /*if*/
9757 variable[4] = variable[0];
9758 ATTR_parser_nodes___ABraMethid____n_obra(variable[4]) /*ABraMethid::_n_obra*/ = NIT_NULL /*null*/;
9759 }
9760 goto return_label339;
9761 }
9762 variable[4] = variable[0];
9763 variable[4] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[4]) /*ABraMethid::_n_cbra*/;
9764 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9765 if (UNTAG_Bool(variable[4])) { /*if*/
9766 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9767 if (UNTAG_Bool(variable[4])) { /*if*/
9768 variable[4] = variable[0];
9769 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9770 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
9771 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, 4025); nit_exit(1);}
9772 variable[4] = variable[0];
9773 ATTR_parser_nodes___ABraMethid____n_cbra(variable[4]) /*ABraMethid::_n_cbra*/ = variable[2] /*new_child*/;
9774 } else { /*if*/
9775 variable[4] = variable[0];
9776 ATTR_parser_nodes___ABraMethid____n_cbra(variable[4]) /*ABraMethid::_n_cbra*/ = NIT_NULL /*null*/;
9777 }
9778 goto return_label339;
9779 }
9780 return_label339: while(false);
9781 tracehead = trace.prev;
9782 return;
9783 }
9784 void parser_prod___ABraMethid___visit_all(val_t self, val_t param0) {
9785 struct trace_t trace = {NULL, NULL, 4034, LOCATE_parser_prod___ABraMethid___visit_all};
9786 val_t variable[4];
9787 void **closurevariable = NULL;
9788 trace.prev = tracehead; tracehead = &trace;
9789 trace.file = LOCATE_parser_prod;
9790 variable[0] = self;
9791 variable[1] = param0;
9792 variable[3] = variable[0];
9793 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
9794 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9795 if (UNTAG_Bool(variable[3])) { /*if*/
9796 variable[3] = variable[0];
9797 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
9798 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9799 }
9800 variable[3] = variable[0];
9801 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
9802 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9803 if (UNTAG_Bool(variable[3])) { /*if*/
9804 variable[3] = variable[0];
9805 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
9806 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9807 }
9808 return_label340: while(false);
9809 tracehead = trace.prev;
9810 return;
9811 }
9812 void parser_prod___ABraMethid___visit_all_reverse(val_t self, val_t param0) {
9813 struct trace_t trace = {NULL, NULL, 4044, LOCATE_parser_prod___ABraMethid___visit_all_reverse};
9814 val_t variable[4];
9815 void **closurevariable = NULL;
9816 trace.prev = tracehead; tracehead = &trace;
9817 trace.file = LOCATE_parser_prod;
9818 variable[0] = self;
9819 variable[1] = param0;
9820 variable[3] = variable[0];
9821 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
9822 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9823 if (UNTAG_Bool(variable[3])) { /*if*/
9824 variable[3] = variable[0];
9825 variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
9826 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9827 }
9828 variable[3] = variable[0];
9829 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
9830 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9831 if (UNTAG_Bool(variable[3])) { /*if*/
9832 variable[3] = variable[0];
9833 variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
9834 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9835 }
9836 return_label341: while(false);
9837 tracehead = trace.prev;
9838 return;
9839 }
9840 void parser_prod___ABraMethid___empty_init(val_t self, int* init_table) {
9841 struct trace_t trace = {NULL, NULL, 3991, LOCATE_parser_prod___ABraMethid___empty_init};
9842 val_t variable[2];
9843 void **closurevariable = NULL;
9844 trace.prev = tracehead; tracehead = &trace;
9845 trace.file = LOCATE_parser_prod;
9846 variable[0] = self;
9847 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i]) return;
9848 return_label342: while(false);
9849 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
9850 tracehead = trace.prev;
9851 return;
9852 }
9853 void parser_prod___ABraMethid___init_abramethid(val_t self, val_t param0, val_t param1, int* init_table) {
9854 struct trace_t trace = {NULL, NULL, 3993, LOCATE_parser_prod___ABraMethid___init_abramethid};
9855 val_t variable[5];
9856 void **closurevariable = NULL;
9857 trace.prev = tracehead; tracehead = &trace;
9858 trace.file = LOCATE_parser_prod;
9859 variable[0] = self;
9860 variable[1] = param0;
9861 variable[2] = param1;
9862 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i]) return;
9863 variable[4] = variable[0];
9864 CALL_parser_prod___ABraMethid___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ABraMethid::empty_init*/;
9865 variable[4] = variable[0];
9866 ATTR_parser_nodes___ABraMethid____n_obra(variable[4]) /*ABraMethid::_n_obra*/ = variable[1] /*n_obra*/;
9867 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::==*/)))))));
9868 if (UNTAG_Bool(variable[4])) { /*if*/
9869 variable[4] = variable[0];
9870 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, variable[4]) /*PNode::parent=*/;
9871 }
9872 variable[4] = variable[0];
9873 ATTR_parser_nodes___ABraMethid____n_cbra(variable[4]) /*ABraMethid::_n_cbra*/ = variable[2] /*n_cbra*/;
9874 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::==*/)))))));
9875 if (UNTAG_Bool(variable[4])) { /*if*/
9876 variable[4] = variable[0];
9877 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, variable[4]) /*PNode::parent=*/;
9878 }
9879 return_label343: while(false);
9880 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
9881 tracehead = trace.prev;
9882 return;
9883 }
9884 void parser_prod___AStarshipMethid___n_starship__eq(val_t self, val_t param0) {
9885 struct trace_t trace = {NULL, NULL, 4055, LOCATE_parser_prod___AStarshipMethid___n_starship__eq};
9886 val_t variable[4];
9887 void **closurevariable = NULL;
9888 trace.prev = tracehead; tracehead = &trace;
9889 trace.file = LOCATE_parser_prod;
9890 variable[0] = self;
9891 variable[1] = param0;
9892 variable[3] = variable[0];
9893 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/ = variable[1] /*n*/;
9894 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9895 if (UNTAG_Bool(variable[3])) { /*if*/
9896 variable[3] = variable[0];
9897 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
9898 }
9899 return_label344: while(false);
9900 tracehead = trace.prev;
9901 return;
9902 }
9903 void parser_prod___AStarshipMethid___replace_child(val_t self, val_t param0, val_t param1) {
9904 struct trace_t trace = {NULL, NULL, 4076, LOCATE_parser_prod___AStarshipMethid___replace_child};
9905 val_t variable[5];
9906 void **closurevariable = NULL;
9907 trace.prev = tracehead; tracehead = &trace;
9908 trace.file = LOCATE_parser_prod;
9909 variable[0] = self;
9910 variable[1] = param0;
9911 variable[2] = param1;
9912 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::==*/)))))));
9913 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, 4078); nit_exit(1);}
9914 variable[4] = variable[0];
9915 variable[4] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[4]) /*AStarshipMethid::_n_starship*/;
9916 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
9917 if (UNTAG_Bool(variable[4])) { /*if*/
9918 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
9919 if (UNTAG_Bool(variable[4])) { /*if*/
9920 variable[4] = variable[0];
9921 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
9922 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
9923 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, 4082); nit_exit(1);}
9924 variable[4] = variable[0];
9925 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[4]) /*AStarshipMethid::_n_starship*/ = variable[2] /*new_child*/;
9926 } else { /*if*/
9927 variable[4] = variable[0];
9928 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[4]) /*AStarshipMethid::_n_starship*/ = NIT_NULL /*null*/;
9929 }
9930 goto return_label345;
9931 }
9932 return_label345: while(false);
9933 tracehead = trace.prev;
9934 return;
9935 }
9936 void parser_prod___AStarshipMethid___visit_all(val_t self, val_t param0) {
9937 struct trace_t trace = {NULL, NULL, 4091, LOCATE_parser_prod___AStarshipMethid___visit_all};
9938 val_t variable[4];
9939 void **closurevariable = NULL;
9940 trace.prev = tracehead; tracehead = &trace;
9941 trace.file = LOCATE_parser_prod;
9942 variable[0] = self;
9943 variable[1] = param0;
9944 variable[3] = variable[0];
9945 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
9946 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9947 if (UNTAG_Bool(variable[3])) { /*if*/
9948 variable[3] = variable[0];
9949 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
9950 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9951 }
9952 return_label346: while(false);
9953 tracehead = trace.prev;
9954 return;
9955 }
9956 void parser_prod___AStarshipMethid___visit_all_reverse(val_t self, val_t param0) {
9957 struct trace_t trace = {NULL, NULL, 4098, LOCATE_parser_prod___AStarshipMethid___visit_all_reverse};
9958 val_t variable[4];
9959 void **closurevariable = NULL;
9960 trace.prev = tracehead; tracehead = &trace;
9961 trace.file = LOCATE_parser_prod;
9962 variable[0] = self;
9963 variable[1] = param0;
9964 variable[3] = variable[0];
9965 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
9966 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
9967 if (UNTAG_Bool(variable[3])) { /*if*/
9968 variable[3] = variable[0];
9969 variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
9970 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
9971 }
9972 return_label347: while(false);
9973 tracehead = trace.prev;
9974 return;
9975 }
9976 void parser_prod___AStarshipMethid___empty_init(val_t self, int* init_table) {
9977 struct trace_t trace = {NULL, NULL, 4063, LOCATE_parser_prod___AStarshipMethid___empty_init};
9978 val_t variable[2];
9979 void **closurevariable = NULL;
9980 trace.prev = tracehead; tracehead = &trace;
9981 trace.file = LOCATE_parser_prod;
9982 variable[0] = self;
9983 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
9984 return_label348: while(false);
9985 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
9986 tracehead = trace.prev;
9987 return;
9988 }
9989 void parser_prod___AStarshipMethid___init_astarshipmethid(val_t self, val_t param0, int* init_table) {
9990 struct trace_t trace = {NULL, NULL, 4065, LOCATE_parser_prod___AStarshipMethid___init_astarshipmethid};
9991 val_t variable[4];
9992 void **closurevariable = NULL;
9993 trace.prev = tracehead; tracehead = &trace;
9994 trace.file = LOCATE_parser_prod;
9995 variable[0] = self;
9996 variable[1] = param0;
9997 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
9998 variable[3] = variable[0];
9999 CALL_parser_prod___AStarshipMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStarshipMethid::empty_init*/;
10000 variable[3] = variable[0];
10001 ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/ = variable[1] /*n_starship*/;
10002 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::==*/)))))));
10003 if (UNTAG_Bool(variable[3])) { /*if*/
10004 variable[3] = variable[0];
10005 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_starship*/)( variable[1] /*n_starship*/, variable[3]) /*PNode::parent=*/;
10006 }
10007 return_label349: while(false);
10008 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
10009 tracehead = trace.prev;
10010 return;
10011 }
10012 void parser_prod___AAssignMethid___n_id__eq(val_t self, val_t param0) {
10013 struct trace_t trace = {NULL, NULL, 4106, LOCATE_parser_prod___AAssignMethid___n_id__eq};
10014 val_t variable[4];
10015 void **closurevariable = NULL;
10016 trace.prev = tracehead; tracehead = &trace;
10017 trace.file = LOCATE_parser_prod;
10018 variable[0] = self;
10019 variable[1] = param0;
10020 variable[3] = variable[0];
10021 ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/ = variable[1] /*n*/;
10022 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10023 if (UNTAG_Bool(variable[3])) { /*if*/
10024 variable[3] = variable[0];
10025 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10026 }
10027 return_label350: while(false);
10028 tracehead = trace.prev;
10029 return;
10030 }
10031 void parser_prod___AAssignMethid___n_assign__eq(val_t self, val_t param0) {
10032 struct trace_t trace = {NULL, NULL, 4113, LOCATE_parser_prod___AAssignMethid___n_assign__eq};
10033 val_t variable[4];
10034 void **closurevariable = NULL;
10035 trace.prev = tracehead; tracehead = &trace;
10036 trace.file = LOCATE_parser_prod;
10037 variable[0] = self;
10038 variable[1] = param0;
10039 variable[3] = variable[0];
10040 ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/ = variable[1] /*n*/;
10041 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10042 if (UNTAG_Bool(variable[3])) { /*if*/
10043 variable[3] = variable[0];
10044 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10045 }
10046 return_label351: while(false);
10047 tracehead = trace.prev;
10048 return;
10049 }
10050 void parser_prod___AAssignMethid___replace_child(val_t self, val_t param0, val_t param1) {
10051 struct trace_t trace = {NULL, NULL, 4139, LOCATE_parser_prod___AAssignMethid___replace_child};
10052 val_t variable[5];
10053 void **closurevariable = NULL;
10054 trace.prev = tracehead; tracehead = &trace;
10055 trace.file = LOCATE_parser_prod;
10056 variable[0] = self;
10057 variable[1] = param0;
10058 variable[2] = param1;
10059 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::==*/)))))));
10060 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, 4141); nit_exit(1);}
10061 variable[4] = variable[0];
10062 variable[4] = ATTR_parser_nodes___AAssignMethid____n_id(variable[4]) /*AAssignMethid::_n_id*/;
10063 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10064 if (UNTAG_Bool(variable[4])) { /*if*/
10065 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10066 if (UNTAG_Bool(variable[4])) { /*if*/
10067 variable[4] = variable[0];
10068 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10069 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
10070 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, 4145); nit_exit(1);}
10071 variable[4] = variable[0];
10072 ATTR_parser_nodes___AAssignMethid____n_id(variable[4]) /*AAssignMethid::_n_id*/ = variable[2] /*new_child*/;
10073 } else { /*if*/
10074 variable[4] = variable[0];
10075 ATTR_parser_nodes___AAssignMethid____n_id(variable[4]) /*AAssignMethid::_n_id*/ = NIT_NULL /*null*/;
10076 }
10077 goto return_label352;
10078 }
10079 variable[4] = variable[0];
10080 variable[4] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[4]) /*AAssignMethid::_n_assign*/;
10081 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10082 if (UNTAG_Bool(variable[4])) { /*if*/
10083 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10084 if (UNTAG_Bool(variable[4])) { /*if*/
10085 variable[4] = variable[0];
10086 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10087 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
10088 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, 4155); nit_exit(1);}
10089 variable[4] = variable[0];
10090 ATTR_parser_nodes___AAssignMethid____n_assign(variable[4]) /*AAssignMethid::_n_assign*/ = variable[2] /*new_child*/;
10091 } else { /*if*/
10092 variable[4] = variable[0];
10093 ATTR_parser_nodes___AAssignMethid____n_assign(variable[4]) /*AAssignMethid::_n_assign*/ = NIT_NULL /*null*/;
10094 }
10095 goto return_label352;
10096 }
10097 return_label352: while(false);
10098 tracehead = trace.prev;
10099 return;
10100 }
10101 void parser_prod___AAssignMethid___visit_all(val_t self, val_t param0) {
10102 struct trace_t trace = {NULL, NULL, 4164, LOCATE_parser_prod___AAssignMethid___visit_all};
10103 val_t variable[4];
10104 void **closurevariable = NULL;
10105 trace.prev = tracehead; tracehead = &trace;
10106 trace.file = LOCATE_parser_prod;
10107 variable[0] = self;
10108 variable[1] = param0;
10109 variable[3] = variable[0];
10110 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
10111 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10112 if (UNTAG_Bool(variable[3])) { /*if*/
10113 variable[3] = variable[0];
10114 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
10115 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10116 }
10117 variable[3] = variable[0];
10118 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
10119 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10120 if (UNTAG_Bool(variable[3])) { /*if*/
10121 variable[3] = variable[0];
10122 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
10123 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10124 }
10125 return_label353: while(false);
10126 tracehead = trace.prev;
10127 return;
10128 }
10129 void parser_prod___AAssignMethid___visit_all_reverse(val_t self, val_t param0) {
10130 struct trace_t trace = {NULL, NULL, 4174, LOCATE_parser_prod___AAssignMethid___visit_all_reverse};
10131 val_t variable[4];
10132 void **closurevariable = NULL;
10133 trace.prev = tracehead; tracehead = &trace;
10134 trace.file = LOCATE_parser_prod;
10135 variable[0] = self;
10136 variable[1] = param0;
10137 variable[3] = variable[0];
10138 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
10139 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10140 if (UNTAG_Bool(variable[3])) { /*if*/
10141 variable[3] = variable[0];
10142 variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
10143 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10144 }
10145 variable[3] = variable[0];
10146 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
10147 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10148 if (UNTAG_Bool(variable[3])) { /*if*/
10149 variable[3] = variable[0];
10150 variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
10151 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10152 }
10153 return_label354: while(false);
10154 tracehead = trace.prev;
10155 return;
10156 }
10157 void parser_prod___AAssignMethid___empty_init(val_t self, int* init_table) {
10158 struct trace_t trace = {NULL, NULL, 4121, LOCATE_parser_prod___AAssignMethid___empty_init};
10159 val_t variable[2];
10160 void **closurevariable = NULL;
10161 trace.prev = tracehead; tracehead = &trace;
10162 trace.file = LOCATE_parser_prod;
10163 variable[0] = self;
10164 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
10165 return_label355: while(false);
10166 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
10167 tracehead = trace.prev;
10168 return;
10169 }
10170 void parser_prod___AAssignMethid___init_aassignmethid(val_t self, val_t param0, val_t param1, int* init_table) {
10171 struct trace_t trace = {NULL, NULL, 4123, LOCATE_parser_prod___AAssignMethid___init_aassignmethid};
10172 val_t variable[5];
10173 void **closurevariable = NULL;
10174 trace.prev = tracehead; tracehead = &trace;
10175 trace.file = LOCATE_parser_prod;
10176 variable[0] = self;
10177 variable[1] = param0;
10178 variable[2] = param1;
10179 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
10180 variable[4] = variable[0];
10181 CALL_parser_prod___AAssignMethid___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAssignMethid::empty_init*/;
10182 variable[4] = variable[0];
10183 ATTR_parser_nodes___AAssignMethid____n_id(variable[4]) /*AAssignMethid::_n_id*/ = variable[1] /*n_id*/;
10184 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::==*/)))))));
10185 if (UNTAG_Bool(variable[4])) { /*if*/
10186 variable[4] = variable[0];
10187 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
10188 }
10189 variable[4] = variable[0];
10190 ATTR_parser_nodes___AAssignMethid____n_assign(variable[4]) /*AAssignMethid::_n_assign*/ = variable[2] /*n_assign*/;
10191 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::==*/)))))));
10192 if (UNTAG_Bool(variable[4])) { /*if*/
10193 variable[4] = variable[0];
10194 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, variable[4]) /*PNode::parent=*/;
10195 }
10196 return_label356: while(false);
10197 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
10198 tracehead = trace.prev;
10199 return;
10200 }
10201 void parser_prod___ABraassignMethid___n_obra__eq(val_t self, val_t param0) {
10202 struct trace_t trace = {NULL, NULL, 4185, LOCATE_parser_prod___ABraassignMethid___n_obra__eq};
10203 val_t variable[4];
10204 void **closurevariable = NULL;
10205 trace.prev = tracehead; tracehead = &trace;
10206 trace.file = LOCATE_parser_prod;
10207 variable[0] = self;
10208 variable[1] = param0;
10209 variable[3] = variable[0];
10210 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/ = variable[1] /*n*/;
10211 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10212 if (UNTAG_Bool(variable[3])) { /*if*/
10213 variable[3] = variable[0];
10214 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10215 }
10216 return_label357: while(false);
10217 tracehead = trace.prev;
10218 return;
10219 }
10220 void parser_prod___ABraassignMethid___n_cbra__eq(val_t self, val_t param0) {
10221 struct trace_t trace = {NULL, NULL, 4192, LOCATE_parser_prod___ABraassignMethid___n_cbra__eq};
10222 val_t variable[4];
10223 void **closurevariable = NULL;
10224 trace.prev = tracehead; tracehead = &trace;
10225 trace.file = LOCATE_parser_prod;
10226 variable[0] = self;
10227 variable[1] = param0;
10228 variable[3] = variable[0];
10229 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/ = variable[1] /*n*/;
10230 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10231 if (UNTAG_Bool(variable[3])) { /*if*/
10232 variable[3] = variable[0];
10233 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10234 }
10235 return_label358: while(false);
10236 tracehead = trace.prev;
10237 return;
10238 }
10239 void parser_prod___ABraassignMethid___n_assign__eq(val_t self, val_t param0) {
10240 struct trace_t trace = {NULL, NULL, 4199, LOCATE_parser_prod___ABraassignMethid___n_assign__eq};
10241 val_t variable[4];
10242 void **closurevariable = NULL;
10243 trace.prev = tracehead; tracehead = &trace;
10244 trace.file = LOCATE_parser_prod;
10245 variable[0] = self;
10246 variable[1] = param0;
10247 variable[3] = variable[0];
10248 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/ = variable[1] /*n*/;
10249 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10250 if (UNTAG_Bool(variable[3])) { /*if*/
10251 variable[3] = variable[0];
10252 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10253 }
10254 return_label359: while(false);
10255 tracehead = trace.prev;
10256 return;
10257 }
10258 void parser_prod___ABraassignMethid___replace_child(val_t self, val_t param0, val_t param1) {
10259 struct trace_t trace = {NULL, NULL, 4230, LOCATE_parser_prod___ABraassignMethid___replace_child};
10260 val_t variable[5];
10261 void **closurevariable = NULL;
10262 trace.prev = tracehead; tracehead = &trace;
10263 trace.file = LOCATE_parser_prod;
10264 variable[0] = self;
10265 variable[1] = param0;
10266 variable[2] = param1;
10267 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::==*/)))))));
10268 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, 4232); nit_exit(1);}
10269 variable[4] = variable[0];
10270 variable[4] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[4]) /*ABraassignMethid::_n_obra*/;
10271 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10272 if (UNTAG_Bool(variable[4])) { /*if*/
10273 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10274 if (UNTAG_Bool(variable[4])) { /*if*/
10275 variable[4] = variable[0];
10276 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10277 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
10278 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, 4236); nit_exit(1);}
10279 variable[4] = variable[0];
10280 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[4]) /*ABraassignMethid::_n_obra*/ = variable[2] /*new_child*/;
10281 } else { /*if*/
10282 variable[4] = variable[0];
10283 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[4]) /*ABraassignMethid::_n_obra*/ = NIT_NULL /*null*/;
10284 }
10285 goto return_label360;
10286 }
10287 variable[4] = variable[0];
10288 variable[4] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[4]) /*ABraassignMethid::_n_cbra*/;
10289 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10290 if (UNTAG_Bool(variable[4])) { /*if*/
10291 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10292 if (UNTAG_Bool(variable[4])) { /*if*/
10293 variable[4] = variable[0];
10294 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10295 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
10296 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, 4246); nit_exit(1);}
10297 variable[4] = variable[0];
10298 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[4]) /*ABraassignMethid::_n_cbra*/ = variable[2] /*new_child*/;
10299 } else { /*if*/
10300 variable[4] = variable[0];
10301 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[4]) /*ABraassignMethid::_n_cbra*/ = NIT_NULL /*null*/;
10302 }
10303 goto return_label360;
10304 }
10305 variable[4] = variable[0];
10306 variable[4] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[4]) /*ABraassignMethid::_n_assign*/;
10307 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10308 if (UNTAG_Bool(variable[4])) { /*if*/
10309 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10310 if (UNTAG_Bool(variable[4])) { /*if*/
10311 variable[4] = variable[0];
10312 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10313 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
10314 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, 4256); nit_exit(1);}
10315 variable[4] = variable[0];
10316 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[4]) /*ABraassignMethid::_n_assign*/ = variable[2] /*new_child*/;
10317 } else { /*if*/
10318 variable[4] = variable[0];
10319 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[4]) /*ABraassignMethid::_n_assign*/ = NIT_NULL /*null*/;
10320 }
10321 goto return_label360;
10322 }
10323 return_label360: while(false);
10324 tracehead = trace.prev;
10325 return;
10326 }
10327 void parser_prod___ABraassignMethid___visit_all(val_t self, val_t param0) {
10328 struct trace_t trace = {NULL, NULL, 4265, LOCATE_parser_prod___ABraassignMethid___visit_all};
10329 val_t variable[4];
10330 void **closurevariable = NULL;
10331 trace.prev = tracehead; tracehead = &trace;
10332 trace.file = LOCATE_parser_prod;
10333 variable[0] = self;
10334 variable[1] = param0;
10335 variable[3] = variable[0];
10336 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
10337 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10338 if (UNTAG_Bool(variable[3])) { /*if*/
10339 variable[3] = variable[0];
10340 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
10341 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10342 }
10343 variable[3] = variable[0];
10344 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
10345 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10346 if (UNTAG_Bool(variable[3])) { /*if*/
10347 variable[3] = variable[0];
10348 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
10349 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10350 }
10351 variable[3] = variable[0];
10352 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
10353 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10354 if (UNTAG_Bool(variable[3])) { /*if*/
10355 variable[3] = variable[0];
10356 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
10357 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10358 }
10359 return_label361: while(false);
10360 tracehead = trace.prev;
10361 return;
10362 }
10363 void parser_prod___ABraassignMethid___visit_all_reverse(val_t self, val_t param0) {
10364 struct trace_t trace = {NULL, NULL, 4278, LOCATE_parser_prod___ABraassignMethid___visit_all_reverse};
10365 val_t variable[4];
10366 void **closurevariable = NULL;
10367 trace.prev = tracehead; tracehead = &trace;
10368 trace.file = LOCATE_parser_prod;
10369 variable[0] = self;
10370 variable[1] = param0;
10371 variable[3] = variable[0];
10372 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
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 variable[3] = variable[0];
10376 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
10377 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10378 }
10379 variable[3] = variable[0];
10380 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
10381 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10382 if (UNTAG_Bool(variable[3])) { /*if*/
10383 variable[3] = variable[0];
10384 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
10385 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10386 }
10387 variable[3] = variable[0];
10388 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
10389 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10390 if (UNTAG_Bool(variable[3])) { /*if*/
10391 variable[3] = variable[0];
10392 variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
10393 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10394 }
10395 return_label362: while(false);
10396 tracehead = trace.prev;
10397 return;
10398 }
10399 void parser_prod___ABraassignMethid___empty_init(val_t self, int* init_table) {
10400 struct trace_t trace = {NULL, NULL, 4207, LOCATE_parser_prod___ABraassignMethid___empty_init};
10401 val_t variable[2];
10402 void **closurevariable = NULL;
10403 trace.prev = tracehead; tracehead = &trace;
10404 trace.file = LOCATE_parser_prod;
10405 variable[0] = self;
10406 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
10407 return_label363: while(false);
10408 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
10409 tracehead = trace.prev;
10410 return;
10411 }
10412 void parser_prod___ABraassignMethid___init_abraassignmethid(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
10413 struct trace_t trace = {NULL, NULL, 4209, LOCATE_parser_prod___ABraassignMethid___init_abraassignmethid};
10414 val_t variable[6];
10415 void **closurevariable = NULL;
10416 trace.prev = tracehead; tracehead = &trace;
10417 trace.file = LOCATE_parser_prod;
10418 variable[0] = self;
10419 variable[1] = param0;
10420 variable[2] = param1;
10421 variable[3] = param2;
10422 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
10423 variable[5] = variable[0];
10424 CALL_parser_prod___ABraassignMethid___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ABraassignMethid::empty_init*/;
10425 variable[5] = variable[0];
10426 ATTR_parser_nodes___ABraassignMethid____n_obra(variable[5]) /*ABraassignMethid::_n_obra*/ = variable[1] /*n_obra*/;
10427 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::==*/)))))));
10428 if (UNTAG_Bool(variable[5])) { /*if*/
10429 variable[5] = variable[0];
10430 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, variable[5]) /*PNode::parent=*/;
10431 }
10432 variable[5] = variable[0];
10433 ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[5]) /*ABraassignMethid::_n_cbra*/ = variable[2] /*n_cbra*/;
10434 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::==*/)))))));
10435 if (UNTAG_Bool(variable[5])) { /*if*/
10436 variable[5] = variable[0];
10437 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, variable[5]) /*PNode::parent=*/;
10438 }
10439 variable[5] = variable[0];
10440 ATTR_parser_nodes___ABraassignMethid____n_assign(variable[5]) /*ABraassignMethid::_n_assign*/ = variable[3] /*n_assign*/;
10441 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::==*/)))))));
10442 if (UNTAG_Bool(variable[5])) { /*if*/
10443 variable[5] = variable[0];
10444 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[5]) /*PNode::parent=*/;
10445 }
10446 return_label364: while(false);
10447 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
10448 tracehead = trace.prev;
10449 return;
10450 }
10451 void parser_prod___ASignature___n_type__eq(val_t self, val_t param0) {
10452 struct trace_t trace = {NULL, NULL, 4292, LOCATE_parser_prod___ASignature___n_type__eq};
10453 val_t variable[4];
10454 void **closurevariable = NULL;
10455 trace.prev = tracehead; tracehead = &trace;
10456 trace.file = LOCATE_parser_prod;
10457 variable[0] = self;
10458 variable[1] = param0;
10459 variable[3] = variable[0];
10460 ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/ = variable[1] /*n*/;
10461 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10462 if (UNTAG_Bool(variable[3])) { /*if*/
10463 variable[3] = variable[0];
10464 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10465 }
10466 return_label365: while(false);
10467 tracehead = trace.prev;
10468 return;
10469 }
10470 void parser_prod___ASignature___replace_child(val_t self, val_t param0, val_t param1) {
10471 struct trace_t trace = {NULL, NULL, 4327, LOCATE_parser_prod___ASignature___replace_child};
10472 val_t variable[8];
10473 void **closurevariable = NULL;
10474 trace.prev = tracehead; tracehead = &trace;
10475 trace.file = LOCATE_parser_prod;
10476 variable[0] = self;
10477 variable[1] = param0;
10478 variable[2] = param1;
10479 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::==*/)))))));
10480 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, 4329); nit_exit(1);}
10481 variable[4] = variable[0];
10482 variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[4]) /*ASignature::_n_params*/;
10483 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
10484 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
10485 variable[4] = variable[5];
10486 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
10487 while (true) { /*for*/
10488 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
10489 if (!UNTAG_Bool(variable[5])) break; /*for*/
10490 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
10491 variable[6] = variable[5];
10492 variable[7] = variable[0];
10493 variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[7]) /*ASignature::_n_params*/;
10494 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
10495 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::==*/)))));
10496 if (UNTAG_Bool(variable[7])) { /*if*/
10497 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::==*/)))))));
10498 if (UNTAG_Bool(variable[7])) { /*if*/
10499 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
10500 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, 4333); nit_exit(1);}
10501 variable[7] = variable[0];
10502 variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[7]) /*ASignature::_n_params*/;
10503 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
10504 variable[7] = variable[0];
10505 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
10506 } else { /*if*/
10507 variable[7] = variable[0];
10508 variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[7]) /*ASignature::_n_params*/;
10509 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
10510 }
10511 goto return_label366;
10512 }
10513 continue_367: while(0);
10514 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
10515 }
10516 break_367: while(0);
10517 variable[4] = variable[0];
10518 variable[4] = ATTR_parser_nodes___ASignature____n_type(variable[4]) /*ASignature::_n_type*/;
10519 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10520 if (UNTAG_Bool(variable[4])) { /*if*/
10521 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10522 if (UNTAG_Bool(variable[4])) { /*if*/
10523 variable[4] = variable[0];
10524 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10525 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
10526 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, 4345); nit_exit(1);}
10527 variable[4] = variable[0];
10528 ATTR_parser_nodes___ASignature____n_type(variable[4]) /*ASignature::_n_type*/ = variable[2] /*new_child*/;
10529 } else { /*if*/
10530 variable[4] = variable[0];
10531 ATTR_parser_nodes___ASignature____n_type(variable[4]) /*ASignature::_n_type*/ = NIT_NULL /*null*/;
10532 }
10533 goto return_label366;
10534 }
10535 variable[4] = variable[0];
10536 variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[4]) /*ASignature::_n_closure_decls*/;
10537 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
10538 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
10539 variable[4] = variable[5];
10540 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
10541 while (true) { /*for*/
10542 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
10543 if (!UNTAG_Bool(variable[5])) break; /*for*/
10544 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
10545 variable[6] = variable[5];
10546 variable[7] = variable[0];
10547 variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[7]) /*ASignature::_n_closure_decls*/;
10548 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
10549 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::==*/)))));
10550 if (UNTAG_Bool(variable[7])) { /*if*/
10551 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::==*/)))))));
10552 if (UNTAG_Bool(variable[7])) { /*if*/
10553 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
10554 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, 4355); nit_exit(1);}
10555 variable[7] = variable[0];
10556 variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[7]) /*ASignature::_n_closure_decls*/;
10557 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
10558 variable[7] = variable[0];
10559 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
10560 } else { /*if*/
10561 variable[7] = variable[0];
10562 variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[7]) /*ASignature::_n_closure_decls*/;
10563 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
10564 }
10565 goto return_label366;
10566 }
10567 continue_368: while(0);
10568 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
10569 }
10570 break_368: while(0);
10571 return_label366: while(false);
10572 tracehead = trace.prev;
10573 return;
10574 }
10575 void parser_prod___ASignature___visit_all(val_t self, val_t param0) {
10576 struct trace_t trace = {NULL, NULL, 4366, LOCATE_parser_prod___ASignature___visit_all};
10577 val_t variable[6];
10578 void **closurevariable = NULL;
10579 trace.prev = tracehead; tracehead = &trace;
10580 trace.file = LOCATE_parser_prod;
10581 variable[0] = self;
10582 variable[1] = param0;
10583 variable[3] = variable[0];
10584 variable[3] = ATTR_parser_nodes___ASignature____n_params(variable[3]) /*ASignature::_n_params*/;
10585 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
10586 while (true) { /*for*/
10587 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
10588 if (!UNTAG_Bool(variable[4])) break; /*for*/
10589 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
10590 variable[5] = variable[4];
10591 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
10592 continue_370: while(0);
10593 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
10594 }
10595 break_370: while(0);
10596 variable[3] = variable[0];
10597 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
10598 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10599 if (UNTAG_Bool(variable[3])) { /*if*/
10600 variable[3] = variable[0];
10601 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
10602 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10603 }
10604 variable[3] = variable[0];
10605 variable[3] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[3]) /*ASignature::_n_closure_decls*/;
10606 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
10607 while (true) { /*for*/
10608 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
10609 if (!UNTAG_Bool(variable[4])) break; /*for*/
10610 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
10611 variable[5] = variable[4];
10612 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
10613 continue_371: while(0);
10614 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
10615 }
10616 break_371: while(0);
10617 return_label369: while(false);
10618 tracehead = trace.prev;
10619 return;
10620 }
10621 void parser_prod___ASignature___visit_all_reverse(val_t self, val_t param0) {
10622 struct trace_t trace = {NULL, NULL, 4379, LOCATE_parser_prod___ASignature___visit_all_reverse};
10623 val_t variable[5];
10624 void **closurevariable = NULL;
10625 trace.prev = tracehead; tracehead = &trace;
10626 trace.file = LOCATE_parser_prod;
10627 variable[0] = self;
10628 variable[1] = param0;
10629 variable[4] = variable[0];
10630 variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[4]) /*ASignature::_n_params*/;
10631 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
10632 variable[3] = variable[4];
10633 while (true) { /*while*/
10634 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
10635 if (!UNTAG_Bool(variable[4])) break; /* while*/
10636 variable[4] = variable[0];
10637 variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[4]) /*ASignature::_n_params*/;
10638 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
10639 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
10640 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
10641 variable[3] = variable[4] /*i=*/;
10642 continue_373: while(0);
10643 }
10644 break_373: while(0);
10645 variable[3] = variable[0];
10646 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
10647 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10648 if (UNTAG_Bool(variable[3])) { /*if*/
10649 variable[3] = variable[0];
10650 variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
10651 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10652 }
10653 variable[4] = variable[0];
10654 variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[4]) /*ASignature::_n_closure_decls*/;
10655 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
10656 variable[3] = variable[4];
10657 while (true) { /*while*/
10658 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
10659 if (!UNTAG_Bool(variable[4])) break; /* while*/
10660 variable[4] = variable[0];
10661 variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[4]) /*ASignature::_n_closure_decls*/;
10662 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
10663 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
10664 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
10665 variable[3] = variable[4] /*i=*/;
10666 continue_374: while(0);
10667 }
10668 break_374: while(0);
10669 return_label372: while(false);
10670 tracehead = trace.prev;
10671 return;
10672 }
10673 void parser_prod___ASignature___empty_init(val_t self, int* init_table) {
10674 struct trace_t trace = {NULL, NULL, 4300, LOCATE_parser_prod___ASignature___empty_init};
10675 val_t variable[2];
10676 void **closurevariable = NULL;
10677 trace.prev = tracehead; tracehead = &trace;
10678 trace.file = LOCATE_parser_prod;
10679 variable[0] = self;
10680 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i]) return;
10681 return_label375: while(false);
10682 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i] = 1;
10683 tracehead = trace.prev;
10684 return;
10685 }
10686 void parser_prod___ASignature___init_asignature(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
10687 struct trace_t trace = {NULL, NULL, 4302, LOCATE_parser_prod___ASignature___init_asignature};
10688 val_t variable[9];
10689 void **closurevariable = NULL;
10690 trace.prev = tracehead; tracehead = &trace;
10691 trace.file = LOCATE_parser_prod;
10692 variable[0] = self;
10693 variable[1] = param0;
10694 variable[2] = param1;
10695 variable[3] = param2;
10696 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i]) return;
10697 variable[5] = variable[0];
10698 CALL_parser_prod___ASignature___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ASignature::empty_init*/;
10699 variable[5] = variable[0];
10700 variable[6] = NEW_List_list___List___init(); /*new List[PParam]*/
10701 ATTR_parser_nodes___ASignature____n_params(variable[5]) /*ASignature::_n_params*/ = variable[6];
10702 variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_params*/)( variable[1] /*n_params*/) /*AbstractArray::iterator*/;
10703 while (true) { /*for*/
10704 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
10705 if (!UNTAG_Bool(variable[6])) break; /*for*/
10706 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
10707 variable[7] = variable[6];
10708 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
10709 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, 4311); nit_exit(1);}
10710 variable[8] = variable[0];
10711 variable[8] = ATTR_parser_nodes___ASignature____n_params(variable[8]) /*ASignature::_n_params*/;
10712 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
10713 variable[8] = variable[0];
10714 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
10715 continue_377: while(0);
10716 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
10717 }
10718 break_377: while(0);
10719 variable[5] = variable[0];
10720 ATTR_parser_nodes___ASignature____n_type(variable[5]) /*ASignature::_n_type*/ = variable[2] /*n_type*/;
10721 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::==*/)))))));
10722 if (UNTAG_Bool(variable[5])) { /*if*/
10723 variable[5] = variable[0];
10724 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[5]) /*PNode::parent=*/;
10725 }
10726 variable[5] = variable[0];
10727 variable[6] = NEW_List_list___List___init(); /*new List[PClosureDecl]*/
10728 ATTR_parser_nodes___ASignature____n_closure_decls(variable[5]) /*ASignature::_n_closure_decls*/ = variable[6];
10729 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_closure_decls*/)( variable[3] /*n_closure_decls*/) /*AbstractArray::iterator*/;
10730 while (true) { /*for*/
10731 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
10732 if (!UNTAG_Bool(variable[6])) break; /*for*/
10733 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
10734 variable[7] = variable[6];
10735 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
10736 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, 4321); nit_exit(1);}
10737 variable[8] = variable[0];
10738 variable[8] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[8]) /*ASignature::_n_closure_decls*/;
10739 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
10740 variable[8] = variable[0];
10741 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
10742 continue_378: while(0);
10743 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
10744 }
10745 break_378: while(0);
10746 return_label376: while(false);
10747 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i] = 1;
10748 tracehead = trace.prev;
10749 return;
10750 }
10751 void parser_prod___AParam___n_id__eq(val_t self, val_t param0) {
10752 struct trace_t trace = {NULL, NULL, 4401, LOCATE_parser_prod___AParam___n_id__eq};
10753 val_t variable[4];
10754 void **closurevariable = NULL;
10755 trace.prev = tracehead; tracehead = &trace;
10756 trace.file = LOCATE_parser_prod;
10757 variable[0] = self;
10758 variable[1] = param0;
10759 variable[3] = variable[0];
10760 ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/ = variable[1] /*n*/;
10761 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10762 if (UNTAG_Bool(variable[3])) { /*if*/
10763 variable[3] = variable[0];
10764 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10765 }
10766 return_label379: while(false);
10767 tracehead = trace.prev;
10768 return;
10769 }
10770 void parser_prod___AParam___n_type__eq(val_t self, val_t param0) {
10771 struct trace_t trace = {NULL, NULL, 4408, LOCATE_parser_prod___AParam___n_type__eq};
10772 val_t variable[4];
10773 void **closurevariable = NULL;
10774 trace.prev = tracehead; tracehead = &trace;
10775 trace.file = LOCATE_parser_prod;
10776 variable[0] = self;
10777 variable[1] = param0;
10778 variable[3] = variable[0];
10779 ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/ = variable[1] /*n*/;
10780 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10781 if (UNTAG_Bool(variable[3])) { /*if*/
10782 variable[3] = variable[0];
10783 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10784 }
10785 return_label380: while(false);
10786 tracehead = trace.prev;
10787 return;
10788 }
10789 void parser_prod___AParam___n_dotdotdot__eq(val_t self, val_t param0) {
10790 struct trace_t trace = {NULL, NULL, 4415, LOCATE_parser_prod___AParam___n_dotdotdot__eq};
10791 val_t variable[4];
10792 void **closurevariable = NULL;
10793 trace.prev = tracehead; tracehead = &trace;
10794 trace.file = LOCATE_parser_prod;
10795 variable[0] = self;
10796 variable[1] = param0;
10797 variable[3] = variable[0];
10798 ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/ = variable[1] /*n*/;
10799 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10800 if (UNTAG_Bool(variable[3])) { /*if*/
10801 variable[3] = variable[0];
10802 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
10803 }
10804 return_label381: while(false);
10805 tracehead = trace.prev;
10806 return;
10807 }
10808 void parser_prod___AParam___replace_child(val_t self, val_t param0, val_t param1) {
10809 struct trace_t trace = {NULL, NULL, 4446, LOCATE_parser_prod___AParam___replace_child};
10810 val_t variable[5];
10811 void **closurevariable = NULL;
10812 trace.prev = tracehead; tracehead = &trace;
10813 trace.file = LOCATE_parser_prod;
10814 variable[0] = self;
10815 variable[1] = param0;
10816 variable[2] = param1;
10817 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::==*/)))))));
10818 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, 4448); nit_exit(1);}
10819 variable[4] = variable[0];
10820 variable[4] = ATTR_parser_nodes___PParam____n_id(variable[4]) /*PParam::_n_id*/;
10821 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10822 if (UNTAG_Bool(variable[4])) { /*if*/
10823 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10824 if (UNTAG_Bool(variable[4])) { /*if*/
10825 variable[4] = variable[0];
10826 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10827 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
10828 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, 4452); nit_exit(1);}
10829 variable[4] = variable[0];
10830 ATTR_parser_nodes___PParam____n_id(variable[4]) /*PParam::_n_id*/ = variable[2] /*new_child*/;
10831 } else { /*if*/
10832 variable[4] = variable[0];
10833 ATTR_parser_nodes___PParam____n_id(variable[4]) /*PParam::_n_id*/ = NIT_NULL /*null*/;
10834 }
10835 goto return_label382;
10836 }
10837 variable[4] = variable[0];
10838 variable[4] = ATTR_parser_nodes___PParam____n_type(variable[4]) /*PParam::_n_type*/;
10839 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10840 if (UNTAG_Bool(variable[4])) { /*if*/
10841 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10842 if (UNTAG_Bool(variable[4])) { /*if*/
10843 variable[4] = variable[0];
10844 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10845 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
10846 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, 4462); nit_exit(1);}
10847 variable[4] = variable[0];
10848 ATTR_parser_nodes___PParam____n_type(variable[4]) /*PParam::_n_type*/ = variable[2] /*new_child*/;
10849 } else { /*if*/
10850 variable[4] = variable[0];
10851 ATTR_parser_nodes___PParam____n_type(variable[4]) /*PParam::_n_type*/ = NIT_NULL /*null*/;
10852 }
10853 goto return_label382;
10854 }
10855 variable[4] = variable[0];
10856 variable[4] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[4]) /*AParam::_n_dotdotdot*/;
10857 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
10858 if (UNTAG_Bool(variable[4])) { /*if*/
10859 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
10860 if (UNTAG_Bool(variable[4])) { /*if*/
10861 variable[4] = variable[0];
10862 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
10863 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
10864 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, 4472); nit_exit(1);}
10865 variable[4] = variable[0];
10866 ATTR_parser_nodes___AParam____n_dotdotdot(variable[4]) /*AParam::_n_dotdotdot*/ = variable[2] /*new_child*/;
10867 } else { /*if*/
10868 variable[4] = variable[0];
10869 ATTR_parser_nodes___AParam____n_dotdotdot(variable[4]) /*AParam::_n_dotdotdot*/ = NIT_NULL /*null*/;
10870 }
10871 goto return_label382;
10872 }
10873 return_label382: while(false);
10874 tracehead = trace.prev;
10875 return;
10876 }
10877 void parser_prod___AParam___visit_all(val_t self, val_t param0) {
10878 struct trace_t trace = {NULL, NULL, 4481, LOCATE_parser_prod___AParam___visit_all};
10879 val_t variable[4];
10880 void **closurevariable = NULL;
10881 trace.prev = tracehead; tracehead = &trace;
10882 trace.file = LOCATE_parser_prod;
10883 variable[0] = self;
10884 variable[1] = param0;
10885 variable[3] = variable[0];
10886 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
10887 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10888 if (UNTAG_Bool(variable[3])) { /*if*/
10889 variable[3] = variable[0];
10890 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
10891 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10892 }
10893 variable[3] = variable[0];
10894 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
10895 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10896 if (UNTAG_Bool(variable[3])) { /*if*/
10897 variable[3] = variable[0];
10898 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
10899 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10900 }
10901 variable[3] = variable[0];
10902 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
10903 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10904 if (UNTAG_Bool(variable[3])) { /*if*/
10905 variable[3] = variable[0];
10906 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
10907 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10908 }
10909 return_label383: while(false);
10910 tracehead = trace.prev;
10911 return;
10912 }
10913 void parser_prod___AParam___visit_all_reverse(val_t self, val_t param0) {
10914 struct trace_t trace = {NULL, NULL, 4494, LOCATE_parser_prod___AParam___visit_all_reverse};
10915 val_t variable[4];
10916 void **closurevariable = NULL;
10917 trace.prev = tracehead; tracehead = &trace;
10918 trace.file = LOCATE_parser_prod;
10919 variable[0] = self;
10920 variable[1] = param0;
10921 variable[3] = variable[0];
10922 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
10923 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10924 if (UNTAG_Bool(variable[3])) { /*if*/
10925 variable[3] = variable[0];
10926 variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
10927 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10928 }
10929 variable[3] = variable[0];
10930 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
10931 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10932 if (UNTAG_Bool(variable[3])) { /*if*/
10933 variable[3] = variable[0];
10934 variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
10935 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10936 }
10937 variable[3] = variable[0];
10938 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
10939 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
10940 if (UNTAG_Bool(variable[3])) { /*if*/
10941 variable[3] = variable[0];
10942 variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
10943 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
10944 }
10945 return_label384: while(false);
10946 tracehead = trace.prev;
10947 return;
10948 }
10949 void parser_prod___AParam___empty_init(val_t self, int* init_table) {
10950 struct trace_t trace = {NULL, NULL, 4423, LOCATE_parser_prod___AParam___empty_init};
10951 val_t variable[2];
10952 void **closurevariable = NULL;
10953 trace.prev = tracehead; tracehead = &trace;
10954 trace.file = LOCATE_parser_prod;
10955 variable[0] = self;
10956 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i]) return;
10957 return_label385: while(false);
10958 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i] = 1;
10959 tracehead = trace.prev;
10960 return;
10961 }
10962 void parser_prod___AParam___init_aparam(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
10963 struct trace_t trace = {NULL, NULL, 4425, LOCATE_parser_prod___AParam___init_aparam};
10964 val_t variable[6];
10965 void **closurevariable = NULL;
10966 trace.prev = tracehead; tracehead = &trace;
10967 trace.file = LOCATE_parser_prod;
10968 variable[0] = self;
10969 variable[1] = param0;
10970 variable[2] = param1;
10971 variable[3] = param2;
10972 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i]) return;
10973 variable[5] = variable[0];
10974 CALL_parser_prod___AParam___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AParam::empty_init*/;
10975 variable[5] = variable[0];
10976 ATTR_parser_nodes___PParam____n_id(variable[5]) /*PParam::_n_id*/ = variable[1] /*n_id*/;
10977 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::==*/)))))));
10978 if (UNTAG_Bool(variable[5])) { /*if*/
10979 variable[5] = variable[0];
10980 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
10981 }
10982 variable[5] = variable[0];
10983 ATTR_parser_nodes___PParam____n_type(variable[5]) /*PParam::_n_type*/ = variable[2] /*n_type*/;
10984 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::==*/)))))));
10985 if (UNTAG_Bool(variable[5])) { /*if*/
10986 variable[5] = variable[0];
10987 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[5]) /*PNode::parent=*/;
10988 }
10989 variable[5] = variable[0];
10990 ATTR_parser_nodes___AParam____n_dotdotdot(variable[5]) /*AParam::_n_dotdotdot*/ = variable[3] /*n_dotdotdot*/;
10991 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::==*/)))))));
10992 if (UNTAG_Bool(variable[5])) { /*if*/
10993 variable[5] = variable[0];
10994 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_dotdotdot*/)( variable[3] /*n_dotdotdot*/, variable[5]) /*PNode::parent=*/;
10995 }
10996 return_label386: while(false);
10997 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i] = 1;
10998 tracehead = trace.prev;
10999 return;
11000 }
11001 void parser_prod___AClosureDecl___n_kwwith__eq(val_t self, val_t param0) {
11002 struct trace_t trace = {NULL, NULL, 4508, LOCATE_parser_prod___AClosureDecl___n_kwwith__eq};
11003 val_t variable[4];
11004 void **closurevariable = NULL;
11005 trace.prev = tracehead; tracehead = &trace;
11006 trace.file = LOCATE_parser_prod;
11007 variable[0] = self;
11008 variable[1] = param0;
11009 variable[3] = variable[0];
11010 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/ = variable[1] /*n*/;
11011 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11012 if (UNTAG_Bool(variable[3])) { /*if*/
11013 variable[3] = variable[0];
11014 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11015 }
11016 return_label387: while(false);
11017 tracehead = trace.prev;
11018 return;
11019 }
11020 void parser_prod___AClosureDecl___n_kwbreak__eq(val_t self, val_t param0) {
11021 struct trace_t trace = {NULL, NULL, 4515, LOCATE_parser_prod___AClosureDecl___n_kwbreak__eq};
11022 val_t variable[4];
11023 void **closurevariable = NULL;
11024 trace.prev = tracehead; tracehead = &trace;
11025 trace.file = LOCATE_parser_prod;
11026 variable[0] = self;
11027 variable[1] = param0;
11028 variable[3] = variable[0];
11029 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/ = variable[1] /*n*/;
11030 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11031 if (UNTAG_Bool(variable[3])) { /*if*/
11032 variable[3] = variable[0];
11033 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11034 }
11035 return_label388: while(false);
11036 tracehead = trace.prev;
11037 return;
11038 }
11039 void parser_prod___AClosureDecl___n_id__eq(val_t self, val_t param0) {
11040 struct trace_t trace = {NULL, NULL, 4522, LOCATE_parser_prod___AClosureDecl___n_id__eq};
11041 val_t variable[4];
11042 void **closurevariable = NULL;
11043 trace.prev = tracehead; tracehead = &trace;
11044 trace.file = LOCATE_parser_prod;
11045 variable[0] = self;
11046 variable[1] = param0;
11047 variable[3] = variable[0];
11048 ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/ = variable[1] /*n*/;
11049 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11050 if (UNTAG_Bool(variable[3])) { /*if*/
11051 variable[3] = variable[0];
11052 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11053 }
11054 return_label389: while(false);
11055 tracehead = trace.prev;
11056 return;
11057 }
11058 void parser_prod___AClosureDecl___n_signature__eq(val_t self, val_t param0) {
11059 struct trace_t trace = {NULL, NULL, 4529, LOCATE_parser_prod___AClosureDecl___n_signature__eq};
11060 val_t variable[4];
11061 void **closurevariable = NULL;
11062 trace.prev = tracehead; tracehead = &trace;
11063 trace.file = LOCATE_parser_prod;
11064 variable[0] = self;
11065 variable[1] = param0;
11066 variable[3] = variable[0];
11067 ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/ = variable[1] /*n*/;
11068 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11069 if (UNTAG_Bool(variable[3])) { /*if*/
11070 variable[3] = variable[0];
11071 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11072 }
11073 return_label390: while(false);
11074 tracehead = trace.prev;
11075 return;
11076 }
11077 void parser_prod___AClosureDecl___n_expr__eq(val_t self, val_t param0) {
11078 struct trace_t trace = {NULL, NULL, 4536, LOCATE_parser_prod___AClosureDecl___n_expr__eq};
11079 val_t variable[4];
11080 void **closurevariable = NULL;
11081 trace.prev = tracehead; tracehead = &trace;
11082 trace.file = LOCATE_parser_prod;
11083 variable[0] = self;
11084 variable[1] = param0;
11085 variable[3] = variable[0];
11086 ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/ = variable[1] /*n*/;
11087 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11088 if (UNTAG_Bool(variable[3])) { /*if*/
11089 variable[3] = variable[0];
11090 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11091 }
11092 return_label391: while(false);
11093 tracehead = trace.prev;
11094 return;
11095 }
11096 void parser_prod___AClosureDecl___replace_child(val_t self, val_t param0, val_t param1) {
11097 struct trace_t trace = {NULL, NULL, 4577, LOCATE_parser_prod___AClosureDecl___replace_child};
11098 val_t variable[5];
11099 void **closurevariable = NULL;
11100 trace.prev = tracehead; tracehead = &trace;
11101 trace.file = LOCATE_parser_prod;
11102 variable[0] = self;
11103 variable[1] = param0;
11104 variable[2] = param1;
11105 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::==*/)))))));
11106 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, 4579); nit_exit(1);}
11107 variable[4] = variable[0];
11108 variable[4] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[4]) /*AClosureDecl::_n_kwwith*/;
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 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11112 if (UNTAG_Bool(variable[4])) { /*if*/
11113 variable[4] = variable[0];
11114 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11115 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
11116 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, 4583); nit_exit(1);}
11117 variable[4] = variable[0];
11118 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[4]) /*AClosureDecl::_n_kwwith*/ = variable[2] /*new_child*/;
11119 } else { /*if*/
11120 variable[4] = variable[0];
11121 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[4]) /*AClosureDecl::_n_kwwith*/ = NIT_NULL /*null*/;
11122 }
11123 goto return_label392;
11124 }
11125 variable[4] = variable[0];
11126 variable[4] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[4]) /*AClosureDecl::_n_kwbreak*/;
11127 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11128 if (UNTAG_Bool(variable[4])) { /*if*/
11129 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11130 if (UNTAG_Bool(variable[4])) { /*if*/
11131 variable[4] = variable[0];
11132 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11133 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
11134 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, 4593); nit_exit(1);}
11135 variable[4] = variable[0];
11136 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[4]) /*AClosureDecl::_n_kwbreak*/ = variable[2] /*new_child*/;
11137 } else { /*if*/
11138 variable[4] = variable[0];
11139 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[4]) /*AClosureDecl::_n_kwbreak*/ = NIT_NULL /*null*/;
11140 }
11141 goto return_label392;
11142 }
11143 variable[4] = variable[0];
11144 variable[4] = ATTR_parser_nodes___AClosureDecl____n_id(variable[4]) /*AClosureDecl::_n_id*/;
11145 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11146 if (UNTAG_Bool(variable[4])) { /*if*/
11147 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11148 if (UNTAG_Bool(variable[4])) { /*if*/
11149 variable[4] = variable[0];
11150 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11151 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
11152 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, 4603); nit_exit(1);}
11153 variable[4] = variable[0];
11154 ATTR_parser_nodes___AClosureDecl____n_id(variable[4]) /*AClosureDecl::_n_id*/ = variable[2] /*new_child*/;
11155 } else { /*if*/
11156 variable[4] = variable[0];
11157 ATTR_parser_nodes___AClosureDecl____n_id(variable[4]) /*AClosureDecl::_n_id*/ = NIT_NULL /*null*/;
11158 }
11159 goto return_label392;
11160 }
11161 variable[4] = variable[0];
11162 variable[4] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[4]) /*AClosureDecl::_n_signature*/;
11163 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11164 if (UNTAG_Bool(variable[4])) { /*if*/
11165 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11166 if (UNTAG_Bool(variable[4])) { /*if*/
11167 variable[4] = variable[0];
11168 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11169 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
11170 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, 4613); nit_exit(1);}
11171 variable[4] = variable[0];
11172 ATTR_parser_nodes___AClosureDecl____n_signature(variable[4]) /*AClosureDecl::_n_signature*/ = variable[2] /*new_child*/;
11173 } else { /*if*/
11174 variable[4] = variable[0];
11175 ATTR_parser_nodes___AClosureDecl____n_signature(variable[4]) /*AClosureDecl::_n_signature*/ = NIT_NULL /*null*/;
11176 }
11177 goto return_label392;
11178 }
11179 variable[4] = variable[0];
11180 variable[4] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[4]) /*AClosureDecl::_n_expr*/;
11181 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11182 if (UNTAG_Bool(variable[4])) { /*if*/
11183 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11184 if (UNTAG_Bool(variable[4])) { /*if*/
11185 variable[4] = variable[0];
11186 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11187 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11188 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, 4623); nit_exit(1);}
11189 variable[4] = variable[0];
11190 ATTR_parser_nodes___AClosureDecl____n_expr(variable[4]) /*AClosureDecl::_n_expr*/ = variable[2] /*new_child*/;
11191 } else { /*if*/
11192 variable[4] = variable[0];
11193 ATTR_parser_nodes___AClosureDecl____n_expr(variable[4]) /*AClosureDecl::_n_expr*/ = NIT_NULL /*null*/;
11194 }
11195 goto return_label392;
11196 }
11197 return_label392: while(false);
11198 tracehead = trace.prev;
11199 return;
11200 }
11201 void parser_prod___AClosureDecl___visit_all(val_t self, val_t param0) {
11202 struct trace_t trace = {NULL, NULL, 4632, LOCATE_parser_prod___AClosureDecl___visit_all};
11203 val_t variable[4];
11204 void **closurevariable = NULL;
11205 trace.prev = tracehead; tracehead = &trace;
11206 trace.file = LOCATE_parser_prod;
11207 variable[0] = self;
11208 variable[1] = param0;
11209 variable[3] = variable[0];
11210 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
11211 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11212 if (UNTAG_Bool(variable[3])) { /*if*/
11213 variable[3] = variable[0];
11214 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
11215 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11216 }
11217 variable[3] = variable[0];
11218 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
11219 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11220 if (UNTAG_Bool(variable[3])) { /*if*/
11221 variable[3] = variable[0];
11222 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
11223 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11224 }
11225 variable[3] = variable[0];
11226 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
11227 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11228 if (UNTAG_Bool(variable[3])) { /*if*/
11229 variable[3] = variable[0];
11230 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
11231 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11232 }
11233 variable[3] = variable[0];
11234 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
11235 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11236 if (UNTAG_Bool(variable[3])) { /*if*/
11237 variable[3] = variable[0];
11238 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
11239 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11240 }
11241 variable[3] = variable[0];
11242 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
11243 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11244 if (UNTAG_Bool(variable[3])) { /*if*/
11245 variable[3] = variable[0];
11246 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
11247 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11248 }
11249 return_label393: while(false);
11250 tracehead = trace.prev;
11251 return;
11252 }
11253 void parser_prod___AClosureDecl___visit_all_reverse(val_t self, val_t param0) {
11254 struct trace_t trace = {NULL, NULL, 4651, LOCATE_parser_prod___AClosureDecl___visit_all_reverse};
11255 val_t variable[4];
11256 void **closurevariable = NULL;
11257 trace.prev = tracehead; tracehead = &trace;
11258 trace.file = LOCATE_parser_prod;
11259 variable[0] = self;
11260 variable[1] = param0;
11261 variable[3] = variable[0];
11262 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
11263 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11264 if (UNTAG_Bool(variable[3])) { /*if*/
11265 variable[3] = variable[0];
11266 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
11267 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11268 }
11269 variable[3] = variable[0];
11270 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
11271 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11272 if (UNTAG_Bool(variable[3])) { /*if*/
11273 variable[3] = variable[0];
11274 variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
11275 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11276 }
11277 variable[3] = variable[0];
11278 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
11279 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11280 if (UNTAG_Bool(variable[3])) { /*if*/
11281 variable[3] = variable[0];
11282 variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
11283 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11284 }
11285 variable[3] = variable[0];
11286 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
11287 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11288 if (UNTAG_Bool(variable[3])) { /*if*/
11289 variable[3] = variable[0];
11290 variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
11291 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11292 }
11293 variable[3] = variable[0];
11294 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
11295 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11296 if (UNTAG_Bool(variable[3])) { /*if*/
11297 variable[3] = variable[0];
11298 variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
11299 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11300 }
11301 return_label394: while(false);
11302 tracehead = trace.prev;
11303 return;
11304 }
11305 void parser_prod___AClosureDecl___empty_init(val_t self, int* init_table) {
11306 struct trace_t trace = {NULL, NULL, 4544, LOCATE_parser_prod___AClosureDecl___empty_init};
11307 val_t variable[2];
11308 void **closurevariable = NULL;
11309 trace.prev = tracehead; tracehead = &trace;
11310 trace.file = LOCATE_parser_prod;
11311 variable[0] = self;
11312 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i]) return;
11313 return_label395: while(false);
11314 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i] = 1;
11315 tracehead = trace.prev;
11316 return;
11317 }
11318 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) {
11319 struct trace_t trace = {NULL, NULL, 4546, LOCATE_parser_prod___AClosureDecl___init_aclosuredecl};
11320 val_t variable[8];
11321 void **closurevariable = NULL;
11322 trace.prev = tracehead; tracehead = &trace;
11323 trace.file = LOCATE_parser_prod;
11324 variable[0] = self;
11325 variable[1] = param0;
11326 variable[2] = param1;
11327 variable[3] = param2;
11328 variable[4] = param3;
11329 variable[5] = param4;
11330 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i]) return;
11331 variable[7] = variable[0];
11332 CALL_parser_prod___AClosureDecl___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*AClosureDecl::empty_init*/;
11333 variable[7] = variable[0];
11334 ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[7]) /*AClosureDecl::_n_kwwith*/ = variable[1] /*n_kwwith*/;
11335 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::==*/)))))));
11336 if (UNTAG_Bool(variable[7])) { /*if*/
11337 variable[7] = variable[0];
11338 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, variable[7]) /*PNode::parent=*/;
11339 }
11340 variable[7] = variable[0];
11341 ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[7]) /*AClosureDecl::_n_kwbreak*/ = variable[2] /*n_kwbreak*/;
11342 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::==*/)))))));
11343 if (UNTAG_Bool(variable[7])) { /*if*/
11344 variable[7] = variable[0];
11345 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwbreak*/)( variable[2] /*n_kwbreak*/, variable[7]) /*PNode::parent=*/;
11346 }
11347 variable[7] = variable[0];
11348 ATTR_parser_nodes___AClosureDecl____n_id(variable[7]) /*AClosureDecl::_n_id*/ = variable[3] /*n_id*/;
11349 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::==*/)))))));
11350 if (UNTAG_Bool(variable[7])) { /*if*/
11351 variable[7] = variable[0];
11352 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[7]) /*PNode::parent=*/;
11353 }
11354 variable[7] = variable[0];
11355 ATTR_parser_nodes___AClosureDecl____n_signature(variable[7]) /*AClosureDecl::_n_signature*/ = variable[4] /*n_signature*/;
11356 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::==*/)))))));
11357 if (UNTAG_Bool(variable[7])) { /*if*/
11358 variable[7] = variable[0];
11359 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_signature*/)( variable[4] /*n_signature*/, variable[7]) /*PNode::parent=*/;
11360 }
11361 variable[7] = variable[0];
11362 ATTR_parser_nodes___AClosureDecl____n_expr(variable[7]) /*AClosureDecl::_n_expr*/ = variable[5] /*n_expr*/;
11363 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::==*/)))))));
11364 if (UNTAG_Bool(variable[7])) { /*if*/
11365 variable[7] = variable[0];
11366 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, variable[7]) /*PNode::parent=*/;
11367 }
11368 return_label396: while(false);
11369 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i] = 1;
11370 tracehead = trace.prev;
11371 return;
11372 }
11373 void parser_prod___AType___n_id__eq(val_t self, val_t param0) {
11374 struct trace_t trace = {NULL, NULL, 4671, LOCATE_parser_prod___AType___n_id__eq};
11375 val_t variable[4];
11376 void **closurevariable = NULL;
11377 trace.prev = tracehead; tracehead = &trace;
11378 trace.file = LOCATE_parser_prod;
11379 variable[0] = self;
11380 variable[1] = param0;
11381 variable[3] = variable[0];
11382 ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/ = variable[1] /*n*/;
11383 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11384 if (UNTAG_Bool(variable[3])) { /*if*/
11385 variable[3] = variable[0];
11386 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11387 }
11388 return_label397: while(false);
11389 tracehead = trace.prev;
11390 return;
11391 }
11392 void parser_prod___AType___replace_child(val_t self, val_t param0, val_t param1) {
11393 struct trace_t trace = {NULL, NULL, 4699, LOCATE_parser_prod___AType___replace_child};
11394 val_t variable[8];
11395 void **closurevariable = NULL;
11396 trace.prev = tracehead; tracehead = &trace;
11397 trace.file = LOCATE_parser_prod;
11398 variable[0] = self;
11399 variable[1] = param0;
11400 variable[2] = param1;
11401 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::==*/)))))));
11402 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, 4701); nit_exit(1);}
11403 variable[4] = variable[0];
11404 variable[4] = ATTR_parser_nodes___AType____n_id(variable[4]) /*AType::_n_id*/;
11405 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11406 if (UNTAG_Bool(variable[4])) { /*if*/
11407 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11408 if (UNTAG_Bool(variable[4])) { /*if*/
11409 variable[4] = variable[0];
11410 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11411 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
11412 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, 4705); nit_exit(1);}
11413 variable[4] = variable[0];
11414 ATTR_parser_nodes___AType____n_id(variable[4]) /*AType::_n_id*/ = variable[2] /*new_child*/;
11415 } else { /*if*/
11416 variable[4] = variable[0];
11417 ATTR_parser_nodes___AType____n_id(variable[4]) /*AType::_n_id*/ = NIT_NULL /*null*/;
11418 }
11419 goto return_label398;
11420 }
11421 variable[4] = variable[0];
11422 variable[4] = ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/;
11423 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
11424 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
11425 variable[4] = variable[5];
11426 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
11427 while (true) { /*for*/
11428 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
11429 if (!UNTAG_Bool(variable[5])) break; /*for*/
11430 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
11431 variable[6] = variable[5];
11432 variable[7] = variable[0];
11433 variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
11434 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
11435 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::==*/)))));
11436 if (UNTAG_Bool(variable[7])) { /*if*/
11437 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::==*/)))))));
11438 if (UNTAG_Bool(variable[7])) { /*if*/
11439 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
11440 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, 4715); nit_exit(1);}
11441 variable[7] = variable[0];
11442 variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
11443 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
11444 variable[7] = variable[0];
11445 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
11446 } else { /*if*/
11447 variable[7] = variable[0];
11448 variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
11449 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
11450 }
11451 goto return_label398;
11452 }
11453 continue_399: while(0);
11454 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
11455 }
11456 break_399: while(0);
11457 return_label398: while(false);
11458 tracehead = trace.prev;
11459 return;
11460 }
11461 void parser_prod___AType___visit_all(val_t self, val_t param0) {
11462 struct trace_t trace = {NULL, NULL, 4726, LOCATE_parser_prod___AType___visit_all};
11463 val_t variable[6];
11464 void **closurevariable = NULL;
11465 trace.prev = tracehead; tracehead = &trace;
11466 trace.file = LOCATE_parser_prod;
11467 variable[0] = self;
11468 variable[1] = param0;
11469 variable[3] = variable[0];
11470 variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
11471 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11472 if (UNTAG_Bool(variable[3])) { /*if*/
11473 variable[3] = variable[0];
11474 variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
11475 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11476 }
11477 variable[3] = variable[0];
11478 variable[3] = ATTR_parser_nodes___AType____n_types(variable[3]) /*AType::_n_types*/;
11479 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
11480 while (true) { /*for*/
11481 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
11482 if (!UNTAG_Bool(variable[4])) break; /*for*/
11483 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
11484 variable[5] = variable[4];
11485 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
11486 continue_401: while(0);
11487 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
11488 }
11489 break_401: while(0);
11490 return_label400: while(false);
11491 tracehead = trace.prev;
11492 return;
11493 }
11494 void parser_prod___AType___visit_all_reverse(val_t self, val_t param0) {
11495 struct trace_t trace = {NULL, NULL, 4736, LOCATE_parser_prod___AType___visit_all_reverse};
11496 val_t variable[5];
11497 void **closurevariable = NULL;
11498 trace.prev = tracehead; tracehead = &trace;
11499 trace.file = LOCATE_parser_prod;
11500 variable[0] = self;
11501 variable[1] = param0;
11502 variable[3] = variable[0];
11503 variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
11504 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11505 if (UNTAG_Bool(variable[3])) { /*if*/
11506 variable[3] = variable[0];
11507 variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
11508 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11509 }
11510 variable[4] = variable[0];
11511 variable[4] = ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/;
11512 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
11513 variable[3] = variable[4];
11514 while (true) { /*while*/
11515 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
11516 if (!UNTAG_Bool(variable[4])) break; /* while*/
11517 variable[4] = variable[0];
11518 variable[4] = ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/;
11519 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
11520 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
11521 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
11522 variable[3] = variable[4] /*i=*/;
11523 continue_403: while(0);
11524 }
11525 break_403: while(0);
11526 return_label402: while(false);
11527 tracehead = trace.prev;
11528 return;
11529 }
11530 void parser_prod___AType___empty_init(val_t self, int* init_table) {
11531 struct trace_t trace = {NULL, NULL, 4679, LOCATE_parser_prod___AType___empty_init};
11532 val_t variable[2];
11533 void **closurevariable = NULL;
11534 trace.prev = tracehead; tracehead = &trace;
11535 trace.file = LOCATE_parser_prod;
11536 variable[0] = self;
11537 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i]) return;
11538 return_label404: while(false);
11539 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i] = 1;
11540 tracehead = trace.prev;
11541 return;
11542 }
11543 void parser_prod___AType___init_atype(val_t self, val_t param0, val_t param1, int* init_table) {
11544 struct trace_t trace = {NULL, NULL, 4681, LOCATE_parser_prod___AType___init_atype};
11545 val_t variable[8];
11546 void **closurevariable = NULL;
11547 trace.prev = tracehead; tracehead = &trace;
11548 trace.file = LOCATE_parser_prod;
11549 variable[0] = self;
11550 variable[1] = param0;
11551 variable[2] = param1;
11552 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i]) return;
11553 variable[4] = variable[0];
11554 CALL_parser_prod___AType___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AType::empty_init*/;
11555 variable[4] = variable[0];
11556 ATTR_parser_nodes___AType____n_id(variable[4]) /*AType::_n_id*/ = variable[1] /*n_id*/;
11557 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::==*/)))))));
11558 if (UNTAG_Bool(variable[4])) { /*if*/
11559 variable[4] = variable[0];
11560 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
11561 }
11562 variable[4] = variable[0];
11563 variable[5] = NEW_List_list___List___init(); /*new List[PType]*/
11564 ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/ = variable[5];
11565 variable[4] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_types*/)( variable[2] /*n_types*/) /*AbstractArray::iterator*/;
11566 while (true) { /*for*/
11567 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
11568 if (!UNTAG_Bool(variable[5])) break; /*for*/
11569 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
11570 variable[6] = variable[5];
11571 variable[7] = TAG_Bool(( variable[6] /*n*/==NIT_NULL) || VAL_ISA( variable[6] /*n*/, COLOR_PType, ID_PType)) /*cast PType*/;
11572 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___init_atype, LOCATE_parser_prod, 4693); nit_exit(1);}
11573 variable[7] = variable[0];
11574 variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
11575 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[6] /*n*/) /*IndexedCollection::add*/;
11576 variable[7] = variable[0];
11577 CALL_parser_prod___PNode___parent__eq( variable[6] /*n*/)( variable[6] /*n*/, variable[7]) /*PNode::parent=*/;
11578 continue_406: while(0);
11579 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
11580 }
11581 break_406: while(0);
11582 return_label405: while(false);
11583 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i] = 1;
11584 tracehead = trace.prev;
11585 return;
11586 }
11587 void parser_prod___ABlockExpr___replace_child(val_t self, val_t param0, val_t param1) {
11588 struct trace_t trace = {NULL, NULL, 4767, LOCATE_parser_prod___ABlockExpr___replace_child};
11589 val_t variable[8];
11590 void **closurevariable = NULL;
11591 trace.prev = tracehead; tracehead = &trace;
11592 trace.file = LOCATE_parser_prod;
11593 variable[0] = self;
11594 variable[1] = param0;
11595 variable[2] = param1;
11596 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::==*/)))))));
11597 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, 4769); nit_exit(1);}
11598 variable[4] = variable[0];
11599 variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[4]) /*ABlockExpr::_n_expr*/;
11600 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
11601 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
11602 variable[4] = variable[5];
11603 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
11604 while (true) { /*for*/
11605 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
11606 if (!UNTAG_Bool(variable[5])) break; /*for*/
11607 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
11608 variable[6] = variable[5];
11609 variable[7] = variable[0];
11610 variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[7]) /*ABlockExpr::_n_expr*/;
11611 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
11612 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::==*/)))));
11613 if (UNTAG_Bool(variable[7])) { /*if*/
11614 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::==*/)))))));
11615 if (UNTAG_Bool(variable[7])) { /*if*/
11616 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11617 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, 4773); nit_exit(1);}
11618 variable[7] = variable[0];
11619 variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[7]) /*ABlockExpr::_n_expr*/;
11620 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
11621 variable[7] = variable[0];
11622 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
11623 } else { /*if*/
11624 variable[7] = variable[0];
11625 variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[7]) /*ABlockExpr::_n_expr*/;
11626 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
11627 }
11628 goto return_label407;
11629 }
11630 continue_408: while(0);
11631 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
11632 }
11633 break_408: while(0);
11634 return_label407: while(false);
11635 tracehead = trace.prev;
11636 return;
11637 }
11638 void parser_prod___ABlockExpr___visit_all(val_t self, val_t param0) {
11639 struct trace_t trace = {NULL, NULL, 4784, LOCATE_parser_prod___ABlockExpr___visit_all};
11640 val_t variable[6];
11641 void **closurevariable = NULL;
11642 trace.prev = tracehead; tracehead = &trace;
11643 trace.file = LOCATE_parser_prod;
11644 variable[0] = self;
11645 variable[1] = param0;
11646 variable[3] = variable[0];
11647 variable[3] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[3]) /*ABlockExpr::_n_expr*/;
11648 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
11649 while (true) { /*for*/
11650 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
11651 if (!UNTAG_Bool(variable[4])) break; /*for*/
11652 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
11653 variable[5] = variable[4];
11654 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
11655 continue_410: while(0);
11656 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
11657 }
11658 break_410: while(0);
11659 return_label409: while(false);
11660 tracehead = trace.prev;
11661 return;
11662 }
11663 void parser_prod___ABlockExpr___visit_all_reverse(val_t self, val_t param0) {
11664 struct trace_t trace = {NULL, NULL, 4791, LOCATE_parser_prod___ABlockExpr___visit_all_reverse};
11665 val_t variable[5];
11666 void **closurevariable = NULL;
11667 trace.prev = tracehead; tracehead = &trace;
11668 trace.file = LOCATE_parser_prod;
11669 variable[0] = self;
11670 variable[1] = param0;
11671 variable[4] = variable[0];
11672 variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[4]) /*ABlockExpr::_n_expr*/;
11673 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
11674 variable[3] = variable[4];
11675 while (true) { /*while*/
11676 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
11677 if (!UNTAG_Bool(variable[4])) break; /* while*/
11678 variable[4] = variable[0];
11679 variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[4]) /*ABlockExpr::_n_expr*/;
11680 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
11681 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
11682 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
11683 variable[3] = variable[4] /*i=*/;
11684 continue_412: while(0);
11685 }
11686 break_412: while(0);
11687 return_label411: while(false);
11688 tracehead = trace.prev;
11689 return;
11690 }
11691 void parser_prod___ABlockExpr___empty_init(val_t self, int* init_table) {
11692 struct trace_t trace = {NULL, NULL, 4752, LOCATE_parser_prod___ABlockExpr___empty_init};
11693 val_t variable[2];
11694 void **closurevariable = NULL;
11695 trace.prev = tracehead; tracehead = &trace;
11696 trace.file = LOCATE_parser_prod;
11697 variable[0] = self;
11698 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
11699 return_label413: while(false);
11700 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
11701 tracehead = trace.prev;
11702 return;
11703 }
11704 void parser_prod___ABlockExpr___init_ablockexpr(val_t self, val_t param0, int* init_table) {
11705 struct trace_t trace = {NULL, NULL, 4754, LOCATE_parser_prod___ABlockExpr___init_ablockexpr};
11706 val_t variable[7];
11707 void **closurevariable = NULL;
11708 trace.prev = tracehead; tracehead = &trace;
11709 trace.file = LOCATE_parser_prod;
11710 variable[0] = self;
11711 variable[1] = param0;
11712 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
11713 variable[3] = variable[0];
11714 CALL_parser_prod___ABlockExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ABlockExpr::empty_init*/;
11715 variable[3] = variable[0];
11716 variable[4] = NEW_List_list___List___init(); /*new List[PExpr]*/
11717 ATTR_parser_nodes___ABlockExpr____n_expr(variable[3]) /*ABlockExpr::_n_expr*/ = variable[4];
11718 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_expr*/)( variable[1] /*n_expr*/) /*AbstractArray::iterator*/;
11719 while (true) { /*for*/
11720 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
11721 if (!UNTAG_Bool(variable[4])) break; /*for*/
11722 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
11723 variable[5] = variable[4];
11724 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11725 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, 4761); nit_exit(1);}
11726 variable[6] = variable[0];
11727 variable[6] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[6]) /*ABlockExpr::_n_expr*/;
11728 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
11729 variable[6] = variable[0];
11730 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
11731 continue_415: while(0);
11732 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
11733 }
11734 break_415: while(0);
11735 return_label414: while(false);
11736 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
11737 tracehead = trace.prev;
11738 return;
11739 }
11740 void parser_prod___AVardeclExpr___n_kwvar__eq(val_t self, val_t param0) {
11741 struct trace_t trace = {NULL, NULL, 4803, LOCATE_parser_prod___AVardeclExpr___n_kwvar__eq};
11742 val_t variable[4];
11743 void **closurevariable = NULL;
11744 trace.prev = tracehead; tracehead = &trace;
11745 trace.file = LOCATE_parser_prod;
11746 variable[0] = self;
11747 variable[1] = param0;
11748 variable[3] = variable[0];
11749 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/ = variable[1] /*n*/;
11750 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11751 if (UNTAG_Bool(variable[3])) { /*if*/
11752 variable[3] = variable[0];
11753 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11754 }
11755 return_label416: while(false);
11756 tracehead = trace.prev;
11757 return;
11758 }
11759 void parser_prod___AVardeclExpr___n_id__eq(val_t self, val_t param0) {
11760 struct trace_t trace = {NULL, NULL, 4810, LOCATE_parser_prod___AVardeclExpr___n_id__eq};
11761 val_t variable[4];
11762 void **closurevariable = NULL;
11763 trace.prev = tracehead; tracehead = &trace;
11764 trace.file = LOCATE_parser_prod;
11765 variable[0] = self;
11766 variable[1] = param0;
11767 variable[3] = variable[0];
11768 ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/ = variable[1] /*n*/;
11769 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11770 if (UNTAG_Bool(variable[3])) { /*if*/
11771 variable[3] = variable[0];
11772 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11773 }
11774 return_label417: while(false);
11775 tracehead = trace.prev;
11776 return;
11777 }
11778 void parser_prod___AVardeclExpr___n_type__eq(val_t self, val_t param0) {
11779 struct trace_t trace = {NULL, NULL, 4817, LOCATE_parser_prod___AVardeclExpr___n_type__eq};
11780 val_t variable[4];
11781 void **closurevariable = NULL;
11782 trace.prev = tracehead; tracehead = &trace;
11783 trace.file = LOCATE_parser_prod;
11784 variable[0] = self;
11785 variable[1] = param0;
11786 variable[3] = variable[0];
11787 ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/ = variable[1] /*n*/;
11788 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11789 if (UNTAG_Bool(variable[3])) { /*if*/
11790 variable[3] = variable[0];
11791 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11792 }
11793 return_label418: while(false);
11794 tracehead = trace.prev;
11795 return;
11796 }
11797 void parser_prod___AVardeclExpr___n_assign__eq(val_t self, val_t param0) {
11798 struct trace_t trace = {NULL, NULL, 4824, LOCATE_parser_prod___AVardeclExpr___n_assign__eq};
11799 val_t variable[4];
11800 void **closurevariable = NULL;
11801 trace.prev = tracehead; tracehead = &trace;
11802 trace.file = LOCATE_parser_prod;
11803 variable[0] = self;
11804 variable[1] = param0;
11805 variable[3] = variable[0];
11806 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/ = variable[1] /*n*/;
11807 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11808 if (UNTAG_Bool(variable[3])) { /*if*/
11809 variable[3] = variable[0];
11810 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11811 }
11812 return_label419: while(false);
11813 tracehead = trace.prev;
11814 return;
11815 }
11816 void parser_prod___AVardeclExpr___n_expr__eq(val_t self, val_t param0) {
11817 struct trace_t trace = {NULL, NULL, 4831, LOCATE_parser_prod___AVardeclExpr___n_expr__eq};
11818 val_t variable[4];
11819 void **closurevariable = NULL;
11820 trace.prev = tracehead; tracehead = &trace;
11821 trace.file = LOCATE_parser_prod;
11822 variable[0] = self;
11823 variable[1] = param0;
11824 variable[3] = variable[0];
11825 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/ = variable[1] /*n*/;
11826 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11827 if (UNTAG_Bool(variable[3])) { /*if*/
11828 variable[3] = variable[0];
11829 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
11830 }
11831 return_label420: while(false);
11832 tracehead = trace.prev;
11833 return;
11834 }
11835 void parser_prod___AVardeclExpr___replace_child(val_t self, val_t param0, val_t param1) {
11836 struct trace_t trace = {NULL, NULL, 4872, LOCATE_parser_prod___AVardeclExpr___replace_child};
11837 val_t variable[5];
11838 void **closurevariable = NULL;
11839 trace.prev = tracehead; tracehead = &trace;
11840 trace.file = LOCATE_parser_prod;
11841 variable[0] = self;
11842 variable[1] = param0;
11843 variable[2] = param1;
11844 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::==*/)))))));
11845 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, 4874); nit_exit(1);}
11846 variable[4] = variable[0];
11847 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[4]) /*AVardeclExpr::_n_kwvar*/;
11848 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11849 if (UNTAG_Bool(variable[4])) { /*if*/
11850 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11851 if (UNTAG_Bool(variable[4])) { /*if*/
11852 variable[4] = variable[0];
11853 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11854 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
11855 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, 4878); nit_exit(1);}
11856 variable[4] = variable[0];
11857 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[4]) /*AVardeclExpr::_n_kwvar*/ = variable[2] /*new_child*/;
11858 } else { /*if*/
11859 variable[4] = variable[0];
11860 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[4]) /*AVardeclExpr::_n_kwvar*/ = NIT_NULL /*null*/;
11861 }
11862 goto return_label421;
11863 }
11864 variable[4] = variable[0];
11865 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[4]) /*AVardeclExpr::_n_id*/;
11866 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11867 if (UNTAG_Bool(variable[4])) { /*if*/
11868 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11869 if (UNTAG_Bool(variable[4])) { /*if*/
11870 variable[4] = variable[0];
11871 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11872 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
11873 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, 4888); nit_exit(1);}
11874 variable[4] = variable[0];
11875 ATTR_parser_nodes___AVardeclExpr____n_id(variable[4]) /*AVardeclExpr::_n_id*/ = variable[2] /*new_child*/;
11876 } else { /*if*/
11877 variable[4] = variable[0];
11878 ATTR_parser_nodes___AVardeclExpr____n_id(variable[4]) /*AVardeclExpr::_n_id*/ = NIT_NULL /*null*/;
11879 }
11880 goto return_label421;
11881 }
11882 variable[4] = variable[0];
11883 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[4]) /*AVardeclExpr::_n_type*/;
11884 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11885 if (UNTAG_Bool(variable[4])) { /*if*/
11886 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11887 if (UNTAG_Bool(variable[4])) { /*if*/
11888 variable[4] = variable[0];
11889 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11890 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
11891 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, 4898); nit_exit(1);}
11892 variable[4] = variable[0];
11893 ATTR_parser_nodes___AVardeclExpr____n_type(variable[4]) /*AVardeclExpr::_n_type*/ = variable[2] /*new_child*/;
11894 } else { /*if*/
11895 variable[4] = variable[0];
11896 ATTR_parser_nodes___AVardeclExpr____n_type(variable[4]) /*AVardeclExpr::_n_type*/ = NIT_NULL /*null*/;
11897 }
11898 goto return_label421;
11899 }
11900 variable[4] = variable[0];
11901 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[4]) /*AVardeclExpr::_n_assign*/;
11902 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11903 if (UNTAG_Bool(variable[4])) { /*if*/
11904 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11905 if (UNTAG_Bool(variable[4])) { /*if*/
11906 variable[4] = variable[0];
11907 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11908 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
11909 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, 4908); nit_exit(1);}
11910 variable[4] = variable[0];
11911 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[4]) /*AVardeclExpr::_n_assign*/ = variable[2] /*new_child*/;
11912 } else { /*if*/
11913 variable[4] = variable[0];
11914 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[4]) /*AVardeclExpr::_n_assign*/ = NIT_NULL /*null*/;
11915 }
11916 goto return_label421;
11917 }
11918 variable[4] = variable[0];
11919 variable[4] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[4]) /*AVardeclExpr::_n_expr*/;
11920 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
11921 if (UNTAG_Bool(variable[4])) { /*if*/
11922 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
11923 if (UNTAG_Bool(variable[4])) { /*if*/
11924 variable[4] = variable[0];
11925 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
11926 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11927 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, 4918); nit_exit(1);}
11928 variable[4] = variable[0];
11929 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[4]) /*AVardeclExpr::_n_expr*/ = variable[2] /*new_child*/;
11930 } else { /*if*/
11931 variable[4] = variable[0];
11932 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[4]) /*AVardeclExpr::_n_expr*/ = NIT_NULL /*null*/;
11933 }
11934 goto return_label421;
11935 }
11936 return_label421: while(false);
11937 tracehead = trace.prev;
11938 return;
11939 }
11940 void parser_prod___AVardeclExpr___visit_all(val_t self, val_t param0) {
11941 struct trace_t trace = {NULL, NULL, 4927, LOCATE_parser_prod___AVardeclExpr___visit_all};
11942 val_t variable[4];
11943 void **closurevariable = NULL;
11944 trace.prev = tracehead; tracehead = &trace;
11945 trace.file = LOCATE_parser_prod;
11946 variable[0] = self;
11947 variable[1] = param0;
11948 variable[3] = variable[0];
11949 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
11950 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11951 if (UNTAG_Bool(variable[3])) { /*if*/
11952 variable[3] = variable[0];
11953 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
11954 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11955 }
11956 variable[3] = variable[0];
11957 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
11958 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11959 if (UNTAG_Bool(variable[3])) { /*if*/
11960 variable[3] = variable[0];
11961 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
11962 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11963 }
11964 variable[3] = variable[0];
11965 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
11966 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11967 if (UNTAG_Bool(variable[3])) { /*if*/
11968 variable[3] = variable[0];
11969 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
11970 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11971 }
11972 variable[3] = variable[0];
11973 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
11974 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11975 if (UNTAG_Bool(variable[3])) { /*if*/
11976 variable[3] = variable[0];
11977 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
11978 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11979 }
11980 variable[3] = variable[0];
11981 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
11982 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
11983 if (UNTAG_Bool(variable[3])) { /*if*/
11984 variable[3] = variable[0];
11985 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
11986 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
11987 }
11988 return_label422: while(false);
11989 tracehead = trace.prev;
11990 return;
11991 }
11992 void parser_prod___AVardeclExpr___visit_all_reverse(val_t self, val_t param0) {
11993 struct trace_t trace = {NULL, NULL, 4946, LOCATE_parser_prod___AVardeclExpr___visit_all_reverse};
11994 val_t variable[4];
11995 void **closurevariable = NULL;
11996 trace.prev = tracehead; tracehead = &trace;
11997 trace.file = LOCATE_parser_prod;
11998 variable[0] = self;
11999 variable[1] = param0;
12000 variable[3] = variable[0];
12001 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
12002 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12003 if (UNTAG_Bool(variable[3])) { /*if*/
12004 variable[3] = variable[0];
12005 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
12006 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12007 }
12008 variable[3] = variable[0];
12009 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
12010 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12011 if (UNTAG_Bool(variable[3])) { /*if*/
12012 variable[3] = variable[0];
12013 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
12014 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12015 }
12016 variable[3] = variable[0];
12017 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
12018 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12019 if (UNTAG_Bool(variable[3])) { /*if*/
12020 variable[3] = variable[0];
12021 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
12022 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12023 }
12024 variable[3] = variable[0];
12025 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
12026 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12027 if (UNTAG_Bool(variable[3])) { /*if*/
12028 variable[3] = variable[0];
12029 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
12030 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12031 }
12032 variable[3] = variable[0];
12033 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
12034 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12035 if (UNTAG_Bool(variable[3])) { /*if*/
12036 variable[3] = variable[0];
12037 variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
12038 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12039 }
12040 return_label423: while(false);
12041 tracehead = trace.prev;
12042 return;
12043 }
12044 void parser_prod___AVardeclExpr___empty_init(val_t self, int* init_table) {
12045 struct trace_t trace = {NULL, NULL, 4839, LOCATE_parser_prod___AVardeclExpr___empty_init};
12046 val_t variable[2];
12047 void **closurevariable = NULL;
12048 trace.prev = tracehead; tracehead = &trace;
12049 trace.file = LOCATE_parser_prod;
12050 variable[0] = self;
12051 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
12052 return_label424: while(false);
12053 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
12054 tracehead = trace.prev;
12055 return;
12056 }
12057 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) {
12058 struct trace_t trace = {NULL, NULL, 4841, LOCATE_parser_prod___AVardeclExpr___init_avardeclexpr};
12059 val_t variable[8];
12060 void **closurevariable = NULL;
12061 trace.prev = tracehead; tracehead = &trace;
12062 trace.file = LOCATE_parser_prod;
12063 variable[0] = self;
12064 variable[1] = param0;
12065 variable[2] = param1;
12066 variable[3] = param2;
12067 variable[4] = param3;
12068 variable[5] = param4;
12069 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
12070 variable[7] = variable[0];
12071 CALL_parser_prod___AVardeclExpr___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*AVardeclExpr::empty_init*/;
12072 variable[7] = variable[0];
12073 ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[7]) /*AVardeclExpr::_n_kwvar*/ = variable[1] /*n_kwvar*/;
12074 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::==*/)))))));
12075 if (UNTAG_Bool(variable[7])) { /*if*/
12076 variable[7] = variable[0];
12077 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwvar*/)( variable[1] /*n_kwvar*/, variable[7]) /*PNode::parent=*/;
12078 }
12079 variable[7] = variable[0];
12080 ATTR_parser_nodes___AVardeclExpr____n_id(variable[7]) /*AVardeclExpr::_n_id*/ = variable[2] /*n_id*/;
12081 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::==*/)))))));
12082 if (UNTAG_Bool(variable[7])) { /*if*/
12083 variable[7] = variable[0];
12084 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
12085 }
12086 variable[7] = variable[0];
12087 ATTR_parser_nodes___AVardeclExpr____n_type(variable[7]) /*AVardeclExpr::_n_type*/ = variable[3] /*n_type*/;
12088 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::==*/)))))));
12089 if (UNTAG_Bool(variable[7])) { /*if*/
12090 variable[7] = variable[0];
12091 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_type*/)( variable[3] /*n_type*/, variable[7]) /*PNode::parent=*/;
12092 }
12093 variable[7] = variable[0];
12094 ATTR_parser_nodes___AVardeclExpr____n_assign(variable[7]) /*AVardeclExpr::_n_assign*/ = variable[4] /*n_assign*/;
12095 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::==*/)))))));
12096 if (UNTAG_Bool(variable[7])) { /*if*/
12097 variable[7] = variable[0];
12098 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, variable[7]) /*PNode::parent=*/;
12099 }
12100 variable[7] = variable[0];
12101 ATTR_parser_nodes___AVardeclExpr____n_expr(variable[7]) /*AVardeclExpr::_n_expr*/ = variable[5] /*n_expr*/;
12102 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::==*/)))))));
12103 if (UNTAG_Bool(variable[7])) { /*if*/
12104 variable[7] = variable[0];
12105 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, variable[7]) /*PNode::parent=*/;
12106 }
12107 return_label425: while(false);
12108 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
12109 tracehead = trace.prev;
12110 return;
12111 }
12112 void parser_prod___AReturnExpr___n_kwreturn__eq(val_t self, val_t param0) {
12113 struct trace_t trace = {NULL, NULL, 4966, LOCATE_parser_prod___AReturnExpr___n_kwreturn__eq};
12114 val_t variable[4];
12115 void **closurevariable = NULL;
12116 trace.prev = tracehead; tracehead = &trace;
12117 trace.file = LOCATE_parser_prod;
12118 variable[0] = self;
12119 variable[1] = param0;
12120 variable[3] = variable[0];
12121 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/ = variable[1] /*n*/;
12122 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12123 if (UNTAG_Bool(variable[3])) { /*if*/
12124 variable[3] = variable[0];
12125 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12126 }
12127 return_label426: while(false);
12128 tracehead = trace.prev;
12129 return;
12130 }
12131 void parser_prod___AReturnExpr___n_expr__eq(val_t self, val_t param0) {
12132 struct trace_t trace = {NULL, NULL, 4973, LOCATE_parser_prod___AReturnExpr___n_expr__eq};
12133 val_t variable[4];
12134 void **closurevariable = NULL;
12135 trace.prev = tracehead; tracehead = &trace;
12136 trace.file = LOCATE_parser_prod;
12137 variable[0] = self;
12138 variable[1] = param0;
12139 variable[3] = variable[0];
12140 ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/ = variable[1] /*n*/;
12141 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12142 if (UNTAG_Bool(variable[3])) { /*if*/
12143 variable[3] = variable[0];
12144 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12145 }
12146 return_label427: while(false);
12147 tracehead = trace.prev;
12148 return;
12149 }
12150 void parser_prod___AReturnExpr___replace_child(val_t self, val_t param0, val_t param1) {
12151 struct trace_t trace = {NULL, NULL, 4999, LOCATE_parser_prod___AReturnExpr___replace_child};
12152 val_t variable[5];
12153 void **closurevariable = NULL;
12154 trace.prev = tracehead; tracehead = &trace;
12155 trace.file = LOCATE_parser_prod;
12156 variable[0] = self;
12157 variable[1] = param0;
12158 variable[2] = param1;
12159 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::==*/)))))));
12160 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, 5001); nit_exit(1);}
12161 variable[4] = variable[0];
12162 variable[4] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[4]) /*AReturnExpr::_n_kwreturn*/;
12163 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12164 if (UNTAG_Bool(variable[4])) { /*if*/
12165 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12166 if (UNTAG_Bool(variable[4])) { /*if*/
12167 variable[4] = variable[0];
12168 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12169 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
12170 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, 5005); nit_exit(1);}
12171 variable[4] = variable[0];
12172 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[4]) /*AReturnExpr::_n_kwreturn*/ = variable[2] /*new_child*/;
12173 } else { /*if*/
12174 variable[4] = variable[0];
12175 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[4]) /*AReturnExpr::_n_kwreturn*/ = NIT_NULL /*null*/;
12176 }
12177 goto return_label428;
12178 }
12179 variable[4] = variable[0];
12180 variable[4] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[4]) /*AReturnExpr::_n_expr*/;
12181 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12182 if (UNTAG_Bool(variable[4])) { /*if*/
12183 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12184 if (UNTAG_Bool(variable[4])) { /*if*/
12185 variable[4] = variable[0];
12186 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12187 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12188 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, 5015); nit_exit(1);}
12189 variable[4] = variable[0];
12190 ATTR_parser_nodes___AReturnExpr____n_expr(variable[4]) /*AReturnExpr::_n_expr*/ = variable[2] /*new_child*/;
12191 } else { /*if*/
12192 variable[4] = variable[0];
12193 ATTR_parser_nodes___AReturnExpr____n_expr(variable[4]) /*AReturnExpr::_n_expr*/ = NIT_NULL /*null*/;
12194 }
12195 goto return_label428;
12196 }
12197 return_label428: while(false);
12198 tracehead = trace.prev;
12199 return;
12200 }
12201 void parser_prod___AReturnExpr___visit_all(val_t self, val_t param0) {
12202 struct trace_t trace = {NULL, NULL, 5024, LOCATE_parser_prod___AReturnExpr___visit_all};
12203 val_t variable[4];
12204 void **closurevariable = NULL;
12205 trace.prev = tracehead; tracehead = &trace;
12206 trace.file = LOCATE_parser_prod;
12207 variable[0] = self;
12208 variable[1] = param0;
12209 variable[3] = variable[0];
12210 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
12211 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12212 if (UNTAG_Bool(variable[3])) { /*if*/
12213 variable[3] = variable[0];
12214 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
12215 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12216 }
12217 variable[3] = variable[0];
12218 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
12219 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12220 if (UNTAG_Bool(variable[3])) { /*if*/
12221 variable[3] = variable[0];
12222 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
12223 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12224 }
12225 return_label429: while(false);
12226 tracehead = trace.prev;
12227 return;
12228 }
12229 void parser_prod___AReturnExpr___visit_all_reverse(val_t self, val_t param0) {
12230 struct trace_t trace = {NULL, NULL, 5034, LOCATE_parser_prod___AReturnExpr___visit_all_reverse};
12231 val_t variable[4];
12232 void **closurevariable = NULL;
12233 trace.prev = tracehead; tracehead = &trace;
12234 trace.file = LOCATE_parser_prod;
12235 variable[0] = self;
12236 variable[1] = param0;
12237 variable[3] = variable[0];
12238 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
12239 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12240 if (UNTAG_Bool(variable[3])) { /*if*/
12241 variable[3] = variable[0];
12242 variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
12243 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12244 }
12245 variable[3] = variable[0];
12246 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
12247 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12248 if (UNTAG_Bool(variable[3])) { /*if*/
12249 variable[3] = variable[0];
12250 variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
12251 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12252 }
12253 return_label430: while(false);
12254 tracehead = trace.prev;
12255 return;
12256 }
12257 void parser_prod___AReturnExpr___empty_init(val_t self, int* init_table) {
12258 struct trace_t trace = {NULL, NULL, 4981, LOCATE_parser_prod___AReturnExpr___empty_init};
12259 val_t variable[2];
12260 void **closurevariable = NULL;
12261 trace.prev = tracehead; tracehead = &trace;
12262 trace.file = LOCATE_parser_prod;
12263 variable[0] = self;
12264 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
12265 return_label431: while(false);
12266 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
12267 tracehead = trace.prev;
12268 return;
12269 }
12270 void parser_prod___AReturnExpr___init_areturnexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12271 struct trace_t trace = {NULL, NULL, 4983, LOCATE_parser_prod___AReturnExpr___init_areturnexpr};
12272 val_t variable[5];
12273 void **closurevariable = NULL;
12274 trace.prev = tracehead; tracehead = &trace;
12275 trace.file = LOCATE_parser_prod;
12276 variable[0] = self;
12277 variable[1] = param0;
12278 variable[2] = param1;
12279 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
12280 variable[4] = variable[0];
12281 CALL_parser_prod___AReturnExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AReturnExpr::empty_init*/;
12282 variable[4] = variable[0];
12283 ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[4]) /*AReturnExpr::_n_kwreturn*/ = variable[1] /*n_kwreturn*/;
12284 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::==*/)))))));
12285 if (UNTAG_Bool(variable[4])) { /*if*/
12286 variable[4] = variable[0];
12287 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwreturn*/)( variable[1] /*n_kwreturn*/, variable[4]) /*PNode::parent=*/;
12288 }
12289 variable[4] = variable[0];
12290 ATTR_parser_nodes___AReturnExpr____n_expr(variable[4]) /*AReturnExpr::_n_expr*/ = variable[2] /*n_expr*/;
12291 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::==*/)))))));
12292 if (UNTAG_Bool(variable[4])) { /*if*/
12293 variable[4] = variable[0];
12294 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
12295 }
12296 return_label432: while(false);
12297 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
12298 tracehead = trace.prev;
12299 return;
12300 }
12301 void parser_prod___ABreakExpr___n_kwbreak__eq(val_t self, val_t param0) {
12302 struct trace_t trace = {NULL, NULL, 5045, LOCATE_parser_prod___ABreakExpr___n_kwbreak__eq};
12303 val_t variable[4];
12304 void **closurevariable = NULL;
12305 trace.prev = tracehead; tracehead = &trace;
12306 trace.file = LOCATE_parser_prod;
12307 variable[0] = self;
12308 variable[1] = param0;
12309 variable[3] = variable[0];
12310 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/ = variable[1] /*n*/;
12311 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12312 if (UNTAG_Bool(variable[3])) { /*if*/
12313 variable[3] = variable[0];
12314 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12315 }
12316 return_label433: while(false);
12317 tracehead = trace.prev;
12318 return;
12319 }
12320 void parser_prod___ABreakExpr___n_expr__eq(val_t self, val_t param0) {
12321 struct trace_t trace = {NULL, NULL, 5052, LOCATE_parser_prod___ABreakExpr___n_expr__eq};
12322 val_t variable[4];
12323 void **closurevariable = NULL;
12324 trace.prev = tracehead; tracehead = &trace;
12325 trace.file = LOCATE_parser_prod;
12326 variable[0] = self;
12327 variable[1] = param0;
12328 variable[3] = variable[0];
12329 ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/ = variable[1] /*n*/;
12330 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12331 if (UNTAG_Bool(variable[3])) { /*if*/
12332 variable[3] = variable[0];
12333 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12334 }
12335 return_label434: while(false);
12336 tracehead = trace.prev;
12337 return;
12338 }
12339 void parser_prod___ABreakExpr___replace_child(val_t self, val_t param0, val_t param1) {
12340 struct trace_t trace = {NULL, NULL, 5078, LOCATE_parser_prod___ABreakExpr___replace_child};
12341 val_t variable[5];
12342 void **closurevariable = NULL;
12343 trace.prev = tracehead; tracehead = &trace;
12344 trace.file = LOCATE_parser_prod;
12345 variable[0] = self;
12346 variable[1] = param0;
12347 variable[2] = param1;
12348 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::==*/)))))));
12349 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, 5080); nit_exit(1);}
12350 variable[4] = variable[0];
12351 variable[4] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[4]) /*ABreakExpr::_n_kwbreak*/;
12352 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12353 if (UNTAG_Bool(variable[4])) { /*if*/
12354 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12355 if (UNTAG_Bool(variable[4])) { /*if*/
12356 variable[4] = variable[0];
12357 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12358 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
12359 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, 5084); nit_exit(1);}
12360 variable[4] = variable[0];
12361 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[4]) /*ABreakExpr::_n_kwbreak*/ = variable[2] /*new_child*/;
12362 } else { /*if*/
12363 variable[4] = variable[0];
12364 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[4]) /*ABreakExpr::_n_kwbreak*/ = NIT_NULL /*null*/;
12365 }
12366 goto return_label435;
12367 }
12368 variable[4] = variable[0];
12369 variable[4] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[4]) /*ABreakExpr::_n_expr*/;
12370 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12371 if (UNTAG_Bool(variable[4])) { /*if*/
12372 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12373 if (UNTAG_Bool(variable[4])) { /*if*/
12374 variable[4] = variable[0];
12375 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12376 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12377 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, 5094); nit_exit(1);}
12378 variable[4] = variable[0];
12379 ATTR_parser_nodes___ABreakExpr____n_expr(variable[4]) /*ABreakExpr::_n_expr*/ = variable[2] /*new_child*/;
12380 } else { /*if*/
12381 variable[4] = variable[0];
12382 ATTR_parser_nodes___ABreakExpr____n_expr(variable[4]) /*ABreakExpr::_n_expr*/ = NIT_NULL /*null*/;
12383 }
12384 goto return_label435;
12385 }
12386 return_label435: while(false);
12387 tracehead = trace.prev;
12388 return;
12389 }
12390 void parser_prod___ABreakExpr___visit_all(val_t self, val_t param0) {
12391 struct trace_t trace = {NULL, NULL, 5103, LOCATE_parser_prod___ABreakExpr___visit_all};
12392 val_t variable[4];
12393 void **closurevariable = NULL;
12394 trace.prev = tracehead; tracehead = &trace;
12395 trace.file = LOCATE_parser_prod;
12396 variable[0] = self;
12397 variable[1] = param0;
12398 variable[3] = variable[0];
12399 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
12400 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12401 if (UNTAG_Bool(variable[3])) { /*if*/
12402 variable[3] = variable[0];
12403 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
12404 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12405 }
12406 variable[3] = variable[0];
12407 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
12408 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12409 if (UNTAG_Bool(variable[3])) { /*if*/
12410 variable[3] = variable[0];
12411 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
12412 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12413 }
12414 return_label436: while(false);
12415 tracehead = trace.prev;
12416 return;
12417 }
12418 void parser_prod___ABreakExpr___visit_all_reverse(val_t self, val_t param0) {
12419 struct trace_t trace = {NULL, NULL, 5113, LOCATE_parser_prod___ABreakExpr___visit_all_reverse};
12420 val_t variable[4];
12421 void **closurevariable = NULL;
12422 trace.prev = tracehead; tracehead = &trace;
12423 trace.file = LOCATE_parser_prod;
12424 variable[0] = self;
12425 variable[1] = param0;
12426 variable[3] = variable[0];
12427 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
12428 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12429 if (UNTAG_Bool(variable[3])) { /*if*/
12430 variable[3] = variable[0];
12431 variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
12432 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12433 }
12434 variable[3] = variable[0];
12435 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
12436 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12437 if (UNTAG_Bool(variable[3])) { /*if*/
12438 variable[3] = variable[0];
12439 variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
12440 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12441 }
12442 return_label437: while(false);
12443 tracehead = trace.prev;
12444 return;
12445 }
12446 void parser_prod___ABreakExpr___empty_init(val_t self, int* init_table) {
12447 struct trace_t trace = {NULL, NULL, 5060, LOCATE_parser_prod___ABreakExpr___empty_init};
12448 val_t variable[2];
12449 void **closurevariable = NULL;
12450 trace.prev = tracehead; tracehead = &trace;
12451 trace.file = LOCATE_parser_prod;
12452 variable[0] = self;
12453 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
12454 return_label438: while(false);
12455 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
12456 tracehead = trace.prev;
12457 return;
12458 }
12459 void parser_prod___ABreakExpr___init_abreakexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12460 struct trace_t trace = {NULL, NULL, 5062, LOCATE_parser_prod___ABreakExpr___init_abreakexpr};
12461 val_t variable[5];
12462 void **closurevariable = NULL;
12463 trace.prev = tracehead; tracehead = &trace;
12464 trace.file = LOCATE_parser_prod;
12465 variable[0] = self;
12466 variable[1] = param0;
12467 variable[2] = param1;
12468 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
12469 variable[4] = variable[0];
12470 CALL_parser_prod___ABreakExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ABreakExpr::empty_init*/;
12471 variable[4] = variable[0];
12472 ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[4]) /*ABreakExpr::_n_kwbreak*/ = variable[1] /*n_kwbreak*/;
12473 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::==*/)))))));
12474 if (UNTAG_Bool(variable[4])) { /*if*/
12475 variable[4] = variable[0];
12476 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwbreak*/)( variable[1] /*n_kwbreak*/, variable[4]) /*PNode::parent=*/;
12477 }
12478 variable[4] = variable[0];
12479 ATTR_parser_nodes___ABreakExpr____n_expr(variable[4]) /*ABreakExpr::_n_expr*/ = variable[2] /*n_expr*/;
12480 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::==*/)))))));
12481 if (UNTAG_Bool(variable[4])) { /*if*/
12482 variable[4] = variable[0];
12483 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
12484 }
12485 return_label439: while(false);
12486 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
12487 tracehead = trace.prev;
12488 return;
12489 }
12490 void parser_prod___AAbortExpr___n_kwabort__eq(val_t self, val_t param0) {
12491 struct trace_t trace = {NULL, NULL, 5124, LOCATE_parser_prod___AAbortExpr___n_kwabort__eq};
12492 val_t variable[4];
12493 void **closurevariable = NULL;
12494 trace.prev = tracehead; tracehead = &trace;
12495 trace.file = LOCATE_parser_prod;
12496 variable[0] = self;
12497 variable[1] = param0;
12498 variable[3] = variable[0];
12499 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/ = variable[1] /*n*/;
12500 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12501 if (UNTAG_Bool(variable[3])) { /*if*/
12502 variable[3] = variable[0];
12503 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12504 }
12505 return_label440: while(false);
12506 tracehead = trace.prev;
12507 return;
12508 }
12509 void parser_prod___AAbortExpr___replace_child(val_t self, val_t param0, val_t param1) {
12510 struct trace_t trace = {NULL, NULL, 5145, LOCATE_parser_prod___AAbortExpr___replace_child};
12511 val_t variable[5];
12512 void **closurevariable = NULL;
12513 trace.prev = tracehead; tracehead = &trace;
12514 trace.file = LOCATE_parser_prod;
12515 variable[0] = self;
12516 variable[1] = param0;
12517 variable[2] = param1;
12518 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::==*/)))))));
12519 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, 5147); nit_exit(1);}
12520 variable[4] = variable[0];
12521 variable[4] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[4]) /*AAbortExpr::_n_kwabort*/;
12522 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12523 if (UNTAG_Bool(variable[4])) { /*if*/
12524 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12525 if (UNTAG_Bool(variable[4])) { /*if*/
12526 variable[4] = variable[0];
12527 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12528 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
12529 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, 5151); nit_exit(1);}
12530 variable[4] = variable[0];
12531 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[4]) /*AAbortExpr::_n_kwabort*/ = variable[2] /*new_child*/;
12532 } else { /*if*/
12533 variable[4] = variable[0];
12534 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[4]) /*AAbortExpr::_n_kwabort*/ = NIT_NULL /*null*/;
12535 }
12536 goto return_label441;
12537 }
12538 return_label441: while(false);
12539 tracehead = trace.prev;
12540 return;
12541 }
12542 void parser_prod___AAbortExpr___visit_all(val_t self, val_t param0) {
12543 struct trace_t trace = {NULL, NULL, 5160, LOCATE_parser_prod___AAbortExpr___visit_all};
12544 val_t variable[4];
12545 void **closurevariable = NULL;
12546 trace.prev = tracehead; tracehead = &trace;
12547 trace.file = LOCATE_parser_prod;
12548 variable[0] = self;
12549 variable[1] = param0;
12550 variable[3] = variable[0];
12551 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
12552 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12553 if (UNTAG_Bool(variable[3])) { /*if*/
12554 variable[3] = variable[0];
12555 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
12556 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12557 }
12558 return_label442: while(false);
12559 tracehead = trace.prev;
12560 return;
12561 }
12562 void parser_prod___AAbortExpr___visit_all_reverse(val_t self, val_t param0) {
12563 struct trace_t trace = {NULL, NULL, 5167, LOCATE_parser_prod___AAbortExpr___visit_all_reverse};
12564 val_t variable[4];
12565 void **closurevariable = NULL;
12566 trace.prev = tracehead; tracehead = &trace;
12567 trace.file = LOCATE_parser_prod;
12568 variable[0] = self;
12569 variable[1] = param0;
12570 variable[3] = variable[0];
12571 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
12572 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12573 if (UNTAG_Bool(variable[3])) { /*if*/
12574 variable[3] = variable[0];
12575 variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
12576 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12577 }
12578 return_label443: while(false);
12579 tracehead = trace.prev;
12580 return;
12581 }
12582 void parser_prod___AAbortExpr___empty_init(val_t self, int* init_table) {
12583 struct trace_t trace = {NULL, NULL, 5132, LOCATE_parser_prod___AAbortExpr___empty_init};
12584 val_t variable[2];
12585 void **closurevariable = NULL;
12586 trace.prev = tracehead; tracehead = &trace;
12587 trace.file = LOCATE_parser_prod;
12588 variable[0] = self;
12589 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
12590 return_label444: while(false);
12591 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
12592 tracehead = trace.prev;
12593 return;
12594 }
12595 void parser_prod___AAbortExpr___init_aabortexpr(val_t self, val_t param0, int* init_table) {
12596 struct trace_t trace = {NULL, NULL, 5134, LOCATE_parser_prod___AAbortExpr___init_aabortexpr};
12597 val_t variable[4];
12598 void **closurevariable = NULL;
12599 trace.prev = tracehead; tracehead = &trace;
12600 trace.file = LOCATE_parser_prod;
12601 variable[0] = self;
12602 variable[1] = param0;
12603 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
12604 variable[3] = variable[0];
12605 CALL_parser_prod___AAbortExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AAbortExpr::empty_init*/;
12606 variable[3] = variable[0];
12607 ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/ = variable[1] /*n_kwabort*/;
12608 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::==*/)))))));
12609 if (UNTAG_Bool(variable[3])) { /*if*/
12610 variable[3] = variable[0];
12611 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwabort*/)( variable[1] /*n_kwabort*/, variable[3]) /*PNode::parent=*/;
12612 }
12613 return_label445: while(false);
12614 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
12615 tracehead = trace.prev;
12616 return;
12617 }
12618 void parser_prod___AContinueExpr___n_kwcontinue__eq(val_t self, val_t param0) {
12619 struct trace_t trace = {NULL, NULL, 5175, LOCATE_parser_prod___AContinueExpr___n_kwcontinue__eq};
12620 val_t variable[4];
12621 void **closurevariable = NULL;
12622 trace.prev = tracehead; tracehead = &trace;
12623 trace.file = LOCATE_parser_prod;
12624 variable[0] = self;
12625 variable[1] = param0;
12626 variable[3] = variable[0];
12627 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/ = variable[1] /*n*/;
12628 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12629 if (UNTAG_Bool(variable[3])) { /*if*/
12630 variable[3] = variable[0];
12631 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12632 }
12633 return_label446: while(false);
12634 tracehead = trace.prev;
12635 return;
12636 }
12637 void parser_prod___AContinueExpr___n_expr__eq(val_t self, val_t param0) {
12638 struct trace_t trace = {NULL, NULL, 5182, LOCATE_parser_prod___AContinueExpr___n_expr__eq};
12639 val_t variable[4];
12640 void **closurevariable = NULL;
12641 trace.prev = tracehead; tracehead = &trace;
12642 trace.file = LOCATE_parser_prod;
12643 variable[0] = self;
12644 variable[1] = param0;
12645 variable[3] = variable[0];
12646 ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/ = variable[1] /*n*/;
12647 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12648 if (UNTAG_Bool(variable[3])) { /*if*/
12649 variable[3] = variable[0];
12650 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12651 }
12652 return_label447: while(false);
12653 tracehead = trace.prev;
12654 return;
12655 }
12656 void parser_prod___AContinueExpr___replace_child(val_t self, val_t param0, val_t param1) {
12657 struct trace_t trace = {NULL, NULL, 5208, LOCATE_parser_prod___AContinueExpr___replace_child};
12658 val_t variable[5];
12659 void **closurevariable = NULL;
12660 trace.prev = tracehead; tracehead = &trace;
12661 trace.file = LOCATE_parser_prod;
12662 variable[0] = self;
12663 variable[1] = param0;
12664 variable[2] = param1;
12665 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::==*/)))))));
12666 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, 5210); nit_exit(1);}
12667 variable[4] = variable[0];
12668 variable[4] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[4]) /*AContinueExpr::_n_kwcontinue*/;
12669 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12670 if (UNTAG_Bool(variable[4])) { /*if*/
12671 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12672 if (UNTAG_Bool(variable[4])) { /*if*/
12673 variable[4] = variable[0];
12674 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12675 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
12676 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, 5214); nit_exit(1);}
12677 variable[4] = variable[0];
12678 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[4]) /*AContinueExpr::_n_kwcontinue*/ = variable[2] /*new_child*/;
12679 } else { /*if*/
12680 variable[4] = variable[0];
12681 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[4]) /*AContinueExpr::_n_kwcontinue*/ = NIT_NULL /*null*/;
12682 }
12683 goto return_label448;
12684 }
12685 variable[4] = variable[0];
12686 variable[4] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[4]) /*AContinueExpr::_n_expr*/;
12687 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12688 if (UNTAG_Bool(variable[4])) { /*if*/
12689 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12690 if (UNTAG_Bool(variable[4])) { /*if*/
12691 variable[4] = variable[0];
12692 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12693 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12694 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, 5224); nit_exit(1);}
12695 variable[4] = variable[0];
12696 ATTR_parser_nodes___AContinueExpr____n_expr(variable[4]) /*AContinueExpr::_n_expr*/ = variable[2] /*new_child*/;
12697 } else { /*if*/
12698 variable[4] = variable[0];
12699 ATTR_parser_nodes___AContinueExpr____n_expr(variable[4]) /*AContinueExpr::_n_expr*/ = NIT_NULL /*null*/;
12700 }
12701 goto return_label448;
12702 }
12703 return_label448: while(false);
12704 tracehead = trace.prev;
12705 return;
12706 }
12707 void parser_prod___AContinueExpr___visit_all(val_t self, val_t param0) {
12708 struct trace_t trace = {NULL, NULL, 5233, LOCATE_parser_prod___AContinueExpr___visit_all};
12709 val_t variable[4];
12710 void **closurevariable = NULL;
12711 trace.prev = tracehead; tracehead = &trace;
12712 trace.file = LOCATE_parser_prod;
12713 variable[0] = self;
12714 variable[1] = param0;
12715 variable[3] = variable[0];
12716 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
12717 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12718 if (UNTAG_Bool(variable[3])) { /*if*/
12719 variable[3] = variable[0];
12720 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
12721 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12722 }
12723 variable[3] = variable[0];
12724 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
12725 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12726 if (UNTAG_Bool(variable[3])) { /*if*/
12727 variable[3] = variable[0];
12728 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
12729 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12730 }
12731 return_label449: while(false);
12732 tracehead = trace.prev;
12733 return;
12734 }
12735 void parser_prod___AContinueExpr___visit_all_reverse(val_t self, val_t param0) {
12736 struct trace_t trace = {NULL, NULL, 5243, LOCATE_parser_prod___AContinueExpr___visit_all_reverse};
12737 val_t variable[4];
12738 void **closurevariable = NULL;
12739 trace.prev = tracehead; tracehead = &trace;
12740 trace.file = LOCATE_parser_prod;
12741 variable[0] = self;
12742 variable[1] = param0;
12743 variable[3] = variable[0];
12744 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
12745 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12746 if (UNTAG_Bool(variable[3])) { /*if*/
12747 variable[3] = variable[0];
12748 variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
12749 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12750 }
12751 variable[3] = variable[0];
12752 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
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 variable[3] = variable[0];
12756 variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
12757 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12758 }
12759 return_label450: while(false);
12760 tracehead = trace.prev;
12761 return;
12762 }
12763 void parser_prod___AContinueExpr___empty_init(val_t self, int* init_table) {
12764 struct trace_t trace = {NULL, NULL, 5190, LOCATE_parser_prod___AContinueExpr___empty_init};
12765 val_t variable[2];
12766 void **closurevariable = NULL;
12767 trace.prev = tracehead; tracehead = &trace;
12768 trace.file = LOCATE_parser_prod;
12769 variable[0] = self;
12770 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
12771 return_label451: while(false);
12772 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
12773 tracehead = trace.prev;
12774 return;
12775 }
12776 void parser_prod___AContinueExpr___init_acontinueexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12777 struct trace_t trace = {NULL, NULL, 5192, LOCATE_parser_prod___AContinueExpr___init_acontinueexpr};
12778 val_t variable[5];
12779 void **closurevariable = NULL;
12780 trace.prev = tracehead; tracehead = &trace;
12781 trace.file = LOCATE_parser_prod;
12782 variable[0] = self;
12783 variable[1] = param0;
12784 variable[2] = param1;
12785 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
12786 variable[4] = variable[0];
12787 CALL_parser_prod___AContinueExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AContinueExpr::empty_init*/;
12788 variable[4] = variable[0];
12789 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[4]) /*AContinueExpr::_n_kwcontinue*/ = variable[1] /*n_kwcontinue*/;
12790 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::==*/)))))));
12791 if (UNTAG_Bool(variable[4])) { /*if*/
12792 variable[4] = variable[0];
12793 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwcontinue*/)( variable[1] /*n_kwcontinue*/, variable[4]) /*PNode::parent=*/;
12794 }
12795 variable[4] = variable[0];
12796 ATTR_parser_nodes___AContinueExpr____n_expr(variable[4]) /*AContinueExpr::_n_expr*/ = variable[2] /*n_expr*/;
12797 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::==*/)))))));
12798 if (UNTAG_Bool(variable[4])) { /*if*/
12799 variable[4] = variable[0];
12800 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
12801 }
12802 return_label452: while(false);
12803 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
12804 tracehead = trace.prev;
12805 return;
12806 }
12807 void parser_prod___ADoExpr___n_kwdo__eq(val_t self, val_t param0) {
12808 struct trace_t trace = {NULL, NULL, 5254, LOCATE_parser_prod___ADoExpr___n_kwdo__eq};
12809 val_t variable[4];
12810 void **closurevariable = NULL;
12811 trace.prev = tracehead; tracehead = &trace;
12812 trace.file = LOCATE_parser_prod;
12813 variable[0] = self;
12814 variable[1] = param0;
12815 variable[3] = variable[0];
12816 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/ = variable[1] /*n*/;
12817 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12818 if (UNTAG_Bool(variable[3])) { /*if*/
12819 variable[3] = variable[0];
12820 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12821 }
12822 return_label453: while(false);
12823 tracehead = trace.prev;
12824 return;
12825 }
12826 void parser_prod___ADoExpr___n_block__eq(val_t self, val_t param0) {
12827 struct trace_t trace = {NULL, NULL, 5261, LOCATE_parser_prod___ADoExpr___n_block__eq};
12828 val_t variable[4];
12829 void **closurevariable = NULL;
12830 trace.prev = tracehead; tracehead = &trace;
12831 trace.file = LOCATE_parser_prod;
12832 variable[0] = self;
12833 variable[1] = param0;
12834 variable[3] = variable[0];
12835 ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/ = variable[1] /*n*/;
12836 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12837 if (UNTAG_Bool(variable[3])) { /*if*/
12838 variable[3] = variable[0];
12839 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
12840 }
12841 return_label454: while(false);
12842 tracehead = trace.prev;
12843 return;
12844 }
12845 void parser_prod___ADoExpr___replace_child(val_t self, val_t param0, val_t param1) {
12846 struct trace_t trace = {NULL, NULL, 5287, LOCATE_parser_prod___ADoExpr___replace_child};
12847 val_t variable[5];
12848 void **closurevariable = NULL;
12849 trace.prev = tracehead; tracehead = &trace;
12850 trace.file = LOCATE_parser_prod;
12851 variable[0] = self;
12852 variable[1] = param0;
12853 variable[2] = param1;
12854 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::==*/)))))));
12855 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, 5289); nit_exit(1);}
12856 variable[4] = variable[0];
12857 variable[4] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[4]) /*ADoExpr::_n_kwdo*/;
12858 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12859 if (UNTAG_Bool(variable[4])) { /*if*/
12860 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12861 if (UNTAG_Bool(variable[4])) { /*if*/
12862 variable[4] = variable[0];
12863 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12864 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
12865 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, 5293); nit_exit(1);}
12866 variable[4] = variable[0];
12867 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[4]) /*ADoExpr::_n_kwdo*/ = variable[2] /*new_child*/;
12868 } else { /*if*/
12869 variable[4] = variable[0];
12870 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[4]) /*ADoExpr::_n_kwdo*/ = NIT_NULL /*null*/;
12871 }
12872 goto return_label455;
12873 }
12874 variable[4] = variable[0];
12875 variable[4] = ATTR_parser_nodes___ADoExpr____n_block(variable[4]) /*ADoExpr::_n_block*/;
12876 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
12877 if (UNTAG_Bool(variable[4])) { /*if*/
12878 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
12879 if (UNTAG_Bool(variable[4])) { /*if*/
12880 variable[4] = variable[0];
12881 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
12882 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12883 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, 5303); nit_exit(1);}
12884 variable[4] = variable[0];
12885 ATTR_parser_nodes___ADoExpr____n_block(variable[4]) /*ADoExpr::_n_block*/ = variable[2] /*new_child*/;
12886 } else { /*if*/
12887 variable[4] = variable[0];
12888 ATTR_parser_nodes___ADoExpr____n_block(variable[4]) /*ADoExpr::_n_block*/ = NIT_NULL /*null*/;
12889 }
12890 goto return_label455;
12891 }
12892 return_label455: while(false);
12893 tracehead = trace.prev;
12894 return;
12895 }
12896 void parser_prod___ADoExpr___visit_all(val_t self, val_t param0) {
12897 struct trace_t trace = {NULL, NULL, 5312, LOCATE_parser_prod___ADoExpr___visit_all};
12898 val_t variable[4];
12899 void **closurevariable = NULL;
12900 trace.prev = tracehead; tracehead = &trace;
12901 trace.file = LOCATE_parser_prod;
12902 variable[0] = self;
12903 variable[1] = param0;
12904 variable[3] = variable[0];
12905 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
12906 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12907 if (UNTAG_Bool(variable[3])) { /*if*/
12908 variable[3] = variable[0];
12909 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
12910 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12911 }
12912 variable[3] = variable[0];
12913 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
12914 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12915 if (UNTAG_Bool(variable[3])) { /*if*/
12916 variable[3] = variable[0];
12917 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
12918 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12919 }
12920 return_label456: while(false);
12921 tracehead = trace.prev;
12922 return;
12923 }
12924 void parser_prod___ADoExpr___visit_all_reverse(val_t self, val_t param0) {
12925 struct trace_t trace = {NULL, NULL, 5322, LOCATE_parser_prod___ADoExpr___visit_all_reverse};
12926 val_t variable[4];
12927 void **closurevariable = NULL;
12928 trace.prev = tracehead; tracehead = &trace;
12929 trace.file = LOCATE_parser_prod;
12930 variable[0] = self;
12931 variable[1] = param0;
12932 variable[3] = variable[0];
12933 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
12934 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12935 if (UNTAG_Bool(variable[3])) { /*if*/
12936 variable[3] = variable[0];
12937 variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
12938 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12939 }
12940 variable[3] = variable[0];
12941 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
12942 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
12943 if (UNTAG_Bool(variable[3])) { /*if*/
12944 variable[3] = variable[0];
12945 variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
12946 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
12947 }
12948 return_label457: while(false);
12949 tracehead = trace.prev;
12950 return;
12951 }
12952 void parser_prod___ADoExpr___empty_init(val_t self, int* init_table) {
12953 struct trace_t trace = {NULL, NULL, 5269, LOCATE_parser_prod___ADoExpr___empty_init};
12954 val_t variable[2];
12955 void **closurevariable = NULL;
12956 trace.prev = tracehead; tracehead = &trace;
12957 trace.file = LOCATE_parser_prod;
12958 variable[0] = self;
12959 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i]) return;
12960 return_label458: while(false);
12961 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
12962 tracehead = trace.prev;
12963 return;
12964 }
12965 void parser_prod___ADoExpr___init_adoexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12966 struct trace_t trace = {NULL, NULL, 5271, LOCATE_parser_prod___ADoExpr___init_adoexpr};
12967 val_t variable[5];
12968 void **closurevariable = NULL;
12969 trace.prev = tracehead; tracehead = &trace;
12970 trace.file = LOCATE_parser_prod;
12971 variable[0] = self;
12972 variable[1] = param0;
12973 variable[2] = param1;
12974 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i]) return;
12975 variable[4] = variable[0];
12976 CALL_parser_prod___ADoExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ADoExpr::empty_init*/;
12977 variable[4] = variable[0];
12978 ATTR_parser_nodes___ADoExpr____n_kwdo(variable[4]) /*ADoExpr::_n_kwdo*/ = variable[1] /*n_kwdo*/;
12979 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::==*/)))))));
12980 if (UNTAG_Bool(variable[4])) { /*if*/
12981 variable[4] = variable[0];
12982 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwdo*/)( variable[1] /*n_kwdo*/, variable[4]) /*PNode::parent=*/;
12983 }
12984 variable[4] = variable[0];
12985 ATTR_parser_nodes___ADoExpr____n_block(variable[4]) /*ADoExpr::_n_block*/ = variable[2] /*n_block*/;
12986 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::==*/)))))));
12987 if (UNTAG_Bool(variable[4])) { /*if*/
12988 variable[4] = variable[0];
12989 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_block*/)( variable[2] /*n_block*/, variable[4]) /*PNode::parent=*/;
12990 }
12991 return_label459: while(false);
12992 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
12993 tracehead = trace.prev;
12994 return;
12995 }
12996 void parser_prod___AIfExpr___n_kwif__eq(val_t self, val_t param0) {
12997 struct trace_t trace = {NULL, NULL, 5333, LOCATE_parser_prod___AIfExpr___n_kwif__eq};
12998 val_t variable[4];
12999 void **closurevariable = NULL;
13000 trace.prev = tracehead; tracehead = &trace;
13001 trace.file = LOCATE_parser_prod;
13002 variable[0] = self;
13003 variable[1] = param0;
13004 variable[3] = variable[0];
13005 ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/ = variable[1] /*n*/;
13006 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13007 if (UNTAG_Bool(variable[3])) { /*if*/
13008 variable[3] = variable[0];
13009 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13010 }
13011 return_label460: while(false);
13012 tracehead = trace.prev;
13013 return;
13014 }
13015 void parser_prod___AIfExpr___n_expr__eq(val_t self, val_t param0) {
13016 struct trace_t trace = {NULL, NULL, 5340, LOCATE_parser_prod___AIfExpr___n_expr__eq};
13017 val_t variable[4];
13018 void **closurevariable = NULL;
13019 trace.prev = tracehead; tracehead = &trace;
13020 trace.file = LOCATE_parser_prod;
13021 variable[0] = self;
13022 variable[1] = param0;
13023 variable[3] = variable[0];
13024 ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/ = variable[1] /*n*/;
13025 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13026 if (UNTAG_Bool(variable[3])) { /*if*/
13027 variable[3] = variable[0];
13028 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13029 }
13030 return_label461: while(false);
13031 tracehead = trace.prev;
13032 return;
13033 }
13034 void parser_prod___AIfExpr___n_then__eq(val_t self, val_t param0) {
13035 struct trace_t trace = {NULL, NULL, 5347, LOCATE_parser_prod___AIfExpr___n_then__eq};
13036 val_t variable[4];
13037 void **closurevariable = NULL;
13038 trace.prev = tracehead; tracehead = &trace;
13039 trace.file = LOCATE_parser_prod;
13040 variable[0] = self;
13041 variable[1] = param0;
13042 variable[3] = variable[0];
13043 ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/ = variable[1] /*n*/;
13044 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13045 if (UNTAG_Bool(variable[3])) { /*if*/
13046 variable[3] = variable[0];
13047 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13048 }
13049 return_label462: while(false);
13050 tracehead = trace.prev;
13051 return;
13052 }
13053 void parser_prod___AIfExpr___n_else__eq(val_t self, val_t param0) {
13054 struct trace_t trace = {NULL, NULL, 5354, LOCATE_parser_prod___AIfExpr___n_else__eq};
13055 val_t variable[4];
13056 void **closurevariable = NULL;
13057 trace.prev = tracehead; tracehead = &trace;
13058 trace.file = LOCATE_parser_prod;
13059 variable[0] = self;
13060 variable[1] = param0;
13061 variable[3] = variable[0];
13062 ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/ = variable[1] /*n*/;
13063 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13064 if (UNTAG_Bool(variable[3])) { /*if*/
13065 variable[3] = variable[0];
13066 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13067 }
13068 return_label463: while(false);
13069 tracehead = trace.prev;
13070 return;
13071 }
13072 void parser_prod___AIfExpr___replace_child(val_t self, val_t param0, val_t param1) {
13073 struct trace_t trace = {NULL, NULL, 5390, LOCATE_parser_prod___AIfExpr___replace_child};
13074 val_t variable[5];
13075 void **closurevariable = NULL;
13076 trace.prev = tracehead; tracehead = &trace;
13077 trace.file = LOCATE_parser_prod;
13078 variable[0] = self;
13079 variable[1] = param0;
13080 variable[2] = param1;
13081 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::==*/)))))));
13082 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, 5392); nit_exit(1);}
13083 variable[4] = variable[0];
13084 variable[4] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[4]) /*AIfExpr::_n_kwif*/;
13085 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13086 if (UNTAG_Bool(variable[4])) { /*if*/
13087 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13088 if (UNTAG_Bool(variable[4])) { /*if*/
13089 variable[4] = variable[0];
13090 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13091 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
13092 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, 5396); nit_exit(1);}
13093 variable[4] = variable[0];
13094 ATTR_parser_nodes___AIfExpr____n_kwif(variable[4]) /*AIfExpr::_n_kwif*/ = variable[2] /*new_child*/;
13095 } else { /*if*/
13096 variable[4] = variable[0];
13097 ATTR_parser_nodes___AIfExpr____n_kwif(variable[4]) /*AIfExpr::_n_kwif*/ = NIT_NULL /*null*/;
13098 }
13099 goto return_label464;
13100 }
13101 variable[4] = variable[0];
13102 variable[4] = ATTR_parser_nodes___AIfExpr____n_expr(variable[4]) /*AIfExpr::_n_expr*/;
13103 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13104 if (UNTAG_Bool(variable[4])) { /*if*/
13105 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13106 if (UNTAG_Bool(variable[4])) { /*if*/
13107 variable[4] = variable[0];
13108 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13109 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13110 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, 5406); nit_exit(1);}
13111 variable[4] = variable[0];
13112 ATTR_parser_nodes___AIfExpr____n_expr(variable[4]) /*AIfExpr::_n_expr*/ = variable[2] /*new_child*/;
13113 } else { /*if*/
13114 variable[4] = variable[0];
13115 ATTR_parser_nodes___AIfExpr____n_expr(variable[4]) /*AIfExpr::_n_expr*/ = NIT_NULL /*null*/;
13116 }
13117 goto return_label464;
13118 }
13119 variable[4] = variable[0];
13120 variable[4] = ATTR_parser_nodes___AIfExpr____n_then(variable[4]) /*AIfExpr::_n_then*/;
13121 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13122 if (UNTAG_Bool(variable[4])) { /*if*/
13123 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13124 if (UNTAG_Bool(variable[4])) { /*if*/
13125 variable[4] = variable[0];
13126 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13127 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13128 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, 5416); nit_exit(1);}
13129 variable[4] = variable[0];
13130 ATTR_parser_nodes___AIfExpr____n_then(variable[4]) /*AIfExpr::_n_then*/ = variable[2] /*new_child*/;
13131 } else { /*if*/
13132 variable[4] = variable[0];
13133 ATTR_parser_nodes___AIfExpr____n_then(variable[4]) /*AIfExpr::_n_then*/ = NIT_NULL /*null*/;
13134 }
13135 goto return_label464;
13136 }
13137 variable[4] = variable[0];
13138 variable[4] = ATTR_parser_nodes___AIfExpr____n_else(variable[4]) /*AIfExpr::_n_else*/;
13139 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13140 if (UNTAG_Bool(variable[4])) { /*if*/
13141 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13142 if (UNTAG_Bool(variable[4])) { /*if*/
13143 variable[4] = variable[0];
13144 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13145 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13146 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, 5426); nit_exit(1);}
13147 variable[4] = variable[0];
13148 ATTR_parser_nodes___AIfExpr____n_else(variable[4]) /*AIfExpr::_n_else*/ = variable[2] /*new_child*/;
13149 } else { /*if*/
13150 variable[4] = variable[0];
13151 ATTR_parser_nodes___AIfExpr____n_else(variable[4]) /*AIfExpr::_n_else*/ = NIT_NULL /*null*/;
13152 }
13153 goto return_label464;
13154 }
13155 return_label464: while(false);
13156 tracehead = trace.prev;
13157 return;
13158 }
13159 void parser_prod___AIfExpr___visit_all(val_t self, val_t param0) {
13160 struct trace_t trace = {NULL, NULL, 5435, LOCATE_parser_prod___AIfExpr___visit_all};
13161 val_t variable[4];
13162 void **closurevariable = NULL;
13163 trace.prev = tracehead; tracehead = &trace;
13164 trace.file = LOCATE_parser_prod;
13165 variable[0] = self;
13166 variable[1] = param0;
13167 variable[3] = variable[0];
13168 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
13169 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13170 if (UNTAG_Bool(variable[3])) { /*if*/
13171 variable[3] = variable[0];
13172 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
13173 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13174 }
13175 variable[3] = variable[0];
13176 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
13177 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13178 if (UNTAG_Bool(variable[3])) { /*if*/
13179 variable[3] = variable[0];
13180 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
13181 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13182 }
13183 variable[3] = variable[0];
13184 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
13185 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13186 if (UNTAG_Bool(variable[3])) { /*if*/
13187 variable[3] = variable[0];
13188 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
13189 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13190 }
13191 variable[3] = variable[0];
13192 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
13193 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13194 if (UNTAG_Bool(variable[3])) { /*if*/
13195 variable[3] = variable[0];
13196 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
13197 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13198 }
13199 return_label465: while(false);
13200 tracehead = trace.prev;
13201 return;
13202 }
13203 void parser_prod___AIfExpr___visit_all_reverse(val_t self, val_t param0) {
13204 struct trace_t trace = {NULL, NULL, 5451, LOCATE_parser_prod___AIfExpr___visit_all_reverse};
13205 val_t variable[4];
13206 void **closurevariable = NULL;
13207 trace.prev = tracehead; tracehead = &trace;
13208 trace.file = LOCATE_parser_prod;
13209 variable[0] = self;
13210 variable[1] = param0;
13211 variable[3] = variable[0];
13212 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
13213 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13214 if (UNTAG_Bool(variable[3])) { /*if*/
13215 variable[3] = variable[0];
13216 variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
13217 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13218 }
13219 variable[3] = variable[0];
13220 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
13221 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13222 if (UNTAG_Bool(variable[3])) { /*if*/
13223 variable[3] = variable[0];
13224 variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
13225 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13226 }
13227 variable[3] = variable[0];
13228 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
13229 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13230 if (UNTAG_Bool(variable[3])) { /*if*/
13231 variable[3] = variable[0];
13232 variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
13233 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13234 }
13235 variable[3] = variable[0];
13236 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
13237 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13238 if (UNTAG_Bool(variable[3])) { /*if*/
13239 variable[3] = variable[0];
13240 variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
13241 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13242 }
13243 return_label466: while(false);
13244 tracehead = trace.prev;
13245 return;
13246 }
13247 void parser_prod___AIfExpr___empty_init(val_t self, int* init_table) {
13248 struct trace_t trace = {NULL, NULL, 5362, LOCATE_parser_prod___AIfExpr___empty_init};
13249 val_t variable[2];
13250 void **closurevariable = NULL;
13251 trace.prev = tracehead; tracehead = &trace;
13252 trace.file = LOCATE_parser_prod;
13253 variable[0] = self;
13254 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i]) return;
13255 return_label467: while(false);
13256 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
13257 tracehead = trace.prev;
13258 return;
13259 }
13260 void parser_prod___AIfExpr___init_aifexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
13261 struct trace_t trace = {NULL, NULL, 5364, LOCATE_parser_prod___AIfExpr___init_aifexpr};
13262 val_t variable[7];
13263 void **closurevariable = NULL;
13264 trace.prev = tracehead; tracehead = &trace;
13265 trace.file = LOCATE_parser_prod;
13266 variable[0] = self;
13267 variable[1] = param0;
13268 variable[2] = param1;
13269 variable[3] = param2;
13270 variable[4] = param3;
13271 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i]) return;
13272 variable[6] = variable[0];
13273 CALL_parser_prod___AIfExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AIfExpr::empty_init*/;
13274 variable[6] = variable[0];
13275 ATTR_parser_nodes___AIfExpr____n_kwif(variable[6]) /*AIfExpr::_n_kwif*/ = variable[1] /*n_kwif*/;
13276 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::==*/)))))));
13277 if (UNTAG_Bool(variable[6])) { /*if*/
13278 variable[6] = variable[0];
13279 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, variable[6]) /*PNode::parent=*/;
13280 }
13281 variable[6] = variable[0];
13282 ATTR_parser_nodes___AIfExpr____n_expr(variable[6]) /*AIfExpr::_n_expr*/ = variable[2] /*n_expr*/;
13283 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::==*/)))))));
13284 if (UNTAG_Bool(variable[6])) { /*if*/
13285 variable[6] = variable[0];
13286 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[6]) /*PNode::parent=*/;
13287 }
13288 variable[6] = variable[0];
13289 ATTR_parser_nodes___AIfExpr____n_then(variable[6]) /*AIfExpr::_n_then*/ = variable[3] /*n_then*/;
13290 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::==*/)))))));
13291 if (UNTAG_Bool(variable[6])) { /*if*/
13292 variable[6] = variable[0];
13293 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_then*/)( variable[3] /*n_then*/, variable[6]) /*PNode::parent=*/;
13294 }
13295 variable[6] = variable[0];
13296 ATTR_parser_nodes___AIfExpr____n_else(variable[6]) /*AIfExpr::_n_else*/ = variable[4] /*n_else*/;
13297 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::==*/)))))));
13298 if (UNTAG_Bool(variable[6])) { /*if*/
13299 variable[6] = variable[0];
13300 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_else*/)( variable[4] /*n_else*/, variable[6]) /*PNode::parent=*/;
13301 }
13302 return_label468: while(false);
13303 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
13304 tracehead = trace.prev;
13305 return;
13306 }
13307 void parser_prod___AIfexprExpr___n_kwif__eq(val_t self, val_t param0) {
13308 struct trace_t trace = {NULL, NULL, 5468, LOCATE_parser_prod___AIfexprExpr___n_kwif__eq};
13309 val_t variable[4];
13310 void **closurevariable = NULL;
13311 trace.prev = tracehead; tracehead = &trace;
13312 trace.file = LOCATE_parser_prod;
13313 variable[0] = self;
13314 variable[1] = param0;
13315 variable[3] = variable[0];
13316 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/ = variable[1] /*n*/;
13317 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13318 if (UNTAG_Bool(variable[3])) { /*if*/
13319 variable[3] = variable[0];
13320 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13321 }
13322 return_label469: while(false);
13323 tracehead = trace.prev;
13324 return;
13325 }
13326 void parser_prod___AIfexprExpr___n_expr__eq(val_t self, val_t param0) {
13327 struct trace_t trace = {NULL, NULL, 5475, LOCATE_parser_prod___AIfexprExpr___n_expr__eq};
13328 val_t variable[4];
13329 void **closurevariable = NULL;
13330 trace.prev = tracehead; tracehead = &trace;
13331 trace.file = LOCATE_parser_prod;
13332 variable[0] = self;
13333 variable[1] = param0;
13334 variable[3] = variable[0];
13335 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/ = variable[1] /*n*/;
13336 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13337 if (UNTAG_Bool(variable[3])) { /*if*/
13338 variable[3] = variable[0];
13339 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13340 }
13341 return_label470: while(false);
13342 tracehead = trace.prev;
13343 return;
13344 }
13345 void parser_prod___AIfexprExpr___n_kwthen__eq(val_t self, val_t param0) {
13346 struct trace_t trace = {NULL, NULL, 5482, LOCATE_parser_prod___AIfexprExpr___n_kwthen__eq};
13347 val_t variable[4];
13348 void **closurevariable = NULL;
13349 trace.prev = tracehead; tracehead = &trace;
13350 trace.file = LOCATE_parser_prod;
13351 variable[0] = self;
13352 variable[1] = param0;
13353 variable[3] = variable[0];
13354 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/ = variable[1] /*n*/;
13355 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13356 if (UNTAG_Bool(variable[3])) { /*if*/
13357 variable[3] = variable[0];
13358 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13359 }
13360 return_label471: while(false);
13361 tracehead = trace.prev;
13362 return;
13363 }
13364 void parser_prod___AIfexprExpr___n_then__eq(val_t self, val_t param0) {
13365 struct trace_t trace = {NULL, NULL, 5489, LOCATE_parser_prod___AIfexprExpr___n_then__eq};
13366 val_t variable[4];
13367 void **closurevariable = NULL;
13368 trace.prev = tracehead; tracehead = &trace;
13369 trace.file = LOCATE_parser_prod;
13370 variable[0] = self;
13371 variable[1] = param0;
13372 variable[3] = variable[0];
13373 ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/ = variable[1] /*n*/;
13374 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13375 if (UNTAG_Bool(variable[3])) { /*if*/
13376 variable[3] = variable[0];
13377 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13378 }
13379 return_label472: while(false);
13380 tracehead = trace.prev;
13381 return;
13382 }
13383 void parser_prod___AIfexprExpr___n_kwelse__eq(val_t self, val_t param0) {
13384 struct trace_t trace = {NULL, NULL, 5496, LOCATE_parser_prod___AIfexprExpr___n_kwelse__eq};
13385 val_t variable[4];
13386 void **closurevariable = NULL;
13387 trace.prev = tracehead; tracehead = &trace;
13388 trace.file = LOCATE_parser_prod;
13389 variable[0] = self;
13390 variable[1] = param0;
13391 variable[3] = variable[0];
13392 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/ = variable[1] /*n*/;
13393 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13394 if (UNTAG_Bool(variable[3])) { /*if*/
13395 variable[3] = variable[0];
13396 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13397 }
13398 return_label473: while(false);
13399 tracehead = trace.prev;
13400 return;
13401 }
13402 void parser_prod___AIfexprExpr___n_else__eq(val_t self, val_t param0) {
13403 struct trace_t trace = {NULL, NULL, 5503, LOCATE_parser_prod___AIfexprExpr___n_else__eq};
13404 val_t variable[4];
13405 void **closurevariable = NULL;
13406 trace.prev = tracehead; tracehead = &trace;
13407 trace.file = LOCATE_parser_prod;
13408 variable[0] = self;
13409 variable[1] = param0;
13410 variable[3] = variable[0];
13411 ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/ = variable[1] /*n*/;
13412 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13413 if (UNTAG_Bool(variable[3])) { /*if*/
13414 variable[3] = variable[0];
13415 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13416 }
13417 return_label474: while(false);
13418 tracehead = trace.prev;
13419 return;
13420 }
13421 void parser_prod___AIfexprExpr___replace_child(val_t self, val_t param0, val_t param1) {
13422 struct trace_t trace = {NULL, NULL, 5549, LOCATE_parser_prod___AIfexprExpr___replace_child};
13423 val_t variable[5];
13424 void **closurevariable = NULL;
13425 trace.prev = tracehead; tracehead = &trace;
13426 trace.file = LOCATE_parser_prod;
13427 variable[0] = self;
13428 variable[1] = param0;
13429 variable[2] = param1;
13430 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::==*/)))))));
13431 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, 5551); nit_exit(1);}
13432 variable[4] = variable[0];
13433 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[4]) /*AIfexprExpr::_n_kwif*/;
13434 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13435 if (UNTAG_Bool(variable[4])) { /*if*/
13436 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13437 if (UNTAG_Bool(variable[4])) { /*if*/
13438 variable[4] = variable[0];
13439 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13440 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
13441 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, 5555); nit_exit(1);}
13442 variable[4] = variable[0];
13443 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[4]) /*AIfexprExpr::_n_kwif*/ = variable[2] /*new_child*/;
13444 } else { /*if*/
13445 variable[4] = variable[0];
13446 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[4]) /*AIfexprExpr::_n_kwif*/ = NIT_NULL /*null*/;
13447 }
13448 goto return_label475;
13449 }
13450 variable[4] = variable[0];
13451 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[4]) /*AIfexprExpr::_n_expr*/;
13452 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13453 if (UNTAG_Bool(variable[4])) { /*if*/
13454 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13455 if (UNTAG_Bool(variable[4])) { /*if*/
13456 variable[4] = variable[0];
13457 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13458 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13459 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, 5565); nit_exit(1);}
13460 variable[4] = variable[0];
13461 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[4]) /*AIfexprExpr::_n_expr*/ = variable[2] /*new_child*/;
13462 } else { /*if*/
13463 variable[4] = variable[0];
13464 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[4]) /*AIfexprExpr::_n_expr*/ = NIT_NULL /*null*/;
13465 }
13466 goto return_label475;
13467 }
13468 variable[4] = variable[0];
13469 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[4]) /*AIfexprExpr::_n_kwthen*/;
13470 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13471 if (UNTAG_Bool(variable[4])) { /*if*/
13472 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13473 if (UNTAG_Bool(variable[4])) { /*if*/
13474 variable[4] = variable[0];
13475 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13476 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
13477 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, 5575); nit_exit(1);}
13478 variable[4] = variable[0];
13479 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[4]) /*AIfexprExpr::_n_kwthen*/ = variable[2] /*new_child*/;
13480 } else { /*if*/
13481 variable[4] = variable[0];
13482 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[4]) /*AIfexprExpr::_n_kwthen*/ = NIT_NULL /*null*/;
13483 }
13484 goto return_label475;
13485 }
13486 variable[4] = variable[0];
13487 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[4]) /*AIfexprExpr::_n_then*/;
13488 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13489 if (UNTAG_Bool(variable[4])) { /*if*/
13490 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13491 if (UNTAG_Bool(variable[4])) { /*if*/
13492 variable[4] = variable[0];
13493 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13494 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13495 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, 5585); nit_exit(1);}
13496 variable[4] = variable[0];
13497 ATTR_parser_nodes___AIfexprExpr____n_then(variable[4]) /*AIfexprExpr::_n_then*/ = variable[2] /*new_child*/;
13498 } else { /*if*/
13499 variable[4] = variable[0];
13500 ATTR_parser_nodes___AIfexprExpr____n_then(variable[4]) /*AIfexprExpr::_n_then*/ = NIT_NULL /*null*/;
13501 }
13502 goto return_label475;
13503 }
13504 variable[4] = variable[0];
13505 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[4]) /*AIfexprExpr::_n_kwelse*/;
13506 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13507 if (UNTAG_Bool(variable[4])) { /*if*/
13508 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13509 if (UNTAG_Bool(variable[4])) { /*if*/
13510 variable[4] = variable[0];
13511 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13512 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
13513 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, 5595); nit_exit(1);}
13514 variable[4] = variable[0];
13515 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[4]) /*AIfexprExpr::_n_kwelse*/ = variable[2] /*new_child*/;
13516 } else { /*if*/
13517 variable[4] = variable[0];
13518 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[4]) /*AIfexprExpr::_n_kwelse*/ = NIT_NULL /*null*/;
13519 }
13520 goto return_label475;
13521 }
13522 variable[4] = variable[0];
13523 variable[4] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[4]) /*AIfexprExpr::_n_else*/;
13524 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13525 if (UNTAG_Bool(variable[4])) { /*if*/
13526 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13527 if (UNTAG_Bool(variable[4])) { /*if*/
13528 variable[4] = variable[0];
13529 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13530 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13531 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, 5605); nit_exit(1);}
13532 variable[4] = variable[0];
13533 ATTR_parser_nodes___AIfexprExpr____n_else(variable[4]) /*AIfexprExpr::_n_else*/ = variable[2] /*new_child*/;
13534 } else { /*if*/
13535 variable[4] = variable[0];
13536 ATTR_parser_nodes___AIfexprExpr____n_else(variable[4]) /*AIfexprExpr::_n_else*/ = NIT_NULL /*null*/;
13537 }
13538 goto return_label475;
13539 }
13540 return_label475: while(false);
13541 tracehead = trace.prev;
13542 return;
13543 }
13544 void parser_prod___AIfexprExpr___visit_all(val_t self, val_t param0) {
13545 struct trace_t trace = {NULL, NULL, 5614, LOCATE_parser_prod___AIfexprExpr___visit_all};
13546 val_t variable[4];
13547 void **closurevariable = NULL;
13548 trace.prev = tracehead; tracehead = &trace;
13549 trace.file = LOCATE_parser_prod;
13550 variable[0] = self;
13551 variable[1] = param0;
13552 variable[3] = variable[0];
13553 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
13554 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13555 if (UNTAG_Bool(variable[3])) { /*if*/
13556 variable[3] = variable[0];
13557 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
13558 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13559 }
13560 variable[3] = variable[0];
13561 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
13562 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13563 if (UNTAG_Bool(variable[3])) { /*if*/
13564 variable[3] = variable[0];
13565 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
13566 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13567 }
13568 variable[3] = variable[0];
13569 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
13570 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13571 if (UNTAG_Bool(variable[3])) { /*if*/
13572 variable[3] = variable[0];
13573 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
13574 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13575 }
13576 variable[3] = variable[0];
13577 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
13578 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13579 if (UNTAG_Bool(variable[3])) { /*if*/
13580 variable[3] = variable[0];
13581 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
13582 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13583 }
13584 variable[3] = variable[0];
13585 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
13586 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13587 if (UNTAG_Bool(variable[3])) { /*if*/
13588 variable[3] = variable[0];
13589 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
13590 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13591 }
13592 variable[3] = variable[0];
13593 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
13594 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13595 if (UNTAG_Bool(variable[3])) { /*if*/
13596 variable[3] = variable[0];
13597 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
13598 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13599 }
13600 return_label476: while(false);
13601 tracehead = trace.prev;
13602 return;
13603 }
13604 void parser_prod___AIfexprExpr___visit_all_reverse(val_t self, val_t param0) {
13605 struct trace_t trace = {NULL, NULL, 5636, LOCATE_parser_prod___AIfexprExpr___visit_all_reverse};
13606 val_t variable[4];
13607 void **closurevariable = NULL;
13608 trace.prev = tracehead; tracehead = &trace;
13609 trace.file = LOCATE_parser_prod;
13610 variable[0] = self;
13611 variable[1] = param0;
13612 variable[3] = variable[0];
13613 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
13614 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13615 if (UNTAG_Bool(variable[3])) { /*if*/
13616 variable[3] = variable[0];
13617 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
13618 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13619 }
13620 variable[3] = variable[0];
13621 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
13622 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13623 if (UNTAG_Bool(variable[3])) { /*if*/
13624 variable[3] = variable[0];
13625 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
13626 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13627 }
13628 variable[3] = variable[0];
13629 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
13630 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13631 if (UNTAG_Bool(variable[3])) { /*if*/
13632 variable[3] = variable[0];
13633 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
13634 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13635 }
13636 variable[3] = variable[0];
13637 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
13638 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13639 if (UNTAG_Bool(variable[3])) { /*if*/
13640 variable[3] = variable[0];
13641 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
13642 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13643 }
13644 variable[3] = variable[0];
13645 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
13646 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13647 if (UNTAG_Bool(variable[3])) { /*if*/
13648 variable[3] = variable[0];
13649 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
13650 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13651 }
13652 variable[3] = variable[0];
13653 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
13654 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13655 if (UNTAG_Bool(variable[3])) { /*if*/
13656 variable[3] = variable[0];
13657 variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
13658 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13659 }
13660 return_label477: while(false);
13661 tracehead = trace.prev;
13662 return;
13663 }
13664 void parser_prod___AIfexprExpr___empty_init(val_t self, int* init_table) {
13665 struct trace_t trace = {NULL, NULL, 5511, LOCATE_parser_prod___AIfexprExpr___empty_init};
13666 val_t variable[2];
13667 void **closurevariable = NULL;
13668 trace.prev = tracehead; tracehead = &trace;
13669 trace.file = LOCATE_parser_prod;
13670 variable[0] = self;
13671 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
13672 return_label478: while(false);
13673 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
13674 tracehead = trace.prev;
13675 return;
13676 }
13677 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) {
13678 struct trace_t trace = {NULL, NULL, 5513, LOCATE_parser_prod___AIfexprExpr___init_aifexprexpr};
13679 val_t variable[9];
13680 void **closurevariable = NULL;
13681 trace.prev = tracehead; tracehead = &trace;
13682 trace.file = LOCATE_parser_prod;
13683 variable[0] = self;
13684 variable[1] = param0;
13685 variable[2] = param1;
13686 variable[3] = param2;
13687 variable[4] = param3;
13688 variable[5] = param4;
13689 variable[6] = param5;
13690 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
13691 variable[8] = variable[0];
13692 CALL_parser_prod___AIfexprExpr___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*AIfexprExpr::empty_init*/;
13693 variable[8] = variable[0];
13694 ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[8]) /*AIfexprExpr::_n_kwif*/ = variable[1] /*n_kwif*/;
13695 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::==*/)))))));
13696 if (UNTAG_Bool(variable[8])) { /*if*/
13697 variable[8] = variable[0];
13698 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, variable[8]) /*PNode::parent=*/;
13699 }
13700 variable[8] = variable[0];
13701 ATTR_parser_nodes___AIfexprExpr____n_expr(variable[8]) /*AIfexprExpr::_n_expr*/ = variable[2] /*n_expr*/;
13702 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::==*/)))))));
13703 if (UNTAG_Bool(variable[8])) { /*if*/
13704 variable[8] = variable[0];
13705 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[8]) /*PNode::parent=*/;
13706 }
13707 variable[8] = variable[0];
13708 ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[8]) /*AIfexprExpr::_n_kwthen*/ = variable[3] /*n_kwthen*/;
13709 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::==*/)))))));
13710 if (UNTAG_Bool(variable[8])) { /*if*/
13711 variable[8] = variable[0];
13712 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwthen*/)( variable[3] /*n_kwthen*/, variable[8]) /*PNode::parent=*/;
13713 }
13714 variable[8] = variable[0];
13715 ATTR_parser_nodes___AIfexprExpr____n_then(variable[8]) /*AIfexprExpr::_n_then*/ = variable[4] /*n_then*/;
13716 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::==*/)))))));
13717 if (UNTAG_Bool(variable[8])) { /*if*/
13718 variable[8] = variable[0];
13719 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_then*/)( variable[4] /*n_then*/, variable[8]) /*PNode::parent=*/;
13720 }
13721 variable[8] = variable[0];
13722 ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[8]) /*AIfexprExpr::_n_kwelse*/ = variable[5] /*n_kwelse*/;
13723 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::==*/)))))));
13724 if (UNTAG_Bool(variable[8])) { /*if*/
13725 variable[8] = variable[0];
13726 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_kwelse*/)( variable[5] /*n_kwelse*/, variable[8]) /*PNode::parent=*/;
13727 }
13728 variable[8] = variable[0];
13729 ATTR_parser_nodes___AIfexprExpr____n_else(variable[8]) /*AIfexprExpr::_n_else*/ = variable[6] /*n_else*/;
13730 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::==*/)))))));
13731 if (UNTAG_Bool(variable[8])) { /*if*/
13732 variable[8] = variable[0];
13733 CALL_parser_prod___PNode___parent__eq( variable[6] /*n_else*/)( variable[6] /*n_else*/, variable[8]) /*PNode::parent=*/;
13734 }
13735 return_label479: while(false);
13736 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
13737 tracehead = trace.prev;
13738 return;
13739 }
13740 void parser_prod___AWhileExpr___n_kwwhile__eq(val_t self, val_t param0) {
13741 struct trace_t trace = {NULL, NULL, 5659, LOCATE_parser_prod___AWhileExpr___n_kwwhile__eq};
13742 val_t variable[4];
13743 void **closurevariable = NULL;
13744 trace.prev = tracehead; tracehead = &trace;
13745 trace.file = LOCATE_parser_prod;
13746 variable[0] = self;
13747 variable[1] = param0;
13748 variable[3] = variable[0];
13749 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/ = variable[1] /*n*/;
13750 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13751 if (UNTAG_Bool(variable[3])) { /*if*/
13752 variable[3] = variable[0];
13753 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13754 }
13755 return_label480: while(false);
13756 tracehead = trace.prev;
13757 return;
13758 }
13759 void parser_prod___AWhileExpr___n_expr__eq(val_t self, val_t param0) {
13760 struct trace_t trace = {NULL, NULL, 5666, LOCATE_parser_prod___AWhileExpr___n_expr__eq};
13761 val_t variable[4];
13762 void **closurevariable = NULL;
13763 trace.prev = tracehead; tracehead = &trace;
13764 trace.file = LOCATE_parser_prod;
13765 variable[0] = self;
13766 variable[1] = param0;
13767 variable[3] = variable[0];
13768 ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/ = variable[1] /*n*/;
13769 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13770 if (UNTAG_Bool(variable[3])) { /*if*/
13771 variable[3] = variable[0];
13772 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13773 }
13774 return_label481: while(false);
13775 tracehead = trace.prev;
13776 return;
13777 }
13778 void parser_prod___AWhileExpr___n_kwdo__eq(val_t self, val_t param0) {
13779 struct trace_t trace = {NULL, NULL, 5673, LOCATE_parser_prod___AWhileExpr___n_kwdo__eq};
13780 val_t variable[4];
13781 void **closurevariable = NULL;
13782 trace.prev = tracehead; tracehead = &trace;
13783 trace.file = LOCATE_parser_prod;
13784 variable[0] = self;
13785 variable[1] = param0;
13786 variable[3] = variable[0];
13787 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/ = variable[1] /*n*/;
13788 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13789 if (UNTAG_Bool(variable[3])) { /*if*/
13790 variable[3] = variable[0];
13791 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13792 }
13793 return_label482: while(false);
13794 tracehead = trace.prev;
13795 return;
13796 }
13797 void parser_prod___AWhileExpr___n_block__eq(val_t self, val_t param0) {
13798 struct trace_t trace = {NULL, NULL, 5680, LOCATE_parser_prod___AWhileExpr___n_block__eq};
13799 val_t variable[4];
13800 void **closurevariable = NULL;
13801 trace.prev = tracehead; tracehead = &trace;
13802 trace.file = LOCATE_parser_prod;
13803 variable[0] = self;
13804 variable[1] = param0;
13805 variable[3] = variable[0];
13806 ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/ = variable[1] /*n*/;
13807 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13808 if (UNTAG_Bool(variable[3])) { /*if*/
13809 variable[3] = variable[0];
13810 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
13811 }
13812 return_label483: while(false);
13813 tracehead = trace.prev;
13814 return;
13815 }
13816 void parser_prod___AWhileExpr___replace_child(val_t self, val_t param0, val_t param1) {
13817 struct trace_t trace = {NULL, NULL, 5716, LOCATE_parser_prod___AWhileExpr___replace_child};
13818 val_t variable[5];
13819 void **closurevariable = NULL;
13820 trace.prev = tracehead; tracehead = &trace;
13821 trace.file = LOCATE_parser_prod;
13822 variable[0] = self;
13823 variable[1] = param0;
13824 variable[2] = param1;
13825 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::==*/)))))));
13826 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, 5718); nit_exit(1);}
13827 variable[4] = variable[0];
13828 variable[4] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[4]) /*AWhileExpr::_n_kwwhile*/;
13829 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13830 if (UNTAG_Bool(variable[4])) { /*if*/
13831 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13832 if (UNTAG_Bool(variable[4])) { /*if*/
13833 variable[4] = variable[0];
13834 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13835 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
13836 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, 5722); nit_exit(1);}
13837 variable[4] = variable[0];
13838 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[4]) /*AWhileExpr::_n_kwwhile*/ = variable[2] /*new_child*/;
13839 } else { /*if*/
13840 variable[4] = variable[0];
13841 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[4]) /*AWhileExpr::_n_kwwhile*/ = NIT_NULL /*null*/;
13842 }
13843 goto return_label484;
13844 }
13845 variable[4] = variable[0];
13846 variable[4] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[4]) /*AWhileExpr::_n_expr*/;
13847 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13848 if (UNTAG_Bool(variable[4])) { /*if*/
13849 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13850 if (UNTAG_Bool(variable[4])) { /*if*/
13851 variable[4] = variable[0];
13852 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13853 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13854 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, 5732); nit_exit(1);}
13855 variable[4] = variable[0];
13856 ATTR_parser_nodes___AWhileExpr____n_expr(variable[4]) /*AWhileExpr::_n_expr*/ = variable[2] /*new_child*/;
13857 } else { /*if*/
13858 variable[4] = variable[0];
13859 ATTR_parser_nodes___AWhileExpr____n_expr(variable[4]) /*AWhileExpr::_n_expr*/ = NIT_NULL /*null*/;
13860 }
13861 goto return_label484;
13862 }
13863 variable[4] = variable[0];
13864 variable[4] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[4]) /*AWhileExpr::_n_kwdo*/;
13865 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13866 if (UNTAG_Bool(variable[4])) { /*if*/
13867 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13868 if (UNTAG_Bool(variable[4])) { /*if*/
13869 variable[4] = variable[0];
13870 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13871 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
13872 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, 5742); nit_exit(1);}
13873 variable[4] = variable[0];
13874 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[4]) /*AWhileExpr::_n_kwdo*/ = variable[2] /*new_child*/;
13875 } else { /*if*/
13876 variable[4] = variable[0];
13877 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[4]) /*AWhileExpr::_n_kwdo*/ = NIT_NULL /*null*/;
13878 }
13879 goto return_label484;
13880 }
13881 variable[4] = variable[0];
13882 variable[4] = ATTR_parser_nodes___AWhileExpr____n_block(variable[4]) /*AWhileExpr::_n_block*/;
13883 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
13884 if (UNTAG_Bool(variable[4])) { /*if*/
13885 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
13886 if (UNTAG_Bool(variable[4])) { /*if*/
13887 variable[4] = variable[0];
13888 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
13889 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13890 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, 5752); nit_exit(1);}
13891 variable[4] = variable[0];
13892 ATTR_parser_nodes___AWhileExpr____n_block(variable[4]) /*AWhileExpr::_n_block*/ = variable[2] /*new_child*/;
13893 } else { /*if*/
13894 variable[4] = variable[0];
13895 ATTR_parser_nodes___AWhileExpr____n_block(variable[4]) /*AWhileExpr::_n_block*/ = NIT_NULL /*null*/;
13896 }
13897 goto return_label484;
13898 }
13899 return_label484: while(false);
13900 tracehead = trace.prev;
13901 return;
13902 }
13903 void parser_prod___AWhileExpr___visit_all(val_t self, val_t param0) {
13904 struct trace_t trace = {NULL, NULL, 5761, LOCATE_parser_prod___AWhileExpr___visit_all};
13905 val_t variable[4];
13906 void **closurevariable = NULL;
13907 trace.prev = tracehead; tracehead = &trace;
13908 trace.file = LOCATE_parser_prod;
13909 variable[0] = self;
13910 variable[1] = param0;
13911 variable[3] = variable[0];
13912 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
13913 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13914 if (UNTAG_Bool(variable[3])) { /*if*/
13915 variable[3] = variable[0];
13916 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
13917 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13918 }
13919 variable[3] = variable[0];
13920 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
13921 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13922 if (UNTAG_Bool(variable[3])) { /*if*/
13923 variable[3] = variable[0];
13924 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
13925 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13926 }
13927 variable[3] = variable[0];
13928 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
13929 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13930 if (UNTAG_Bool(variable[3])) { /*if*/
13931 variable[3] = variable[0];
13932 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
13933 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13934 }
13935 variable[3] = variable[0];
13936 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
13937 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13938 if (UNTAG_Bool(variable[3])) { /*if*/
13939 variable[3] = variable[0];
13940 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
13941 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13942 }
13943 return_label485: while(false);
13944 tracehead = trace.prev;
13945 return;
13946 }
13947 void parser_prod___AWhileExpr___visit_all_reverse(val_t self, val_t param0) {
13948 struct trace_t trace = {NULL, NULL, 5777, LOCATE_parser_prod___AWhileExpr___visit_all_reverse};
13949 val_t variable[4];
13950 void **closurevariable = NULL;
13951 trace.prev = tracehead; tracehead = &trace;
13952 trace.file = LOCATE_parser_prod;
13953 variable[0] = self;
13954 variable[1] = param0;
13955 variable[3] = variable[0];
13956 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
13957 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13958 if (UNTAG_Bool(variable[3])) { /*if*/
13959 variable[3] = variable[0];
13960 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
13961 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13962 }
13963 variable[3] = variable[0];
13964 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
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 variable[3] = variable[0];
13968 variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
13969 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13970 }
13971 variable[3] = variable[0];
13972 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
13973 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13974 if (UNTAG_Bool(variable[3])) { /*if*/
13975 variable[3] = variable[0];
13976 variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
13977 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13978 }
13979 variable[3] = variable[0];
13980 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
13981 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
13982 if (UNTAG_Bool(variable[3])) { /*if*/
13983 variable[3] = variable[0];
13984 variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
13985 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
13986 }
13987 return_label486: while(false);
13988 tracehead = trace.prev;
13989 return;
13990 }
13991 void parser_prod___AWhileExpr___empty_init(val_t self, int* init_table) {
13992 struct trace_t trace = {NULL, NULL, 5688, LOCATE_parser_prod___AWhileExpr___empty_init};
13993 val_t variable[2];
13994 void **closurevariable = NULL;
13995 trace.prev = tracehead; tracehead = &trace;
13996 trace.file = LOCATE_parser_prod;
13997 variable[0] = self;
13998 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
13999 return_label487: while(false);
14000 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
14001 tracehead = trace.prev;
14002 return;
14003 }
14004 void parser_prod___AWhileExpr___init_awhileexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
14005 struct trace_t trace = {NULL, NULL, 5690, LOCATE_parser_prod___AWhileExpr___init_awhileexpr};
14006 val_t variable[7];
14007 void **closurevariable = NULL;
14008 trace.prev = tracehead; tracehead = &trace;
14009 trace.file = LOCATE_parser_prod;
14010 variable[0] = self;
14011 variable[1] = param0;
14012 variable[2] = param1;
14013 variable[3] = param2;
14014 variable[4] = param3;
14015 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
14016 variable[6] = variable[0];
14017 CALL_parser_prod___AWhileExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AWhileExpr::empty_init*/;
14018 variable[6] = variable[0];
14019 ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[6]) /*AWhileExpr::_n_kwwhile*/ = variable[1] /*n_kwwhile*/;
14020 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::==*/)))))));
14021 if (UNTAG_Bool(variable[6])) { /*if*/
14022 variable[6] = variable[0];
14023 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwhile*/)( variable[1] /*n_kwwhile*/, variable[6]) /*PNode::parent=*/;
14024 }
14025 variable[6] = variable[0];
14026 ATTR_parser_nodes___AWhileExpr____n_expr(variable[6]) /*AWhileExpr::_n_expr*/ = variable[2] /*n_expr*/;
14027 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::==*/)))))));
14028 if (UNTAG_Bool(variable[6])) { /*if*/
14029 variable[6] = variable[0];
14030 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[6]) /*PNode::parent=*/;
14031 }
14032 variable[6] = variable[0];
14033 ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[6]) /*AWhileExpr::_n_kwdo*/ = variable[3] /*n_kwdo*/;
14034 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::==*/)))))));
14035 if (UNTAG_Bool(variable[6])) { /*if*/
14036 variable[6] = variable[0];
14037 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, variable[6]) /*PNode::parent=*/;
14038 }
14039 variable[6] = variable[0];
14040 ATTR_parser_nodes___AWhileExpr____n_block(variable[6]) /*AWhileExpr::_n_block*/ = variable[4] /*n_block*/;
14041 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::==*/)))))));
14042 if (UNTAG_Bool(variable[6])) { /*if*/
14043 variable[6] = variable[0];
14044 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_block*/)( variable[4] /*n_block*/, variable[6]) /*PNode::parent=*/;
14045 }
14046 return_label488: while(false);
14047 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
14048 tracehead = trace.prev;
14049 return;
14050 }
14051 void parser_prod___AForExpr___n_vardecl__eq(val_t self, val_t param0) {
14052 struct trace_t trace = {NULL, NULL, 5794, LOCATE_parser_prod___AForExpr___n_vardecl__eq};
14053 val_t variable[4];
14054 void **closurevariable = NULL;
14055 trace.prev = tracehead; tracehead = &trace;
14056 trace.file = LOCATE_parser_prod;
14057 variable[0] = self;
14058 variable[1] = param0;
14059 variable[3] = variable[0];
14060 ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/ = variable[1] /*n*/;
14061 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14062 if (UNTAG_Bool(variable[3])) { /*if*/
14063 variable[3] = variable[0];
14064 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14065 }
14066 return_label489: while(false);
14067 tracehead = trace.prev;
14068 return;
14069 }
14070 void parser_prod___AForExpr___n_kwdo__eq(val_t self, val_t param0) {
14071 struct trace_t trace = {NULL, NULL, 5801, LOCATE_parser_prod___AForExpr___n_kwdo__eq};
14072 val_t variable[4];
14073 void **closurevariable = NULL;
14074 trace.prev = tracehead; tracehead = &trace;
14075 trace.file = LOCATE_parser_prod;
14076 variable[0] = self;
14077 variable[1] = param0;
14078 variable[3] = variable[0];
14079 ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/ = variable[1] /*n*/;
14080 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14081 if (UNTAG_Bool(variable[3])) { /*if*/
14082 variable[3] = variable[0];
14083 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14084 }
14085 return_label490: while(false);
14086 tracehead = trace.prev;
14087 return;
14088 }
14089 void parser_prod___AForExpr___n_block__eq(val_t self, val_t param0) {
14090 struct trace_t trace = {NULL, NULL, 5808, LOCATE_parser_prod___AForExpr___n_block__eq};
14091 val_t variable[4];
14092 void **closurevariable = NULL;
14093 trace.prev = tracehead; tracehead = &trace;
14094 trace.file = LOCATE_parser_prod;
14095 variable[0] = self;
14096 variable[1] = param0;
14097 variable[3] = variable[0];
14098 ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/ = variable[1] /*n*/;
14099 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14100 if (UNTAG_Bool(variable[3])) { /*if*/
14101 variable[3] = variable[0];
14102 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14103 }
14104 return_label491: while(false);
14105 tracehead = trace.prev;
14106 return;
14107 }
14108 void parser_prod___AForExpr___replace_child(val_t self, val_t param0, val_t param1) {
14109 struct trace_t trace = {NULL, NULL, 5839, LOCATE_parser_prod___AForExpr___replace_child};
14110 val_t variable[5];
14111 void **closurevariable = NULL;
14112 trace.prev = tracehead; tracehead = &trace;
14113 trace.file = LOCATE_parser_prod;
14114 variable[0] = self;
14115 variable[1] = param0;
14116 variable[2] = param1;
14117 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::==*/)))))));
14118 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, 5841); nit_exit(1);}
14119 variable[4] = variable[0];
14120 variable[4] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[4]) /*AForExpr::_n_vardecl*/;
14121 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14122 if (UNTAG_Bool(variable[4])) { /*if*/
14123 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14124 if (UNTAG_Bool(variable[4])) { /*if*/
14125 variable[4] = variable[0];
14126 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14127 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14128 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, 5845); nit_exit(1);}
14129 variable[4] = variable[0];
14130 ATTR_parser_nodes___AForExpr____n_vardecl(variable[4]) /*AForExpr::_n_vardecl*/ = variable[2] /*new_child*/;
14131 } else { /*if*/
14132 variable[4] = variable[0];
14133 ATTR_parser_nodes___AForExpr____n_vardecl(variable[4]) /*AForExpr::_n_vardecl*/ = NIT_NULL /*null*/;
14134 }
14135 goto return_label492;
14136 }
14137 variable[4] = variable[0];
14138 variable[4] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[4]) /*AForExpr::_n_kwdo*/;
14139 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14140 if (UNTAG_Bool(variable[4])) { /*if*/
14141 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14142 if (UNTAG_Bool(variable[4])) { /*if*/
14143 variable[4] = variable[0];
14144 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14145 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
14146 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, 5855); nit_exit(1);}
14147 variable[4] = variable[0];
14148 ATTR_parser_nodes___AForExpr____n_kwdo(variable[4]) /*AForExpr::_n_kwdo*/ = variable[2] /*new_child*/;
14149 } else { /*if*/
14150 variable[4] = variable[0];
14151 ATTR_parser_nodes___AForExpr____n_kwdo(variable[4]) /*AForExpr::_n_kwdo*/ = NIT_NULL /*null*/;
14152 }
14153 goto return_label492;
14154 }
14155 variable[4] = variable[0];
14156 variable[4] = ATTR_parser_nodes___AForExpr____n_block(variable[4]) /*AForExpr::_n_block*/;
14157 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14158 if (UNTAG_Bool(variable[4])) { /*if*/
14159 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14160 if (UNTAG_Bool(variable[4])) { /*if*/
14161 variable[4] = variable[0];
14162 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14163 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14164 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, 5865); nit_exit(1);}
14165 variable[4] = variable[0];
14166 ATTR_parser_nodes___AForExpr____n_block(variable[4]) /*AForExpr::_n_block*/ = variable[2] /*new_child*/;
14167 } else { /*if*/
14168 variable[4] = variable[0];
14169 ATTR_parser_nodes___AForExpr____n_block(variable[4]) /*AForExpr::_n_block*/ = NIT_NULL /*null*/;
14170 }
14171 goto return_label492;
14172 }
14173 return_label492: while(false);
14174 tracehead = trace.prev;
14175 return;
14176 }
14177 void parser_prod___AForExpr___visit_all(val_t self, val_t param0) {
14178 struct trace_t trace = {NULL, NULL, 5874, LOCATE_parser_prod___AForExpr___visit_all};
14179 val_t variable[4];
14180 void **closurevariable = NULL;
14181 trace.prev = tracehead; tracehead = &trace;
14182 trace.file = LOCATE_parser_prod;
14183 variable[0] = self;
14184 variable[1] = param0;
14185 variable[3] = variable[0];
14186 variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
14187 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14188 if (UNTAG_Bool(variable[3])) { /*if*/
14189 variable[3] = variable[0];
14190 variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
14191 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14192 }
14193 variable[3] = variable[0];
14194 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
14195 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14196 if (UNTAG_Bool(variable[3])) { /*if*/
14197 variable[3] = variable[0];
14198 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
14199 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14200 }
14201 variable[3] = variable[0];
14202 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
14203 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14204 if (UNTAG_Bool(variable[3])) { /*if*/
14205 variable[3] = variable[0];
14206 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
14207 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14208 }
14209 return_label493: while(false);
14210 tracehead = trace.prev;
14211 return;
14212 }
14213 void parser_prod___AForExpr___visit_all_reverse(val_t self, val_t param0) {
14214 struct trace_t trace = {NULL, NULL, 5887, LOCATE_parser_prod___AForExpr___visit_all_reverse};
14215 val_t variable[4];
14216 void **closurevariable = NULL;
14217 trace.prev = tracehead; tracehead = &trace;
14218 trace.file = LOCATE_parser_prod;
14219 variable[0] = self;
14220 variable[1] = param0;
14221 variable[3] = variable[0];
14222 variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
14223 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14224 if (UNTAG_Bool(variable[3])) { /*if*/
14225 variable[3] = variable[0];
14226 variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
14227 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14228 }
14229 variable[3] = variable[0];
14230 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
14231 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14232 if (UNTAG_Bool(variable[3])) { /*if*/
14233 variable[3] = variable[0];
14234 variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
14235 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14236 }
14237 variable[3] = variable[0];
14238 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
14239 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14240 if (UNTAG_Bool(variable[3])) { /*if*/
14241 variable[3] = variable[0];
14242 variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
14243 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14244 }
14245 return_label494: while(false);
14246 tracehead = trace.prev;
14247 return;
14248 }
14249 void parser_prod___AForExpr___empty_init(val_t self, int* init_table) {
14250 struct trace_t trace = {NULL, NULL, 5816, LOCATE_parser_prod___AForExpr___empty_init};
14251 val_t variable[2];
14252 void **closurevariable = NULL;
14253 trace.prev = tracehead; tracehead = &trace;
14254 trace.file = LOCATE_parser_prod;
14255 variable[0] = self;
14256 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i]) return;
14257 return_label495: while(false);
14258 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i] = 1;
14259 tracehead = trace.prev;
14260 return;
14261 }
14262 void parser_prod___AForExpr___init_aforexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
14263 struct trace_t trace = {NULL, NULL, 5818, LOCATE_parser_prod___AForExpr___init_aforexpr};
14264 val_t variable[6];
14265 void **closurevariable = NULL;
14266 trace.prev = tracehead; tracehead = &trace;
14267 trace.file = LOCATE_parser_prod;
14268 variable[0] = self;
14269 variable[1] = param0;
14270 variable[2] = param1;
14271 variable[3] = param2;
14272 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i]) return;
14273 variable[5] = variable[0];
14274 CALL_parser_prod___AForExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AForExpr::empty_init*/;
14275 variable[5] = variable[0];
14276 ATTR_parser_nodes___AForExpr____n_vardecl(variable[5]) /*AForExpr::_n_vardecl*/ = variable[1] /*n_vardecl*/;
14277 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_vardecl*/ == NIT_NULL /*null*/) || (( variable[1] /*n_vardecl*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_vardecl*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_vardecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_vardecl*/)( variable[1] /*n_vardecl*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14278 if (UNTAG_Bool(variable[5])) { /*if*/
14279 variable[5] = variable[0];
14280 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_vardecl*/)( variable[1] /*n_vardecl*/, variable[5]) /*PNode::parent=*/;
14281 }
14282 variable[5] = variable[0];
14283 ATTR_parser_nodes___AForExpr____n_kwdo(variable[5]) /*AForExpr::_n_kwdo*/ = variable[2] /*n_kwdo*/;
14284 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable[2] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwdo*/)( variable[2] /*n_kwdo*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14285 if (UNTAG_Bool(variable[5])) { /*if*/
14286 variable[5] = variable[0];
14287 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwdo*/)( variable[2] /*n_kwdo*/, variable[5]) /*PNode::parent=*/;
14288 }
14289 variable[5] = variable[0];
14290 ATTR_parser_nodes___AForExpr____n_block(variable[5]) /*AForExpr::_n_block*/ = variable[3] /*n_block*/;
14291 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_block*/ == NIT_NULL /*null*/) || (( variable[3] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_block*/)( variable[3] /*n_block*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14292 if (UNTAG_Bool(variable[5])) { /*if*/
14293 variable[5] = variable[0];
14294 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_block*/)( variable[3] /*n_block*/, variable[5]) /*PNode::parent=*/;
14295 }
14296 return_label496: while(false);
14297 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i] = 1;
14298 tracehead = trace.prev;
14299 return;
14300 }
14301 void parser_prod___AForVardeclExpr___n_kwfor__eq(val_t self, val_t param0) {
14302 struct trace_t trace = {NULL, NULL, 5901, LOCATE_parser_prod___AForVardeclExpr___n_kwfor__eq};
14303 val_t variable[4];
14304 void **closurevariable = NULL;
14305 trace.prev = tracehead; tracehead = &trace;
14306 trace.file = LOCATE_parser_prod;
14307 variable[0] = self;
14308 variable[1] = param0;
14309 variable[3] = variable[0];
14310 ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/ = variable[1] /*n*/;
14311 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14312 if (UNTAG_Bool(variable[3])) { /*if*/
14313 variable[3] = variable[0];
14314 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14315 }
14316 return_label497: while(false);
14317 tracehead = trace.prev;
14318 return;
14319 }
14320 void parser_prod___AForVardeclExpr___n_id__eq(val_t self, val_t param0) {
14321 struct trace_t trace = {NULL, NULL, 5908, LOCATE_parser_prod___AForVardeclExpr___n_id__eq};
14322 val_t variable[4];
14323 void **closurevariable = NULL;
14324 trace.prev = tracehead; tracehead = &trace;
14325 trace.file = LOCATE_parser_prod;
14326 variable[0] = self;
14327 variable[1] = param0;
14328 variable[3] = variable[0];
14329 ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/ = variable[1] /*n*/;
14330 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14331 if (UNTAG_Bool(variable[3])) { /*if*/
14332 variable[3] = variable[0];
14333 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14334 }
14335 return_label498: while(false);
14336 tracehead = trace.prev;
14337 return;
14338 }
14339 void parser_prod___AForVardeclExpr___n_expr__eq(val_t self, val_t param0) {
14340 struct trace_t trace = {NULL, NULL, 5915, LOCATE_parser_prod___AForVardeclExpr___n_expr__eq};
14341 val_t variable[4];
14342 void **closurevariable = NULL;
14343 trace.prev = tracehead; tracehead = &trace;
14344 trace.file = LOCATE_parser_prod;
14345 variable[0] = self;
14346 variable[1] = param0;
14347 variable[3] = variable[0];
14348 ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/ = variable[1] /*n*/;
14349 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14350 if (UNTAG_Bool(variable[3])) { /*if*/
14351 variable[3] = variable[0];
14352 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14353 }
14354 return_label499: while(false);
14355 tracehead = trace.prev;
14356 return;
14357 }
14358 void parser_prod___AForVardeclExpr___replace_child(val_t self, val_t param0, val_t param1) {
14359 struct trace_t trace = {NULL, NULL, 5946, LOCATE_parser_prod___AForVardeclExpr___replace_child};
14360 val_t variable[5];
14361 void **closurevariable = NULL;
14362 trace.prev = tracehead; tracehead = &trace;
14363 trace.file = LOCATE_parser_prod;
14364 variable[0] = self;
14365 variable[1] = param0;
14366 variable[2] = param1;
14367 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::==*/)))))));
14368 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5948); nit_exit(1);}
14369 variable[4] = variable[0];
14370 variable[4] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[4]) /*AForVardeclExpr::_n_kwfor*/;
14371 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14372 if (UNTAG_Bool(variable[4])) { /*if*/
14373 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14374 if (UNTAG_Bool(variable[4])) { /*if*/
14375 variable[4] = variable[0];
14376 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14377 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
14378 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5952); nit_exit(1);}
14379 variable[4] = variable[0];
14380 ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[4]) /*AForVardeclExpr::_n_kwfor*/ = variable[2] /*new_child*/;
14381 } else { /*if*/
14382 variable[4] = variable[0];
14383 ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[4]) /*AForVardeclExpr::_n_kwfor*/ = NIT_NULL /*null*/;
14384 }
14385 goto return_label500;
14386 }
14387 variable[4] = variable[0];
14388 variable[4] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[4]) /*AForVardeclExpr::_n_id*/;
14389 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14390 if (UNTAG_Bool(variable[4])) { /*if*/
14391 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14392 if (UNTAG_Bool(variable[4])) { /*if*/
14393 variable[4] = variable[0];
14394 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14395 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
14396 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5962); nit_exit(1);}
14397 variable[4] = variable[0];
14398 ATTR_parser_nodes___AForVardeclExpr____n_id(variable[4]) /*AForVardeclExpr::_n_id*/ = variable[2] /*new_child*/;
14399 } else { /*if*/
14400 variable[4] = variable[0];
14401 ATTR_parser_nodes___AForVardeclExpr____n_id(variable[4]) /*AForVardeclExpr::_n_id*/ = NIT_NULL /*null*/;
14402 }
14403 goto return_label500;
14404 }
14405 variable[4] = variable[0];
14406 variable[4] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[4]) /*AForVardeclExpr::_n_expr*/;
14407 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14408 if (UNTAG_Bool(variable[4])) { /*if*/
14409 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14410 if (UNTAG_Bool(variable[4])) { /*if*/
14411 variable[4] = variable[0];
14412 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14413 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14414 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5972); nit_exit(1);}
14415 variable[4] = variable[0];
14416 ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[4]) /*AForVardeclExpr::_n_expr*/ = variable[2] /*new_child*/;
14417 } else { /*if*/
14418 variable[4] = variable[0];
14419 ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[4]) /*AForVardeclExpr::_n_expr*/ = NIT_NULL /*null*/;
14420 }
14421 goto return_label500;
14422 }
14423 return_label500: while(false);
14424 tracehead = trace.prev;
14425 return;
14426 }
14427 void parser_prod___AForVardeclExpr___visit_all(val_t self, val_t param0) {
14428 struct trace_t trace = {NULL, NULL, 5981, LOCATE_parser_prod___AForVardeclExpr___visit_all};
14429 val_t variable[4];
14430 void **closurevariable = NULL;
14431 trace.prev = tracehead; tracehead = &trace;
14432 trace.file = LOCATE_parser_prod;
14433 variable[0] = self;
14434 variable[1] = param0;
14435 variable[3] = variable[0];
14436 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
14437 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14438 if (UNTAG_Bool(variable[3])) { /*if*/
14439 variable[3] = variable[0];
14440 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
14441 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14442 }
14443 variable[3] = variable[0];
14444 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
14445 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14446 if (UNTAG_Bool(variable[3])) { /*if*/
14447 variable[3] = variable[0];
14448 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
14449 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14450 }
14451 variable[3] = variable[0];
14452 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
14453 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14454 if (UNTAG_Bool(variable[3])) { /*if*/
14455 variable[3] = variable[0];
14456 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
14457 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14458 }
14459 return_label501: while(false);
14460 tracehead = trace.prev;
14461 return;
14462 }
14463 void parser_prod___AForVardeclExpr___visit_all_reverse(val_t self, val_t param0) {
14464 struct trace_t trace = {NULL, NULL, 5994, LOCATE_parser_prod___AForVardeclExpr___visit_all_reverse};
14465 val_t variable[4];
14466 void **closurevariable = NULL;
14467 trace.prev = tracehead; tracehead = &trace;
14468 trace.file = LOCATE_parser_prod;
14469 variable[0] = self;
14470 variable[1] = param0;
14471 variable[3] = variable[0];
14472 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
14473 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14474 if (UNTAG_Bool(variable[3])) { /*if*/
14475 variable[3] = variable[0];
14476 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
14477 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14478 }
14479 variable[3] = variable[0];
14480 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
14481 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14482 if (UNTAG_Bool(variable[3])) { /*if*/
14483 variable[3] = variable[0];
14484 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
14485 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14486 }
14487 variable[3] = variable[0];
14488 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
14489 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14490 if (UNTAG_Bool(variable[3])) { /*if*/
14491 variable[3] = variable[0];
14492 variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
14493 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14494 }
14495 return_label502: while(false);
14496 tracehead = trace.prev;
14497 return;
14498 }
14499 void parser_prod___AForVardeclExpr___empty_init(val_t self, int* init_table) {
14500 struct trace_t trace = {NULL, NULL, 5923, LOCATE_parser_prod___AForVardeclExpr___empty_init};
14501 val_t variable[2];
14502 void **closurevariable = NULL;
14503 trace.prev = tracehead; tracehead = &trace;
14504 trace.file = LOCATE_parser_prod;
14505 variable[0] = self;
14506 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForVardeclExpr].i]) return;
14507 return_label503: while(false);
14508 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForVardeclExpr].i] = 1;
14509 tracehead = trace.prev;
14510 return;
14511 }
14512 void parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
14513 struct trace_t trace = {NULL, NULL, 5925, LOCATE_parser_prod___AForVardeclExpr___init_aforvardeclexpr};
14514 val_t variable[6];
14515 void **closurevariable = NULL;
14516 trace.prev = tracehead; tracehead = &trace;
14517 trace.file = LOCATE_parser_prod;
14518 variable[0] = self;
14519 variable[1] = param0;
14520 variable[2] = param1;
14521 variable[3] = param2;
14522 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForVardeclExpr].i]) return;
14523 variable[5] = variable[0];
14524 CALL_parser_prod___AForVardeclExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AForVardeclExpr::empty_init*/;
14525 variable[5] = variable[0];
14526 ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[5]) /*AForVardeclExpr::_n_kwfor*/ = variable[1] /*n_kwfor*/;
14527 variable[5] = 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::==*/)))))));
14528 if (UNTAG_Bool(variable[5])) { /*if*/
14529 variable[5] = variable[0];
14530 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwfor*/)( variable[1] /*n_kwfor*/, variable[5]) /*PNode::parent=*/;
14531 }
14532 variable[5] = variable[0];
14533 ATTR_parser_nodes___AForVardeclExpr____n_id(variable[5]) /*AForVardeclExpr::_n_id*/ = variable[2] /*n_id*/;
14534 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::==*/)))))));
14535 if (UNTAG_Bool(variable[5])) { /*if*/
14536 variable[5] = variable[0];
14537 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[5]) /*PNode::parent=*/;
14538 }
14539 variable[5] = variable[0];
14540 ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[5]) /*AForVardeclExpr::_n_expr*/ = variable[3] /*n_expr*/;
14541 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::==*/)))))));
14542 if (UNTAG_Bool(variable[5])) { /*if*/
14543 variable[5] = variable[0];
14544 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, variable[5]) /*PNode::parent=*/;
14545 }
14546 return_label504: while(false);
14547 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForVardeclExpr].i] = 1;
14548 tracehead = trace.prev;
14549 return;
14550 }
14551 void parser_prod___AAssertExpr___n_kwassert__eq(val_t self, val_t param0) {
14552 struct trace_t trace = {NULL, NULL, 6008, LOCATE_parser_prod___AAssertExpr___n_kwassert__eq};
14553 val_t variable[4];
14554 void **closurevariable = NULL;
14555 trace.prev = tracehead; tracehead = &trace;
14556 trace.file = LOCATE_parser_prod;
14557 variable[0] = self;
14558 variable[1] = param0;
14559 variable[3] = variable[0];
14560 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/ = variable[1] /*n*/;
14561 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14562 if (UNTAG_Bool(variable[3])) { /*if*/
14563 variable[3] = variable[0];
14564 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14565 }
14566 return_label505: while(false);
14567 tracehead = trace.prev;
14568 return;
14569 }
14570 void parser_prod___AAssertExpr___n_id__eq(val_t self, val_t param0) {
14571 struct trace_t trace = {NULL, NULL, 6015, LOCATE_parser_prod___AAssertExpr___n_id__eq};
14572 val_t variable[4];
14573 void **closurevariable = NULL;
14574 trace.prev = tracehead; tracehead = &trace;
14575 trace.file = LOCATE_parser_prod;
14576 variable[0] = self;
14577 variable[1] = param0;
14578 variable[3] = variable[0];
14579 ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/ = variable[1] /*n*/;
14580 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14581 if (UNTAG_Bool(variable[3])) { /*if*/
14582 variable[3] = variable[0];
14583 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14584 }
14585 return_label506: while(false);
14586 tracehead = trace.prev;
14587 return;
14588 }
14589 void parser_prod___AAssertExpr___n_expr__eq(val_t self, val_t param0) {
14590 struct trace_t trace = {NULL, NULL, 6022, LOCATE_parser_prod___AAssertExpr___n_expr__eq};
14591 val_t variable[4];
14592 void **closurevariable = NULL;
14593 trace.prev = tracehead; tracehead = &trace;
14594 trace.file = LOCATE_parser_prod;
14595 variable[0] = self;
14596 variable[1] = param0;
14597 variable[3] = variable[0];
14598 ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/ = variable[1] /*n*/;
14599 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14600 if (UNTAG_Bool(variable[3])) { /*if*/
14601 variable[3] = variable[0];
14602 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14603 }
14604 return_label507: while(false);
14605 tracehead = trace.prev;
14606 return;
14607 }
14608 void parser_prod___AAssertExpr___replace_child(val_t self, val_t param0, val_t param1) {
14609 struct trace_t trace = {NULL, NULL, 6053, LOCATE_parser_prod___AAssertExpr___replace_child};
14610 val_t variable[5];
14611 void **closurevariable = NULL;
14612 trace.prev = tracehead; tracehead = &trace;
14613 trace.file = LOCATE_parser_prod;
14614 variable[0] = self;
14615 variable[1] = param0;
14616 variable[2] = param1;
14617 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::==*/)))))));
14618 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, 6055); nit_exit(1);}
14619 variable[4] = variable[0];
14620 variable[4] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[4]) /*AAssertExpr::_n_kwassert*/;
14621 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14622 if (UNTAG_Bool(variable[4])) { /*if*/
14623 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14624 if (UNTAG_Bool(variable[4])) { /*if*/
14625 variable[4] = variable[0];
14626 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14627 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
14628 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, 6059); nit_exit(1);}
14629 variable[4] = variable[0];
14630 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[4]) /*AAssertExpr::_n_kwassert*/ = variable[2] /*new_child*/;
14631 } else { /*if*/
14632 variable[4] = variable[0];
14633 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[4]) /*AAssertExpr::_n_kwassert*/ = NIT_NULL /*null*/;
14634 }
14635 goto return_label508;
14636 }
14637 variable[4] = variable[0];
14638 variable[4] = ATTR_parser_nodes___AAssertExpr____n_id(variable[4]) /*AAssertExpr::_n_id*/;
14639 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14640 if (UNTAG_Bool(variable[4])) { /*if*/
14641 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14642 if (UNTAG_Bool(variable[4])) { /*if*/
14643 variable[4] = variable[0];
14644 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14645 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
14646 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, 6069); nit_exit(1);}
14647 variable[4] = variable[0];
14648 ATTR_parser_nodes___AAssertExpr____n_id(variable[4]) /*AAssertExpr::_n_id*/ = variable[2] /*new_child*/;
14649 } else { /*if*/
14650 variable[4] = variable[0];
14651 ATTR_parser_nodes___AAssertExpr____n_id(variable[4]) /*AAssertExpr::_n_id*/ = NIT_NULL /*null*/;
14652 }
14653 goto return_label508;
14654 }
14655 variable[4] = variable[0];
14656 variable[4] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[4]) /*AAssertExpr::_n_expr*/;
14657 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14658 if (UNTAG_Bool(variable[4])) { /*if*/
14659 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14660 if (UNTAG_Bool(variable[4])) { /*if*/
14661 variable[4] = variable[0];
14662 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14663 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14664 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, 6079); nit_exit(1);}
14665 variable[4] = variable[0];
14666 ATTR_parser_nodes___AAssertExpr____n_expr(variable[4]) /*AAssertExpr::_n_expr*/ = variable[2] /*new_child*/;
14667 } else { /*if*/
14668 variable[4] = variable[0];
14669 ATTR_parser_nodes___AAssertExpr____n_expr(variable[4]) /*AAssertExpr::_n_expr*/ = NIT_NULL /*null*/;
14670 }
14671 goto return_label508;
14672 }
14673 return_label508: while(false);
14674 tracehead = trace.prev;
14675 return;
14676 }
14677 void parser_prod___AAssertExpr___visit_all(val_t self, val_t param0) {
14678 struct trace_t trace = {NULL, NULL, 6088, LOCATE_parser_prod___AAssertExpr___visit_all};
14679 val_t variable[4];
14680 void **closurevariable = NULL;
14681 trace.prev = tracehead; tracehead = &trace;
14682 trace.file = LOCATE_parser_prod;
14683 variable[0] = self;
14684 variable[1] = param0;
14685 variable[3] = variable[0];
14686 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
14687 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14688 if (UNTAG_Bool(variable[3])) { /*if*/
14689 variable[3] = variable[0];
14690 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
14691 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14692 }
14693 variable[3] = variable[0];
14694 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
14695 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14696 if (UNTAG_Bool(variable[3])) { /*if*/
14697 variable[3] = variable[0];
14698 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
14699 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14700 }
14701 variable[3] = variable[0];
14702 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
14703 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14704 if (UNTAG_Bool(variable[3])) { /*if*/
14705 variable[3] = variable[0];
14706 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
14707 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14708 }
14709 return_label509: while(false);
14710 tracehead = trace.prev;
14711 return;
14712 }
14713 void parser_prod___AAssertExpr___visit_all_reverse(val_t self, val_t param0) {
14714 struct trace_t trace = {NULL, NULL, 6101, LOCATE_parser_prod___AAssertExpr___visit_all_reverse};
14715 val_t variable[4];
14716 void **closurevariable = NULL;
14717 trace.prev = tracehead; tracehead = &trace;
14718 trace.file = LOCATE_parser_prod;
14719 variable[0] = self;
14720 variable[1] = param0;
14721 variable[3] = variable[0];
14722 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
14723 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14724 if (UNTAG_Bool(variable[3])) { /*if*/
14725 variable[3] = variable[0];
14726 variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
14727 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14728 }
14729 variable[3] = variable[0];
14730 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
14731 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14732 if (UNTAG_Bool(variable[3])) { /*if*/
14733 variable[3] = variable[0];
14734 variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
14735 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14736 }
14737 variable[3] = variable[0];
14738 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
14739 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14740 if (UNTAG_Bool(variable[3])) { /*if*/
14741 variable[3] = variable[0];
14742 variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
14743 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14744 }
14745 return_label510: while(false);
14746 tracehead = trace.prev;
14747 return;
14748 }
14749 void parser_prod___AAssertExpr___empty_init(val_t self, int* init_table) {
14750 struct trace_t trace = {NULL, NULL, 6030, LOCATE_parser_prod___AAssertExpr___empty_init};
14751 val_t variable[2];
14752 void **closurevariable = NULL;
14753 trace.prev = tracehead; tracehead = &trace;
14754 trace.file = LOCATE_parser_prod;
14755 variable[0] = self;
14756 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
14757 return_label511: while(false);
14758 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
14759 tracehead = trace.prev;
14760 return;
14761 }
14762 void parser_prod___AAssertExpr___init_aassertexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
14763 struct trace_t trace = {NULL, NULL, 6032, LOCATE_parser_prod___AAssertExpr___init_aassertexpr};
14764 val_t variable[6];
14765 void **closurevariable = NULL;
14766 trace.prev = tracehead; tracehead = &trace;
14767 trace.file = LOCATE_parser_prod;
14768 variable[0] = self;
14769 variable[1] = param0;
14770 variable[2] = param1;
14771 variable[3] = param2;
14772 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
14773 variable[5] = variable[0];
14774 CALL_parser_prod___AAssertExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AAssertExpr::empty_init*/;
14775 variable[5] = variable[0];
14776 ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[5]) /*AAssertExpr::_n_kwassert*/ = variable[1] /*n_kwassert*/;
14777 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::==*/)))))));
14778 if (UNTAG_Bool(variable[5])) { /*if*/
14779 variable[5] = variable[0];
14780 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwassert*/)( variable[1] /*n_kwassert*/, variable[5]) /*PNode::parent=*/;
14781 }
14782 variable[5] = variable[0];
14783 ATTR_parser_nodes___AAssertExpr____n_id(variable[5]) /*AAssertExpr::_n_id*/ = variable[2] /*n_id*/;
14784 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::==*/)))))));
14785 if (UNTAG_Bool(variable[5])) { /*if*/
14786 variable[5] = variable[0];
14787 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[5]) /*PNode::parent=*/;
14788 }
14789 variable[5] = variable[0];
14790 ATTR_parser_nodes___AAssertExpr____n_expr(variable[5]) /*AAssertExpr::_n_expr*/ = variable[3] /*n_expr*/;
14791 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::==*/)))))));
14792 if (UNTAG_Bool(variable[5])) { /*if*/
14793 variable[5] = variable[0];
14794 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, variable[5]) /*PNode::parent=*/;
14795 }
14796 return_label512: while(false);
14797 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
14798 tracehead = trace.prev;
14799 return;
14800 }
14801 void parser_prod___AOnceExpr___n_expr__eq(val_t self, val_t param0) {
14802 struct trace_t trace = {NULL, NULL, 6122, LOCATE_parser_prod___AOnceExpr___n_expr__eq};
14803 val_t variable[4];
14804 void **closurevariable = NULL;
14805 trace.prev = tracehead; tracehead = &trace;
14806 trace.file = LOCATE_parser_prod;
14807 variable[0] = self;
14808 variable[1] = param0;
14809 variable[3] = variable[0];
14810 ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/ = variable[1] /*n*/;
14811 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14812 if (UNTAG_Bool(variable[3])) { /*if*/
14813 variable[3] = variable[0];
14814 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14815 }
14816 return_label513: while(false);
14817 tracehead = trace.prev;
14818 return;
14819 }
14820 void parser_prod___AOnceExpr___n_kwonce__eq(val_t self, val_t param0) {
14821 struct trace_t trace = {NULL, NULL, 6115, LOCATE_parser_prod___AOnceExpr___n_kwonce__eq};
14822 val_t variable[4];
14823 void **closurevariable = NULL;
14824 trace.prev = tracehead; tracehead = &trace;
14825 trace.file = LOCATE_parser_prod;
14826 variable[0] = self;
14827 variable[1] = param0;
14828 variable[3] = variable[0];
14829 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/ = variable[1] /*n*/;
14830 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14831 if (UNTAG_Bool(variable[3])) { /*if*/
14832 variable[3] = variable[0];
14833 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
14834 }
14835 return_label514: while(false);
14836 tracehead = trace.prev;
14837 return;
14838 }
14839 void parser_prod___AOnceExpr___replace_child(val_t self, val_t param0, val_t param1) {
14840 struct trace_t trace = {NULL, NULL, 6148, LOCATE_parser_prod___AOnceExpr___replace_child};
14841 val_t variable[5];
14842 void **closurevariable = NULL;
14843 trace.prev = tracehead; tracehead = &trace;
14844 trace.file = LOCATE_parser_prod;
14845 variable[0] = self;
14846 variable[1] = param0;
14847 variable[2] = param1;
14848 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::==*/)))))));
14849 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, 6150); nit_exit(1);}
14850 variable[4] = variable[0];
14851 variable[4] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[4]) /*AOnceExpr::_n_kwonce*/;
14852 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14853 if (UNTAG_Bool(variable[4])) { /*if*/
14854 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14855 if (UNTAG_Bool(variable[4])) { /*if*/
14856 variable[4] = variable[0];
14857 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14858 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
14859 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, 6154); nit_exit(1);}
14860 variable[4] = variable[0];
14861 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[4]) /*AOnceExpr::_n_kwonce*/ = variable[2] /*new_child*/;
14862 } else { /*if*/
14863 variable[4] = variable[0];
14864 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[4]) /*AOnceExpr::_n_kwonce*/ = NIT_NULL /*null*/;
14865 }
14866 goto return_label515;
14867 }
14868 variable[4] = variable[0];
14869 variable[4] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/;
14870 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
14871 if (UNTAG_Bool(variable[4])) { /*if*/
14872 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
14873 if (UNTAG_Bool(variable[4])) { /*if*/
14874 variable[4] = variable[0];
14875 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
14876 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14877 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, 6164); nit_exit(1);}
14878 variable[4] = variable[0];
14879 ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/ = variable[2] /*new_child*/;
14880 } else { /*if*/
14881 variable[4] = variable[0];
14882 ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/ = NIT_NULL /*null*/;
14883 }
14884 goto return_label515;
14885 }
14886 return_label515: while(false);
14887 tracehead = trace.prev;
14888 return;
14889 }
14890 void parser_prod___AOnceExpr___visit_all(val_t self, val_t param0) {
14891 struct trace_t trace = {NULL, NULL, 6173, LOCATE_parser_prod___AOnceExpr___visit_all};
14892 val_t variable[4];
14893 void **closurevariable = NULL;
14894 trace.prev = tracehead; tracehead = &trace;
14895 trace.file = LOCATE_parser_prod;
14896 variable[0] = self;
14897 variable[1] = param0;
14898 variable[3] = variable[0];
14899 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
14900 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14901 if (UNTAG_Bool(variable[3])) { /*if*/
14902 variable[3] = variable[0];
14903 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
14904 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14905 }
14906 variable[3] = variable[0];
14907 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
14908 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14909 if (UNTAG_Bool(variable[3])) { /*if*/
14910 variable[3] = variable[0];
14911 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
14912 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14913 }
14914 return_label516: while(false);
14915 tracehead = trace.prev;
14916 return;
14917 }
14918 void parser_prod___AOnceExpr___visit_all_reverse(val_t self, val_t param0) {
14919 struct trace_t trace = {NULL, NULL, 6183, LOCATE_parser_prod___AOnceExpr___visit_all_reverse};
14920 val_t variable[4];
14921 void **closurevariable = NULL;
14922 trace.prev = tracehead; tracehead = &trace;
14923 trace.file = LOCATE_parser_prod;
14924 variable[0] = self;
14925 variable[1] = param0;
14926 variable[3] = variable[0];
14927 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
14928 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14929 if (UNTAG_Bool(variable[3])) { /*if*/
14930 variable[3] = variable[0];
14931 variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
14932 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14933 }
14934 variable[3] = variable[0];
14935 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
14936 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
14937 if (UNTAG_Bool(variable[3])) { /*if*/
14938 variable[3] = variable[0];
14939 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
14940 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
14941 }
14942 return_label517: while(false);
14943 tracehead = trace.prev;
14944 return;
14945 }
14946 void parser_prod___AOnceExpr___empty_init(val_t self, int* init_table) {
14947 struct trace_t trace = {NULL, NULL, 6130, LOCATE_parser_prod___AOnceExpr___empty_init};
14948 val_t variable[2];
14949 void **closurevariable = NULL;
14950 trace.prev = tracehead; tracehead = &trace;
14951 trace.file = LOCATE_parser_prod;
14952 variable[0] = self;
14953 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
14954 return_label518: while(false);
14955 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
14956 tracehead = trace.prev;
14957 return;
14958 }
14959 void parser_prod___AOnceExpr___init_aonceexpr(val_t self, val_t param0, val_t param1, int* init_table) {
14960 struct trace_t trace = {NULL, NULL, 6132, LOCATE_parser_prod___AOnceExpr___init_aonceexpr};
14961 val_t variable[5];
14962 void **closurevariable = NULL;
14963 trace.prev = tracehead; tracehead = &trace;
14964 trace.file = LOCATE_parser_prod;
14965 variable[0] = self;
14966 variable[1] = param0;
14967 variable[2] = param1;
14968 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
14969 variable[4] = variable[0];
14970 CALL_parser_prod___AOnceExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AOnceExpr::empty_init*/;
14971 variable[4] = variable[0];
14972 ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[4]) /*AOnceExpr::_n_kwonce*/ = variable[1] /*n_kwonce*/;
14973 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::==*/)))))));
14974 if (UNTAG_Bool(variable[4])) { /*if*/
14975 variable[4] = variable[0];
14976 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwonce*/)( variable[1] /*n_kwonce*/, variable[4]) /*PNode::parent=*/;
14977 }
14978 variable[4] = variable[0];
14979 ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/ = variable[2] /*n_expr*/;
14980 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::==*/)))))));
14981 if (UNTAG_Bool(variable[4])) { /*if*/
14982 variable[4] = variable[0];
14983 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
14984 }
14985 return_label519: while(false);
14986 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
14987 tracehead = trace.prev;
14988 return;
14989 }
14990 void parser_prod___ASendExpr___n_expr__eq(val_t self, val_t param0) {
14991 struct trace_t trace = {NULL, NULL, 6194, LOCATE_parser_prod___ASendExpr___n_expr__eq};
14992 val_t variable[4];
14993 void **closurevariable = NULL;
14994 trace.prev = tracehead; tracehead = &trace;
14995 trace.file = LOCATE_parser_prod;
14996 variable[0] = self;
14997 variable[1] = param0;
14998 variable[3] = variable[0];
14999 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
15000 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15001 if (UNTAG_Bool(variable[3])) { /*if*/
15002 variable[3] = variable[0];
15003 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15004 }
15005 return_label520: while(false);
15006 tracehead = trace.prev;
15007 return;
15008 }
15009 void parser_prod___ASendExpr___replace_child(val_t self, val_t param0, val_t param1) {
15010 struct trace_t trace = {NULL, NULL, 6215, LOCATE_parser_prod___ASendExpr___replace_child};
15011 val_t variable[5];
15012 void **closurevariable = NULL;
15013 trace.prev = tracehead; tracehead = &trace;
15014 trace.file = LOCATE_parser_prod;
15015 variable[0] = self;
15016 variable[1] = param0;
15017 variable[2] = param1;
15018 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::==*/)))))));
15019 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, 6217); nit_exit(1);}
15020 variable[4] = variable[0];
15021 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
15022 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15023 if (UNTAG_Bool(variable[4])) { /*if*/
15024 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15025 if (UNTAG_Bool(variable[4])) { /*if*/
15026 variable[4] = variable[0];
15027 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15028 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15029 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, 6221); nit_exit(1);}
15030 variable[4] = variable[0];
15031 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
15032 } else { /*if*/
15033 variable[4] = variable[0];
15034 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
15035 }
15036 goto return_label521;
15037 }
15038 return_label521: while(false);
15039 tracehead = trace.prev;
15040 return;
15041 }
15042 void parser_prod___ASendExpr___visit_all(val_t self, val_t param0) {
15043 struct trace_t trace = {NULL, NULL, 6230, LOCATE_parser_prod___ASendExpr___visit_all};
15044 val_t variable[4];
15045 void **closurevariable = NULL;
15046 trace.prev = tracehead; tracehead = &trace;
15047 trace.file = LOCATE_parser_prod;
15048 variable[0] = self;
15049 variable[1] = param0;
15050 variable[3] = variable[0];
15051 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15052 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15053 if (UNTAG_Bool(variable[3])) { /*if*/
15054 variable[3] = variable[0];
15055 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15056 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15057 }
15058 return_label522: while(false);
15059 tracehead = trace.prev;
15060 return;
15061 }
15062 void parser_prod___ASendExpr___visit_all_reverse(val_t self, val_t param0) {
15063 struct trace_t trace = {NULL, NULL, 6237, LOCATE_parser_prod___ASendExpr___visit_all_reverse};
15064 val_t variable[4];
15065 void **closurevariable = NULL;
15066 trace.prev = tracehead; tracehead = &trace;
15067 trace.file = LOCATE_parser_prod;
15068 variable[0] = self;
15069 variable[1] = param0;
15070 variable[3] = variable[0];
15071 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15072 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15073 if (UNTAG_Bool(variable[3])) { /*if*/
15074 variable[3] = variable[0];
15075 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15076 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15077 }
15078 return_label523: while(false);
15079 tracehead = trace.prev;
15080 return;
15081 }
15082 void parser_prod___ASendExpr___empty_init(val_t self, int* init_table) {
15083 struct trace_t trace = {NULL, NULL, 6202, LOCATE_parser_prod___ASendExpr___empty_init};
15084 val_t variable[2];
15085 void **closurevariable = NULL;
15086 trace.prev = tracehead; tracehead = &trace;
15087 trace.file = LOCATE_parser_prod;
15088 variable[0] = self;
15089 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i]) return;
15090 return_label524: while(false);
15091 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
15092 tracehead = trace.prev;
15093 return;
15094 }
15095 void parser_prod___ASendExpr___init_asendexpr(val_t self, val_t param0, int* init_table) {
15096 struct trace_t trace = {NULL, NULL, 6204, LOCATE_parser_prod___ASendExpr___init_asendexpr};
15097 val_t variable[4];
15098 void **closurevariable = NULL;
15099 trace.prev = tracehead; tracehead = &trace;
15100 trace.file = LOCATE_parser_prod;
15101 variable[0] = self;
15102 variable[1] = param0;
15103 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i]) return;
15104 variable[3] = variable[0];
15105 CALL_parser_prod___ASendExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASendExpr::empty_init*/;
15106 variable[3] = variable[0];
15107 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
15108 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::==*/)))))));
15109 if (UNTAG_Bool(variable[3])) { /*if*/
15110 variable[3] = variable[0];
15111 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[3]) /*PNode::parent=*/;
15112 }
15113 return_label525: while(false);
15114 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
15115 tracehead = trace.prev;
15116 return;
15117 }
15118 void parser_prod___ABinopExpr___n_expr__eq(val_t self, val_t param0) {
15119 struct trace_t trace = {NULL, NULL, 6245, LOCATE_parser_prod___ABinopExpr___n_expr__eq};
15120 val_t variable[4];
15121 void **closurevariable = NULL;
15122 trace.prev = tracehead; tracehead = &trace;
15123 trace.file = LOCATE_parser_prod;
15124 variable[0] = self;
15125 variable[1] = param0;
15126 variable[3] = variable[0];
15127 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
15128 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15129 if (UNTAG_Bool(variable[3])) { /*if*/
15130 variable[3] = variable[0];
15131 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15132 }
15133 return_label526: while(false);
15134 tracehead = trace.prev;
15135 return;
15136 }
15137 void parser_prod___ABinopExpr___n_expr2__eq(val_t self, val_t param0) {
15138 struct trace_t trace = {NULL, NULL, 6252, LOCATE_parser_prod___ABinopExpr___n_expr2__eq};
15139 val_t variable[4];
15140 void **closurevariable = NULL;
15141 trace.prev = tracehead; tracehead = &trace;
15142 trace.file = LOCATE_parser_prod;
15143 variable[0] = self;
15144 variable[1] = param0;
15145 variable[3] = variable[0];
15146 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
15147 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15148 if (UNTAG_Bool(variable[3])) { /*if*/
15149 variable[3] = variable[0];
15150 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15151 }
15152 return_label527: while(false);
15153 tracehead = trace.prev;
15154 return;
15155 }
15156 void parser_prod___ABinopExpr___replace_child(val_t self, val_t param0, val_t param1) {
15157 struct trace_t trace = {NULL, NULL, 6278, LOCATE_parser_prod___ABinopExpr___replace_child};
15158 val_t variable[5];
15159 void **closurevariable = NULL;
15160 trace.prev = tracehead; tracehead = &trace;
15161 trace.file = LOCATE_parser_prod;
15162 variable[0] = self;
15163 variable[1] = param0;
15164 variable[2] = param1;
15165 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::==*/)))))));
15166 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, 6280); nit_exit(1);}
15167 variable[4] = variable[0];
15168 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
15169 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15170 if (UNTAG_Bool(variable[4])) { /*if*/
15171 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15172 if (UNTAG_Bool(variable[4])) { /*if*/
15173 variable[4] = variable[0];
15174 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15175 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15176 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, 6284); nit_exit(1);}
15177 variable[4] = variable[0];
15178 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
15179 } else { /*if*/
15180 variable[4] = variable[0];
15181 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
15182 }
15183 goto return_label528;
15184 }
15185 variable[4] = variable[0];
15186 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
15187 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15188 if (UNTAG_Bool(variable[4])) { /*if*/
15189 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15190 if (UNTAG_Bool(variable[4])) { /*if*/
15191 variable[4] = variable[0];
15192 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15193 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15194 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, 6294); nit_exit(1);}
15195 variable[4] = variable[0];
15196 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
15197 } else { /*if*/
15198 variable[4] = variable[0];
15199 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
15200 }
15201 goto return_label528;
15202 }
15203 return_label528: while(false);
15204 tracehead = trace.prev;
15205 return;
15206 }
15207 void parser_prod___ABinopExpr___visit_all(val_t self, val_t param0) {
15208 struct trace_t trace = {NULL, NULL, 6303, LOCATE_parser_prod___ABinopExpr___visit_all};
15209 val_t variable[4];
15210 void **closurevariable = NULL;
15211 trace.prev = tracehead; tracehead = &trace;
15212 trace.file = LOCATE_parser_prod;
15213 variable[0] = self;
15214 variable[1] = param0;
15215 variable[3] = variable[0];
15216 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15217 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15218 if (UNTAG_Bool(variable[3])) { /*if*/
15219 variable[3] = variable[0];
15220 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15221 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15222 }
15223 variable[3] = variable[0];
15224 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
15225 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15226 if (UNTAG_Bool(variable[3])) { /*if*/
15227 variable[3] = variable[0];
15228 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
15229 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15230 }
15231 return_label529: while(false);
15232 tracehead = trace.prev;
15233 return;
15234 }
15235 void parser_prod___ABinopExpr___visit_all_reverse(val_t self, val_t param0) {
15236 struct trace_t trace = {NULL, NULL, 6313, LOCATE_parser_prod___ABinopExpr___visit_all_reverse};
15237 val_t variable[4];
15238 void **closurevariable = NULL;
15239 trace.prev = tracehead; tracehead = &trace;
15240 trace.file = LOCATE_parser_prod;
15241 variable[0] = self;
15242 variable[1] = param0;
15243 variable[3] = variable[0];
15244 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15245 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15246 if (UNTAG_Bool(variable[3])) { /*if*/
15247 variable[3] = variable[0];
15248 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15249 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15250 }
15251 variable[3] = variable[0];
15252 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
15253 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15254 if (UNTAG_Bool(variable[3])) { /*if*/
15255 variable[3] = variable[0];
15256 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
15257 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15258 }
15259 return_label530: while(false);
15260 tracehead = trace.prev;
15261 return;
15262 }
15263 void parser_prod___ABinopExpr___empty_init(val_t self, int* init_table) {
15264 struct trace_t trace = {NULL, NULL, 6260, LOCATE_parser_prod___ABinopExpr___empty_init};
15265 val_t variable[2];
15266 void **closurevariable = NULL;
15267 trace.prev = tracehead; tracehead = &trace;
15268 trace.file = LOCATE_parser_prod;
15269 variable[0] = self;
15270 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
15271 return_label531: while(false);
15272 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
15273 tracehead = trace.prev;
15274 return;
15275 }
15276 void parser_prod___ABinopExpr___init_abinopexpr(val_t self, val_t param0, val_t param1, int* init_table) {
15277 struct trace_t trace = {NULL, NULL, 6262, LOCATE_parser_prod___ABinopExpr___init_abinopexpr};
15278 val_t variable[5];
15279 void **closurevariable = NULL;
15280 trace.prev = tracehead; tracehead = &trace;
15281 trace.file = LOCATE_parser_prod;
15282 variable[0] = self;
15283 variable[1] = param0;
15284 variable[2] = param1;
15285 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
15286 variable[4] = variable[0];
15287 CALL_parser_prod___ABinopExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ABinopExpr::empty_init*/;
15288 variable[4] = variable[0];
15289 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
15290 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::==*/)))))));
15291 if (UNTAG_Bool(variable[4])) { /*if*/
15292 variable[4] = variable[0];
15293 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
15294 }
15295 variable[4] = variable[0];
15296 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
15297 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::==*/)))))));
15298 if (UNTAG_Bool(variable[4])) { /*if*/
15299 variable[4] = variable[0];
15300 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
15301 }
15302 return_label532: while(false);
15303 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
15304 tracehead = trace.prev;
15305 return;
15306 }
15307 void parser_prod___AOrExpr___n_expr__eq(val_t self, val_t param0) {
15308 struct trace_t trace = {NULL, NULL, 6324, LOCATE_parser_prod___AOrExpr___n_expr__eq};
15309 val_t variable[4];
15310 void **closurevariable = NULL;
15311 trace.prev = tracehead; tracehead = &trace;
15312 trace.file = LOCATE_parser_prod;
15313 variable[0] = self;
15314 variable[1] = param0;
15315 variable[3] = variable[0];
15316 ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/ = variable[1] /*n*/;
15317 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15318 if (UNTAG_Bool(variable[3])) { /*if*/
15319 variable[3] = variable[0];
15320 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15321 }
15322 return_label533: while(false);
15323 tracehead = trace.prev;
15324 return;
15325 }
15326 void parser_prod___AOrExpr___n_expr2__eq(val_t self, val_t param0) {
15327 struct trace_t trace = {NULL, NULL, 6331, LOCATE_parser_prod___AOrExpr___n_expr2__eq};
15328 val_t variable[4];
15329 void **closurevariable = NULL;
15330 trace.prev = tracehead; tracehead = &trace;
15331 trace.file = LOCATE_parser_prod;
15332 variable[0] = self;
15333 variable[1] = param0;
15334 variable[3] = variable[0];
15335 ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/ = variable[1] /*n*/;
15336 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15337 if (UNTAG_Bool(variable[3])) { /*if*/
15338 variable[3] = variable[0];
15339 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15340 }
15341 return_label534: while(false);
15342 tracehead = trace.prev;
15343 return;
15344 }
15345 void parser_prod___AOrExpr___replace_child(val_t self, val_t param0, val_t param1) {
15346 struct trace_t trace = {NULL, NULL, 6357, LOCATE_parser_prod___AOrExpr___replace_child};
15347 val_t variable[5];
15348 void **closurevariable = NULL;
15349 trace.prev = tracehead; tracehead = &trace;
15350 trace.file = LOCATE_parser_prod;
15351 variable[0] = self;
15352 variable[1] = param0;
15353 variable[2] = param1;
15354 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::==*/)))))));
15355 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, 6359); nit_exit(1);}
15356 variable[4] = variable[0];
15357 variable[4] = ATTR_parser_nodes___AOrExpr____n_expr(variable[4]) /*AOrExpr::_n_expr*/;
15358 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15359 if (UNTAG_Bool(variable[4])) { /*if*/
15360 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15361 if (UNTAG_Bool(variable[4])) { /*if*/
15362 variable[4] = variable[0];
15363 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15364 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15365 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, 6363); nit_exit(1);}
15366 variable[4] = variable[0];
15367 ATTR_parser_nodes___AOrExpr____n_expr(variable[4]) /*AOrExpr::_n_expr*/ = variable[2] /*new_child*/;
15368 } else { /*if*/
15369 variable[4] = variable[0];
15370 ATTR_parser_nodes___AOrExpr____n_expr(variable[4]) /*AOrExpr::_n_expr*/ = NIT_NULL /*null*/;
15371 }
15372 goto return_label535;
15373 }
15374 variable[4] = variable[0];
15375 variable[4] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[4]) /*AOrExpr::_n_expr2*/;
15376 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15377 if (UNTAG_Bool(variable[4])) { /*if*/
15378 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15379 if (UNTAG_Bool(variable[4])) { /*if*/
15380 variable[4] = variable[0];
15381 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15382 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15383 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, 6373); nit_exit(1);}
15384 variable[4] = variable[0];
15385 ATTR_parser_nodes___AOrExpr____n_expr2(variable[4]) /*AOrExpr::_n_expr2*/ = variable[2] /*new_child*/;
15386 } else { /*if*/
15387 variable[4] = variable[0];
15388 ATTR_parser_nodes___AOrExpr____n_expr2(variable[4]) /*AOrExpr::_n_expr2*/ = NIT_NULL /*null*/;
15389 }
15390 goto return_label535;
15391 }
15392 return_label535: while(false);
15393 tracehead = trace.prev;
15394 return;
15395 }
15396 void parser_prod___AOrExpr___visit_all(val_t self, val_t param0) {
15397 struct trace_t trace = {NULL, NULL, 6382, LOCATE_parser_prod___AOrExpr___visit_all};
15398 val_t variable[4];
15399 void **closurevariable = NULL;
15400 trace.prev = tracehead; tracehead = &trace;
15401 trace.file = LOCATE_parser_prod;
15402 variable[0] = self;
15403 variable[1] = param0;
15404 variable[3] = variable[0];
15405 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
15406 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15407 if (UNTAG_Bool(variable[3])) { /*if*/
15408 variable[3] = variable[0];
15409 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
15410 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15411 }
15412 variable[3] = variable[0];
15413 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
15414 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15415 if (UNTAG_Bool(variable[3])) { /*if*/
15416 variable[3] = variable[0];
15417 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
15418 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15419 }
15420 return_label536: while(false);
15421 tracehead = trace.prev;
15422 return;
15423 }
15424 void parser_prod___AOrExpr___visit_all_reverse(val_t self, val_t param0) {
15425 struct trace_t trace = {NULL, NULL, 6392, LOCATE_parser_prod___AOrExpr___visit_all_reverse};
15426 val_t variable[4];
15427 void **closurevariable = NULL;
15428 trace.prev = tracehead; tracehead = &trace;
15429 trace.file = LOCATE_parser_prod;
15430 variable[0] = self;
15431 variable[1] = param0;
15432 variable[3] = variable[0];
15433 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
15434 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15435 if (UNTAG_Bool(variable[3])) { /*if*/
15436 variable[3] = variable[0];
15437 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
15438 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15439 }
15440 variable[3] = variable[0];
15441 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
15442 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15443 if (UNTAG_Bool(variable[3])) { /*if*/
15444 variable[3] = variable[0];
15445 variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
15446 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15447 }
15448 return_label537: while(false);
15449 tracehead = trace.prev;
15450 return;
15451 }
15452 void parser_prod___AOrExpr___empty_init(val_t self, int* init_table) {
15453 struct trace_t trace = {NULL, NULL, 6339, LOCATE_parser_prod___AOrExpr___empty_init};
15454 val_t variable[2];
15455 void **closurevariable = NULL;
15456 trace.prev = tracehead; tracehead = &trace;
15457 trace.file = LOCATE_parser_prod;
15458 variable[0] = self;
15459 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i]) return;
15460 return_label538: while(false);
15461 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
15462 tracehead = trace.prev;
15463 return;
15464 }
15465 void parser_prod___AOrExpr___init_aorexpr(val_t self, val_t param0, val_t param1, int* init_table) {
15466 struct trace_t trace = {NULL, NULL, 6341, LOCATE_parser_prod___AOrExpr___init_aorexpr};
15467 val_t variable[5];
15468 void **closurevariable = NULL;
15469 trace.prev = tracehead; tracehead = &trace;
15470 trace.file = LOCATE_parser_prod;
15471 variable[0] = self;
15472 variable[1] = param0;
15473 variable[2] = param1;
15474 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i]) return;
15475 variable[4] = variable[0];
15476 CALL_parser_prod___AOrExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AOrExpr::empty_init*/;
15477 variable[4] = variable[0];
15478 ATTR_parser_nodes___AOrExpr____n_expr(variable[4]) /*AOrExpr::_n_expr*/ = variable[1] /*n_expr*/;
15479 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::==*/)))))));
15480 if (UNTAG_Bool(variable[4])) { /*if*/
15481 variable[4] = variable[0];
15482 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
15483 }
15484 variable[4] = variable[0];
15485 ATTR_parser_nodes___AOrExpr____n_expr2(variable[4]) /*AOrExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
15486 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::==*/)))))));
15487 if (UNTAG_Bool(variable[4])) { /*if*/
15488 variable[4] = variable[0];
15489 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
15490 }
15491 return_label539: while(false);
15492 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
15493 tracehead = trace.prev;
15494 return;
15495 }
15496 void parser_prod___AAndExpr___n_expr__eq(val_t self, val_t param0) {
15497 struct trace_t trace = {NULL, NULL, 6403, LOCATE_parser_prod___AAndExpr___n_expr__eq};
15498 val_t variable[4];
15499 void **closurevariable = NULL;
15500 trace.prev = tracehead; tracehead = &trace;
15501 trace.file = LOCATE_parser_prod;
15502 variable[0] = self;
15503 variable[1] = param0;
15504 variable[3] = variable[0];
15505 ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/ = variable[1] /*n*/;
15506 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15507 if (UNTAG_Bool(variable[3])) { /*if*/
15508 variable[3] = variable[0];
15509 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15510 }
15511 return_label540: while(false);
15512 tracehead = trace.prev;
15513 return;
15514 }
15515 void parser_prod___AAndExpr___n_expr2__eq(val_t self, val_t param0) {
15516 struct trace_t trace = {NULL, NULL, 6410, LOCATE_parser_prod___AAndExpr___n_expr2__eq};
15517 val_t variable[4];
15518 void **closurevariable = NULL;
15519 trace.prev = tracehead; tracehead = &trace;
15520 trace.file = LOCATE_parser_prod;
15521 variable[0] = self;
15522 variable[1] = param0;
15523 variable[3] = variable[0];
15524 ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/ = variable[1] /*n*/;
15525 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15526 if (UNTAG_Bool(variable[3])) { /*if*/
15527 variable[3] = variable[0];
15528 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15529 }
15530 return_label541: while(false);
15531 tracehead = trace.prev;
15532 return;
15533 }
15534 void parser_prod___AAndExpr___replace_child(val_t self, val_t param0, val_t param1) {
15535 struct trace_t trace = {NULL, NULL, 6436, LOCATE_parser_prod___AAndExpr___replace_child};
15536 val_t variable[5];
15537 void **closurevariable = NULL;
15538 trace.prev = tracehead; tracehead = &trace;
15539 trace.file = LOCATE_parser_prod;
15540 variable[0] = self;
15541 variable[1] = param0;
15542 variable[2] = param1;
15543 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::==*/)))))));
15544 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, 6438); nit_exit(1);}
15545 variable[4] = variable[0];
15546 variable[4] = ATTR_parser_nodes___AAndExpr____n_expr(variable[4]) /*AAndExpr::_n_expr*/;
15547 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15548 if (UNTAG_Bool(variable[4])) { /*if*/
15549 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15550 if (UNTAG_Bool(variable[4])) { /*if*/
15551 variable[4] = variable[0];
15552 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15553 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15554 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, 6442); nit_exit(1);}
15555 variable[4] = variable[0];
15556 ATTR_parser_nodes___AAndExpr____n_expr(variable[4]) /*AAndExpr::_n_expr*/ = variable[2] /*new_child*/;
15557 } else { /*if*/
15558 variable[4] = variable[0];
15559 ATTR_parser_nodes___AAndExpr____n_expr(variable[4]) /*AAndExpr::_n_expr*/ = NIT_NULL /*null*/;
15560 }
15561 goto return_label542;
15562 }
15563 variable[4] = variable[0];
15564 variable[4] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[4]) /*AAndExpr::_n_expr2*/;
15565 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15566 if (UNTAG_Bool(variable[4])) { /*if*/
15567 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15568 if (UNTAG_Bool(variable[4])) { /*if*/
15569 variable[4] = variable[0];
15570 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15571 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15572 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, 6452); nit_exit(1);}
15573 variable[4] = variable[0];
15574 ATTR_parser_nodes___AAndExpr____n_expr2(variable[4]) /*AAndExpr::_n_expr2*/ = variable[2] /*new_child*/;
15575 } else { /*if*/
15576 variable[4] = variable[0];
15577 ATTR_parser_nodes___AAndExpr____n_expr2(variable[4]) /*AAndExpr::_n_expr2*/ = NIT_NULL /*null*/;
15578 }
15579 goto return_label542;
15580 }
15581 return_label542: while(false);
15582 tracehead = trace.prev;
15583 return;
15584 }
15585 void parser_prod___AAndExpr___visit_all(val_t self, val_t param0) {
15586 struct trace_t trace = {NULL, NULL, 6461, LOCATE_parser_prod___AAndExpr___visit_all};
15587 val_t variable[4];
15588 void **closurevariable = NULL;
15589 trace.prev = tracehead; tracehead = &trace;
15590 trace.file = LOCATE_parser_prod;
15591 variable[0] = self;
15592 variable[1] = param0;
15593 variable[3] = variable[0];
15594 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
15595 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15596 if (UNTAG_Bool(variable[3])) { /*if*/
15597 variable[3] = variable[0];
15598 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
15599 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15600 }
15601 variable[3] = variable[0];
15602 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
15603 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15604 if (UNTAG_Bool(variable[3])) { /*if*/
15605 variable[3] = variable[0];
15606 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
15607 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15608 }
15609 return_label543: while(false);
15610 tracehead = trace.prev;
15611 return;
15612 }
15613 void parser_prod___AAndExpr___visit_all_reverse(val_t self, val_t param0) {
15614 struct trace_t trace = {NULL, NULL, 6471, LOCATE_parser_prod___AAndExpr___visit_all_reverse};
15615 val_t variable[4];
15616 void **closurevariable = NULL;
15617 trace.prev = tracehead; tracehead = &trace;
15618 trace.file = LOCATE_parser_prod;
15619 variable[0] = self;
15620 variable[1] = param0;
15621 variable[3] = variable[0];
15622 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
15623 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15624 if (UNTAG_Bool(variable[3])) { /*if*/
15625 variable[3] = variable[0];
15626 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
15627 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15628 }
15629 variable[3] = variable[0];
15630 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
15631 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15632 if (UNTAG_Bool(variable[3])) { /*if*/
15633 variable[3] = variable[0];
15634 variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
15635 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15636 }
15637 return_label544: while(false);
15638 tracehead = trace.prev;
15639 return;
15640 }
15641 void parser_prod___AAndExpr___empty_init(val_t self, int* init_table) {
15642 struct trace_t trace = {NULL, NULL, 6418, LOCATE_parser_prod___AAndExpr___empty_init};
15643 val_t variable[2];
15644 void **closurevariable = NULL;
15645 trace.prev = tracehead; tracehead = &trace;
15646 trace.file = LOCATE_parser_prod;
15647 variable[0] = self;
15648 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i]) return;
15649 return_label545: while(false);
15650 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
15651 tracehead = trace.prev;
15652 return;
15653 }
15654 void parser_prod___AAndExpr___init_aandexpr(val_t self, val_t param0, val_t param1, int* init_table) {
15655 struct trace_t trace = {NULL, NULL, 6420, LOCATE_parser_prod___AAndExpr___init_aandexpr};
15656 val_t variable[5];
15657 void **closurevariable = NULL;
15658 trace.prev = tracehead; tracehead = &trace;
15659 trace.file = LOCATE_parser_prod;
15660 variable[0] = self;
15661 variable[1] = param0;
15662 variable[2] = param1;
15663 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i]) return;
15664 variable[4] = variable[0];
15665 CALL_parser_prod___AAndExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAndExpr::empty_init*/;
15666 variable[4] = variable[0];
15667 ATTR_parser_nodes___AAndExpr____n_expr(variable[4]) /*AAndExpr::_n_expr*/ = variable[1] /*n_expr*/;
15668 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::==*/)))))));
15669 if (UNTAG_Bool(variable[4])) { /*if*/
15670 variable[4] = variable[0];
15671 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
15672 }
15673 variable[4] = variable[0];
15674 ATTR_parser_nodes___AAndExpr____n_expr2(variable[4]) /*AAndExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
15675 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::==*/)))))));
15676 if (UNTAG_Bool(variable[4])) { /*if*/
15677 variable[4] = variable[0];
15678 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
15679 }
15680 return_label546: while(false);
15681 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
15682 tracehead = trace.prev;
15683 return;
15684 }
15685 void parser_prod___ANotExpr___n_kwnot__eq(val_t self, val_t param0) {
15686 struct trace_t trace = {NULL, NULL, 6482, LOCATE_parser_prod___ANotExpr___n_kwnot__eq};
15687 val_t variable[4];
15688 void **closurevariable = NULL;
15689 trace.prev = tracehead; tracehead = &trace;
15690 trace.file = LOCATE_parser_prod;
15691 variable[0] = self;
15692 variable[1] = param0;
15693 variable[3] = variable[0];
15694 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/ = variable[1] /*n*/;
15695 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15696 if (UNTAG_Bool(variable[3])) { /*if*/
15697 variable[3] = variable[0];
15698 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15699 }
15700 return_label547: while(false);
15701 tracehead = trace.prev;
15702 return;
15703 }
15704 void parser_prod___ANotExpr___n_expr__eq(val_t self, val_t param0) {
15705 struct trace_t trace = {NULL, NULL, 6489, LOCATE_parser_prod___ANotExpr___n_expr__eq};
15706 val_t variable[4];
15707 void **closurevariable = NULL;
15708 trace.prev = tracehead; tracehead = &trace;
15709 trace.file = LOCATE_parser_prod;
15710 variable[0] = self;
15711 variable[1] = param0;
15712 variable[3] = variable[0];
15713 ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/ = variable[1] /*n*/;
15714 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15715 if (UNTAG_Bool(variable[3])) { /*if*/
15716 variable[3] = variable[0];
15717 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15718 }
15719 return_label548: while(false);
15720 tracehead = trace.prev;
15721 return;
15722 }
15723 void parser_prod___ANotExpr___replace_child(val_t self, val_t param0, val_t param1) {
15724 struct trace_t trace = {NULL, NULL, 6515, LOCATE_parser_prod___ANotExpr___replace_child};
15725 val_t variable[5];
15726 void **closurevariable = NULL;
15727 trace.prev = tracehead; tracehead = &trace;
15728 trace.file = LOCATE_parser_prod;
15729 variable[0] = self;
15730 variable[1] = param0;
15731 variable[2] = param1;
15732 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::==*/)))))));
15733 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, 6517); nit_exit(1);}
15734 variable[4] = variable[0];
15735 variable[4] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[4]) /*ANotExpr::_n_kwnot*/;
15736 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15737 if (UNTAG_Bool(variable[4])) { /*if*/
15738 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15739 if (UNTAG_Bool(variable[4])) { /*if*/
15740 variable[4] = variable[0];
15741 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15742 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
15743 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, 6521); nit_exit(1);}
15744 variable[4] = variable[0];
15745 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[4]) /*ANotExpr::_n_kwnot*/ = variable[2] /*new_child*/;
15746 } else { /*if*/
15747 variable[4] = variable[0];
15748 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[4]) /*ANotExpr::_n_kwnot*/ = NIT_NULL /*null*/;
15749 }
15750 goto return_label549;
15751 }
15752 variable[4] = variable[0];
15753 variable[4] = ATTR_parser_nodes___ANotExpr____n_expr(variable[4]) /*ANotExpr::_n_expr*/;
15754 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15755 if (UNTAG_Bool(variable[4])) { /*if*/
15756 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15757 if (UNTAG_Bool(variable[4])) { /*if*/
15758 variable[4] = variable[0];
15759 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15760 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15761 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, 6531); nit_exit(1);}
15762 variable[4] = variable[0];
15763 ATTR_parser_nodes___ANotExpr____n_expr(variable[4]) /*ANotExpr::_n_expr*/ = variable[2] /*new_child*/;
15764 } else { /*if*/
15765 variable[4] = variable[0];
15766 ATTR_parser_nodes___ANotExpr____n_expr(variable[4]) /*ANotExpr::_n_expr*/ = NIT_NULL /*null*/;
15767 }
15768 goto return_label549;
15769 }
15770 return_label549: while(false);
15771 tracehead = trace.prev;
15772 return;
15773 }
15774 void parser_prod___ANotExpr___visit_all(val_t self, val_t param0) {
15775 struct trace_t trace = {NULL, NULL, 6540, LOCATE_parser_prod___ANotExpr___visit_all};
15776 val_t variable[4];
15777 void **closurevariable = NULL;
15778 trace.prev = tracehead; tracehead = &trace;
15779 trace.file = LOCATE_parser_prod;
15780 variable[0] = self;
15781 variable[1] = param0;
15782 variable[3] = variable[0];
15783 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
15784 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15785 if (UNTAG_Bool(variable[3])) { /*if*/
15786 variable[3] = variable[0];
15787 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
15788 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15789 }
15790 variable[3] = variable[0];
15791 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
15792 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15793 if (UNTAG_Bool(variable[3])) { /*if*/
15794 variable[3] = variable[0];
15795 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
15796 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15797 }
15798 return_label550: while(false);
15799 tracehead = trace.prev;
15800 return;
15801 }
15802 void parser_prod___ANotExpr___visit_all_reverse(val_t self, val_t param0) {
15803 struct trace_t trace = {NULL, NULL, 6550, LOCATE_parser_prod___ANotExpr___visit_all_reverse};
15804 val_t variable[4];
15805 void **closurevariable = NULL;
15806 trace.prev = tracehead; tracehead = &trace;
15807 trace.file = LOCATE_parser_prod;
15808 variable[0] = self;
15809 variable[1] = param0;
15810 variable[3] = variable[0];
15811 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
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 variable[3] = variable[0];
15815 variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
15816 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15817 }
15818 variable[3] = variable[0];
15819 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
15820 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15821 if (UNTAG_Bool(variable[3])) { /*if*/
15822 variable[3] = variable[0];
15823 variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
15824 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15825 }
15826 return_label551: while(false);
15827 tracehead = trace.prev;
15828 return;
15829 }
15830 void parser_prod___ANotExpr___empty_init(val_t self, int* init_table) {
15831 struct trace_t trace = {NULL, NULL, 6497, LOCATE_parser_prod___ANotExpr___empty_init};
15832 val_t variable[2];
15833 void **closurevariable = NULL;
15834 trace.prev = tracehead; tracehead = &trace;
15835 trace.file = LOCATE_parser_prod;
15836 variable[0] = self;
15837 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i]) return;
15838 return_label552: while(false);
15839 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
15840 tracehead = trace.prev;
15841 return;
15842 }
15843 void parser_prod___ANotExpr___init_anotexpr(val_t self, val_t param0, val_t param1, int* init_table) {
15844 struct trace_t trace = {NULL, NULL, 6499, LOCATE_parser_prod___ANotExpr___init_anotexpr};
15845 val_t variable[5];
15846 void **closurevariable = NULL;
15847 trace.prev = tracehead; tracehead = &trace;
15848 trace.file = LOCATE_parser_prod;
15849 variable[0] = self;
15850 variable[1] = param0;
15851 variable[2] = param1;
15852 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i]) return;
15853 variable[4] = variable[0];
15854 CALL_parser_prod___ANotExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ANotExpr::empty_init*/;
15855 variable[4] = variable[0];
15856 ATTR_parser_nodes___ANotExpr____n_kwnot(variable[4]) /*ANotExpr::_n_kwnot*/ = variable[1] /*n_kwnot*/;
15857 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::==*/)))))));
15858 if (UNTAG_Bool(variable[4])) { /*if*/
15859 variable[4] = variable[0];
15860 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnot*/)( variable[1] /*n_kwnot*/, variable[4]) /*PNode::parent=*/;
15861 }
15862 variable[4] = variable[0];
15863 ATTR_parser_nodes___ANotExpr____n_expr(variable[4]) /*ANotExpr::_n_expr*/ = variable[2] /*n_expr*/;
15864 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::==*/)))))));
15865 if (UNTAG_Bool(variable[4])) { /*if*/
15866 variable[4] = variable[0];
15867 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
15868 }
15869 return_label553: while(false);
15870 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
15871 tracehead = trace.prev;
15872 return;
15873 }
15874 void parser_prod___AEqExpr___n_expr__eq(val_t self, val_t param0) {
15875 struct trace_t trace = {NULL, NULL, 6561, LOCATE_parser_prod___AEqExpr___n_expr__eq};
15876 val_t variable[4];
15877 void **closurevariable = NULL;
15878 trace.prev = tracehead; tracehead = &trace;
15879 trace.file = LOCATE_parser_prod;
15880 variable[0] = self;
15881 variable[1] = param0;
15882 variable[3] = variable[0];
15883 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
15884 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15885 if (UNTAG_Bool(variable[3])) { /*if*/
15886 variable[3] = variable[0];
15887 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15888 }
15889 return_label554: while(false);
15890 tracehead = trace.prev;
15891 return;
15892 }
15893 void parser_prod___AEqExpr___n_expr2__eq(val_t self, val_t param0) {
15894 struct trace_t trace = {NULL, NULL, 6568, LOCATE_parser_prod___AEqExpr___n_expr2__eq};
15895 val_t variable[4];
15896 void **closurevariable = NULL;
15897 trace.prev = tracehead; tracehead = &trace;
15898 trace.file = LOCATE_parser_prod;
15899 variable[0] = self;
15900 variable[1] = param0;
15901 variable[3] = variable[0];
15902 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
15903 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15904 if (UNTAG_Bool(variable[3])) { /*if*/
15905 variable[3] = variable[0];
15906 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
15907 }
15908 return_label555: while(false);
15909 tracehead = trace.prev;
15910 return;
15911 }
15912 void parser_prod___AEqExpr___replace_child(val_t self, val_t param0, val_t param1) {
15913 struct trace_t trace = {NULL, NULL, 6594, LOCATE_parser_prod___AEqExpr___replace_child};
15914 val_t variable[5];
15915 void **closurevariable = NULL;
15916 trace.prev = tracehead; tracehead = &trace;
15917 trace.file = LOCATE_parser_prod;
15918 variable[0] = self;
15919 variable[1] = param0;
15920 variable[2] = param1;
15921 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::==*/)))))));
15922 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, 6596); nit_exit(1);}
15923 variable[4] = variable[0];
15924 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
15925 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15926 if (UNTAG_Bool(variable[4])) { /*if*/
15927 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15928 if (UNTAG_Bool(variable[4])) { /*if*/
15929 variable[4] = variable[0];
15930 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15931 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15932 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, 6600); nit_exit(1);}
15933 variable[4] = variable[0];
15934 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
15935 } else { /*if*/
15936 variable[4] = variable[0];
15937 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
15938 }
15939 goto return_label556;
15940 }
15941 variable[4] = variable[0];
15942 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
15943 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
15944 if (UNTAG_Bool(variable[4])) { /*if*/
15945 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
15946 if (UNTAG_Bool(variable[4])) { /*if*/
15947 variable[4] = variable[0];
15948 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
15949 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15950 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, 6610); nit_exit(1);}
15951 variable[4] = variable[0];
15952 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
15953 } else { /*if*/
15954 variable[4] = variable[0];
15955 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
15956 }
15957 goto return_label556;
15958 }
15959 return_label556: while(false);
15960 tracehead = trace.prev;
15961 return;
15962 }
15963 void parser_prod___AEqExpr___visit_all(val_t self, val_t param0) {
15964 struct trace_t trace = {NULL, NULL, 6619, LOCATE_parser_prod___AEqExpr___visit_all};
15965 val_t variable[4];
15966 void **closurevariable = NULL;
15967 trace.prev = tracehead; tracehead = &trace;
15968 trace.file = LOCATE_parser_prod;
15969 variable[0] = self;
15970 variable[1] = param0;
15971 variable[3] = variable[0];
15972 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15973 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15974 if (UNTAG_Bool(variable[3])) { /*if*/
15975 variable[3] = variable[0];
15976 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
15977 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15978 }
15979 variable[3] = variable[0];
15980 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
15981 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
15982 if (UNTAG_Bool(variable[3])) { /*if*/
15983 variable[3] = variable[0];
15984 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
15985 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
15986 }
15987 return_label557: while(false);
15988 tracehead = trace.prev;
15989 return;
15990 }
15991 void parser_prod___AEqExpr___visit_all_reverse(val_t self, val_t param0) {
15992 struct trace_t trace = {NULL, NULL, 6629, LOCATE_parser_prod___AEqExpr___visit_all_reverse};
15993 val_t variable[4];
15994 void **closurevariable = NULL;
15995 trace.prev = tracehead; tracehead = &trace;
15996 trace.file = LOCATE_parser_prod;
15997 variable[0] = self;
15998 variable[1] = param0;
15999 variable[3] = variable[0];
16000 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16001 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16002 if (UNTAG_Bool(variable[3])) { /*if*/
16003 variable[3] = variable[0];
16004 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16005 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16006 }
16007 variable[3] = variable[0];
16008 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16009 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16010 if (UNTAG_Bool(variable[3])) { /*if*/
16011 variable[3] = variable[0];
16012 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16013 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16014 }
16015 return_label558: while(false);
16016 tracehead = trace.prev;
16017 return;
16018 }
16019 void parser_prod___AEqExpr___empty_init(val_t self, int* init_table) {
16020 struct trace_t trace = {NULL, NULL, 6576, LOCATE_parser_prod___AEqExpr___empty_init};
16021 val_t variable[2];
16022 void **closurevariable = NULL;
16023 trace.prev = tracehead; tracehead = &trace;
16024 trace.file = LOCATE_parser_prod;
16025 variable[0] = self;
16026 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i]) return;
16027 return_label559: while(false);
16028 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
16029 tracehead = trace.prev;
16030 return;
16031 }
16032 void parser_prod___AEqExpr___init_aeqexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16033 struct trace_t trace = {NULL, NULL, 6578, LOCATE_parser_prod___AEqExpr___init_aeqexpr};
16034 val_t variable[5];
16035 void **closurevariable = NULL;
16036 trace.prev = tracehead; tracehead = &trace;
16037 trace.file = LOCATE_parser_prod;
16038 variable[0] = self;
16039 variable[1] = param0;
16040 variable[2] = param1;
16041 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i]) return;
16042 variable[4] = variable[0];
16043 CALL_parser_prod___AEqExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AEqExpr::empty_init*/;
16044 variable[4] = variable[0];
16045 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
16046 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::==*/)))))));
16047 if (UNTAG_Bool(variable[4])) { /*if*/
16048 variable[4] = variable[0];
16049 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
16050 }
16051 variable[4] = variable[0];
16052 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
16053 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::==*/)))))));
16054 if (UNTAG_Bool(variable[4])) { /*if*/
16055 variable[4] = variable[0];
16056 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
16057 }
16058 return_label560: while(false);
16059 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
16060 tracehead = trace.prev;
16061 return;
16062 }
16063 void parser_prod___AEeExpr___n_expr__eq(val_t self, val_t param0) {
16064 struct trace_t trace = {NULL, NULL, 6640, LOCATE_parser_prod___AEeExpr___n_expr__eq};
16065 val_t variable[4];
16066 void **closurevariable = NULL;
16067 trace.prev = tracehead; tracehead = &trace;
16068 trace.file = LOCATE_parser_prod;
16069 variable[0] = self;
16070 variable[1] = param0;
16071 variable[3] = variable[0];
16072 ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/ = variable[1] /*n*/;
16073 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16074 if (UNTAG_Bool(variable[3])) { /*if*/
16075 variable[3] = variable[0];
16076 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16077 }
16078 return_label561: while(false);
16079 tracehead = trace.prev;
16080 return;
16081 }
16082 void parser_prod___AEeExpr___n_expr2__eq(val_t self, val_t param0) {
16083 struct trace_t trace = {NULL, NULL, 6647, LOCATE_parser_prod___AEeExpr___n_expr2__eq};
16084 val_t variable[4];
16085 void **closurevariable = NULL;
16086 trace.prev = tracehead; tracehead = &trace;
16087 trace.file = LOCATE_parser_prod;
16088 variable[0] = self;
16089 variable[1] = param0;
16090 variable[3] = variable[0];
16091 ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/ = variable[1] /*n*/;
16092 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16093 if (UNTAG_Bool(variable[3])) { /*if*/
16094 variable[3] = variable[0];
16095 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16096 }
16097 return_label562: while(false);
16098 tracehead = trace.prev;
16099 return;
16100 }
16101 void parser_prod___AEeExpr___replace_child(val_t self, val_t param0, val_t param1) {
16102 struct trace_t trace = {NULL, NULL, 6673, LOCATE_parser_prod___AEeExpr___replace_child};
16103 val_t variable[5];
16104 void **closurevariable = NULL;
16105 trace.prev = tracehead; tracehead = &trace;
16106 trace.file = LOCATE_parser_prod;
16107 variable[0] = self;
16108 variable[1] = param0;
16109 variable[2] = param1;
16110 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::==*/)))))));
16111 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, 6675); nit_exit(1);}
16112 variable[4] = variable[0];
16113 variable[4] = ATTR_parser_nodes___AEeExpr____n_expr(variable[4]) /*AEeExpr::_n_expr*/;
16114 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16115 if (UNTAG_Bool(variable[4])) { /*if*/
16116 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16117 if (UNTAG_Bool(variable[4])) { /*if*/
16118 variable[4] = variable[0];
16119 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16120 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16121 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, 6679); nit_exit(1);}
16122 variable[4] = variable[0];
16123 ATTR_parser_nodes___AEeExpr____n_expr(variable[4]) /*AEeExpr::_n_expr*/ = variable[2] /*new_child*/;
16124 } else { /*if*/
16125 variable[4] = variable[0];
16126 ATTR_parser_nodes___AEeExpr____n_expr(variable[4]) /*AEeExpr::_n_expr*/ = NIT_NULL /*null*/;
16127 }
16128 goto return_label563;
16129 }
16130 variable[4] = variable[0];
16131 variable[4] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[4]) /*AEeExpr::_n_expr2*/;
16132 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16133 if (UNTAG_Bool(variable[4])) { /*if*/
16134 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16135 if (UNTAG_Bool(variable[4])) { /*if*/
16136 variable[4] = variable[0];
16137 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16138 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16139 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, 6689); nit_exit(1);}
16140 variable[4] = variable[0];
16141 ATTR_parser_nodes___AEeExpr____n_expr2(variable[4]) /*AEeExpr::_n_expr2*/ = variable[2] /*new_child*/;
16142 } else { /*if*/
16143 variable[4] = variable[0];
16144 ATTR_parser_nodes___AEeExpr____n_expr2(variable[4]) /*AEeExpr::_n_expr2*/ = NIT_NULL /*null*/;
16145 }
16146 goto return_label563;
16147 }
16148 return_label563: while(false);
16149 tracehead = trace.prev;
16150 return;
16151 }
16152 void parser_prod___AEeExpr___visit_all(val_t self, val_t param0) {
16153 struct trace_t trace = {NULL, NULL, 6698, LOCATE_parser_prod___AEeExpr___visit_all};
16154 val_t variable[4];
16155 void **closurevariable = NULL;
16156 trace.prev = tracehead; tracehead = &trace;
16157 trace.file = LOCATE_parser_prod;
16158 variable[0] = self;
16159 variable[1] = param0;
16160 variable[3] = variable[0];
16161 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
16162 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16163 if (UNTAG_Bool(variable[3])) { /*if*/
16164 variable[3] = variable[0];
16165 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
16166 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16167 }
16168 variable[3] = variable[0];
16169 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
16170 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16171 if (UNTAG_Bool(variable[3])) { /*if*/
16172 variable[3] = variable[0];
16173 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
16174 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16175 }
16176 return_label564: while(false);
16177 tracehead = trace.prev;
16178 return;
16179 }
16180 void parser_prod___AEeExpr___visit_all_reverse(val_t self, val_t param0) {
16181 struct trace_t trace = {NULL, NULL, 6708, LOCATE_parser_prod___AEeExpr___visit_all_reverse};
16182 val_t variable[4];
16183 void **closurevariable = NULL;
16184 trace.prev = tracehead; tracehead = &trace;
16185 trace.file = LOCATE_parser_prod;
16186 variable[0] = self;
16187 variable[1] = param0;
16188 variable[3] = variable[0];
16189 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
16190 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16191 if (UNTAG_Bool(variable[3])) { /*if*/
16192 variable[3] = variable[0];
16193 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
16194 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16195 }
16196 variable[3] = variable[0];
16197 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
16198 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16199 if (UNTAG_Bool(variable[3])) { /*if*/
16200 variable[3] = variable[0];
16201 variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
16202 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16203 }
16204 return_label565: while(false);
16205 tracehead = trace.prev;
16206 return;
16207 }
16208 void parser_prod___AEeExpr___empty_init(val_t self, int* init_table) {
16209 struct trace_t trace = {NULL, NULL, 6655, LOCATE_parser_prod___AEeExpr___empty_init};
16210 val_t variable[2];
16211 void **closurevariable = NULL;
16212 trace.prev = tracehead; tracehead = &trace;
16213 trace.file = LOCATE_parser_prod;
16214 variable[0] = self;
16215 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i]) return;
16216 return_label566: while(false);
16217 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
16218 tracehead = trace.prev;
16219 return;
16220 }
16221 void parser_prod___AEeExpr___init_aeeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16222 struct trace_t trace = {NULL, NULL, 6657, LOCATE_parser_prod___AEeExpr___init_aeeexpr};
16223 val_t variable[5];
16224 void **closurevariable = NULL;
16225 trace.prev = tracehead; tracehead = &trace;
16226 trace.file = LOCATE_parser_prod;
16227 variable[0] = self;
16228 variable[1] = param0;
16229 variable[2] = param1;
16230 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i]) return;
16231 variable[4] = variable[0];
16232 CALL_parser_prod___AEeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AEeExpr::empty_init*/;
16233 variable[4] = variable[0];
16234 ATTR_parser_nodes___AEeExpr____n_expr(variable[4]) /*AEeExpr::_n_expr*/ = variable[1] /*n_expr*/;
16235 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::==*/)))))));
16236 if (UNTAG_Bool(variable[4])) { /*if*/
16237 variable[4] = variable[0];
16238 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
16239 }
16240 variable[4] = variable[0];
16241 ATTR_parser_nodes___AEeExpr____n_expr2(variable[4]) /*AEeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
16242 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::==*/)))))));
16243 if (UNTAG_Bool(variable[4])) { /*if*/
16244 variable[4] = variable[0];
16245 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
16246 }
16247 return_label567: while(false);
16248 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
16249 tracehead = trace.prev;
16250 return;
16251 }
16252 void parser_prod___ANeExpr___n_expr__eq(val_t self, val_t param0) {
16253 struct trace_t trace = {NULL, NULL, 6719, LOCATE_parser_prod___ANeExpr___n_expr__eq};
16254 val_t variable[4];
16255 void **closurevariable = NULL;
16256 trace.prev = tracehead; tracehead = &trace;
16257 trace.file = LOCATE_parser_prod;
16258 variable[0] = self;
16259 variable[1] = param0;
16260 variable[3] = variable[0];
16261 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
16262 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16263 if (UNTAG_Bool(variable[3])) { /*if*/
16264 variable[3] = variable[0];
16265 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16266 }
16267 return_label568: while(false);
16268 tracehead = trace.prev;
16269 return;
16270 }
16271 void parser_prod___ANeExpr___n_expr2__eq(val_t self, val_t param0) {
16272 struct trace_t trace = {NULL, NULL, 6726, LOCATE_parser_prod___ANeExpr___n_expr2__eq};
16273 val_t variable[4];
16274 void **closurevariable = NULL;
16275 trace.prev = tracehead; tracehead = &trace;
16276 trace.file = LOCATE_parser_prod;
16277 variable[0] = self;
16278 variable[1] = param0;
16279 variable[3] = variable[0];
16280 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
16281 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16282 if (UNTAG_Bool(variable[3])) { /*if*/
16283 variable[3] = variable[0];
16284 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16285 }
16286 return_label569: while(false);
16287 tracehead = trace.prev;
16288 return;
16289 }
16290 void parser_prod___ANeExpr___replace_child(val_t self, val_t param0, val_t param1) {
16291 struct trace_t trace = {NULL, NULL, 6752, LOCATE_parser_prod___ANeExpr___replace_child};
16292 val_t variable[5];
16293 void **closurevariable = NULL;
16294 trace.prev = tracehead; tracehead = &trace;
16295 trace.file = LOCATE_parser_prod;
16296 variable[0] = self;
16297 variable[1] = param0;
16298 variable[2] = param1;
16299 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::==*/)))))));
16300 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, 6754); nit_exit(1);}
16301 variable[4] = variable[0];
16302 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
16303 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16304 if (UNTAG_Bool(variable[4])) { /*if*/
16305 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16306 if (UNTAG_Bool(variable[4])) { /*if*/
16307 variable[4] = variable[0];
16308 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16309 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16310 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, 6758); nit_exit(1);}
16311 variable[4] = variable[0];
16312 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
16313 } else { /*if*/
16314 variable[4] = variable[0];
16315 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
16316 }
16317 goto return_label570;
16318 }
16319 variable[4] = variable[0];
16320 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
16321 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16322 if (UNTAG_Bool(variable[4])) { /*if*/
16323 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16324 if (UNTAG_Bool(variable[4])) { /*if*/
16325 variable[4] = variable[0];
16326 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16327 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16328 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, 6768); nit_exit(1);}
16329 variable[4] = variable[0];
16330 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
16331 } else { /*if*/
16332 variable[4] = variable[0];
16333 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
16334 }
16335 goto return_label570;
16336 }
16337 return_label570: while(false);
16338 tracehead = trace.prev;
16339 return;
16340 }
16341 void parser_prod___ANeExpr___visit_all(val_t self, val_t param0) {
16342 struct trace_t trace = {NULL, NULL, 6777, LOCATE_parser_prod___ANeExpr___visit_all};
16343 val_t variable[4];
16344 void **closurevariable = NULL;
16345 trace.prev = tracehead; tracehead = &trace;
16346 trace.file = LOCATE_parser_prod;
16347 variable[0] = self;
16348 variable[1] = param0;
16349 variable[3] = variable[0];
16350 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16351 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16352 if (UNTAG_Bool(variable[3])) { /*if*/
16353 variable[3] = variable[0];
16354 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16355 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16356 }
16357 variable[3] = variable[0];
16358 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16359 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16360 if (UNTAG_Bool(variable[3])) { /*if*/
16361 variable[3] = variable[0];
16362 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16363 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16364 }
16365 return_label571: while(false);
16366 tracehead = trace.prev;
16367 return;
16368 }
16369 void parser_prod___ANeExpr___visit_all_reverse(val_t self, val_t param0) {
16370 struct trace_t trace = {NULL, NULL, 6787, LOCATE_parser_prod___ANeExpr___visit_all_reverse};
16371 val_t variable[4];
16372 void **closurevariable = NULL;
16373 trace.prev = tracehead; tracehead = &trace;
16374 trace.file = LOCATE_parser_prod;
16375 variable[0] = self;
16376 variable[1] = param0;
16377 variable[3] = variable[0];
16378 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16379 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16380 if (UNTAG_Bool(variable[3])) { /*if*/
16381 variable[3] = variable[0];
16382 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16383 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16384 }
16385 variable[3] = variable[0];
16386 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16387 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16388 if (UNTAG_Bool(variable[3])) { /*if*/
16389 variable[3] = variable[0];
16390 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16391 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16392 }
16393 return_label572: while(false);
16394 tracehead = trace.prev;
16395 return;
16396 }
16397 void parser_prod___ANeExpr___empty_init(val_t self, int* init_table) {
16398 struct trace_t trace = {NULL, NULL, 6734, LOCATE_parser_prod___ANeExpr___empty_init};
16399 val_t variable[2];
16400 void **closurevariable = NULL;
16401 trace.prev = tracehead; tracehead = &trace;
16402 trace.file = LOCATE_parser_prod;
16403 variable[0] = self;
16404 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i]) return;
16405 return_label573: while(false);
16406 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
16407 tracehead = trace.prev;
16408 return;
16409 }
16410 void parser_prod___ANeExpr___init_aneexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16411 struct trace_t trace = {NULL, NULL, 6736, LOCATE_parser_prod___ANeExpr___init_aneexpr};
16412 val_t variable[5];
16413 void **closurevariable = NULL;
16414 trace.prev = tracehead; tracehead = &trace;
16415 trace.file = LOCATE_parser_prod;
16416 variable[0] = self;
16417 variable[1] = param0;
16418 variable[2] = param1;
16419 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i]) return;
16420 variable[4] = variable[0];
16421 CALL_parser_prod___ANeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ANeExpr::empty_init*/;
16422 variable[4] = variable[0];
16423 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
16424 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::==*/)))))));
16425 if (UNTAG_Bool(variable[4])) { /*if*/
16426 variable[4] = variable[0];
16427 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
16428 }
16429 variable[4] = variable[0];
16430 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
16431 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::==*/)))))));
16432 if (UNTAG_Bool(variable[4])) { /*if*/
16433 variable[4] = variable[0];
16434 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
16435 }
16436 return_label574: while(false);
16437 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
16438 tracehead = trace.prev;
16439 return;
16440 }
16441 void parser_prod___ALtExpr___n_expr__eq(val_t self, val_t param0) {
16442 struct trace_t trace = {NULL, NULL, 6798, LOCATE_parser_prod___ALtExpr___n_expr__eq};
16443 val_t variable[4];
16444 void **closurevariable = NULL;
16445 trace.prev = tracehead; tracehead = &trace;
16446 trace.file = LOCATE_parser_prod;
16447 variable[0] = self;
16448 variable[1] = param0;
16449 variable[3] = variable[0];
16450 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
16451 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16452 if (UNTAG_Bool(variable[3])) { /*if*/
16453 variable[3] = variable[0];
16454 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16455 }
16456 return_label575: while(false);
16457 tracehead = trace.prev;
16458 return;
16459 }
16460 void parser_prod___ALtExpr___n_expr2__eq(val_t self, val_t param0) {
16461 struct trace_t trace = {NULL, NULL, 6805, LOCATE_parser_prod___ALtExpr___n_expr2__eq};
16462 val_t variable[4];
16463 void **closurevariable = NULL;
16464 trace.prev = tracehead; tracehead = &trace;
16465 trace.file = LOCATE_parser_prod;
16466 variable[0] = self;
16467 variable[1] = param0;
16468 variable[3] = variable[0];
16469 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
16470 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16471 if (UNTAG_Bool(variable[3])) { /*if*/
16472 variable[3] = variable[0];
16473 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16474 }
16475 return_label576: while(false);
16476 tracehead = trace.prev;
16477 return;
16478 }
16479 void parser_prod___ALtExpr___replace_child(val_t self, val_t param0, val_t param1) {
16480 struct trace_t trace = {NULL, NULL, 6831, LOCATE_parser_prod___ALtExpr___replace_child};
16481 val_t variable[5];
16482 void **closurevariable = NULL;
16483 trace.prev = tracehead; tracehead = &trace;
16484 trace.file = LOCATE_parser_prod;
16485 variable[0] = self;
16486 variable[1] = param0;
16487 variable[2] = param1;
16488 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::==*/)))))));
16489 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, 6833); nit_exit(1);}
16490 variable[4] = variable[0];
16491 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
16492 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16493 if (UNTAG_Bool(variable[4])) { /*if*/
16494 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16495 if (UNTAG_Bool(variable[4])) { /*if*/
16496 variable[4] = variable[0];
16497 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16498 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16499 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, 6837); nit_exit(1);}
16500 variable[4] = variable[0];
16501 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
16502 } else { /*if*/
16503 variable[4] = variable[0];
16504 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
16505 }
16506 goto return_label577;
16507 }
16508 variable[4] = variable[0];
16509 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
16510 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16511 if (UNTAG_Bool(variable[4])) { /*if*/
16512 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16513 if (UNTAG_Bool(variable[4])) { /*if*/
16514 variable[4] = variable[0];
16515 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16516 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16517 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, 6847); nit_exit(1);}
16518 variable[4] = variable[0];
16519 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
16520 } else { /*if*/
16521 variable[4] = variable[0];
16522 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
16523 }
16524 goto return_label577;
16525 }
16526 return_label577: while(false);
16527 tracehead = trace.prev;
16528 return;
16529 }
16530 void parser_prod___ALtExpr___visit_all(val_t self, val_t param0) {
16531 struct trace_t trace = {NULL, NULL, 6856, LOCATE_parser_prod___ALtExpr___visit_all};
16532 val_t variable[4];
16533 void **closurevariable = NULL;
16534 trace.prev = tracehead; tracehead = &trace;
16535 trace.file = LOCATE_parser_prod;
16536 variable[0] = self;
16537 variable[1] = param0;
16538 variable[3] = variable[0];
16539 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16540 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16541 if (UNTAG_Bool(variable[3])) { /*if*/
16542 variable[3] = variable[0];
16543 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16544 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16545 }
16546 variable[3] = variable[0];
16547 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16548 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16549 if (UNTAG_Bool(variable[3])) { /*if*/
16550 variable[3] = variable[0];
16551 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16552 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16553 }
16554 return_label578: while(false);
16555 tracehead = trace.prev;
16556 return;
16557 }
16558 void parser_prod___ALtExpr___visit_all_reverse(val_t self, val_t param0) {
16559 struct trace_t trace = {NULL, NULL, 6866, LOCATE_parser_prod___ALtExpr___visit_all_reverse};
16560 val_t variable[4];
16561 void **closurevariable = NULL;
16562 trace.prev = tracehead; tracehead = &trace;
16563 trace.file = LOCATE_parser_prod;
16564 variable[0] = self;
16565 variable[1] = param0;
16566 variable[3] = variable[0];
16567 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16568 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16569 if (UNTAG_Bool(variable[3])) { /*if*/
16570 variable[3] = variable[0];
16571 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16572 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16573 }
16574 variable[3] = variable[0];
16575 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16576 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16577 if (UNTAG_Bool(variable[3])) { /*if*/
16578 variable[3] = variable[0];
16579 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16580 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16581 }
16582 return_label579: while(false);
16583 tracehead = trace.prev;
16584 return;
16585 }
16586 void parser_prod___ALtExpr___empty_init(val_t self, int* init_table) {
16587 struct trace_t trace = {NULL, NULL, 6813, LOCATE_parser_prod___ALtExpr___empty_init};
16588 val_t variable[2];
16589 void **closurevariable = NULL;
16590 trace.prev = tracehead; tracehead = &trace;
16591 trace.file = LOCATE_parser_prod;
16592 variable[0] = self;
16593 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i]) return;
16594 return_label580: while(false);
16595 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
16596 tracehead = trace.prev;
16597 return;
16598 }
16599 void parser_prod___ALtExpr___init_altexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16600 struct trace_t trace = {NULL, NULL, 6815, LOCATE_parser_prod___ALtExpr___init_altexpr};
16601 val_t variable[5];
16602 void **closurevariable = NULL;
16603 trace.prev = tracehead; tracehead = &trace;
16604 trace.file = LOCATE_parser_prod;
16605 variable[0] = self;
16606 variable[1] = param0;
16607 variable[2] = param1;
16608 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i]) return;
16609 variable[4] = variable[0];
16610 CALL_parser_prod___ALtExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ALtExpr::empty_init*/;
16611 variable[4] = variable[0];
16612 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
16613 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::==*/)))))));
16614 if (UNTAG_Bool(variable[4])) { /*if*/
16615 variable[4] = variable[0];
16616 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
16617 }
16618 variable[4] = variable[0];
16619 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
16620 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::==*/)))))));
16621 if (UNTAG_Bool(variable[4])) { /*if*/
16622 variable[4] = variable[0];
16623 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
16624 }
16625 return_label581: while(false);
16626 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
16627 tracehead = trace.prev;
16628 return;
16629 }
16630 void parser_prod___ALeExpr___n_expr__eq(val_t self, val_t param0) {
16631 struct trace_t trace = {NULL, NULL, 6877, LOCATE_parser_prod___ALeExpr___n_expr__eq};
16632 val_t variable[4];
16633 void **closurevariable = NULL;
16634 trace.prev = tracehead; tracehead = &trace;
16635 trace.file = LOCATE_parser_prod;
16636 variable[0] = self;
16637 variable[1] = param0;
16638 variable[3] = variable[0];
16639 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
16640 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16641 if (UNTAG_Bool(variable[3])) { /*if*/
16642 variable[3] = variable[0];
16643 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16644 }
16645 return_label582: while(false);
16646 tracehead = trace.prev;
16647 return;
16648 }
16649 void parser_prod___ALeExpr___n_expr2__eq(val_t self, val_t param0) {
16650 struct trace_t trace = {NULL, NULL, 6884, LOCATE_parser_prod___ALeExpr___n_expr2__eq};
16651 val_t variable[4];
16652 void **closurevariable = NULL;
16653 trace.prev = tracehead; tracehead = &trace;
16654 trace.file = LOCATE_parser_prod;
16655 variable[0] = self;
16656 variable[1] = param0;
16657 variable[3] = variable[0];
16658 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
16659 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16660 if (UNTAG_Bool(variable[3])) { /*if*/
16661 variable[3] = variable[0];
16662 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16663 }
16664 return_label583: while(false);
16665 tracehead = trace.prev;
16666 return;
16667 }
16668 void parser_prod___ALeExpr___replace_child(val_t self, val_t param0, val_t param1) {
16669 struct trace_t trace = {NULL, NULL, 6910, LOCATE_parser_prod___ALeExpr___replace_child};
16670 val_t variable[5];
16671 void **closurevariable = NULL;
16672 trace.prev = tracehead; tracehead = &trace;
16673 trace.file = LOCATE_parser_prod;
16674 variable[0] = self;
16675 variable[1] = param0;
16676 variable[2] = param1;
16677 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::==*/)))))));
16678 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, 6912); nit_exit(1);}
16679 variable[4] = variable[0];
16680 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
16681 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16682 if (UNTAG_Bool(variable[4])) { /*if*/
16683 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16684 if (UNTAG_Bool(variable[4])) { /*if*/
16685 variable[4] = variable[0];
16686 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16687 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16688 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, 6916); nit_exit(1);}
16689 variable[4] = variable[0];
16690 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
16691 } else { /*if*/
16692 variable[4] = variable[0];
16693 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
16694 }
16695 goto return_label584;
16696 }
16697 variable[4] = variable[0];
16698 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
16699 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16700 if (UNTAG_Bool(variable[4])) { /*if*/
16701 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16702 if (UNTAG_Bool(variable[4])) { /*if*/
16703 variable[4] = variable[0];
16704 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16705 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16706 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, 6926); nit_exit(1);}
16707 variable[4] = variable[0];
16708 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
16709 } else { /*if*/
16710 variable[4] = variable[0];
16711 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
16712 }
16713 goto return_label584;
16714 }
16715 return_label584: while(false);
16716 tracehead = trace.prev;
16717 return;
16718 }
16719 void parser_prod___ALeExpr___visit_all(val_t self, val_t param0) {
16720 struct trace_t trace = {NULL, NULL, 6935, LOCATE_parser_prod___ALeExpr___visit_all};
16721 val_t variable[4];
16722 void **closurevariable = NULL;
16723 trace.prev = tracehead; tracehead = &trace;
16724 trace.file = LOCATE_parser_prod;
16725 variable[0] = self;
16726 variable[1] = param0;
16727 variable[3] = variable[0];
16728 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16729 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16730 if (UNTAG_Bool(variable[3])) { /*if*/
16731 variable[3] = variable[0];
16732 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16733 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16734 }
16735 variable[3] = variable[0];
16736 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16737 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16738 if (UNTAG_Bool(variable[3])) { /*if*/
16739 variable[3] = variable[0];
16740 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16741 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16742 }
16743 return_label585: while(false);
16744 tracehead = trace.prev;
16745 return;
16746 }
16747 void parser_prod___ALeExpr___visit_all_reverse(val_t self, val_t param0) {
16748 struct trace_t trace = {NULL, NULL, 6945, LOCATE_parser_prod___ALeExpr___visit_all_reverse};
16749 val_t variable[4];
16750 void **closurevariable = NULL;
16751 trace.prev = tracehead; tracehead = &trace;
16752 trace.file = LOCATE_parser_prod;
16753 variable[0] = self;
16754 variable[1] = param0;
16755 variable[3] = variable[0];
16756 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
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 variable[3] = variable[0];
16760 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16761 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16762 }
16763 variable[3] = variable[0];
16764 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16765 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16766 if (UNTAG_Bool(variable[3])) { /*if*/
16767 variable[3] = variable[0];
16768 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16769 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16770 }
16771 return_label586: while(false);
16772 tracehead = trace.prev;
16773 return;
16774 }
16775 void parser_prod___ALeExpr___empty_init(val_t self, int* init_table) {
16776 struct trace_t trace = {NULL, NULL, 6892, LOCATE_parser_prod___ALeExpr___empty_init};
16777 val_t variable[2];
16778 void **closurevariable = NULL;
16779 trace.prev = tracehead; tracehead = &trace;
16780 trace.file = LOCATE_parser_prod;
16781 variable[0] = self;
16782 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i]) return;
16783 return_label587: while(false);
16784 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
16785 tracehead = trace.prev;
16786 return;
16787 }
16788 void parser_prod___ALeExpr___init_aleexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16789 struct trace_t trace = {NULL, NULL, 6894, LOCATE_parser_prod___ALeExpr___init_aleexpr};
16790 val_t variable[5];
16791 void **closurevariable = NULL;
16792 trace.prev = tracehead; tracehead = &trace;
16793 trace.file = LOCATE_parser_prod;
16794 variable[0] = self;
16795 variable[1] = param0;
16796 variable[2] = param1;
16797 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i]) return;
16798 variable[4] = variable[0];
16799 CALL_parser_prod___ALeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ALeExpr::empty_init*/;
16800 variable[4] = variable[0];
16801 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
16802 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::==*/)))))));
16803 if (UNTAG_Bool(variable[4])) { /*if*/
16804 variable[4] = variable[0];
16805 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
16806 }
16807 variable[4] = variable[0];
16808 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
16809 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::==*/)))))));
16810 if (UNTAG_Bool(variable[4])) { /*if*/
16811 variable[4] = variable[0];
16812 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
16813 }
16814 return_label588: while(false);
16815 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
16816 tracehead = trace.prev;
16817 return;
16818 }
16819 void parser_prod___AGtExpr___n_expr__eq(val_t self, val_t param0) {
16820 struct trace_t trace = {NULL, NULL, 6956, LOCATE_parser_prod___AGtExpr___n_expr__eq};
16821 val_t variable[4];
16822 void **closurevariable = NULL;
16823 trace.prev = tracehead; tracehead = &trace;
16824 trace.file = LOCATE_parser_prod;
16825 variable[0] = self;
16826 variable[1] = param0;
16827 variable[3] = variable[0];
16828 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
16829 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16830 if (UNTAG_Bool(variable[3])) { /*if*/
16831 variable[3] = variable[0];
16832 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16833 }
16834 return_label589: while(false);
16835 tracehead = trace.prev;
16836 return;
16837 }
16838 void parser_prod___AGtExpr___n_expr2__eq(val_t self, val_t param0) {
16839 struct trace_t trace = {NULL, NULL, 6963, LOCATE_parser_prod___AGtExpr___n_expr2__eq};
16840 val_t variable[4];
16841 void **closurevariable = NULL;
16842 trace.prev = tracehead; tracehead = &trace;
16843 trace.file = LOCATE_parser_prod;
16844 variable[0] = self;
16845 variable[1] = param0;
16846 variable[3] = variable[0];
16847 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
16848 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16849 if (UNTAG_Bool(variable[3])) { /*if*/
16850 variable[3] = variable[0];
16851 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
16852 }
16853 return_label590: while(false);
16854 tracehead = trace.prev;
16855 return;
16856 }
16857 void parser_prod___AGtExpr___replace_child(val_t self, val_t param0, val_t param1) {
16858 struct trace_t trace = {NULL, NULL, 6989, LOCATE_parser_prod___AGtExpr___replace_child};
16859 val_t variable[5];
16860 void **closurevariable = NULL;
16861 trace.prev = tracehead; tracehead = &trace;
16862 trace.file = LOCATE_parser_prod;
16863 variable[0] = self;
16864 variable[1] = param0;
16865 variable[2] = param1;
16866 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::==*/)))))));
16867 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, 6991); nit_exit(1);}
16868 variable[4] = variable[0];
16869 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
16870 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16871 if (UNTAG_Bool(variable[4])) { /*if*/
16872 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16873 if (UNTAG_Bool(variable[4])) { /*if*/
16874 variable[4] = variable[0];
16875 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16876 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16877 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, 6995); nit_exit(1);}
16878 variable[4] = variable[0];
16879 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
16880 } else { /*if*/
16881 variable[4] = variable[0];
16882 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
16883 }
16884 goto return_label591;
16885 }
16886 variable[4] = variable[0];
16887 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
16888 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
16889 if (UNTAG_Bool(variable[4])) { /*if*/
16890 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
16891 if (UNTAG_Bool(variable[4])) { /*if*/
16892 variable[4] = variable[0];
16893 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
16894 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16895 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, 7005); nit_exit(1);}
16896 variable[4] = variable[0];
16897 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
16898 } else { /*if*/
16899 variable[4] = variable[0];
16900 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
16901 }
16902 goto return_label591;
16903 }
16904 return_label591: while(false);
16905 tracehead = trace.prev;
16906 return;
16907 }
16908 void parser_prod___AGtExpr___visit_all(val_t self, val_t param0) {
16909 struct trace_t trace = {NULL, NULL, 7014, LOCATE_parser_prod___AGtExpr___visit_all};
16910 val_t variable[4];
16911 void **closurevariable = NULL;
16912 trace.prev = tracehead; tracehead = &trace;
16913 trace.file = LOCATE_parser_prod;
16914 variable[0] = self;
16915 variable[1] = param0;
16916 variable[3] = variable[0];
16917 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16918 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16919 if (UNTAG_Bool(variable[3])) { /*if*/
16920 variable[3] = variable[0];
16921 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16922 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16923 }
16924 variable[3] = variable[0];
16925 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16926 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16927 if (UNTAG_Bool(variable[3])) { /*if*/
16928 variable[3] = variable[0];
16929 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16930 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16931 }
16932 return_label592: while(false);
16933 tracehead = trace.prev;
16934 return;
16935 }
16936 void parser_prod___AGtExpr___visit_all_reverse(val_t self, val_t param0) {
16937 struct trace_t trace = {NULL, NULL, 7024, LOCATE_parser_prod___AGtExpr___visit_all_reverse};
16938 val_t variable[4];
16939 void **closurevariable = NULL;
16940 trace.prev = tracehead; tracehead = &trace;
16941 trace.file = LOCATE_parser_prod;
16942 variable[0] = self;
16943 variable[1] = param0;
16944 variable[3] = variable[0];
16945 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16946 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16947 if (UNTAG_Bool(variable[3])) { /*if*/
16948 variable[3] = variable[0];
16949 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
16950 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16951 }
16952 variable[3] = variable[0];
16953 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16954 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
16955 if (UNTAG_Bool(variable[3])) { /*if*/
16956 variable[3] = variable[0];
16957 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
16958 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
16959 }
16960 return_label593: while(false);
16961 tracehead = trace.prev;
16962 return;
16963 }
16964 void parser_prod___AGtExpr___empty_init(val_t self, int* init_table) {
16965 struct trace_t trace = {NULL, NULL, 6971, LOCATE_parser_prod___AGtExpr___empty_init};
16966 val_t variable[2];
16967 void **closurevariable = NULL;
16968 trace.prev = tracehead; tracehead = &trace;
16969 trace.file = LOCATE_parser_prod;
16970 variable[0] = self;
16971 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i]) return;
16972 return_label594: while(false);
16973 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
16974 tracehead = trace.prev;
16975 return;
16976 }
16977 void parser_prod___AGtExpr___init_agtexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16978 struct trace_t trace = {NULL, NULL, 6973, LOCATE_parser_prod___AGtExpr___init_agtexpr};
16979 val_t variable[5];
16980 void **closurevariable = NULL;
16981 trace.prev = tracehead; tracehead = &trace;
16982 trace.file = LOCATE_parser_prod;
16983 variable[0] = self;
16984 variable[1] = param0;
16985 variable[2] = param1;
16986 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i]) return;
16987 variable[4] = variable[0];
16988 CALL_parser_prod___AGtExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AGtExpr::empty_init*/;
16989 variable[4] = variable[0];
16990 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
16991 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::==*/)))))));
16992 if (UNTAG_Bool(variable[4])) { /*if*/
16993 variable[4] = variable[0];
16994 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
16995 }
16996 variable[4] = variable[0];
16997 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
16998 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::==*/)))))));
16999 if (UNTAG_Bool(variable[4])) { /*if*/
17000 variable[4] = variable[0];
17001 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
17002 }
17003 return_label595: while(false);
17004 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
17005 tracehead = trace.prev;
17006 return;
17007 }
17008 void parser_prod___AGeExpr___n_expr__eq(val_t self, val_t param0) {
17009 struct trace_t trace = {NULL, NULL, 7035, LOCATE_parser_prod___AGeExpr___n_expr__eq};
17010 val_t variable[4];
17011 void **closurevariable = NULL;
17012 trace.prev = tracehead; tracehead = &trace;
17013 trace.file = LOCATE_parser_prod;
17014 variable[0] = self;
17015 variable[1] = param0;
17016 variable[3] = variable[0];
17017 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
17018 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17019 if (UNTAG_Bool(variable[3])) { /*if*/
17020 variable[3] = variable[0];
17021 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17022 }
17023 return_label596: while(false);
17024 tracehead = trace.prev;
17025 return;
17026 }
17027 void parser_prod___AGeExpr___n_expr2__eq(val_t self, val_t param0) {
17028 struct trace_t trace = {NULL, NULL, 7042, LOCATE_parser_prod___AGeExpr___n_expr2__eq};
17029 val_t variable[4];
17030 void **closurevariable = NULL;
17031 trace.prev = tracehead; tracehead = &trace;
17032 trace.file = LOCATE_parser_prod;
17033 variable[0] = self;
17034 variable[1] = param0;
17035 variable[3] = variable[0];
17036 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
17037 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17038 if (UNTAG_Bool(variable[3])) { /*if*/
17039 variable[3] = variable[0];
17040 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17041 }
17042 return_label597: while(false);
17043 tracehead = trace.prev;
17044 return;
17045 }
17046 void parser_prod___AGeExpr___replace_child(val_t self, val_t param0, val_t param1) {
17047 struct trace_t trace = {NULL, NULL, 7068, LOCATE_parser_prod___AGeExpr___replace_child};
17048 val_t variable[5];
17049 void **closurevariable = NULL;
17050 trace.prev = tracehead; tracehead = &trace;
17051 trace.file = LOCATE_parser_prod;
17052 variable[0] = self;
17053 variable[1] = param0;
17054 variable[2] = param1;
17055 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::==*/)))))));
17056 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, 7070); nit_exit(1);}
17057 variable[4] = variable[0];
17058 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
17059 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17060 if (UNTAG_Bool(variable[4])) { /*if*/
17061 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17062 if (UNTAG_Bool(variable[4])) { /*if*/
17063 variable[4] = variable[0];
17064 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17065 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17066 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, 7074); nit_exit(1);}
17067 variable[4] = variable[0];
17068 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
17069 } else { /*if*/
17070 variable[4] = variable[0];
17071 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
17072 }
17073 goto return_label598;
17074 }
17075 variable[4] = variable[0];
17076 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
17077 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17078 if (UNTAG_Bool(variable[4])) { /*if*/
17079 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17080 if (UNTAG_Bool(variable[4])) { /*if*/
17081 variable[4] = variable[0];
17082 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17083 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17084 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, 7084); nit_exit(1);}
17085 variable[4] = variable[0];
17086 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
17087 } else { /*if*/
17088 variable[4] = variable[0];
17089 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
17090 }
17091 goto return_label598;
17092 }
17093 return_label598: while(false);
17094 tracehead = trace.prev;
17095 return;
17096 }
17097 void parser_prod___AGeExpr___visit_all(val_t self, val_t param0) {
17098 struct trace_t trace = {NULL, NULL, 7093, LOCATE_parser_prod___AGeExpr___visit_all};
17099 val_t variable[4];
17100 void **closurevariable = NULL;
17101 trace.prev = tracehead; tracehead = &trace;
17102 trace.file = LOCATE_parser_prod;
17103 variable[0] = self;
17104 variable[1] = param0;
17105 variable[3] = variable[0];
17106 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17107 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17108 if (UNTAG_Bool(variable[3])) { /*if*/
17109 variable[3] = variable[0];
17110 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17111 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17112 }
17113 variable[3] = variable[0];
17114 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17115 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17116 if (UNTAG_Bool(variable[3])) { /*if*/
17117 variable[3] = variable[0];
17118 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17119 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17120 }
17121 return_label599: while(false);
17122 tracehead = trace.prev;
17123 return;
17124 }
17125 void parser_prod___AGeExpr___visit_all_reverse(val_t self, val_t param0) {
17126 struct trace_t trace = {NULL, NULL, 7103, LOCATE_parser_prod___AGeExpr___visit_all_reverse};
17127 val_t variable[4];
17128 void **closurevariable = NULL;
17129 trace.prev = tracehead; tracehead = &trace;
17130 trace.file = LOCATE_parser_prod;
17131 variable[0] = self;
17132 variable[1] = param0;
17133 variable[3] = variable[0];
17134 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17135 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17136 if (UNTAG_Bool(variable[3])) { /*if*/
17137 variable[3] = variable[0];
17138 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17139 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17140 }
17141 variable[3] = variable[0];
17142 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17143 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17144 if (UNTAG_Bool(variable[3])) { /*if*/
17145 variable[3] = variable[0];
17146 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17147 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17148 }
17149 return_label600: while(false);
17150 tracehead = trace.prev;
17151 return;
17152 }
17153 void parser_prod___AGeExpr___empty_init(val_t self, int* init_table) {
17154 struct trace_t trace = {NULL, NULL, 7050, LOCATE_parser_prod___AGeExpr___empty_init};
17155 val_t variable[2];
17156 void **closurevariable = NULL;
17157 trace.prev = tracehead; tracehead = &trace;
17158 trace.file = LOCATE_parser_prod;
17159 variable[0] = self;
17160 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i]) return;
17161 return_label601: while(false);
17162 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
17163 tracehead = trace.prev;
17164 return;
17165 }
17166 void parser_prod___AGeExpr___init_ageexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17167 struct trace_t trace = {NULL, NULL, 7052, LOCATE_parser_prod___AGeExpr___init_ageexpr};
17168 val_t variable[5];
17169 void **closurevariable = NULL;
17170 trace.prev = tracehead; tracehead = &trace;
17171 trace.file = LOCATE_parser_prod;
17172 variable[0] = self;
17173 variable[1] = param0;
17174 variable[2] = param1;
17175 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i]) return;
17176 variable[4] = variable[0];
17177 CALL_parser_prod___AGeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AGeExpr::empty_init*/;
17178 variable[4] = variable[0];
17179 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
17180 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::==*/)))))));
17181 if (UNTAG_Bool(variable[4])) { /*if*/
17182 variable[4] = variable[0];
17183 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
17184 }
17185 variable[4] = variable[0];
17186 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
17187 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::==*/)))))));
17188 if (UNTAG_Bool(variable[4])) { /*if*/
17189 variable[4] = variable[0];
17190 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
17191 }
17192 return_label602: while(false);
17193 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
17194 tracehead = trace.prev;
17195 return;
17196 }
17197 void parser_prod___AIsaExpr___n_expr__eq(val_t self, val_t param0) {
17198 struct trace_t trace = {NULL, NULL, 7114, LOCATE_parser_prod___AIsaExpr___n_expr__eq};
17199 val_t variable[4];
17200 void **closurevariable = NULL;
17201 trace.prev = tracehead; tracehead = &trace;
17202 trace.file = LOCATE_parser_prod;
17203 variable[0] = self;
17204 variable[1] = param0;
17205 variable[3] = variable[0];
17206 ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/ = variable[1] /*n*/;
17207 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17208 if (UNTAG_Bool(variable[3])) { /*if*/
17209 variable[3] = variable[0];
17210 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17211 }
17212 return_label603: while(false);
17213 tracehead = trace.prev;
17214 return;
17215 }
17216 void parser_prod___AIsaExpr___n_type__eq(val_t self, val_t param0) {
17217 struct trace_t trace = {NULL, NULL, 7121, LOCATE_parser_prod___AIsaExpr___n_type__eq};
17218 val_t variable[4];
17219 void **closurevariable = NULL;
17220 trace.prev = tracehead; tracehead = &trace;
17221 trace.file = LOCATE_parser_prod;
17222 variable[0] = self;
17223 variable[1] = param0;
17224 variable[3] = variable[0];
17225 ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/ = variable[1] /*n*/;
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 variable[3] = variable[0];
17229 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17230 }
17231 return_label604: while(false);
17232 tracehead = trace.prev;
17233 return;
17234 }
17235 void parser_prod___AIsaExpr___replace_child(val_t self, val_t param0, val_t param1) {
17236 struct trace_t trace = {NULL, NULL, 7147, LOCATE_parser_prod___AIsaExpr___replace_child};
17237 val_t variable[5];
17238 void **closurevariable = NULL;
17239 trace.prev = tracehead; tracehead = &trace;
17240 trace.file = LOCATE_parser_prod;
17241 variable[0] = self;
17242 variable[1] = param0;
17243 variable[2] = param1;
17244 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::==*/)))))));
17245 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, 7149); nit_exit(1);}
17246 variable[4] = variable[0];
17247 variable[4] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[4]) /*AIsaExpr::_n_expr*/;
17248 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17249 if (UNTAG_Bool(variable[4])) { /*if*/
17250 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17251 if (UNTAG_Bool(variable[4])) { /*if*/
17252 variable[4] = variable[0];
17253 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17254 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17255 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, 7153); nit_exit(1);}
17256 variable[4] = variable[0];
17257 ATTR_parser_nodes___AIsaExpr____n_expr(variable[4]) /*AIsaExpr::_n_expr*/ = variable[2] /*new_child*/;
17258 } else { /*if*/
17259 variable[4] = variable[0];
17260 ATTR_parser_nodes___AIsaExpr____n_expr(variable[4]) /*AIsaExpr::_n_expr*/ = NIT_NULL /*null*/;
17261 }
17262 goto return_label605;
17263 }
17264 variable[4] = variable[0];
17265 variable[4] = ATTR_parser_nodes___AIsaExpr____n_type(variable[4]) /*AIsaExpr::_n_type*/;
17266 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17267 if (UNTAG_Bool(variable[4])) { /*if*/
17268 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17269 if (UNTAG_Bool(variable[4])) { /*if*/
17270 variable[4] = variable[0];
17271 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17272 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
17273 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, 7163); nit_exit(1);}
17274 variable[4] = variable[0];
17275 ATTR_parser_nodes___AIsaExpr____n_type(variable[4]) /*AIsaExpr::_n_type*/ = variable[2] /*new_child*/;
17276 } else { /*if*/
17277 variable[4] = variable[0];
17278 ATTR_parser_nodes___AIsaExpr____n_type(variable[4]) /*AIsaExpr::_n_type*/ = NIT_NULL /*null*/;
17279 }
17280 goto return_label605;
17281 }
17282 return_label605: while(false);
17283 tracehead = trace.prev;
17284 return;
17285 }
17286 void parser_prod___AIsaExpr___visit_all(val_t self, val_t param0) {
17287 struct trace_t trace = {NULL, NULL, 7172, LOCATE_parser_prod___AIsaExpr___visit_all};
17288 val_t variable[4];
17289 void **closurevariable = NULL;
17290 trace.prev = tracehead; tracehead = &trace;
17291 trace.file = LOCATE_parser_prod;
17292 variable[0] = self;
17293 variable[1] = param0;
17294 variable[3] = variable[0];
17295 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
17296 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17297 if (UNTAG_Bool(variable[3])) { /*if*/
17298 variable[3] = variable[0];
17299 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
17300 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17301 }
17302 variable[3] = variable[0];
17303 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
17304 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17305 if (UNTAG_Bool(variable[3])) { /*if*/
17306 variable[3] = variable[0];
17307 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
17308 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17309 }
17310 return_label606: while(false);
17311 tracehead = trace.prev;
17312 return;
17313 }
17314 void parser_prod___AIsaExpr___visit_all_reverse(val_t self, val_t param0) {
17315 struct trace_t trace = {NULL, NULL, 7182, LOCATE_parser_prod___AIsaExpr___visit_all_reverse};
17316 val_t variable[4];
17317 void **closurevariable = NULL;
17318 trace.prev = tracehead; tracehead = &trace;
17319 trace.file = LOCATE_parser_prod;
17320 variable[0] = self;
17321 variable[1] = param0;
17322 variable[3] = variable[0];
17323 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
17324 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17325 if (UNTAG_Bool(variable[3])) { /*if*/
17326 variable[3] = variable[0];
17327 variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
17328 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17329 }
17330 variable[3] = variable[0];
17331 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
17332 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17333 if (UNTAG_Bool(variable[3])) { /*if*/
17334 variable[3] = variable[0];
17335 variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
17336 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17337 }
17338 return_label607: while(false);
17339 tracehead = trace.prev;
17340 return;
17341 }
17342 void parser_prod___AIsaExpr___empty_init(val_t self, int* init_table) {
17343 struct trace_t trace = {NULL, NULL, 7129, LOCATE_parser_prod___AIsaExpr___empty_init};
17344 val_t variable[2];
17345 void **closurevariable = NULL;
17346 trace.prev = tracehead; tracehead = &trace;
17347 trace.file = LOCATE_parser_prod;
17348 variable[0] = self;
17349 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
17350 return_label608: while(false);
17351 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
17352 tracehead = trace.prev;
17353 return;
17354 }
17355 void parser_prod___AIsaExpr___init_aisaexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17356 struct trace_t trace = {NULL, NULL, 7131, LOCATE_parser_prod___AIsaExpr___init_aisaexpr};
17357 val_t variable[5];
17358 void **closurevariable = NULL;
17359 trace.prev = tracehead; tracehead = &trace;
17360 trace.file = LOCATE_parser_prod;
17361 variable[0] = self;
17362 variable[1] = param0;
17363 variable[2] = param1;
17364 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
17365 variable[4] = variable[0];
17366 CALL_parser_prod___AIsaExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AIsaExpr::empty_init*/;
17367 variable[4] = variable[0];
17368 ATTR_parser_nodes___AIsaExpr____n_expr(variable[4]) /*AIsaExpr::_n_expr*/ = variable[1] /*n_expr*/;
17369 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::==*/)))))));
17370 if (UNTAG_Bool(variable[4])) { /*if*/
17371 variable[4] = variable[0];
17372 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
17373 }
17374 variable[4] = variable[0];
17375 ATTR_parser_nodes___AIsaExpr____n_type(variable[4]) /*AIsaExpr::_n_type*/ = variable[2] /*n_type*/;
17376 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::==*/)))))));
17377 if (UNTAG_Bool(variable[4])) { /*if*/
17378 variable[4] = variable[0];
17379 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
17380 }
17381 return_label609: while(false);
17382 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
17383 tracehead = trace.prev;
17384 return;
17385 }
17386 void parser_prod___APlusExpr___n_expr__eq(val_t self, val_t param0) {
17387 struct trace_t trace = {NULL, NULL, 7193, LOCATE_parser_prod___APlusExpr___n_expr__eq};
17388 val_t variable[4];
17389 void **closurevariable = NULL;
17390 trace.prev = tracehead; tracehead = &trace;
17391 trace.file = LOCATE_parser_prod;
17392 variable[0] = self;
17393 variable[1] = param0;
17394 variable[3] = variable[0];
17395 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
17396 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17397 if (UNTAG_Bool(variable[3])) { /*if*/
17398 variable[3] = variable[0];
17399 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17400 }
17401 return_label610: while(false);
17402 tracehead = trace.prev;
17403 return;
17404 }
17405 void parser_prod___APlusExpr___n_expr2__eq(val_t self, val_t param0) {
17406 struct trace_t trace = {NULL, NULL, 7200, LOCATE_parser_prod___APlusExpr___n_expr2__eq};
17407 val_t variable[4];
17408 void **closurevariable = NULL;
17409 trace.prev = tracehead; tracehead = &trace;
17410 trace.file = LOCATE_parser_prod;
17411 variable[0] = self;
17412 variable[1] = param0;
17413 variable[3] = variable[0];
17414 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
17415 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17416 if (UNTAG_Bool(variable[3])) { /*if*/
17417 variable[3] = variable[0];
17418 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17419 }
17420 return_label611: while(false);
17421 tracehead = trace.prev;
17422 return;
17423 }
17424 void parser_prod___APlusExpr___replace_child(val_t self, val_t param0, val_t param1) {
17425 struct trace_t trace = {NULL, NULL, 7226, LOCATE_parser_prod___APlusExpr___replace_child};
17426 val_t variable[5];
17427 void **closurevariable = NULL;
17428 trace.prev = tracehead; tracehead = &trace;
17429 trace.file = LOCATE_parser_prod;
17430 variable[0] = self;
17431 variable[1] = param0;
17432 variable[2] = param1;
17433 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::==*/)))))));
17434 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, 7228); nit_exit(1);}
17435 variable[4] = variable[0];
17436 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
17437 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17438 if (UNTAG_Bool(variable[4])) { /*if*/
17439 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17440 if (UNTAG_Bool(variable[4])) { /*if*/
17441 variable[4] = variable[0];
17442 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17443 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17444 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, 7232); nit_exit(1);}
17445 variable[4] = variable[0];
17446 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
17447 } else { /*if*/
17448 variable[4] = variable[0];
17449 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
17450 }
17451 goto return_label612;
17452 }
17453 variable[4] = variable[0];
17454 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
17455 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17456 if (UNTAG_Bool(variable[4])) { /*if*/
17457 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17458 if (UNTAG_Bool(variable[4])) { /*if*/
17459 variable[4] = variable[0];
17460 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17461 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17462 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, 7242); nit_exit(1);}
17463 variable[4] = variable[0];
17464 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
17465 } else { /*if*/
17466 variable[4] = variable[0];
17467 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
17468 }
17469 goto return_label612;
17470 }
17471 return_label612: while(false);
17472 tracehead = trace.prev;
17473 return;
17474 }
17475 void parser_prod___APlusExpr___visit_all(val_t self, val_t param0) {
17476 struct trace_t trace = {NULL, NULL, 7251, LOCATE_parser_prod___APlusExpr___visit_all};
17477 val_t variable[4];
17478 void **closurevariable = NULL;
17479 trace.prev = tracehead; tracehead = &trace;
17480 trace.file = LOCATE_parser_prod;
17481 variable[0] = self;
17482 variable[1] = param0;
17483 variable[3] = variable[0];
17484 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17485 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17486 if (UNTAG_Bool(variable[3])) { /*if*/
17487 variable[3] = variable[0];
17488 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17489 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17490 }
17491 variable[3] = variable[0];
17492 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17493 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17494 if (UNTAG_Bool(variable[3])) { /*if*/
17495 variable[3] = variable[0];
17496 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17497 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17498 }
17499 return_label613: while(false);
17500 tracehead = trace.prev;
17501 return;
17502 }
17503 void parser_prod___APlusExpr___visit_all_reverse(val_t self, val_t param0) {
17504 struct trace_t trace = {NULL, NULL, 7261, LOCATE_parser_prod___APlusExpr___visit_all_reverse};
17505 val_t variable[4];
17506 void **closurevariable = NULL;
17507 trace.prev = tracehead; tracehead = &trace;
17508 trace.file = LOCATE_parser_prod;
17509 variable[0] = self;
17510 variable[1] = param0;
17511 variable[3] = variable[0];
17512 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17513 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17514 if (UNTAG_Bool(variable[3])) { /*if*/
17515 variable[3] = variable[0];
17516 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17517 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17518 }
17519 variable[3] = variable[0];
17520 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17521 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17522 if (UNTAG_Bool(variable[3])) { /*if*/
17523 variable[3] = variable[0];
17524 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17525 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17526 }
17527 return_label614: while(false);
17528 tracehead = trace.prev;
17529 return;
17530 }
17531 void parser_prod___APlusExpr___empty_init(val_t self, int* init_table) {
17532 struct trace_t trace = {NULL, NULL, 7208, LOCATE_parser_prod___APlusExpr___empty_init};
17533 val_t variable[2];
17534 void **closurevariable = NULL;
17535 trace.prev = tracehead; tracehead = &trace;
17536 trace.file = LOCATE_parser_prod;
17537 variable[0] = self;
17538 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i]) return;
17539 return_label615: while(false);
17540 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
17541 tracehead = trace.prev;
17542 return;
17543 }
17544 void parser_prod___APlusExpr___init_aplusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17545 struct trace_t trace = {NULL, NULL, 7210, LOCATE_parser_prod___APlusExpr___init_aplusexpr};
17546 val_t variable[5];
17547 void **closurevariable = NULL;
17548 trace.prev = tracehead; tracehead = &trace;
17549 trace.file = LOCATE_parser_prod;
17550 variable[0] = self;
17551 variable[1] = param0;
17552 variable[2] = param1;
17553 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i]) return;
17554 variable[4] = variable[0];
17555 CALL_parser_prod___APlusExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*APlusExpr::empty_init*/;
17556 variable[4] = variable[0];
17557 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
17558 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::==*/)))))));
17559 if (UNTAG_Bool(variable[4])) { /*if*/
17560 variable[4] = variable[0];
17561 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
17562 }
17563 variable[4] = variable[0];
17564 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
17565 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::==*/)))))));
17566 if (UNTAG_Bool(variable[4])) { /*if*/
17567 variable[4] = variable[0];
17568 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
17569 }
17570 return_label616: while(false);
17571 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
17572 tracehead = trace.prev;
17573 return;
17574 }
17575 void parser_prod___AMinusExpr___n_expr__eq(val_t self, val_t param0) {
17576 struct trace_t trace = {NULL, NULL, 7272, LOCATE_parser_prod___AMinusExpr___n_expr__eq};
17577 val_t variable[4];
17578 void **closurevariable = NULL;
17579 trace.prev = tracehead; tracehead = &trace;
17580 trace.file = LOCATE_parser_prod;
17581 variable[0] = self;
17582 variable[1] = param0;
17583 variable[3] = variable[0];
17584 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
17585 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17586 if (UNTAG_Bool(variable[3])) { /*if*/
17587 variable[3] = variable[0];
17588 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17589 }
17590 return_label617: while(false);
17591 tracehead = trace.prev;
17592 return;
17593 }
17594 void parser_prod___AMinusExpr___n_expr2__eq(val_t self, val_t param0) {
17595 struct trace_t trace = {NULL, NULL, 7279, LOCATE_parser_prod___AMinusExpr___n_expr2__eq};
17596 val_t variable[4];
17597 void **closurevariable = NULL;
17598 trace.prev = tracehead; tracehead = &trace;
17599 trace.file = LOCATE_parser_prod;
17600 variable[0] = self;
17601 variable[1] = param0;
17602 variable[3] = variable[0];
17603 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
17604 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17605 if (UNTAG_Bool(variable[3])) { /*if*/
17606 variable[3] = variable[0];
17607 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17608 }
17609 return_label618: while(false);
17610 tracehead = trace.prev;
17611 return;
17612 }
17613 void parser_prod___AMinusExpr___replace_child(val_t self, val_t param0, val_t param1) {
17614 struct trace_t trace = {NULL, NULL, 7305, LOCATE_parser_prod___AMinusExpr___replace_child};
17615 val_t variable[5];
17616 void **closurevariable = NULL;
17617 trace.prev = tracehead; tracehead = &trace;
17618 trace.file = LOCATE_parser_prod;
17619 variable[0] = self;
17620 variable[1] = param0;
17621 variable[2] = param1;
17622 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::==*/)))))));
17623 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, 7307); nit_exit(1);}
17624 variable[4] = variable[0];
17625 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
17626 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17627 if (UNTAG_Bool(variable[4])) { /*if*/
17628 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17629 if (UNTAG_Bool(variable[4])) { /*if*/
17630 variable[4] = variable[0];
17631 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17632 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17633 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, 7311); nit_exit(1);}
17634 variable[4] = variable[0];
17635 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
17636 } else { /*if*/
17637 variable[4] = variable[0];
17638 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
17639 }
17640 goto return_label619;
17641 }
17642 variable[4] = variable[0];
17643 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
17644 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17645 if (UNTAG_Bool(variable[4])) { /*if*/
17646 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17647 if (UNTAG_Bool(variable[4])) { /*if*/
17648 variable[4] = variable[0];
17649 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17650 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17651 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, 7321); nit_exit(1);}
17652 variable[4] = variable[0];
17653 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
17654 } else { /*if*/
17655 variable[4] = variable[0];
17656 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
17657 }
17658 goto return_label619;
17659 }
17660 return_label619: while(false);
17661 tracehead = trace.prev;
17662 return;
17663 }
17664 void parser_prod___AMinusExpr___visit_all(val_t self, val_t param0) {
17665 struct trace_t trace = {NULL, NULL, 7330, LOCATE_parser_prod___AMinusExpr___visit_all};
17666 val_t variable[4];
17667 void **closurevariable = NULL;
17668 trace.prev = tracehead; tracehead = &trace;
17669 trace.file = LOCATE_parser_prod;
17670 variable[0] = self;
17671 variable[1] = param0;
17672 variable[3] = variable[0];
17673 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17674 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17675 if (UNTAG_Bool(variable[3])) { /*if*/
17676 variable[3] = variable[0];
17677 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17678 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17679 }
17680 variable[3] = variable[0];
17681 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17682 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17683 if (UNTAG_Bool(variable[3])) { /*if*/
17684 variable[3] = variable[0];
17685 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17686 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17687 }
17688 return_label620: while(false);
17689 tracehead = trace.prev;
17690 return;
17691 }
17692 void parser_prod___AMinusExpr___visit_all_reverse(val_t self, val_t param0) {
17693 struct trace_t trace = {NULL, NULL, 7340, LOCATE_parser_prod___AMinusExpr___visit_all_reverse};
17694 val_t variable[4];
17695 void **closurevariable = NULL;
17696 trace.prev = tracehead; tracehead = &trace;
17697 trace.file = LOCATE_parser_prod;
17698 variable[0] = self;
17699 variable[1] = param0;
17700 variable[3] = variable[0];
17701 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17702 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17703 if (UNTAG_Bool(variable[3])) { /*if*/
17704 variable[3] = variable[0];
17705 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17706 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17707 }
17708 variable[3] = variable[0];
17709 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17710 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17711 if (UNTAG_Bool(variable[3])) { /*if*/
17712 variable[3] = variable[0];
17713 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17714 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17715 }
17716 return_label621: while(false);
17717 tracehead = trace.prev;
17718 return;
17719 }
17720 void parser_prod___AMinusExpr___empty_init(val_t self, int* init_table) {
17721 struct trace_t trace = {NULL, NULL, 7287, LOCATE_parser_prod___AMinusExpr___empty_init};
17722 val_t variable[2];
17723 void **closurevariable = NULL;
17724 trace.prev = tracehead; tracehead = &trace;
17725 trace.file = LOCATE_parser_prod;
17726 variable[0] = self;
17727 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
17728 return_label622: while(false);
17729 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
17730 tracehead = trace.prev;
17731 return;
17732 }
17733 void parser_prod___AMinusExpr___init_aminusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17734 struct trace_t trace = {NULL, NULL, 7289, LOCATE_parser_prod___AMinusExpr___init_aminusexpr};
17735 val_t variable[5];
17736 void **closurevariable = NULL;
17737 trace.prev = tracehead; tracehead = &trace;
17738 trace.file = LOCATE_parser_prod;
17739 variable[0] = self;
17740 variable[1] = param0;
17741 variable[2] = param1;
17742 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
17743 variable[4] = variable[0];
17744 CALL_parser_prod___AMinusExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AMinusExpr::empty_init*/;
17745 variable[4] = variable[0];
17746 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
17747 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::==*/)))))));
17748 if (UNTAG_Bool(variable[4])) { /*if*/
17749 variable[4] = variable[0];
17750 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
17751 }
17752 variable[4] = variable[0];
17753 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
17754 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::==*/)))))));
17755 if (UNTAG_Bool(variable[4])) { /*if*/
17756 variable[4] = variable[0];
17757 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
17758 }
17759 return_label623: while(false);
17760 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
17761 tracehead = trace.prev;
17762 return;
17763 }
17764 void parser_prod___AStarshipExpr___n_expr__eq(val_t self, val_t param0) {
17765 struct trace_t trace = {NULL, NULL, 7351, LOCATE_parser_prod___AStarshipExpr___n_expr__eq};
17766 val_t variable[4];
17767 void **closurevariable = NULL;
17768 trace.prev = tracehead; tracehead = &trace;
17769 trace.file = LOCATE_parser_prod;
17770 variable[0] = self;
17771 variable[1] = param0;
17772 variable[3] = variable[0];
17773 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
17774 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17775 if (UNTAG_Bool(variable[3])) { /*if*/
17776 variable[3] = variable[0];
17777 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17778 }
17779 return_label624: while(false);
17780 tracehead = trace.prev;
17781 return;
17782 }
17783 void parser_prod___AStarshipExpr___n_expr2__eq(val_t self, val_t param0) {
17784 struct trace_t trace = {NULL, NULL, 7358, LOCATE_parser_prod___AStarshipExpr___n_expr2__eq};
17785 val_t variable[4];
17786 void **closurevariable = NULL;
17787 trace.prev = tracehead; tracehead = &trace;
17788 trace.file = LOCATE_parser_prod;
17789 variable[0] = self;
17790 variable[1] = param0;
17791 variable[3] = variable[0];
17792 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
17793 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17794 if (UNTAG_Bool(variable[3])) { /*if*/
17795 variable[3] = variable[0];
17796 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17797 }
17798 return_label625: while(false);
17799 tracehead = trace.prev;
17800 return;
17801 }
17802 void parser_prod___AStarshipExpr___replace_child(val_t self, val_t param0, val_t param1) {
17803 struct trace_t trace = {NULL, NULL, 7384, LOCATE_parser_prod___AStarshipExpr___replace_child};
17804 val_t variable[5];
17805 void **closurevariable = NULL;
17806 trace.prev = tracehead; tracehead = &trace;
17807 trace.file = LOCATE_parser_prod;
17808 variable[0] = self;
17809 variable[1] = param0;
17810 variable[2] = param1;
17811 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::==*/)))))));
17812 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, 7386); nit_exit(1);}
17813 variable[4] = variable[0];
17814 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
17815 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17816 if (UNTAG_Bool(variable[4])) { /*if*/
17817 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17818 if (UNTAG_Bool(variable[4])) { /*if*/
17819 variable[4] = variable[0];
17820 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17821 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17822 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, 7390); nit_exit(1);}
17823 variable[4] = variable[0];
17824 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
17825 } else { /*if*/
17826 variable[4] = variable[0];
17827 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
17828 }
17829 goto return_label626;
17830 }
17831 variable[4] = variable[0];
17832 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
17833 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
17834 if (UNTAG_Bool(variable[4])) { /*if*/
17835 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17836 if (UNTAG_Bool(variable[4])) { /*if*/
17837 variable[4] = variable[0];
17838 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
17839 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17840 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, 7400); nit_exit(1);}
17841 variable[4] = variable[0];
17842 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
17843 } else { /*if*/
17844 variable[4] = variable[0];
17845 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
17846 }
17847 goto return_label626;
17848 }
17849 return_label626: while(false);
17850 tracehead = trace.prev;
17851 return;
17852 }
17853 void parser_prod___AStarshipExpr___visit_all(val_t self, val_t param0) {
17854 struct trace_t trace = {NULL, NULL, 7409, LOCATE_parser_prod___AStarshipExpr___visit_all};
17855 val_t variable[4];
17856 void **closurevariable = NULL;
17857 trace.prev = tracehead; tracehead = &trace;
17858 trace.file = LOCATE_parser_prod;
17859 variable[0] = self;
17860 variable[1] = param0;
17861 variable[3] = variable[0];
17862 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17863 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17864 if (UNTAG_Bool(variable[3])) { /*if*/
17865 variable[3] = variable[0];
17866 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17867 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17868 }
17869 variable[3] = variable[0];
17870 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17871 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17872 if (UNTAG_Bool(variable[3])) { /*if*/
17873 variable[3] = variable[0];
17874 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17875 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17876 }
17877 return_label627: while(false);
17878 tracehead = trace.prev;
17879 return;
17880 }
17881 void parser_prod___AStarshipExpr___visit_all_reverse(val_t self, val_t param0) {
17882 struct trace_t trace = {NULL, NULL, 7419, LOCATE_parser_prod___AStarshipExpr___visit_all_reverse};
17883 val_t variable[4];
17884 void **closurevariable = NULL;
17885 trace.prev = tracehead; tracehead = &trace;
17886 trace.file = LOCATE_parser_prod;
17887 variable[0] = self;
17888 variable[1] = param0;
17889 variable[3] = variable[0];
17890 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17891 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17892 if (UNTAG_Bool(variable[3])) { /*if*/
17893 variable[3] = variable[0];
17894 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
17895 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17896 }
17897 variable[3] = variable[0];
17898 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17899 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
17900 if (UNTAG_Bool(variable[3])) { /*if*/
17901 variable[3] = variable[0];
17902 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
17903 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
17904 }
17905 return_label628: while(false);
17906 tracehead = trace.prev;
17907 return;
17908 }
17909 void parser_prod___AStarshipExpr___empty_init(val_t self, int* init_table) {
17910 struct trace_t trace = {NULL, NULL, 7366, LOCATE_parser_prod___AStarshipExpr___empty_init};
17911 val_t variable[2];
17912 void **closurevariable = NULL;
17913 trace.prev = tracehead; tracehead = &trace;
17914 trace.file = LOCATE_parser_prod;
17915 variable[0] = self;
17916 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
17917 return_label629: while(false);
17918 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
17919 tracehead = trace.prev;
17920 return;
17921 }
17922 void parser_prod___AStarshipExpr___init_astarshipexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17923 struct trace_t trace = {NULL, NULL, 7368, LOCATE_parser_prod___AStarshipExpr___init_astarshipexpr};
17924 val_t variable[5];
17925 void **closurevariable = NULL;
17926 trace.prev = tracehead; tracehead = &trace;
17927 trace.file = LOCATE_parser_prod;
17928 variable[0] = self;
17929 variable[1] = param0;
17930 variable[2] = param1;
17931 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
17932 variable[4] = variable[0];
17933 CALL_parser_prod___AStarshipExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AStarshipExpr::empty_init*/;
17934 variable[4] = variable[0];
17935 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
17936 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::==*/)))))));
17937 if (UNTAG_Bool(variable[4])) { /*if*/
17938 variable[4] = variable[0];
17939 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
17940 }
17941 variable[4] = variable[0];
17942 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
17943 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::==*/)))))));
17944 if (UNTAG_Bool(variable[4])) { /*if*/
17945 variable[4] = variable[0];
17946 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
17947 }
17948 return_label630: while(false);
17949 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
17950 tracehead = trace.prev;
17951 return;
17952 }
17953 void parser_prod___AStarExpr___n_expr__eq(val_t self, val_t param0) {
17954 struct trace_t trace = {NULL, NULL, 7430, LOCATE_parser_prod___AStarExpr___n_expr__eq};
17955 val_t variable[4];
17956 void **closurevariable = NULL;
17957 trace.prev = tracehead; tracehead = &trace;
17958 trace.file = LOCATE_parser_prod;
17959 variable[0] = self;
17960 variable[1] = param0;
17961 variable[3] = variable[0];
17962 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
17963 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17964 if (UNTAG_Bool(variable[3])) { /*if*/
17965 variable[3] = variable[0];
17966 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17967 }
17968 return_label631: while(false);
17969 tracehead = trace.prev;
17970 return;
17971 }
17972 void parser_prod___AStarExpr___n_expr2__eq(val_t self, val_t param0) {
17973 struct trace_t trace = {NULL, NULL, 7437, LOCATE_parser_prod___AStarExpr___n_expr2__eq};
17974 val_t variable[4];
17975 void **closurevariable = NULL;
17976 trace.prev = tracehead; tracehead = &trace;
17977 trace.file = LOCATE_parser_prod;
17978 variable[0] = self;
17979 variable[1] = param0;
17980 variable[3] = variable[0];
17981 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
17982 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
17983 if (UNTAG_Bool(variable[3])) { /*if*/
17984 variable[3] = variable[0];
17985 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
17986 }
17987 return_label632: while(false);
17988 tracehead = trace.prev;
17989 return;
17990 }
17991 void parser_prod___AStarExpr___replace_child(val_t self, val_t param0, val_t param1) {
17992 struct trace_t trace = {NULL, NULL, 7463, LOCATE_parser_prod___AStarExpr___replace_child};
17993 val_t variable[5];
17994 void **closurevariable = NULL;
17995 trace.prev = tracehead; tracehead = &trace;
17996 trace.file = LOCATE_parser_prod;
17997 variable[0] = self;
17998 variable[1] = param0;
17999 variable[2] = param1;
18000 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::==*/)))))));
18001 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, 7465); nit_exit(1);}
18002 variable[4] = variable[0];
18003 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
18004 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18005 if (UNTAG_Bool(variable[4])) { /*if*/
18006 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18007 if (UNTAG_Bool(variable[4])) { /*if*/
18008 variable[4] = variable[0];
18009 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18010 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18011 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, 7469); nit_exit(1);}
18012 variable[4] = variable[0];
18013 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18014 } else { /*if*/
18015 variable[4] = variable[0];
18016 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18017 }
18018 goto return_label633;
18019 }
18020 variable[4] = variable[0];
18021 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
18022 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18023 if (UNTAG_Bool(variable[4])) { /*if*/
18024 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18025 if (UNTAG_Bool(variable[4])) { /*if*/
18026 variable[4] = variable[0];
18027 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18028 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18029 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, 7479); nit_exit(1);}
18030 variable[4] = variable[0];
18031 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
18032 } else { /*if*/
18033 variable[4] = variable[0];
18034 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
18035 }
18036 goto return_label633;
18037 }
18038 return_label633: while(false);
18039 tracehead = trace.prev;
18040 return;
18041 }
18042 void parser_prod___AStarExpr___visit_all(val_t self, val_t param0) {
18043 struct trace_t trace = {NULL, NULL, 7488, LOCATE_parser_prod___AStarExpr___visit_all};
18044 val_t variable[4];
18045 void **closurevariable = NULL;
18046 trace.prev = tracehead; tracehead = &trace;
18047 trace.file = LOCATE_parser_prod;
18048 variable[0] = self;
18049 variable[1] = param0;
18050 variable[3] = variable[0];
18051 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18052 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18053 if (UNTAG_Bool(variable[3])) { /*if*/
18054 variable[3] = variable[0];
18055 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18056 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18057 }
18058 variable[3] = variable[0];
18059 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18060 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18061 if (UNTAG_Bool(variable[3])) { /*if*/
18062 variable[3] = variable[0];
18063 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18064 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18065 }
18066 return_label634: while(false);
18067 tracehead = trace.prev;
18068 return;
18069 }
18070 void parser_prod___AStarExpr___visit_all_reverse(val_t self, val_t param0) {
18071 struct trace_t trace = {NULL, NULL, 7498, LOCATE_parser_prod___AStarExpr___visit_all_reverse};
18072 val_t variable[4];
18073 void **closurevariable = NULL;
18074 trace.prev = tracehead; tracehead = &trace;
18075 trace.file = LOCATE_parser_prod;
18076 variable[0] = self;
18077 variable[1] = param0;
18078 variable[3] = variable[0];
18079 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18080 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18081 if (UNTAG_Bool(variable[3])) { /*if*/
18082 variable[3] = variable[0];
18083 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18084 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18085 }
18086 variable[3] = variable[0];
18087 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18088 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18089 if (UNTAG_Bool(variable[3])) { /*if*/
18090 variable[3] = variable[0];
18091 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18092 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18093 }
18094 return_label635: while(false);
18095 tracehead = trace.prev;
18096 return;
18097 }
18098 void parser_prod___AStarExpr___empty_init(val_t self, int* init_table) {
18099 struct trace_t trace = {NULL, NULL, 7445, LOCATE_parser_prod___AStarExpr___empty_init};
18100 val_t variable[2];
18101 void **closurevariable = NULL;
18102 trace.prev = tracehead; tracehead = &trace;
18103 trace.file = LOCATE_parser_prod;
18104 variable[0] = self;
18105 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i]) return;
18106 return_label636: while(false);
18107 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
18108 tracehead = trace.prev;
18109 return;
18110 }
18111 void parser_prod___AStarExpr___init_astarexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18112 struct trace_t trace = {NULL, NULL, 7447, LOCATE_parser_prod___AStarExpr___init_astarexpr};
18113 val_t variable[5];
18114 void **closurevariable = NULL;
18115 trace.prev = tracehead; tracehead = &trace;
18116 trace.file = LOCATE_parser_prod;
18117 variable[0] = self;
18118 variable[1] = param0;
18119 variable[2] = param1;
18120 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i]) return;
18121 variable[4] = variable[0];
18122 CALL_parser_prod___AStarExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AStarExpr::empty_init*/;
18123 variable[4] = variable[0];
18124 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
18125 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::==*/)))))));
18126 if (UNTAG_Bool(variable[4])) { /*if*/
18127 variable[4] = variable[0];
18128 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
18129 }
18130 variable[4] = variable[0];
18131 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18132 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::==*/)))))));
18133 if (UNTAG_Bool(variable[4])) { /*if*/
18134 variable[4] = variable[0];
18135 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
18136 }
18137 return_label637: while(false);
18138 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
18139 tracehead = trace.prev;
18140 return;
18141 }
18142 void parser_prod___ASlashExpr___n_expr__eq(val_t self, val_t param0) {
18143 struct trace_t trace = {NULL, NULL, 7509, LOCATE_parser_prod___ASlashExpr___n_expr__eq};
18144 val_t variable[4];
18145 void **closurevariable = NULL;
18146 trace.prev = tracehead; tracehead = &trace;
18147 trace.file = LOCATE_parser_prod;
18148 variable[0] = self;
18149 variable[1] = param0;
18150 variable[3] = variable[0];
18151 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
18152 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18153 if (UNTAG_Bool(variable[3])) { /*if*/
18154 variable[3] = variable[0];
18155 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18156 }
18157 return_label638: while(false);
18158 tracehead = trace.prev;
18159 return;
18160 }
18161 void parser_prod___ASlashExpr___n_expr2__eq(val_t self, val_t param0) {
18162 struct trace_t trace = {NULL, NULL, 7516, LOCATE_parser_prod___ASlashExpr___n_expr2__eq};
18163 val_t variable[4];
18164 void **closurevariable = NULL;
18165 trace.prev = tracehead; tracehead = &trace;
18166 trace.file = LOCATE_parser_prod;
18167 variable[0] = self;
18168 variable[1] = param0;
18169 variable[3] = variable[0];
18170 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
18171 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18172 if (UNTAG_Bool(variable[3])) { /*if*/
18173 variable[3] = variable[0];
18174 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18175 }
18176 return_label639: while(false);
18177 tracehead = trace.prev;
18178 return;
18179 }
18180 void parser_prod___ASlashExpr___replace_child(val_t self, val_t param0, val_t param1) {
18181 struct trace_t trace = {NULL, NULL, 7542, LOCATE_parser_prod___ASlashExpr___replace_child};
18182 val_t variable[5];
18183 void **closurevariable = NULL;
18184 trace.prev = tracehead; tracehead = &trace;
18185 trace.file = LOCATE_parser_prod;
18186 variable[0] = self;
18187 variable[1] = param0;
18188 variable[2] = param1;
18189 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::==*/)))))));
18190 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, 7544); nit_exit(1);}
18191 variable[4] = variable[0];
18192 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
18193 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18194 if (UNTAG_Bool(variable[4])) { /*if*/
18195 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18196 if (UNTAG_Bool(variable[4])) { /*if*/
18197 variable[4] = variable[0];
18198 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18199 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18200 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, 7548); nit_exit(1);}
18201 variable[4] = variable[0];
18202 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18203 } else { /*if*/
18204 variable[4] = variable[0];
18205 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18206 }
18207 goto return_label640;
18208 }
18209 variable[4] = variable[0];
18210 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
18211 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18212 if (UNTAG_Bool(variable[4])) { /*if*/
18213 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18214 if (UNTAG_Bool(variable[4])) { /*if*/
18215 variable[4] = variable[0];
18216 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18217 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18218 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, 7558); nit_exit(1);}
18219 variable[4] = variable[0];
18220 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
18221 } else { /*if*/
18222 variable[4] = variable[0];
18223 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
18224 }
18225 goto return_label640;
18226 }
18227 return_label640: while(false);
18228 tracehead = trace.prev;
18229 return;
18230 }
18231 void parser_prod___ASlashExpr___visit_all(val_t self, val_t param0) {
18232 struct trace_t trace = {NULL, NULL, 7567, LOCATE_parser_prod___ASlashExpr___visit_all};
18233 val_t variable[4];
18234 void **closurevariable = NULL;
18235 trace.prev = tracehead; tracehead = &trace;
18236 trace.file = LOCATE_parser_prod;
18237 variable[0] = self;
18238 variable[1] = param0;
18239 variable[3] = variable[0];
18240 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18241 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18242 if (UNTAG_Bool(variable[3])) { /*if*/
18243 variable[3] = variable[0];
18244 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18245 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18246 }
18247 variable[3] = variable[0];
18248 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18249 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18250 if (UNTAG_Bool(variable[3])) { /*if*/
18251 variable[3] = variable[0];
18252 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18253 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18254 }
18255 return_label641: while(false);
18256 tracehead = trace.prev;
18257 return;
18258 }
18259 void parser_prod___ASlashExpr___visit_all_reverse(val_t self, val_t param0) {
18260 struct trace_t trace = {NULL, NULL, 7577, LOCATE_parser_prod___ASlashExpr___visit_all_reverse};
18261 val_t variable[4];
18262 void **closurevariable = NULL;
18263 trace.prev = tracehead; tracehead = &trace;
18264 trace.file = LOCATE_parser_prod;
18265 variable[0] = self;
18266 variable[1] = param0;
18267 variable[3] = variable[0];
18268 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18269 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18270 if (UNTAG_Bool(variable[3])) { /*if*/
18271 variable[3] = variable[0];
18272 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18273 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18274 }
18275 variable[3] = variable[0];
18276 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18277 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18278 if (UNTAG_Bool(variable[3])) { /*if*/
18279 variable[3] = variable[0];
18280 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18281 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18282 }
18283 return_label642: while(false);
18284 tracehead = trace.prev;
18285 return;
18286 }
18287 void parser_prod___ASlashExpr___empty_init(val_t self, int* init_table) {
18288 struct trace_t trace = {NULL, NULL, 7524, LOCATE_parser_prod___ASlashExpr___empty_init};
18289 val_t variable[2];
18290 void **closurevariable = NULL;
18291 trace.prev = tracehead; tracehead = &trace;
18292 trace.file = LOCATE_parser_prod;
18293 variable[0] = self;
18294 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
18295 return_label643: while(false);
18296 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
18297 tracehead = trace.prev;
18298 return;
18299 }
18300 void parser_prod___ASlashExpr___init_aslashexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18301 struct trace_t trace = {NULL, NULL, 7526, LOCATE_parser_prod___ASlashExpr___init_aslashexpr};
18302 val_t variable[5];
18303 void **closurevariable = NULL;
18304 trace.prev = tracehead; tracehead = &trace;
18305 trace.file = LOCATE_parser_prod;
18306 variable[0] = self;
18307 variable[1] = param0;
18308 variable[2] = param1;
18309 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
18310 variable[4] = variable[0];
18311 CALL_parser_prod___ASlashExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ASlashExpr::empty_init*/;
18312 variable[4] = variable[0];
18313 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
18314 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::==*/)))))));
18315 if (UNTAG_Bool(variable[4])) { /*if*/
18316 variable[4] = variable[0];
18317 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
18318 }
18319 variable[4] = variable[0];
18320 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18321 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::==*/)))))));
18322 if (UNTAG_Bool(variable[4])) { /*if*/
18323 variable[4] = variable[0];
18324 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
18325 }
18326 return_label644: while(false);
18327 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
18328 tracehead = trace.prev;
18329 return;
18330 }
18331 void parser_prod___APercentExpr___n_expr__eq(val_t self, val_t param0) {
18332 struct trace_t trace = {NULL, NULL, 7588, LOCATE_parser_prod___APercentExpr___n_expr__eq};
18333 val_t variable[4];
18334 void **closurevariable = NULL;
18335 trace.prev = tracehead; tracehead = &trace;
18336 trace.file = LOCATE_parser_prod;
18337 variable[0] = self;
18338 variable[1] = param0;
18339 variable[3] = variable[0];
18340 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
18341 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18342 if (UNTAG_Bool(variable[3])) { /*if*/
18343 variable[3] = variable[0];
18344 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18345 }
18346 return_label645: while(false);
18347 tracehead = trace.prev;
18348 return;
18349 }
18350 void parser_prod___APercentExpr___n_expr2__eq(val_t self, val_t param0) {
18351 struct trace_t trace = {NULL, NULL, 7595, LOCATE_parser_prod___APercentExpr___n_expr2__eq};
18352 val_t variable[4];
18353 void **closurevariable = NULL;
18354 trace.prev = tracehead; tracehead = &trace;
18355 trace.file = LOCATE_parser_prod;
18356 variable[0] = self;
18357 variable[1] = param0;
18358 variable[3] = variable[0];
18359 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ = variable[1] /*n*/;
18360 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18361 if (UNTAG_Bool(variable[3])) { /*if*/
18362 variable[3] = variable[0];
18363 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18364 }
18365 return_label646: while(false);
18366 tracehead = trace.prev;
18367 return;
18368 }
18369 void parser_prod___APercentExpr___replace_child(val_t self, val_t param0, val_t param1) {
18370 struct trace_t trace = {NULL, NULL, 7621, LOCATE_parser_prod___APercentExpr___replace_child};
18371 val_t variable[5];
18372 void **closurevariable = NULL;
18373 trace.prev = tracehead; tracehead = &trace;
18374 trace.file = LOCATE_parser_prod;
18375 variable[0] = self;
18376 variable[1] = param0;
18377 variable[2] = param1;
18378 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::==*/)))))));
18379 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, 7623); nit_exit(1);}
18380 variable[4] = variable[0];
18381 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
18382 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18383 if (UNTAG_Bool(variable[4])) { /*if*/
18384 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18385 if (UNTAG_Bool(variable[4])) { /*if*/
18386 variable[4] = variable[0];
18387 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18388 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18389 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, 7627); nit_exit(1);}
18390 variable[4] = variable[0];
18391 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18392 } else { /*if*/
18393 variable[4] = variable[0];
18394 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18395 }
18396 goto return_label647;
18397 }
18398 variable[4] = variable[0];
18399 variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
18400 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18401 if (UNTAG_Bool(variable[4])) { /*if*/
18402 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18403 if (UNTAG_Bool(variable[4])) { /*if*/
18404 variable[4] = variable[0];
18405 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18406 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18407 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, 7637); nit_exit(1);}
18408 variable[4] = variable[0];
18409 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*new_child*/;
18410 } else { /*if*/
18411 variable[4] = variable[0];
18412 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
18413 }
18414 goto return_label647;
18415 }
18416 return_label647: while(false);
18417 tracehead = trace.prev;
18418 return;
18419 }
18420 void parser_prod___APercentExpr___visit_all(val_t self, val_t param0) {
18421 struct trace_t trace = {NULL, NULL, 7646, LOCATE_parser_prod___APercentExpr___visit_all};
18422 val_t variable[4];
18423 void **closurevariable = NULL;
18424 trace.prev = tracehead; tracehead = &trace;
18425 trace.file = LOCATE_parser_prod;
18426 variable[0] = self;
18427 variable[1] = param0;
18428 variable[3] = variable[0];
18429 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18430 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18431 if (UNTAG_Bool(variable[3])) { /*if*/
18432 variable[3] = variable[0];
18433 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18434 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18435 }
18436 variable[3] = variable[0];
18437 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18438 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18439 if (UNTAG_Bool(variable[3])) { /*if*/
18440 variable[3] = variable[0];
18441 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18442 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18443 }
18444 return_label648: while(false);
18445 tracehead = trace.prev;
18446 return;
18447 }
18448 void parser_prod___APercentExpr___visit_all_reverse(val_t self, val_t param0) {
18449 struct trace_t trace = {NULL, NULL, 7656, LOCATE_parser_prod___APercentExpr___visit_all_reverse};
18450 val_t variable[4];
18451 void **closurevariable = NULL;
18452 trace.prev = tracehead; tracehead = &trace;
18453 trace.file = LOCATE_parser_prod;
18454 variable[0] = self;
18455 variable[1] = param0;
18456 variable[3] = variable[0];
18457 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18458 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18459 if (UNTAG_Bool(variable[3])) { /*if*/
18460 variable[3] = variable[0];
18461 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18462 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18463 }
18464 variable[3] = variable[0];
18465 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18466 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18467 if (UNTAG_Bool(variable[3])) { /*if*/
18468 variable[3] = variable[0];
18469 variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
18470 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18471 }
18472 return_label649: while(false);
18473 tracehead = trace.prev;
18474 return;
18475 }
18476 void parser_prod___APercentExpr___empty_init(val_t self, int* init_table) {
18477 struct trace_t trace = {NULL, NULL, 7603, LOCATE_parser_prod___APercentExpr___empty_init};
18478 val_t variable[2];
18479 void **closurevariable = NULL;
18480 trace.prev = tracehead; tracehead = &trace;
18481 trace.file = LOCATE_parser_prod;
18482 variable[0] = self;
18483 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i]) return;
18484 return_label650: while(false);
18485 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
18486 tracehead = trace.prev;
18487 return;
18488 }
18489 void parser_prod___APercentExpr___init_apercentexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18490 struct trace_t trace = {NULL, NULL, 7605, LOCATE_parser_prod___APercentExpr___init_apercentexpr};
18491 val_t variable[5];
18492 void **closurevariable = NULL;
18493 trace.prev = tracehead; tracehead = &trace;
18494 trace.file = LOCATE_parser_prod;
18495 variable[0] = self;
18496 variable[1] = param0;
18497 variable[2] = param1;
18498 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i]) return;
18499 variable[4] = variable[0];
18500 CALL_parser_prod___APercentExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*APercentExpr::empty_init*/;
18501 variable[4] = variable[0];
18502 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
18503 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::==*/)))))));
18504 if (UNTAG_Bool(variable[4])) { /*if*/
18505 variable[4] = variable[0];
18506 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
18507 }
18508 variable[4] = variable[0];
18509 ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
18510 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::==*/)))))));
18511 if (UNTAG_Bool(variable[4])) { /*if*/
18512 variable[4] = variable[0];
18513 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
18514 }
18515 return_label651: while(false);
18516 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
18517 tracehead = trace.prev;
18518 return;
18519 }
18520 void parser_prod___AUminusExpr___n_expr__eq(val_t self, val_t param0) {
18521 struct trace_t trace = {NULL, NULL, 7674, LOCATE_parser_prod___AUminusExpr___n_expr__eq};
18522 val_t variable[4];
18523 void **closurevariable = NULL;
18524 trace.prev = tracehead; tracehead = &trace;
18525 trace.file = LOCATE_parser_prod;
18526 variable[0] = self;
18527 variable[1] = param0;
18528 variable[3] = variable[0];
18529 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
18530 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18531 if (UNTAG_Bool(variable[3])) { /*if*/
18532 variable[3] = variable[0];
18533 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18534 }
18535 return_label652: while(false);
18536 tracehead = trace.prev;
18537 return;
18538 }
18539 void parser_prod___AUminusExpr___n_minus__eq(val_t self, val_t param0) {
18540 struct trace_t trace = {NULL, NULL, 7667, LOCATE_parser_prod___AUminusExpr___n_minus__eq};
18541 val_t variable[4];
18542 void **closurevariable = NULL;
18543 trace.prev = tracehead; tracehead = &trace;
18544 trace.file = LOCATE_parser_prod;
18545 variable[0] = self;
18546 variable[1] = param0;
18547 variable[3] = variable[0];
18548 ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/ = variable[1] /*n*/;
18549 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18550 if (UNTAG_Bool(variable[3])) { /*if*/
18551 variable[3] = variable[0];
18552 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18553 }
18554 return_label653: while(false);
18555 tracehead = trace.prev;
18556 return;
18557 }
18558 void parser_prod___AUminusExpr___replace_child(val_t self, val_t param0, val_t param1) {
18559 struct trace_t trace = {NULL, NULL, 7700, LOCATE_parser_prod___AUminusExpr___replace_child};
18560 val_t variable[5];
18561 void **closurevariable = NULL;
18562 trace.prev = tracehead; tracehead = &trace;
18563 trace.file = LOCATE_parser_prod;
18564 variable[0] = self;
18565 variable[1] = param0;
18566 variable[2] = param1;
18567 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::==*/)))))));
18568 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, 7702); nit_exit(1);}
18569 variable[4] = variable[0];
18570 variable[4] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[4]) /*AUminusExpr::_n_minus*/;
18571 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18572 if (UNTAG_Bool(variable[4])) { /*if*/
18573 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18574 if (UNTAG_Bool(variable[4])) { /*if*/
18575 variable[4] = variable[0];
18576 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18577 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
18578 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, 7706); nit_exit(1);}
18579 variable[4] = variable[0];
18580 ATTR_parser_nodes___AUminusExpr____n_minus(variable[4]) /*AUminusExpr::_n_minus*/ = variable[2] /*new_child*/;
18581 } else { /*if*/
18582 variable[4] = variable[0];
18583 ATTR_parser_nodes___AUminusExpr____n_minus(variable[4]) /*AUminusExpr::_n_minus*/ = NIT_NULL /*null*/;
18584 }
18585 goto return_label654;
18586 }
18587 variable[4] = variable[0];
18588 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
18589 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18590 if (UNTAG_Bool(variable[4])) { /*if*/
18591 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18592 if (UNTAG_Bool(variable[4])) { /*if*/
18593 variable[4] = variable[0];
18594 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18595 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18596 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, 7716); nit_exit(1);}
18597 variable[4] = variable[0];
18598 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
18599 } else { /*if*/
18600 variable[4] = variable[0];
18601 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
18602 }
18603 goto return_label654;
18604 }
18605 return_label654: while(false);
18606 tracehead = trace.prev;
18607 return;
18608 }
18609 void parser_prod___AUminusExpr___visit_all(val_t self, val_t param0) {
18610 struct trace_t trace = {NULL, NULL, 7725, LOCATE_parser_prod___AUminusExpr___visit_all};
18611 val_t variable[4];
18612 void **closurevariable = NULL;
18613 trace.prev = tracehead; tracehead = &trace;
18614 trace.file = LOCATE_parser_prod;
18615 variable[0] = self;
18616 variable[1] = param0;
18617 variable[3] = variable[0];
18618 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
18619 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18620 if (UNTAG_Bool(variable[3])) { /*if*/
18621 variable[3] = variable[0];
18622 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
18623 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18624 }
18625 variable[3] = variable[0];
18626 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18627 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18628 if (UNTAG_Bool(variable[3])) { /*if*/
18629 variable[3] = variable[0];
18630 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18631 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18632 }
18633 return_label655: while(false);
18634 tracehead = trace.prev;
18635 return;
18636 }
18637 void parser_prod___AUminusExpr___visit_all_reverse(val_t self, val_t param0) {
18638 struct trace_t trace = {NULL, NULL, 7735, LOCATE_parser_prod___AUminusExpr___visit_all_reverse};
18639 val_t variable[4];
18640 void **closurevariable = NULL;
18641 trace.prev = tracehead; tracehead = &trace;
18642 trace.file = LOCATE_parser_prod;
18643 variable[0] = self;
18644 variable[1] = param0;
18645 variable[3] = variable[0];
18646 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
18647 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18648 if (UNTAG_Bool(variable[3])) { /*if*/
18649 variable[3] = variable[0];
18650 variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
18651 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18652 }
18653 variable[3] = variable[0];
18654 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18655 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18656 if (UNTAG_Bool(variable[3])) { /*if*/
18657 variable[3] = variable[0];
18658 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
18659 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18660 }
18661 return_label656: while(false);
18662 tracehead = trace.prev;
18663 return;
18664 }
18665 void parser_prod___AUminusExpr___empty_init(val_t self, int* init_table) {
18666 struct trace_t trace = {NULL, NULL, 7682, LOCATE_parser_prod___AUminusExpr___empty_init};
18667 val_t variable[2];
18668 void **closurevariable = NULL;
18669 trace.prev = tracehead; tracehead = &trace;
18670 trace.file = LOCATE_parser_prod;
18671 variable[0] = self;
18672 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
18673 return_label657: while(false);
18674 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
18675 tracehead = trace.prev;
18676 return;
18677 }
18678 void parser_prod___AUminusExpr___init_auminusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
18679 struct trace_t trace = {NULL, NULL, 7684, LOCATE_parser_prod___AUminusExpr___init_auminusexpr};
18680 val_t variable[5];
18681 void **closurevariable = NULL;
18682 trace.prev = tracehead; tracehead = &trace;
18683 trace.file = LOCATE_parser_prod;
18684 variable[0] = self;
18685 variable[1] = param0;
18686 variable[2] = param1;
18687 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
18688 variable[4] = variable[0];
18689 CALL_parser_prod___AUminusExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AUminusExpr::empty_init*/;
18690 variable[4] = variable[0];
18691 ATTR_parser_nodes___AUminusExpr____n_minus(variable[4]) /*AUminusExpr::_n_minus*/ = variable[1] /*n_minus*/;
18692 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::==*/)))))));
18693 if (UNTAG_Bool(variable[4])) { /*if*/
18694 variable[4] = variable[0];
18695 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, variable[4]) /*PNode::parent=*/;
18696 }
18697 variable[4] = variable[0];
18698 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*n_expr*/;
18699 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::==*/)))))));
18700 if (UNTAG_Bool(variable[4])) { /*if*/
18701 variable[4] = variable[0];
18702 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
18703 }
18704 return_label658: while(false);
18705 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
18706 tracehead = trace.prev;
18707 return;
18708 }
18709 void parser_prod___ANewExpr___n_kwnew__eq(val_t self, val_t param0) {
18710 struct trace_t trace = {NULL, NULL, 7746, LOCATE_parser_prod___ANewExpr___n_kwnew__eq};
18711 val_t variable[4];
18712 void **closurevariable = NULL;
18713 trace.prev = tracehead; tracehead = &trace;
18714 trace.file = LOCATE_parser_prod;
18715 variable[0] = self;
18716 variable[1] = param0;
18717 variable[3] = variable[0];
18718 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/ = variable[1] /*n*/;
18719 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18720 if (UNTAG_Bool(variable[3])) { /*if*/
18721 variable[3] = variable[0];
18722 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18723 }
18724 return_label659: while(false);
18725 tracehead = trace.prev;
18726 return;
18727 }
18728 void parser_prod___ANewExpr___n_type__eq(val_t self, val_t param0) {
18729 struct trace_t trace = {NULL, NULL, 7753, LOCATE_parser_prod___ANewExpr___n_type__eq};
18730 val_t variable[4];
18731 void **closurevariable = NULL;
18732 trace.prev = tracehead; tracehead = &trace;
18733 trace.file = LOCATE_parser_prod;
18734 variable[0] = self;
18735 variable[1] = param0;
18736 variable[3] = variable[0];
18737 ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/ = variable[1] /*n*/;
18738 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18739 if (UNTAG_Bool(variable[3])) { /*if*/
18740 variable[3] = variable[0];
18741 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18742 }
18743 return_label660: while(false);
18744 tracehead = trace.prev;
18745 return;
18746 }
18747 void parser_prod___ANewExpr___n_id__eq(val_t self, val_t param0) {
18748 struct trace_t trace = {NULL, NULL, 7760, LOCATE_parser_prod___ANewExpr___n_id__eq};
18749 val_t variable[4];
18750 void **closurevariable = NULL;
18751 trace.prev = tracehead; tracehead = &trace;
18752 trace.file = LOCATE_parser_prod;
18753 variable[0] = self;
18754 variable[1] = param0;
18755 variable[3] = variable[0];
18756 ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/ = variable[1] /*n*/;
18757 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18758 if (UNTAG_Bool(variable[3])) { /*if*/
18759 variable[3] = variable[0];
18760 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
18761 }
18762 return_label661: while(false);
18763 tracehead = trace.prev;
18764 return;
18765 }
18766 void parser_prod___ANewExpr___replace_child(val_t self, val_t param0, val_t param1) {
18767 struct trace_t trace = {NULL, NULL, 7798, LOCATE_parser_prod___ANewExpr___replace_child};
18768 val_t variable[8];
18769 void **closurevariable = NULL;
18770 trace.prev = tracehead; tracehead = &trace;
18771 trace.file = LOCATE_parser_prod;
18772 variable[0] = self;
18773 variable[1] = param0;
18774 variable[2] = param1;
18775 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::==*/)))))));
18776 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, 7800); nit_exit(1);}
18777 variable[4] = variable[0];
18778 variable[4] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[4]) /*ANewExpr::_n_kwnew*/;
18779 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18780 if (UNTAG_Bool(variable[4])) { /*if*/
18781 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18782 if (UNTAG_Bool(variable[4])) { /*if*/
18783 variable[4] = variable[0];
18784 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18785 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
18786 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, 7804); nit_exit(1);}
18787 variable[4] = variable[0];
18788 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[4]) /*ANewExpr::_n_kwnew*/ = variable[2] /*new_child*/;
18789 } else { /*if*/
18790 variable[4] = variable[0];
18791 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[4]) /*ANewExpr::_n_kwnew*/ = NIT_NULL /*null*/;
18792 }
18793 goto return_label662;
18794 }
18795 variable[4] = variable[0];
18796 variable[4] = ATTR_parser_nodes___ANewExpr____n_type(variable[4]) /*ANewExpr::_n_type*/;
18797 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18798 if (UNTAG_Bool(variable[4])) { /*if*/
18799 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18800 if (UNTAG_Bool(variable[4])) { /*if*/
18801 variable[4] = variable[0];
18802 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18803 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
18804 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, 7814); nit_exit(1);}
18805 variable[4] = variable[0];
18806 ATTR_parser_nodes___ANewExpr____n_type(variable[4]) /*ANewExpr::_n_type*/ = variable[2] /*new_child*/;
18807 } else { /*if*/
18808 variable[4] = variable[0];
18809 ATTR_parser_nodes___ANewExpr____n_type(variable[4]) /*ANewExpr::_n_type*/ = NIT_NULL /*null*/;
18810 }
18811 goto return_label662;
18812 }
18813 variable[4] = variable[0];
18814 variable[4] = ATTR_parser_nodes___ANewExpr____n_id(variable[4]) /*ANewExpr::_n_id*/;
18815 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
18816 if (UNTAG_Bool(variable[4])) { /*if*/
18817 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
18818 if (UNTAG_Bool(variable[4])) { /*if*/
18819 variable[4] = variable[0];
18820 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
18821 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
18822 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, 7824); nit_exit(1);}
18823 variable[4] = variable[0];
18824 ATTR_parser_nodes___ANewExpr____n_id(variable[4]) /*ANewExpr::_n_id*/ = variable[2] /*new_child*/;
18825 } else { /*if*/
18826 variable[4] = variable[0];
18827 ATTR_parser_nodes___ANewExpr____n_id(variable[4]) /*ANewExpr::_n_id*/ = NIT_NULL /*null*/;
18828 }
18829 goto return_label662;
18830 }
18831 variable[4] = variable[0];
18832 variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[4]) /*ANewExpr::_n_args*/;
18833 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
18834 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
18835 variable[4] = variable[5];
18836 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
18837 while (true) { /*for*/
18838 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
18839 if (!UNTAG_Bool(variable[5])) break; /*for*/
18840 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
18841 variable[6] = variable[5];
18842 variable[7] = variable[0];
18843 variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[7]) /*ANewExpr::_n_args*/;
18844 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
18845 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::==*/)))));
18846 if (UNTAG_Bool(variable[7])) { /*if*/
18847 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::==*/)))))));
18848 if (UNTAG_Bool(variable[7])) { /*if*/
18849 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18850 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, 7834); nit_exit(1);}
18851 variable[7] = variable[0];
18852 variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[7]) /*ANewExpr::_n_args*/;
18853 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
18854 variable[7] = variable[0];
18855 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
18856 } else { /*if*/
18857 variable[7] = variable[0];
18858 variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[7]) /*ANewExpr::_n_args*/;
18859 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
18860 }
18861 goto return_label662;
18862 }
18863 continue_663: while(0);
18864 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
18865 }
18866 break_663: while(0);
18867 return_label662: while(false);
18868 tracehead = trace.prev;
18869 return;
18870 }
18871 void parser_prod___ANewExpr___visit_all(val_t self, val_t param0) {
18872 struct trace_t trace = {NULL, NULL, 7845, LOCATE_parser_prod___ANewExpr___visit_all};
18873 val_t variable[6];
18874 void **closurevariable = NULL;
18875 trace.prev = tracehead; tracehead = &trace;
18876 trace.file = LOCATE_parser_prod;
18877 variable[0] = self;
18878 variable[1] = param0;
18879 variable[3] = variable[0];
18880 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
18881 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18882 if (UNTAG_Bool(variable[3])) { /*if*/
18883 variable[3] = variable[0];
18884 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
18885 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18886 }
18887 variable[3] = variable[0];
18888 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
18889 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18890 if (UNTAG_Bool(variable[3])) { /*if*/
18891 variable[3] = variable[0];
18892 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
18893 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18894 }
18895 variable[3] = variable[0];
18896 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
18897 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18898 if (UNTAG_Bool(variable[3])) { /*if*/
18899 variable[3] = variable[0];
18900 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
18901 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18902 }
18903 variable[3] = variable[0];
18904 variable[3] = ATTR_parser_nodes___ANewExpr____n_args(variable[3]) /*ANewExpr::_n_args*/;
18905 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
18906 while (true) { /*for*/
18907 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
18908 if (!UNTAG_Bool(variable[4])) break; /*for*/
18909 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
18910 variable[5] = variable[4];
18911 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
18912 continue_665: while(0);
18913 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
18914 }
18915 break_665: while(0);
18916 return_label664: while(false);
18917 tracehead = trace.prev;
18918 return;
18919 }
18920 void parser_prod___ANewExpr___visit_all_reverse(val_t self, val_t param0) {
18921 struct trace_t trace = {NULL, NULL, 7861, LOCATE_parser_prod___ANewExpr___visit_all_reverse};
18922 val_t variable[5];
18923 void **closurevariable = NULL;
18924 trace.prev = tracehead; tracehead = &trace;
18925 trace.file = LOCATE_parser_prod;
18926 variable[0] = self;
18927 variable[1] = param0;
18928 variable[3] = variable[0];
18929 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
18930 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18931 if (UNTAG_Bool(variable[3])) { /*if*/
18932 variable[3] = variable[0];
18933 variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
18934 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18935 }
18936 variable[3] = variable[0];
18937 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
18938 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18939 if (UNTAG_Bool(variable[3])) { /*if*/
18940 variable[3] = variable[0];
18941 variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
18942 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18943 }
18944 variable[3] = variable[0];
18945 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
18946 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
18947 if (UNTAG_Bool(variable[3])) { /*if*/
18948 variable[3] = variable[0];
18949 variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
18950 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
18951 }
18952 variable[4] = variable[0];
18953 variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[4]) /*ANewExpr::_n_args*/;
18954 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
18955 variable[3] = variable[4];
18956 while (true) { /*while*/
18957 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
18958 if (!UNTAG_Bool(variable[4])) break; /* while*/
18959 variable[4] = variable[0];
18960 variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[4]) /*ANewExpr::_n_args*/;
18961 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
18962 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
18963 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
18964 variable[3] = variable[4] /*i=*/;
18965 continue_667: while(0);
18966 }
18967 break_667: while(0);
18968 return_label666: while(false);
18969 tracehead = trace.prev;
18970 return;
18971 }
18972 void parser_prod___ANewExpr___empty_init(val_t self, int* init_table) {
18973 struct trace_t trace = {NULL, NULL, 7768, LOCATE_parser_prod___ANewExpr___empty_init};
18974 val_t variable[2];
18975 void **closurevariable = NULL;
18976 trace.prev = tracehead; tracehead = &trace;
18977 trace.file = LOCATE_parser_prod;
18978 variable[0] = self;
18979 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i]) return;
18980 return_label668: while(false);
18981 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
18982 tracehead = trace.prev;
18983 return;
18984 }
18985 void parser_prod___ANewExpr___init_anewexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
18986 struct trace_t trace = {NULL, NULL, 7770, LOCATE_parser_prod___ANewExpr___init_anewexpr};
18987 val_t variable[10];
18988 void **closurevariable = NULL;
18989 trace.prev = tracehead; tracehead = &trace;
18990 trace.file = LOCATE_parser_prod;
18991 variable[0] = self;
18992 variable[1] = param0;
18993 variable[2] = param1;
18994 variable[3] = param2;
18995 variable[4] = param3;
18996 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i]) return;
18997 variable[6] = variable[0];
18998 CALL_parser_prod___ANewExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ANewExpr::empty_init*/;
18999 variable[6] = variable[0];
19000 ATTR_parser_nodes___ANewExpr____n_kwnew(variable[6]) /*ANewExpr::_n_kwnew*/ = variable[1] /*n_kwnew*/;
19001 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::==*/)))))));
19002 if (UNTAG_Bool(variable[6])) { /*if*/
19003 variable[6] = variable[0];
19004 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnew*/)( variable[1] /*n_kwnew*/, variable[6]) /*PNode::parent=*/;
19005 }
19006 variable[6] = variable[0];
19007 ATTR_parser_nodes___ANewExpr____n_type(variable[6]) /*ANewExpr::_n_type*/ = variable[2] /*n_type*/;
19008 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::==*/)))))));
19009 if (UNTAG_Bool(variable[6])) { /*if*/
19010 variable[6] = variable[0];
19011 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[6]) /*PNode::parent=*/;
19012 }
19013 variable[6] = variable[0];
19014 ATTR_parser_nodes___ANewExpr____n_id(variable[6]) /*ANewExpr::_n_id*/ = variable[3] /*n_id*/;
19015 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::==*/)))))));
19016 if (UNTAG_Bool(variable[6])) { /*if*/
19017 variable[6] = variable[0];
19018 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[6]) /*PNode::parent=*/;
19019 }
19020 variable[6] = variable[0];
19021 variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
19022 ATTR_parser_nodes___ANewExpr____n_args(variable[6]) /*ANewExpr::_n_args*/ = variable[7];
19023 variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*n_args*/)( variable[4] /*n_args*/) /*AbstractArray::iterator*/;
19024 while (true) { /*for*/
19025 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
19026 if (!UNTAG_Bool(variable[7])) break; /*for*/
19027 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
19028 variable[8] = variable[7];
19029 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19030 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, 7792); nit_exit(1);}
19031 variable[9] = variable[0];
19032 variable[9] = ATTR_parser_nodes___ANewExpr____n_args(variable[9]) /*ANewExpr::_n_args*/;
19033 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
19034 variable[9] = variable[0];
19035 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
19036 continue_670: while(0);
19037 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
19038 }
19039 break_670: while(0);
19040 return_label669: while(false);
19041 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
19042 tracehead = trace.prev;
19043 return;
19044 }
19045 void parser_prod___AAttrExpr___n_expr__eq(val_t self, val_t param0) {
19046 struct trace_t trace = {NULL, NULL, 7882, LOCATE_parser_prod___AAttrExpr___n_expr__eq};
19047 val_t variable[4];
19048 void **closurevariable = NULL;
19049 trace.prev = tracehead; tracehead = &trace;
19050 trace.file = LOCATE_parser_prod;
19051 variable[0] = self;
19052 variable[1] = param0;
19053 variable[3] = variable[0];
19054 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n*/;
19055 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19056 if (UNTAG_Bool(variable[3])) { /*if*/
19057 variable[3] = variable[0];
19058 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19059 }
19060 return_label671: while(false);
19061 tracehead = trace.prev;
19062 return;
19063 }
19064 void parser_prod___AAttrExpr___n_id__eq(val_t self, val_t param0) {
19065 struct trace_t trace = {NULL, NULL, 7889, LOCATE_parser_prod___AAttrExpr___n_id__eq};
19066 val_t variable[4];
19067 void **closurevariable = NULL;
19068 trace.prev = tracehead; tracehead = &trace;
19069 trace.file = LOCATE_parser_prod;
19070 variable[0] = self;
19071 variable[1] = param0;
19072 variable[3] = variable[0];
19073 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/ = variable[1] /*n*/;
19074 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19075 if (UNTAG_Bool(variable[3])) { /*if*/
19076 variable[3] = variable[0];
19077 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19078 }
19079 return_label672: while(false);
19080 tracehead = trace.prev;
19081 return;
19082 }
19083 void parser_prod___AAttrExpr___replace_child(val_t self, val_t param0, val_t param1) {
19084 struct trace_t trace = {NULL, NULL, 7915, LOCATE_parser_prod___AAttrExpr___replace_child};
19085 val_t variable[5];
19086 void **closurevariable = NULL;
19087 trace.prev = tracehead; tracehead = &trace;
19088 trace.file = LOCATE_parser_prod;
19089 variable[0] = self;
19090 variable[1] = param0;
19091 variable[2] = param1;
19092 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::==*/)))))));
19093 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, 7917); nit_exit(1);}
19094 variable[4] = variable[0];
19095 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/;
19096 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19097 if (UNTAG_Bool(variable[4])) { /*if*/
19098 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19099 if (UNTAG_Bool(variable[4])) { /*if*/
19100 variable[4] = variable[0];
19101 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19102 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19103 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, 7921); nit_exit(1);}
19104 variable[4] = variable[0];
19105 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*new_child*/;
19106 } else { /*if*/
19107 variable[4] = variable[0];
19108 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ = NIT_NULL /*null*/;
19109 }
19110 goto return_label673;
19111 }
19112 variable[4] = variable[0];
19113 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/;
19114 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19115 if (UNTAG_Bool(variable[4])) { /*if*/
19116 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19117 if (UNTAG_Bool(variable[4])) { /*if*/
19118 variable[4] = variable[0];
19119 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19120 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
19121 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, 7931); nit_exit(1);}
19122 variable[4] = variable[0];
19123 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ = variable[2] /*new_child*/;
19124 } else { /*if*/
19125 variable[4] = variable[0];
19126 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ = NIT_NULL /*null*/;
19127 }
19128 goto return_label673;
19129 }
19130 return_label673: while(false);
19131 tracehead = trace.prev;
19132 return;
19133 }
19134 void parser_prod___AAttrExpr___visit_all(val_t self, val_t param0) {
19135 struct trace_t trace = {NULL, NULL, 7940, LOCATE_parser_prod___AAttrExpr___visit_all};
19136 val_t variable[4];
19137 void **closurevariable = NULL;
19138 trace.prev = tracehead; tracehead = &trace;
19139 trace.file = LOCATE_parser_prod;
19140 variable[0] = self;
19141 variable[1] = param0;
19142 variable[3] = variable[0];
19143 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19144 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19145 if (UNTAG_Bool(variable[3])) { /*if*/
19146 variable[3] = variable[0];
19147 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19148 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19149 }
19150 variable[3] = variable[0];
19151 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19152 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19153 if (UNTAG_Bool(variable[3])) { /*if*/
19154 variable[3] = variable[0];
19155 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19156 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19157 }
19158 return_label674: while(false);
19159 tracehead = trace.prev;
19160 return;
19161 }
19162 void parser_prod___AAttrExpr___visit_all_reverse(val_t self, val_t param0) {
19163 struct trace_t trace = {NULL, NULL, 7950, LOCATE_parser_prod___AAttrExpr___visit_all_reverse};
19164 val_t variable[4];
19165 void **closurevariable = NULL;
19166 trace.prev = tracehead; tracehead = &trace;
19167 trace.file = LOCATE_parser_prod;
19168 variable[0] = self;
19169 variable[1] = param0;
19170 variable[3] = variable[0];
19171 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19172 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19173 if (UNTAG_Bool(variable[3])) { /*if*/
19174 variable[3] = variable[0];
19175 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19176 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19177 }
19178 variable[3] = variable[0];
19179 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19180 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19181 if (UNTAG_Bool(variable[3])) { /*if*/
19182 variable[3] = variable[0];
19183 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19184 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19185 }
19186 return_label675: while(false);
19187 tracehead = trace.prev;
19188 return;
19189 }
19190 void parser_prod___AAttrExpr___empty_init(val_t self, int* init_table) {
19191 struct trace_t trace = {NULL, NULL, 7897, LOCATE_parser_prod___AAttrExpr___empty_init};
19192 val_t variable[2];
19193 void **closurevariable = NULL;
19194 trace.prev = tracehead; tracehead = &trace;
19195 trace.file = LOCATE_parser_prod;
19196 variable[0] = self;
19197 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
19198 return_label676: while(false);
19199 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
19200 tracehead = trace.prev;
19201 return;
19202 }
19203 void parser_prod___AAttrExpr___init_aattrexpr(val_t self, val_t param0, val_t param1, int* init_table) {
19204 struct trace_t trace = {NULL, NULL, 7899, LOCATE_parser_prod___AAttrExpr___init_aattrexpr};
19205 val_t variable[5];
19206 void **closurevariable = NULL;
19207 trace.prev = tracehead; tracehead = &trace;
19208 trace.file = LOCATE_parser_prod;
19209 variable[0] = self;
19210 variable[1] = param0;
19211 variable[2] = param1;
19212 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
19213 variable[4] = variable[0];
19214 CALL_parser_prod___AAttrExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAttrExpr::empty_init*/;
19215 variable[4] = variable[0];
19216 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n_expr*/;
19217 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::==*/)))))));
19218 if (UNTAG_Bool(variable[4])) { /*if*/
19219 variable[4] = variable[0];
19220 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
19221 }
19222 variable[4] = variable[0];
19223 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ = variable[2] /*n_id*/;
19224 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::==*/)))))));
19225 if (UNTAG_Bool(variable[4])) { /*if*/
19226 variable[4] = variable[0];
19227 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[4]) /*PNode::parent=*/;
19228 }
19229 return_label677: while(false);
19230 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
19231 tracehead = trace.prev;
19232 return;
19233 }
19234 void parser_prod___AAttrAssignExpr___n_expr__eq(val_t self, val_t param0) {
19235 struct trace_t trace = {NULL, NULL, 7961, LOCATE_parser_prod___AAttrAssignExpr___n_expr__eq};
19236 val_t variable[4];
19237 void **closurevariable = NULL;
19238 trace.prev = tracehead; tracehead = &trace;
19239 trace.file = LOCATE_parser_prod;
19240 variable[0] = self;
19241 variable[1] = param0;
19242 variable[3] = variable[0];
19243 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n*/;
19244 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19245 if (UNTAG_Bool(variable[3])) { /*if*/
19246 variable[3] = variable[0];
19247 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19248 }
19249 return_label678: while(false);
19250 tracehead = trace.prev;
19251 return;
19252 }
19253 void parser_prod___AAttrAssignExpr___n_id__eq(val_t self, val_t param0) {
19254 struct trace_t trace = {NULL, NULL, 7968, LOCATE_parser_prod___AAttrAssignExpr___n_id__eq};
19255 val_t variable[4];
19256 void **closurevariable = NULL;
19257 trace.prev = tracehead; tracehead = &trace;
19258 trace.file = LOCATE_parser_prod;
19259 variable[0] = self;
19260 variable[1] = param0;
19261 variable[3] = variable[0];
19262 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/ = variable[1] /*n*/;
19263 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19264 if (UNTAG_Bool(variable[3])) { /*if*/
19265 variable[3] = variable[0];
19266 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19267 }
19268 return_label679: while(false);
19269 tracehead = trace.prev;
19270 return;
19271 }
19272 void parser_prod___AAttrAssignExpr___n_assign__eq(val_t self, val_t param0) {
19273 struct trace_t trace = {NULL, NULL, 7975, LOCATE_parser_prod___AAttrAssignExpr___n_assign__eq};
19274 val_t variable[4];
19275 void **closurevariable = NULL;
19276 trace.prev = tracehead; tracehead = &trace;
19277 trace.file = LOCATE_parser_prod;
19278 variable[0] = self;
19279 variable[1] = param0;
19280 variable[3] = variable[0];
19281 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
19282 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19283 if (UNTAG_Bool(variable[3])) { /*if*/
19284 variable[3] = variable[0];
19285 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19286 }
19287 return_label680: while(false);
19288 tracehead = trace.prev;
19289 return;
19290 }
19291 void parser_prod___AAttrAssignExpr___n_value__eq(val_t self, val_t param0) {
19292 struct trace_t trace = {NULL, NULL, 7982, LOCATE_parser_prod___AAttrAssignExpr___n_value__eq};
19293 val_t variable[4];
19294 void **closurevariable = NULL;
19295 trace.prev = tracehead; tracehead = &trace;
19296 trace.file = LOCATE_parser_prod;
19297 variable[0] = self;
19298 variable[1] = param0;
19299 variable[3] = variable[0];
19300 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
19301 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19302 if (UNTAG_Bool(variable[3])) { /*if*/
19303 variable[3] = variable[0];
19304 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19305 }
19306 return_label681: while(false);
19307 tracehead = trace.prev;
19308 return;
19309 }
19310 void parser_prod___AAttrAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
19311 struct trace_t trace = {NULL, NULL, 8018, LOCATE_parser_prod___AAttrAssignExpr___replace_child};
19312 val_t variable[5];
19313 void **closurevariable = NULL;
19314 trace.prev = tracehead; tracehead = &trace;
19315 trace.file = LOCATE_parser_prod;
19316 variable[0] = self;
19317 variable[1] = param0;
19318 variable[2] = param1;
19319 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::==*/)))))));
19320 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, 8020); nit_exit(1);}
19321 variable[4] = variable[0];
19322 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/;
19323 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19324 if (UNTAG_Bool(variable[4])) { /*if*/
19325 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19326 if (UNTAG_Bool(variable[4])) { /*if*/
19327 variable[4] = variable[0];
19328 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19329 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19330 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, 8024); nit_exit(1);}
19331 variable[4] = variable[0];
19332 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*new_child*/;
19333 } else { /*if*/
19334 variable[4] = variable[0];
19335 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ = NIT_NULL /*null*/;
19336 }
19337 goto return_label682;
19338 }
19339 variable[4] = variable[0];
19340 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/;
19341 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19342 if (UNTAG_Bool(variable[4])) { /*if*/
19343 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19344 if (UNTAG_Bool(variable[4])) { /*if*/
19345 variable[4] = variable[0];
19346 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19347 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
19348 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, 8034); nit_exit(1);}
19349 variable[4] = variable[0];
19350 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ = variable[2] /*new_child*/;
19351 } else { /*if*/
19352 variable[4] = variable[0];
19353 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ = NIT_NULL /*null*/;
19354 }
19355 goto return_label682;
19356 }
19357 variable[4] = variable[0];
19358 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
19359 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19360 if (UNTAG_Bool(variable[4])) { /*if*/
19361 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19362 if (UNTAG_Bool(variable[4])) { /*if*/
19363 variable[4] = variable[0];
19364 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19365 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
19366 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, 8044); nit_exit(1);}
19367 variable[4] = variable[0];
19368 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
19369 } else { /*if*/
19370 variable[4] = variable[0];
19371 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
19372 }
19373 goto return_label682;
19374 }
19375 variable[4] = variable[0];
19376 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
19377 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19378 if (UNTAG_Bool(variable[4])) { /*if*/
19379 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19380 if (UNTAG_Bool(variable[4])) { /*if*/
19381 variable[4] = variable[0];
19382 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19383 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19384 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, 8054); nit_exit(1);}
19385 variable[4] = variable[0];
19386 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
19387 } else { /*if*/
19388 variable[4] = variable[0];
19389 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
19390 }
19391 goto return_label682;
19392 }
19393 return_label682: while(false);
19394 tracehead = trace.prev;
19395 return;
19396 }
19397 void parser_prod___AAttrAssignExpr___visit_all(val_t self, val_t param0) {
19398 struct trace_t trace = {NULL, NULL, 8063, LOCATE_parser_prod___AAttrAssignExpr___visit_all};
19399 val_t variable[4];
19400 void **closurevariable = NULL;
19401 trace.prev = tracehead; tracehead = &trace;
19402 trace.file = LOCATE_parser_prod;
19403 variable[0] = self;
19404 variable[1] = param0;
19405 variable[3] = variable[0];
19406 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19407 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19408 if (UNTAG_Bool(variable[3])) { /*if*/
19409 variable[3] = variable[0];
19410 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19411 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19412 }
19413 variable[3] = variable[0];
19414 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19415 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19416 if (UNTAG_Bool(variable[3])) { /*if*/
19417 variable[3] = variable[0];
19418 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19419 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19420 }
19421 variable[3] = variable[0];
19422 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
19423 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19424 if (UNTAG_Bool(variable[3])) { /*if*/
19425 variable[3] = variable[0];
19426 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
19427 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19428 }
19429 variable[3] = variable[0];
19430 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
19431 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19432 if (UNTAG_Bool(variable[3])) { /*if*/
19433 variable[3] = variable[0];
19434 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
19435 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19436 }
19437 return_label683: while(false);
19438 tracehead = trace.prev;
19439 return;
19440 }
19441 void parser_prod___AAttrAssignExpr___visit_all_reverse(val_t self, val_t param0) {
19442 struct trace_t trace = {NULL, NULL, 8079, LOCATE_parser_prod___AAttrAssignExpr___visit_all_reverse};
19443 val_t variable[4];
19444 void **closurevariable = NULL;
19445 trace.prev = tracehead; tracehead = &trace;
19446 trace.file = LOCATE_parser_prod;
19447 variable[0] = self;
19448 variable[1] = param0;
19449 variable[3] = variable[0];
19450 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19451 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19452 if (UNTAG_Bool(variable[3])) { /*if*/
19453 variable[3] = variable[0];
19454 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19455 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19456 }
19457 variable[3] = variable[0];
19458 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19459 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19460 if (UNTAG_Bool(variable[3])) { /*if*/
19461 variable[3] = variable[0];
19462 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19463 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19464 }
19465 variable[3] = variable[0];
19466 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
19467 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19468 if (UNTAG_Bool(variable[3])) { /*if*/
19469 variable[3] = variable[0];
19470 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
19471 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19472 }
19473 variable[3] = variable[0];
19474 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
19475 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19476 if (UNTAG_Bool(variable[3])) { /*if*/
19477 variable[3] = variable[0];
19478 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
19479 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19480 }
19481 return_label684: while(false);
19482 tracehead = trace.prev;
19483 return;
19484 }
19485 void parser_prod___AAttrAssignExpr___empty_init(val_t self, int* init_table) {
19486 struct trace_t trace = {NULL, NULL, 7990, LOCATE_parser_prod___AAttrAssignExpr___empty_init};
19487 val_t variable[2];
19488 void **closurevariable = NULL;
19489 trace.prev = tracehead; tracehead = &trace;
19490 trace.file = LOCATE_parser_prod;
19491 variable[0] = self;
19492 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
19493 return_label685: while(false);
19494 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
19495 tracehead = trace.prev;
19496 return;
19497 }
19498 void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
19499 struct trace_t trace = {NULL, NULL, 7992, LOCATE_parser_prod___AAttrAssignExpr___init_aattrassignexpr};
19500 val_t variable[7];
19501 void **closurevariable = NULL;
19502 trace.prev = tracehead; tracehead = &trace;
19503 trace.file = LOCATE_parser_prod;
19504 variable[0] = self;
19505 variable[1] = param0;
19506 variable[2] = param1;
19507 variable[3] = param2;
19508 variable[4] = param3;
19509 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
19510 variable[6] = variable[0];
19511 CALL_parser_prod___AAttrAssignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AAttrAssignExpr::empty_init*/;
19512 variable[6] = variable[0];
19513 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[6]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n_expr*/;
19514 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::==*/)))))));
19515 if (UNTAG_Bool(variable[6])) { /*if*/
19516 variable[6] = variable[0];
19517 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
19518 }
19519 variable[6] = variable[0];
19520 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[6]) /*AAttrFormExpr::_n_id*/ = variable[2] /*n_id*/;
19521 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::==*/)))))));
19522 if (UNTAG_Bool(variable[6])) { /*if*/
19523 variable[6] = variable[0];
19524 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
19525 }
19526 variable[6] = variable[0];
19527 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[6]) /*AAssignFormExpr::_n_assign*/ = variable[3] /*n_assign*/;
19528 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::==*/)))))));
19529 if (UNTAG_Bool(variable[6])) { /*if*/
19530 variable[6] = variable[0];
19531 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[6]) /*PNode::parent=*/;
19532 }
19533 variable[6] = variable[0];
19534 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[6]) /*AAssignFormExpr::_n_value*/ = variable[4] /*n_value*/;
19535 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::==*/)))))));
19536 if (UNTAG_Bool(variable[6])) { /*if*/
19537 variable[6] = variable[0];
19538 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
19539 }
19540 return_label686: while(false);
19541 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
19542 tracehead = trace.prev;
19543 return;
19544 }
19545 void parser_prod___AAttrReassignExpr___n_expr__eq(val_t self, val_t param0) {
19546 struct trace_t trace = {NULL, NULL, 8096, LOCATE_parser_prod___AAttrReassignExpr___n_expr__eq};
19547 val_t variable[4];
19548 void **closurevariable = NULL;
19549 trace.prev = tracehead; tracehead = &trace;
19550 trace.file = LOCATE_parser_prod;
19551 variable[0] = self;
19552 variable[1] = param0;
19553 variable[3] = variable[0];
19554 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n*/;
19555 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19556 if (UNTAG_Bool(variable[3])) { /*if*/
19557 variable[3] = variable[0];
19558 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19559 }
19560 return_label687: while(false);
19561 tracehead = trace.prev;
19562 return;
19563 }
19564 void parser_prod___AAttrReassignExpr___n_id__eq(val_t self, val_t param0) {
19565 struct trace_t trace = {NULL, NULL, 8103, LOCATE_parser_prod___AAttrReassignExpr___n_id__eq};
19566 val_t variable[4];
19567 void **closurevariable = NULL;
19568 trace.prev = tracehead; tracehead = &trace;
19569 trace.file = LOCATE_parser_prod;
19570 variable[0] = self;
19571 variable[1] = param0;
19572 variable[3] = variable[0];
19573 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/ = variable[1] /*n*/;
19574 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19575 if (UNTAG_Bool(variable[3])) { /*if*/
19576 variable[3] = variable[0];
19577 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19578 }
19579 return_label688: while(false);
19580 tracehead = trace.prev;
19581 return;
19582 }
19583 void parser_prod___AAttrReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
19584 struct trace_t trace = {NULL, NULL, 8110, LOCATE_parser_prod___AAttrReassignExpr___n_assign_op__eq};
19585 val_t variable[4];
19586 void **closurevariable = NULL;
19587 trace.prev = tracehead; tracehead = &trace;
19588 trace.file = LOCATE_parser_prod;
19589 variable[0] = self;
19590 variable[1] = param0;
19591 variable[3] = variable[0];
19592 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
19593 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19594 if (UNTAG_Bool(variable[3])) { /*if*/
19595 variable[3] = variable[0];
19596 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19597 }
19598 return_label689: while(false);
19599 tracehead = trace.prev;
19600 return;
19601 }
19602 void parser_prod___AAttrReassignExpr___n_value__eq(val_t self, val_t param0) {
19603 struct trace_t trace = {NULL, NULL, 8117, LOCATE_parser_prod___AAttrReassignExpr___n_value__eq};
19604 val_t variable[4];
19605 void **closurevariable = NULL;
19606 trace.prev = tracehead; tracehead = &trace;
19607 trace.file = LOCATE_parser_prod;
19608 variable[0] = self;
19609 variable[1] = param0;
19610 variable[3] = variable[0];
19611 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
19612 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19613 if (UNTAG_Bool(variable[3])) { /*if*/
19614 variable[3] = variable[0];
19615 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19616 }
19617 return_label690: while(false);
19618 tracehead = trace.prev;
19619 return;
19620 }
19621 void parser_prod___AAttrReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
19622 struct trace_t trace = {NULL, NULL, 8153, LOCATE_parser_prod___AAttrReassignExpr___replace_child};
19623 val_t variable[5];
19624 void **closurevariable = NULL;
19625 trace.prev = tracehead; tracehead = &trace;
19626 trace.file = LOCATE_parser_prod;
19627 variable[0] = self;
19628 variable[1] = param0;
19629 variable[2] = param1;
19630 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::==*/)))))));
19631 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, 8155); nit_exit(1);}
19632 variable[4] = variable[0];
19633 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/;
19634 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19635 if (UNTAG_Bool(variable[4])) { /*if*/
19636 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19637 if (UNTAG_Bool(variable[4])) { /*if*/
19638 variable[4] = variable[0];
19639 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19640 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19641 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, 8159); nit_exit(1);}
19642 variable[4] = variable[0];
19643 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ = variable[2] /*new_child*/;
19644 } else { /*if*/
19645 variable[4] = variable[0];
19646 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ = NIT_NULL /*null*/;
19647 }
19648 goto return_label691;
19649 }
19650 variable[4] = variable[0];
19651 variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/;
19652 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19653 if (UNTAG_Bool(variable[4])) { /*if*/
19654 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19655 if (UNTAG_Bool(variable[4])) { /*if*/
19656 variable[4] = variable[0];
19657 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19658 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
19659 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, 8169); nit_exit(1);}
19660 variable[4] = variable[0];
19661 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ = variable[2] /*new_child*/;
19662 } else { /*if*/
19663 variable[4] = variable[0];
19664 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ = NIT_NULL /*null*/;
19665 }
19666 goto return_label691;
19667 }
19668 variable[4] = variable[0];
19669 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
19670 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19671 if (UNTAG_Bool(variable[4])) { /*if*/
19672 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19673 if (UNTAG_Bool(variable[4])) { /*if*/
19674 variable[4] = variable[0];
19675 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19676 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
19677 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, 8179); nit_exit(1);}
19678 variable[4] = variable[0];
19679 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
19680 } else { /*if*/
19681 variable[4] = variable[0];
19682 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
19683 }
19684 goto return_label691;
19685 }
19686 variable[4] = variable[0];
19687 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
19688 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19689 if (UNTAG_Bool(variable[4])) { /*if*/
19690 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19691 if (UNTAG_Bool(variable[4])) { /*if*/
19692 variable[4] = variable[0];
19693 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19694 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19695 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, 8189); nit_exit(1);}
19696 variable[4] = variable[0];
19697 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
19698 } else { /*if*/
19699 variable[4] = variable[0];
19700 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
19701 }
19702 goto return_label691;
19703 }
19704 return_label691: while(false);
19705 tracehead = trace.prev;
19706 return;
19707 }
19708 void parser_prod___AAttrReassignExpr___visit_all(val_t self, val_t param0) {
19709 struct trace_t trace = {NULL, NULL, 8198, LOCATE_parser_prod___AAttrReassignExpr___visit_all};
19710 val_t variable[4];
19711 void **closurevariable = NULL;
19712 trace.prev = tracehead; tracehead = &trace;
19713 trace.file = LOCATE_parser_prod;
19714 variable[0] = self;
19715 variable[1] = param0;
19716 variable[3] = variable[0];
19717 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19718 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19719 if (UNTAG_Bool(variable[3])) { /*if*/
19720 variable[3] = variable[0];
19721 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19722 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19723 }
19724 variable[3] = variable[0];
19725 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19726 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19727 if (UNTAG_Bool(variable[3])) { /*if*/
19728 variable[3] = variable[0];
19729 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19730 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19731 }
19732 variable[3] = variable[0];
19733 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
19734 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19735 if (UNTAG_Bool(variable[3])) { /*if*/
19736 variable[3] = variable[0];
19737 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
19738 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19739 }
19740 variable[3] = variable[0];
19741 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
19742 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19743 if (UNTAG_Bool(variable[3])) { /*if*/
19744 variable[3] = variable[0];
19745 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
19746 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19747 }
19748 return_label692: while(false);
19749 tracehead = trace.prev;
19750 return;
19751 }
19752 void parser_prod___AAttrReassignExpr___visit_all_reverse(val_t self, val_t param0) {
19753 struct trace_t trace = {NULL, NULL, 8214, LOCATE_parser_prod___AAttrReassignExpr___visit_all_reverse};
19754 val_t variable[4];
19755 void **closurevariable = NULL;
19756 trace.prev = tracehead; tracehead = &trace;
19757 trace.file = LOCATE_parser_prod;
19758 variable[0] = self;
19759 variable[1] = param0;
19760 variable[3] = variable[0];
19761 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19762 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19763 if (UNTAG_Bool(variable[3])) { /*if*/
19764 variable[3] = variable[0];
19765 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
19766 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19767 }
19768 variable[3] = variable[0];
19769 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19770 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19771 if (UNTAG_Bool(variable[3])) { /*if*/
19772 variable[3] = variable[0];
19773 variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
19774 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19775 }
19776 variable[3] = variable[0];
19777 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
19778 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19779 if (UNTAG_Bool(variable[3])) { /*if*/
19780 variable[3] = variable[0];
19781 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
19782 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19783 }
19784 variable[3] = variable[0];
19785 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
19786 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
19787 if (UNTAG_Bool(variable[3])) { /*if*/
19788 variable[3] = variable[0];
19789 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
19790 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
19791 }
19792 return_label693: while(false);
19793 tracehead = trace.prev;
19794 return;
19795 }
19796 void parser_prod___AAttrReassignExpr___empty_init(val_t self, int* init_table) {
19797 struct trace_t trace = {NULL, NULL, 8125, LOCATE_parser_prod___AAttrReassignExpr___empty_init};
19798 val_t variable[2];
19799 void **closurevariable = NULL;
19800 trace.prev = tracehead; tracehead = &trace;
19801 trace.file = LOCATE_parser_prod;
19802 variable[0] = self;
19803 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
19804 return_label694: while(false);
19805 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
19806 tracehead = trace.prev;
19807 return;
19808 }
19809 void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
19810 struct trace_t trace = {NULL, NULL, 8127, LOCATE_parser_prod___AAttrReassignExpr___init_aattrreassignexpr};
19811 val_t variable[7];
19812 void **closurevariable = NULL;
19813 trace.prev = tracehead; tracehead = &trace;
19814 trace.file = LOCATE_parser_prod;
19815 variable[0] = self;
19816 variable[1] = param0;
19817 variable[2] = param1;
19818 variable[3] = param2;
19819 variable[4] = param3;
19820 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
19821 variable[6] = variable[0];
19822 CALL_parser_prod___AAttrReassignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AAttrReassignExpr::empty_init*/;
19823 variable[6] = variable[0];
19824 ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[6]) /*AAttrFormExpr::_n_expr*/ = variable[1] /*n_expr*/;
19825 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::==*/)))))));
19826 if (UNTAG_Bool(variable[6])) { /*if*/
19827 variable[6] = variable[0];
19828 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
19829 }
19830 variable[6] = variable[0];
19831 ATTR_parser_nodes___AAttrFormExpr____n_id(variable[6]) /*AAttrFormExpr::_n_id*/ = variable[2] /*n_id*/;
19832 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::==*/)))))));
19833 if (UNTAG_Bool(variable[6])) { /*if*/
19834 variable[6] = variable[0];
19835 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
19836 }
19837 variable[6] = variable[0];
19838 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[6]) /*AReassignFormExpr::_n_assign_op*/ = variable[3] /*n_assign_op*/;
19839 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::==*/)))))));
19840 if (UNTAG_Bool(variable[6])) { /*if*/
19841 variable[6] = variable[0];
19842 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, variable[6]) /*PNode::parent=*/;
19843 }
19844 variable[6] = variable[0];
19845 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[6]) /*AReassignFormExpr::_n_value*/ = variable[4] /*n_value*/;
19846 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::==*/)))))));
19847 if (UNTAG_Bool(variable[6])) { /*if*/
19848 variable[6] = variable[0];
19849 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
19850 }
19851 return_label695: while(false);
19852 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
19853 tracehead = trace.prev;
19854 return;
19855 }
19856 void parser_prod___ACallExpr___n_expr__eq(val_t self, val_t param0) {
19857 struct trace_t trace = {NULL, NULL, 8231, LOCATE_parser_prod___ACallExpr___n_expr__eq};
19858 val_t variable[4];
19859 void **closurevariable = NULL;
19860 trace.prev = tracehead; tracehead = &trace;
19861 trace.file = LOCATE_parser_prod;
19862 variable[0] = self;
19863 variable[1] = param0;
19864 variable[3] = variable[0];
19865 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
19866 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19867 if (UNTAG_Bool(variable[3])) { /*if*/
19868 variable[3] = variable[0];
19869 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19870 }
19871 return_label696: while(false);
19872 tracehead = trace.prev;
19873 return;
19874 }
19875 void parser_prod___ACallExpr___n_id__eq(val_t self, val_t param0) {
19876 struct trace_t trace = {NULL, NULL, 8238, LOCATE_parser_prod___ACallExpr___n_id__eq};
19877 val_t variable[4];
19878 void **closurevariable = NULL;
19879 trace.prev = tracehead; tracehead = &trace;
19880 trace.file = LOCATE_parser_prod;
19881 variable[0] = self;
19882 variable[1] = param0;
19883 variable[3] = variable[0];
19884 ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/ = variable[1] /*n*/;
19885 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19886 if (UNTAG_Bool(variable[3])) { /*if*/
19887 variable[3] = variable[0];
19888 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
19889 }
19890 return_label697: while(false);
19891 tracehead = trace.prev;
19892 return;
19893 }
19894 void parser_prod___ACallExpr___replace_child(val_t self, val_t param0, val_t param1) {
19895 struct trace_t trace = {NULL, NULL, 8278, LOCATE_parser_prod___ACallExpr___replace_child};
19896 val_t variable[8];
19897 void **closurevariable = NULL;
19898 trace.prev = tracehead; tracehead = &trace;
19899 trace.file = LOCATE_parser_prod;
19900 variable[0] = self;
19901 variable[1] = param0;
19902 variable[2] = param1;
19903 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::==*/)))))));
19904 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, 8280); nit_exit(1);}
19905 variable[4] = variable[0];
19906 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
19907 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19908 if (UNTAG_Bool(variable[4])) { /*if*/
19909 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19910 if (UNTAG_Bool(variable[4])) { /*if*/
19911 variable[4] = variable[0];
19912 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19913 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19914 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, 8284); nit_exit(1);}
19915 variable[4] = variable[0];
19916 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
19917 } else { /*if*/
19918 variable[4] = variable[0];
19919 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
19920 }
19921 goto return_label698;
19922 }
19923 variable[4] = variable[0];
19924 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/;
19925 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
19926 if (UNTAG_Bool(variable[4])) { /*if*/
19927 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
19928 if (UNTAG_Bool(variable[4])) { /*if*/
19929 variable[4] = variable[0];
19930 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
19931 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
19932 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, 8294); nit_exit(1);}
19933 variable[4] = variable[0];
19934 ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/ = variable[2] /*new_child*/;
19935 } else { /*if*/
19936 variable[4] = variable[0];
19937 ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/ = NIT_NULL /*null*/;
19938 }
19939 goto return_label698;
19940 }
19941 variable[4] = variable[0];
19942 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
19943 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
19944 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
19945 variable[4] = variable[5];
19946 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
19947 while (true) { /*for*/
19948 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
19949 if (!UNTAG_Bool(variable[5])) break; /*for*/
19950 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
19951 variable[6] = variable[5];
19952 variable[7] = variable[0];
19953 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
19954 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
19955 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::==*/)))));
19956 if (UNTAG_Bool(variable[7])) { /*if*/
19957 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::==*/)))))));
19958 if (UNTAG_Bool(variable[7])) { /*if*/
19959 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19960 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, 8304); nit_exit(1);}
19961 variable[7] = variable[0];
19962 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
19963 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
19964 variable[7] = variable[0];
19965 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
19966 } else { /*if*/
19967 variable[7] = variable[0];
19968 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
19969 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
19970 }
19971 goto return_label698;
19972 }
19973 continue_699: while(0);
19974 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
19975 }
19976 break_699: while(0);
19977 variable[4] = variable[0];
19978 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
19979 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
19980 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
19981 variable[4] = variable[5];
19982 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
19983 while (true) { /*for*/
19984 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
19985 if (!UNTAG_Bool(variable[5])) break; /*for*/
19986 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
19987 variable[6] = variable[5];
19988 variable[7] = variable[0];
19989 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
19990 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
19991 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::==*/)))));
19992 if (UNTAG_Bool(variable[7])) { /*if*/
19993 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::==*/)))))));
19994 if (UNTAG_Bool(variable[7])) { /*if*/
19995 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
19996 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, 8316); nit_exit(1);}
19997 variable[7] = variable[0];
19998 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
19999 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
20000 variable[7] = variable[0];
20001 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
20002 } else { /*if*/
20003 variable[7] = variable[0];
20004 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
20005 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
20006 }
20007 goto return_label698;
20008 }
20009 continue_700: while(0);
20010 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
20011 }
20012 break_700: while(0);
20013 return_label698: while(false);
20014 tracehead = trace.prev;
20015 return;
20016 }
20017 void parser_prod___ACallExpr___visit_all(val_t self, val_t param0) {
20018 struct trace_t trace = {NULL, NULL, 8327, LOCATE_parser_prod___ACallExpr___visit_all};
20019 val_t variable[6];
20020 void **closurevariable = NULL;
20021 trace.prev = tracehead; tracehead = &trace;
20022 trace.file = LOCATE_parser_prod;
20023 variable[0] = self;
20024 variable[1] = param0;
20025 variable[3] = variable[0];
20026 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20027 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20028 if (UNTAG_Bool(variable[3])) { /*if*/
20029 variable[3] = variable[0];
20030 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20031 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20032 }
20033 variable[3] = variable[0];
20034 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20035 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20036 if (UNTAG_Bool(variable[3])) { /*if*/
20037 variable[3] = variable[0];
20038 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20039 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20040 }
20041 variable[3] = variable[0];
20042 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[3]) /*ACallFormExpr::_n_args*/;
20043 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
20044 while (true) { /*for*/
20045 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
20046 if (!UNTAG_Bool(variable[4])) break; /*for*/
20047 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
20048 variable[5] = variable[4];
20049 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
20050 continue_702: while(0);
20051 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
20052 }
20053 break_702: while(0);
20054 variable[3] = variable[0];
20055 variable[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[3]) /*ASendExpr::_n_closure_defs*/;
20056 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
20057 while (true) { /*for*/
20058 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
20059 if (!UNTAG_Bool(variable[4])) break; /*for*/
20060 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
20061 variable[5] = variable[4];
20062 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
20063 continue_703: while(0);
20064 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
20065 }
20066 break_703: while(0);
20067 return_label701: while(false);
20068 tracehead = trace.prev;
20069 return;
20070 }
20071 void parser_prod___ACallExpr___visit_all_reverse(val_t self, val_t param0) {
20072 struct trace_t trace = {NULL, NULL, 8343, LOCATE_parser_prod___ACallExpr___visit_all_reverse};
20073 val_t variable[5];
20074 void **closurevariable = NULL;
20075 trace.prev = tracehead; tracehead = &trace;
20076 trace.file = LOCATE_parser_prod;
20077 variable[0] = self;
20078 variable[1] = param0;
20079 variable[3] = variable[0];
20080 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20081 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20082 if (UNTAG_Bool(variable[3])) { /*if*/
20083 variable[3] = variable[0];
20084 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20085 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20086 }
20087 variable[3] = variable[0];
20088 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20089 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20090 if (UNTAG_Bool(variable[3])) { /*if*/
20091 variable[3] = variable[0];
20092 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20093 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20094 }
20095 variable[4] = variable[0];
20096 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20097 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
20098 variable[3] = variable[4];
20099 while (true) { /*while*/
20100 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
20101 if (!UNTAG_Bool(variable[4])) break; /* while*/
20102 variable[4] = variable[0];
20103 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20104 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
20105 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
20106 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
20107 variable[3] = variable[4] /*i=*/;
20108 continue_705: while(0);
20109 }
20110 break_705: while(0);
20111 variable[4] = variable[0];
20112 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
20113 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
20114 variable[3] = variable[4];
20115 while (true) { /*while*/
20116 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
20117 if (!UNTAG_Bool(variable[4])) break; /* while*/
20118 variable[4] = variable[0];
20119 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
20120 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
20121 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
20122 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
20123 variable[3] = variable[4] /*i=*/;
20124 continue_706: while(0);
20125 }
20126 break_706: while(0);
20127 return_label704: while(false);
20128 tracehead = trace.prev;
20129 return;
20130 }
20131 void parser_prod___ACallExpr___empty_init(val_t self, int* init_table) {
20132 struct trace_t trace = {NULL, NULL, 8246, LOCATE_parser_prod___ACallExpr___empty_init};
20133 val_t variable[2];
20134 void **closurevariable = NULL;
20135 trace.prev = tracehead; tracehead = &trace;
20136 trace.file = LOCATE_parser_prod;
20137 variable[0] = self;
20138 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i]) return;
20139 return_label707: while(false);
20140 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
20141 tracehead = trace.prev;
20142 return;
20143 }
20144 void parser_prod___ACallExpr___init_acallexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
20145 struct trace_t trace = {NULL, NULL, 8248, LOCATE_parser_prod___ACallExpr___init_acallexpr};
20146 val_t variable[10];
20147 void **closurevariable = NULL;
20148 trace.prev = tracehead; tracehead = &trace;
20149 trace.file = LOCATE_parser_prod;
20150 variable[0] = self;
20151 variable[1] = param0;
20152 variable[2] = param1;
20153 variable[3] = param2;
20154 variable[4] = param3;
20155 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i]) return;
20156 variable[6] = variable[0];
20157 CALL_parser_prod___ACallExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ACallExpr::empty_init*/;
20158 variable[6] = variable[0];
20159 ATTR_parser_nodes___ASendExpr____n_expr(variable[6]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
20160 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::==*/)))))));
20161 if (UNTAG_Bool(variable[6])) { /*if*/
20162 variable[6] = variable[0];
20163 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
20164 }
20165 variable[6] = variable[0];
20166 ATTR_parser_nodes___ACallFormExpr____n_id(variable[6]) /*ACallFormExpr::_n_id*/ = variable[2] /*n_id*/;
20167 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::==*/)))))));
20168 if (UNTAG_Bool(variable[6])) { /*if*/
20169 variable[6] = variable[0];
20170 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
20171 }
20172 variable[6] = variable[0];
20173 variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
20174 ATTR_parser_nodes___ACallFormExpr____n_args(variable[6]) /*ACallFormExpr::_n_args*/ = variable[7];
20175 variable[6] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
20176 while (true) { /*for*/
20177 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
20178 if (!UNTAG_Bool(variable[7])) break; /*for*/
20179 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
20180 variable[8] = variable[7];
20181 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20182 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, 8266); nit_exit(1);}
20183 variable[9] = variable[0];
20184 variable[9] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[9]) /*ACallFormExpr::_n_args*/;
20185 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
20186 variable[9] = variable[0];
20187 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
20188 continue_709: while(0);
20189 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
20190 }
20191 break_709: while(0);
20192 variable[6] = variable[0];
20193 variable[7] = NEW_List_list___List___init(); /*new List[PClosureDef]*/
20194 ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[6]) /*ASendExpr::_n_closure_defs*/ = variable[7];
20195 variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*n_closure_defs*/)( variable[4] /*n_closure_defs*/) /*AbstractArray::iterator*/;
20196 while (true) { /*for*/
20197 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
20198 if (!UNTAG_Bool(variable[7])) break; /*for*/
20199 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
20200 variable[8] = variable[7];
20201 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
20202 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, 8272); nit_exit(1);}
20203 variable[9] = variable[0];
20204 variable[9] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[9]) /*ASendExpr::_n_closure_defs*/;
20205 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
20206 variable[9] = variable[0];
20207 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
20208 continue_710: while(0);
20209 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
20210 }
20211 break_710: while(0);
20212 return_label708: while(false);
20213 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
20214 tracehead = trace.prev;
20215 return;
20216 }
20217 void parser_prod___ACallAssignExpr___n_expr__eq(val_t self, val_t param0) {
20218 struct trace_t trace = {NULL, NULL, 8368, LOCATE_parser_prod___ACallAssignExpr___n_expr__eq};
20219 val_t variable[4];
20220 void **closurevariable = NULL;
20221 trace.prev = tracehead; tracehead = &trace;
20222 trace.file = LOCATE_parser_prod;
20223 variable[0] = self;
20224 variable[1] = param0;
20225 variable[3] = variable[0];
20226 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
20227 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20228 if (UNTAG_Bool(variable[3])) { /*if*/
20229 variable[3] = variable[0];
20230 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20231 }
20232 return_label711: while(false);
20233 tracehead = trace.prev;
20234 return;
20235 }
20236 void parser_prod___ACallAssignExpr___n_id__eq(val_t self, val_t param0) {
20237 struct trace_t trace = {NULL, NULL, 8375, LOCATE_parser_prod___ACallAssignExpr___n_id__eq};
20238 val_t variable[4];
20239 void **closurevariable = NULL;
20240 trace.prev = tracehead; tracehead = &trace;
20241 trace.file = LOCATE_parser_prod;
20242 variable[0] = self;
20243 variable[1] = param0;
20244 variable[3] = variable[0];
20245 ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/ = variable[1] /*n*/;
20246 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20247 if (UNTAG_Bool(variable[3])) { /*if*/
20248 variable[3] = variable[0];
20249 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20250 }
20251 return_label712: while(false);
20252 tracehead = trace.prev;
20253 return;
20254 }
20255 void parser_prod___ACallAssignExpr___n_assign__eq(val_t self, val_t param0) {
20256 struct trace_t trace = {NULL, NULL, 8382, LOCATE_parser_prod___ACallAssignExpr___n_assign__eq};
20257 val_t variable[4];
20258 void **closurevariable = NULL;
20259 trace.prev = tracehead; tracehead = &trace;
20260 trace.file = LOCATE_parser_prod;
20261 variable[0] = self;
20262 variable[1] = param0;
20263 variable[3] = variable[0];
20264 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
20265 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20266 if (UNTAG_Bool(variable[3])) { /*if*/
20267 variable[3] = variable[0];
20268 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20269 }
20270 return_label713: while(false);
20271 tracehead = trace.prev;
20272 return;
20273 }
20274 void parser_prod___ACallAssignExpr___n_value__eq(val_t self, val_t param0) {
20275 struct trace_t trace = {NULL, NULL, 8389, LOCATE_parser_prod___ACallAssignExpr___n_value__eq};
20276 val_t variable[4];
20277 void **closurevariable = NULL;
20278 trace.prev = tracehead; tracehead = &trace;
20279 trace.file = LOCATE_parser_prod;
20280 variable[0] = self;
20281 variable[1] = param0;
20282 variable[3] = variable[0];
20283 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
20284 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20285 if (UNTAG_Bool(variable[3])) { /*if*/
20286 variable[3] = variable[0];
20287 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20288 }
20289 return_label714: while(false);
20290 tracehead = trace.prev;
20291 return;
20292 }
20293 void parser_prod___ACallAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
20294 struct trace_t trace = {NULL, NULL, 8432, LOCATE_parser_prod___ACallAssignExpr___replace_child};
20295 val_t variable[8];
20296 void **closurevariable = NULL;
20297 trace.prev = tracehead; tracehead = &trace;
20298 trace.file = LOCATE_parser_prod;
20299 variable[0] = self;
20300 variable[1] = param0;
20301 variable[2] = param1;
20302 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::==*/)))))));
20303 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, 8434); nit_exit(1);}
20304 variable[4] = variable[0];
20305 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
20306 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20307 if (UNTAG_Bool(variable[4])) { /*if*/
20308 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20309 if (UNTAG_Bool(variable[4])) { /*if*/
20310 variable[4] = variable[0];
20311 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20312 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20313 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, 8438); nit_exit(1);}
20314 variable[4] = variable[0];
20315 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
20316 } else { /*if*/
20317 variable[4] = variable[0];
20318 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
20319 }
20320 goto return_label715;
20321 }
20322 variable[4] = variable[0];
20323 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/;
20324 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20325 if (UNTAG_Bool(variable[4])) { /*if*/
20326 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20327 if (UNTAG_Bool(variable[4])) { /*if*/
20328 variable[4] = variable[0];
20329 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20330 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
20331 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, 8448); nit_exit(1);}
20332 variable[4] = variable[0];
20333 ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/ = variable[2] /*new_child*/;
20334 } else { /*if*/
20335 variable[4] = variable[0];
20336 ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/ = NIT_NULL /*null*/;
20337 }
20338 goto return_label715;
20339 }
20340 variable[4] = variable[0];
20341 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20342 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
20343 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
20344 variable[4] = variable[5];
20345 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
20346 while (true) { /*for*/
20347 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
20348 if (!UNTAG_Bool(variable[5])) break; /*for*/
20349 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
20350 variable[6] = variable[5];
20351 variable[7] = variable[0];
20352 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
20353 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
20354 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::==*/)))));
20355 if (UNTAG_Bool(variable[7])) { /*if*/
20356 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::==*/)))))));
20357 if (UNTAG_Bool(variable[7])) { /*if*/
20358 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20359 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, 8458); nit_exit(1);}
20360 variable[7] = variable[0];
20361 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
20362 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
20363 variable[7] = variable[0];
20364 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
20365 } else { /*if*/
20366 variable[7] = variable[0];
20367 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
20368 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
20369 }
20370 goto return_label715;
20371 }
20372 continue_716: while(0);
20373 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
20374 }
20375 break_716: while(0);
20376 variable[4] = variable[0];
20377 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
20378 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20379 if (UNTAG_Bool(variable[4])) { /*if*/
20380 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20381 if (UNTAG_Bool(variable[4])) { /*if*/
20382 variable[4] = variable[0];
20383 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20384 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
20385 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, 8470); nit_exit(1);}
20386 variable[4] = variable[0];
20387 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
20388 } else { /*if*/
20389 variable[4] = variable[0];
20390 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
20391 }
20392 goto return_label715;
20393 }
20394 variable[4] = variable[0];
20395 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
20396 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20397 if (UNTAG_Bool(variable[4])) { /*if*/
20398 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20399 if (UNTAG_Bool(variable[4])) { /*if*/
20400 variable[4] = variable[0];
20401 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20402 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20403 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, 8480); nit_exit(1);}
20404 variable[4] = variable[0];
20405 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
20406 } else { /*if*/
20407 variable[4] = variable[0];
20408 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
20409 }
20410 goto return_label715;
20411 }
20412 return_label715: while(false);
20413 tracehead = trace.prev;
20414 return;
20415 }
20416 void parser_prod___ACallAssignExpr___visit_all(val_t self, val_t param0) {
20417 struct trace_t trace = {NULL, NULL, 8489, LOCATE_parser_prod___ACallAssignExpr___visit_all};
20418 val_t variable[6];
20419 void **closurevariable = NULL;
20420 trace.prev = tracehead; tracehead = &trace;
20421 trace.file = LOCATE_parser_prod;
20422 variable[0] = self;
20423 variable[1] = param0;
20424 variable[3] = variable[0];
20425 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20426 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20427 if (UNTAG_Bool(variable[3])) { /*if*/
20428 variable[3] = variable[0];
20429 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20430 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20431 }
20432 variable[3] = variable[0];
20433 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20434 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20435 if (UNTAG_Bool(variable[3])) { /*if*/
20436 variable[3] = variable[0];
20437 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20438 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20439 }
20440 variable[3] = variable[0];
20441 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[3]) /*ACallFormExpr::_n_args*/;
20442 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
20443 while (true) { /*for*/
20444 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
20445 if (!UNTAG_Bool(variable[4])) break; /*for*/
20446 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
20447 variable[5] = variable[4];
20448 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
20449 continue_718: while(0);
20450 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
20451 }
20452 break_718: while(0);
20453 variable[3] = variable[0];
20454 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
20455 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20456 if (UNTAG_Bool(variable[3])) { /*if*/
20457 variable[3] = variable[0];
20458 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
20459 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20460 }
20461 variable[3] = variable[0];
20462 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
20463 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20464 if (UNTAG_Bool(variable[3])) { /*if*/
20465 variable[3] = variable[0];
20466 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
20467 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20468 }
20469 return_label717: while(false);
20470 tracehead = trace.prev;
20471 return;
20472 }
20473 void parser_prod___ACallAssignExpr___visit_all_reverse(val_t self, val_t param0) {
20474 struct trace_t trace = {NULL, NULL, 8508, LOCATE_parser_prod___ACallAssignExpr___visit_all_reverse};
20475 val_t variable[5];
20476 void **closurevariable = NULL;
20477 trace.prev = tracehead; tracehead = &trace;
20478 trace.file = LOCATE_parser_prod;
20479 variable[0] = self;
20480 variable[1] = param0;
20481 variable[3] = variable[0];
20482 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20483 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20484 if (UNTAG_Bool(variable[3])) { /*if*/
20485 variable[3] = variable[0];
20486 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20487 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20488 }
20489 variable[3] = variable[0];
20490 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20491 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20492 if (UNTAG_Bool(variable[3])) { /*if*/
20493 variable[3] = variable[0];
20494 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20495 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20496 }
20497 variable[4] = variable[0];
20498 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20499 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
20500 variable[3] = variable[4];
20501 while (true) { /*while*/
20502 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
20503 if (!UNTAG_Bool(variable[4])) break; /* while*/
20504 variable[4] = variable[0];
20505 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20506 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
20507 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
20508 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
20509 variable[3] = variable[4] /*i=*/;
20510 continue_720: while(0);
20511 }
20512 break_720: while(0);
20513 variable[3] = variable[0];
20514 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
20515 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20516 if (UNTAG_Bool(variable[3])) { /*if*/
20517 variable[3] = variable[0];
20518 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
20519 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20520 }
20521 variable[3] = variable[0];
20522 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
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 variable[3] = variable[0];
20526 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
20527 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20528 }
20529 return_label719: while(false);
20530 tracehead = trace.prev;
20531 return;
20532 }
20533 void parser_prod___ACallAssignExpr___empty_init(val_t self, int* init_table) {
20534 struct trace_t trace = {NULL, NULL, 8397, LOCATE_parser_prod___ACallAssignExpr___empty_init};
20535 val_t variable[2];
20536 void **closurevariable = NULL;
20537 trace.prev = tracehead; tracehead = &trace;
20538 trace.file = LOCATE_parser_prod;
20539 variable[0] = self;
20540 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
20541 return_label721: while(false);
20542 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
20543 tracehead = trace.prev;
20544 return;
20545 }
20546 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) {
20547 struct trace_t trace = {NULL, NULL, 8399, LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr};
20548 val_t variable[11];
20549 void **closurevariable = NULL;
20550 trace.prev = tracehead; tracehead = &trace;
20551 trace.file = LOCATE_parser_prod;
20552 variable[0] = self;
20553 variable[1] = param0;
20554 variable[2] = param1;
20555 variable[3] = param2;
20556 variable[4] = param3;
20557 variable[5] = param4;
20558 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
20559 variable[7] = variable[0];
20560 CALL_parser_prod___ACallAssignExpr___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*ACallAssignExpr::empty_init*/;
20561 variable[7] = variable[0];
20562 ATTR_parser_nodes___ASendExpr____n_expr(variable[7]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
20563 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::==*/)))))));
20564 if (UNTAG_Bool(variable[7])) { /*if*/
20565 variable[7] = variable[0];
20566 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[7]) /*PNode::parent=*/;
20567 }
20568 variable[7] = variable[0];
20569 ATTR_parser_nodes___ACallFormExpr____n_id(variable[7]) /*ACallFormExpr::_n_id*/ = variable[2] /*n_id*/;
20570 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::==*/)))))));
20571 if (UNTAG_Bool(variable[7])) { /*if*/
20572 variable[7] = variable[0];
20573 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
20574 }
20575 variable[7] = variable[0];
20576 variable[8] = NEW_List_list___List___init(); /*new List[PExpr]*/
20577 ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/ = variable[8];
20578 variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
20579 while (true) { /*for*/
20580 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
20581 if (!UNTAG_Bool(variable[8])) break; /*for*/
20582 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
20583 variable[9] = variable[8];
20584 variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20585 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, 8418); nit_exit(1);}
20586 variable[10] = variable[0];
20587 variable[10] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[10]) /*ACallFormExpr::_n_args*/;
20588 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[9] /*n*/) /*IndexedCollection::add*/;
20589 variable[10] = variable[0];
20590 CALL_parser_prod___PNode___parent__eq( variable[9] /*n*/)( variable[9] /*n*/, variable[10]) /*PNode::parent=*/;
20591 continue_723: while(0);
20592 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
20593 }
20594 break_723: while(0);
20595 variable[7] = variable[0];
20596 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[7]) /*AAssignFormExpr::_n_assign*/ = variable[4] /*n_assign*/;
20597 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::==*/)))))));
20598 if (UNTAG_Bool(variable[7])) { /*if*/
20599 variable[7] = variable[0];
20600 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, variable[7]) /*PNode::parent=*/;
20601 }
20602 variable[7] = variable[0];
20603 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[7]) /*AAssignFormExpr::_n_value*/ = variable[5] /*n_value*/;
20604 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::==*/)))))));
20605 if (UNTAG_Bool(variable[7])) { /*if*/
20606 variable[7] = variable[0];
20607 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_value*/)( variable[5] /*n_value*/, variable[7]) /*PNode::parent=*/;
20608 }
20609 return_label722: while(false);
20610 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
20611 tracehead = trace.prev;
20612 return;
20613 }
20614 void parser_prod___ACallReassignExpr___n_expr__eq(val_t self, val_t param0) {
20615 struct trace_t trace = {NULL, NULL, 8532, LOCATE_parser_prod___ACallReassignExpr___n_expr__eq};
20616 val_t variable[4];
20617 void **closurevariable = NULL;
20618 trace.prev = tracehead; tracehead = &trace;
20619 trace.file = LOCATE_parser_prod;
20620 variable[0] = self;
20621 variable[1] = param0;
20622 variable[3] = variable[0];
20623 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
20624 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20625 if (UNTAG_Bool(variable[3])) { /*if*/
20626 variable[3] = variable[0];
20627 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20628 }
20629 return_label724: while(false);
20630 tracehead = trace.prev;
20631 return;
20632 }
20633 void parser_prod___ACallReassignExpr___n_id__eq(val_t self, val_t param0) {
20634 struct trace_t trace = {NULL, NULL, 8539, LOCATE_parser_prod___ACallReassignExpr___n_id__eq};
20635 val_t variable[4];
20636 void **closurevariable = NULL;
20637 trace.prev = tracehead; tracehead = &trace;
20638 trace.file = LOCATE_parser_prod;
20639 variable[0] = self;
20640 variable[1] = param0;
20641 variable[3] = variable[0];
20642 ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/ = variable[1] /*n*/;
20643 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20644 if (UNTAG_Bool(variable[3])) { /*if*/
20645 variable[3] = variable[0];
20646 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20647 }
20648 return_label725: while(false);
20649 tracehead = trace.prev;
20650 return;
20651 }
20652 void parser_prod___ACallReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
20653 struct trace_t trace = {NULL, NULL, 8546, LOCATE_parser_prod___ACallReassignExpr___n_assign_op__eq};
20654 val_t variable[4];
20655 void **closurevariable = NULL;
20656 trace.prev = tracehead; tracehead = &trace;
20657 trace.file = LOCATE_parser_prod;
20658 variable[0] = self;
20659 variable[1] = param0;
20660 variable[3] = variable[0];
20661 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
20662 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20663 if (UNTAG_Bool(variable[3])) { /*if*/
20664 variable[3] = variable[0];
20665 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20666 }
20667 return_label726: while(false);
20668 tracehead = trace.prev;
20669 return;
20670 }
20671 void parser_prod___ACallReassignExpr___n_value__eq(val_t self, val_t param0) {
20672 struct trace_t trace = {NULL, NULL, 8553, LOCATE_parser_prod___ACallReassignExpr___n_value__eq};
20673 val_t variable[4];
20674 void **closurevariable = NULL;
20675 trace.prev = tracehead; tracehead = &trace;
20676 trace.file = LOCATE_parser_prod;
20677 variable[0] = self;
20678 variable[1] = param0;
20679 variable[3] = variable[0];
20680 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
20681 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20682 if (UNTAG_Bool(variable[3])) { /*if*/
20683 variable[3] = variable[0];
20684 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
20685 }
20686 return_label727: while(false);
20687 tracehead = trace.prev;
20688 return;
20689 }
20690 void parser_prod___ACallReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
20691 struct trace_t trace = {NULL, NULL, 8596, LOCATE_parser_prod___ACallReassignExpr___replace_child};
20692 val_t variable[8];
20693 void **closurevariable = NULL;
20694 trace.prev = tracehead; tracehead = &trace;
20695 trace.file = LOCATE_parser_prod;
20696 variable[0] = self;
20697 variable[1] = param0;
20698 variable[2] = param1;
20699 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::==*/)))))));
20700 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, 8598); nit_exit(1);}
20701 variable[4] = variable[0];
20702 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
20703 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20704 if (UNTAG_Bool(variable[4])) { /*if*/
20705 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20706 if (UNTAG_Bool(variable[4])) { /*if*/
20707 variable[4] = variable[0];
20708 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20709 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20710 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, 8602); nit_exit(1);}
20711 variable[4] = variable[0];
20712 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
20713 } else { /*if*/
20714 variable[4] = variable[0];
20715 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
20716 }
20717 goto return_label728;
20718 }
20719 variable[4] = variable[0];
20720 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/;
20721 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20722 if (UNTAG_Bool(variable[4])) { /*if*/
20723 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20724 if (UNTAG_Bool(variable[4])) { /*if*/
20725 variable[4] = variable[0];
20726 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20727 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
20728 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, 8612); nit_exit(1);}
20729 variable[4] = variable[0];
20730 ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/ = variable[2] /*new_child*/;
20731 } else { /*if*/
20732 variable[4] = variable[0];
20733 ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/ = NIT_NULL /*null*/;
20734 }
20735 goto return_label728;
20736 }
20737 variable[4] = variable[0];
20738 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20739 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
20740 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
20741 variable[4] = variable[5];
20742 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
20743 while (true) { /*for*/
20744 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
20745 if (!UNTAG_Bool(variable[5])) break; /*for*/
20746 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
20747 variable[6] = variable[5];
20748 variable[7] = variable[0];
20749 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
20750 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
20751 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::==*/)))));
20752 if (UNTAG_Bool(variable[7])) { /*if*/
20753 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::==*/)))))));
20754 if (UNTAG_Bool(variable[7])) { /*if*/
20755 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20756 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, 8622); nit_exit(1);}
20757 variable[7] = variable[0];
20758 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
20759 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
20760 variable[7] = variable[0];
20761 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
20762 } else { /*if*/
20763 variable[7] = variable[0];
20764 variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
20765 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
20766 }
20767 goto return_label728;
20768 }
20769 continue_729: while(0);
20770 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
20771 }
20772 break_729: while(0);
20773 variable[4] = variable[0];
20774 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
20775 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20776 if (UNTAG_Bool(variable[4])) { /*if*/
20777 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20778 if (UNTAG_Bool(variable[4])) { /*if*/
20779 variable[4] = variable[0];
20780 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20781 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
20782 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, 8634); nit_exit(1);}
20783 variable[4] = variable[0];
20784 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
20785 } else { /*if*/
20786 variable[4] = variable[0];
20787 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
20788 }
20789 goto return_label728;
20790 }
20791 variable[4] = variable[0];
20792 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
20793 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
20794 if (UNTAG_Bool(variable[4])) { /*if*/
20795 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
20796 if (UNTAG_Bool(variable[4])) { /*if*/
20797 variable[4] = variable[0];
20798 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
20799 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20800 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, 8644); nit_exit(1);}
20801 variable[4] = variable[0];
20802 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
20803 } else { /*if*/
20804 variable[4] = variable[0];
20805 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
20806 }
20807 goto return_label728;
20808 }
20809 return_label728: while(false);
20810 tracehead = trace.prev;
20811 return;
20812 }
20813 void parser_prod___ACallReassignExpr___visit_all(val_t self, val_t param0) {
20814 struct trace_t trace = {NULL, NULL, 8653, LOCATE_parser_prod___ACallReassignExpr___visit_all};
20815 val_t variable[6];
20816 void **closurevariable = NULL;
20817 trace.prev = tracehead; tracehead = &trace;
20818 trace.file = LOCATE_parser_prod;
20819 variable[0] = self;
20820 variable[1] = param0;
20821 variable[3] = variable[0];
20822 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20823 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20824 if (UNTAG_Bool(variable[3])) { /*if*/
20825 variable[3] = variable[0];
20826 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20827 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20828 }
20829 variable[3] = variable[0];
20830 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20831 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20832 if (UNTAG_Bool(variable[3])) { /*if*/
20833 variable[3] = variable[0];
20834 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20835 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20836 }
20837 variable[3] = variable[0];
20838 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[3]) /*ACallFormExpr::_n_args*/;
20839 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
20840 while (true) { /*for*/
20841 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
20842 if (!UNTAG_Bool(variable[4])) break; /*for*/
20843 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
20844 variable[5] = variable[4];
20845 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
20846 continue_731: while(0);
20847 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
20848 }
20849 break_731: while(0);
20850 variable[3] = variable[0];
20851 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
20852 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20853 if (UNTAG_Bool(variable[3])) { /*if*/
20854 variable[3] = variable[0];
20855 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
20856 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20857 }
20858 variable[3] = variable[0];
20859 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
20860 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20861 if (UNTAG_Bool(variable[3])) { /*if*/
20862 variable[3] = variable[0];
20863 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
20864 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20865 }
20866 return_label730: while(false);
20867 tracehead = trace.prev;
20868 return;
20869 }
20870 void parser_prod___ACallReassignExpr___visit_all_reverse(val_t self, val_t param0) {
20871 struct trace_t trace = {NULL, NULL, 8672, LOCATE_parser_prod___ACallReassignExpr___visit_all_reverse};
20872 val_t variable[5];
20873 void **closurevariable = NULL;
20874 trace.prev = tracehead; tracehead = &trace;
20875 trace.file = LOCATE_parser_prod;
20876 variable[0] = self;
20877 variable[1] = param0;
20878 variable[3] = variable[0];
20879 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20880 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20881 if (UNTAG_Bool(variable[3])) { /*if*/
20882 variable[3] = variable[0];
20883 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
20884 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20885 }
20886 variable[3] = variable[0];
20887 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20888 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20889 if (UNTAG_Bool(variable[3])) { /*if*/
20890 variable[3] = variable[0];
20891 variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
20892 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20893 }
20894 variable[4] = variable[0];
20895 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20896 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
20897 variable[3] = variable[4];
20898 while (true) { /*while*/
20899 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
20900 if (!UNTAG_Bool(variable[4])) break; /* while*/
20901 variable[4] = variable[0];
20902 variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
20903 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
20904 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
20905 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
20906 variable[3] = variable[4] /*i=*/;
20907 continue_733: while(0);
20908 }
20909 break_733: while(0);
20910 variable[3] = variable[0];
20911 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
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 variable[3] = variable[0];
20915 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
20916 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20917 }
20918 variable[3] = variable[0];
20919 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
20920 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
20921 if (UNTAG_Bool(variable[3])) { /*if*/
20922 variable[3] = variable[0];
20923 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
20924 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
20925 }
20926 return_label732: while(false);
20927 tracehead = trace.prev;
20928 return;
20929 }
20930 void parser_prod___ACallReassignExpr___empty_init(val_t self, int* init_table) {
20931 struct trace_t trace = {NULL, NULL, 8561, LOCATE_parser_prod___ACallReassignExpr___empty_init};
20932 val_t variable[2];
20933 void **closurevariable = NULL;
20934 trace.prev = tracehead; tracehead = &trace;
20935 trace.file = LOCATE_parser_prod;
20936 variable[0] = self;
20937 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
20938 return_label734: while(false);
20939 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
20940 tracehead = trace.prev;
20941 return;
20942 }
20943 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) {
20944 struct trace_t trace = {NULL, NULL, 8563, LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr};
20945 val_t variable[11];
20946 void **closurevariable = NULL;
20947 trace.prev = tracehead; tracehead = &trace;
20948 trace.file = LOCATE_parser_prod;
20949 variable[0] = self;
20950 variable[1] = param0;
20951 variable[2] = param1;
20952 variable[3] = param2;
20953 variable[4] = param3;
20954 variable[5] = param4;
20955 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
20956 variable[7] = variable[0];
20957 CALL_parser_prod___ACallReassignExpr___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*ACallReassignExpr::empty_init*/;
20958 variable[7] = variable[0];
20959 ATTR_parser_nodes___ASendExpr____n_expr(variable[7]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
20960 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::==*/)))))));
20961 if (UNTAG_Bool(variable[7])) { /*if*/
20962 variable[7] = variable[0];
20963 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[7]) /*PNode::parent=*/;
20964 }
20965 variable[7] = variable[0];
20966 ATTR_parser_nodes___ACallFormExpr____n_id(variable[7]) /*ACallFormExpr::_n_id*/ = variable[2] /*n_id*/;
20967 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::==*/)))))));
20968 if (UNTAG_Bool(variable[7])) { /*if*/
20969 variable[7] = variable[0];
20970 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
20971 }
20972 variable[7] = variable[0];
20973 variable[8] = NEW_List_list___List___init(); /*new List[PExpr]*/
20974 ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/ = variable[8];
20975 variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
20976 while (true) { /*for*/
20977 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
20978 if (!UNTAG_Bool(variable[8])) break; /*for*/
20979 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
20980 variable[9] = variable[8];
20981 variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
20982 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, 8582); nit_exit(1);}
20983 variable[10] = variable[0];
20984 variable[10] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[10]) /*ACallFormExpr::_n_args*/;
20985 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[9] /*n*/) /*IndexedCollection::add*/;
20986 variable[10] = variable[0];
20987 CALL_parser_prod___PNode___parent__eq( variable[9] /*n*/)( variable[9] /*n*/, variable[10]) /*PNode::parent=*/;
20988 continue_736: while(0);
20989 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
20990 }
20991 break_736: while(0);
20992 variable[7] = variable[0];
20993 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[7]) /*AReassignFormExpr::_n_assign_op*/ = variable[4] /*n_assign_op*/;
20994 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::==*/)))))));
20995 if (UNTAG_Bool(variable[7])) { /*if*/
20996 variable[7] = variable[0];
20997 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign_op*/)( variable[4] /*n_assign_op*/, variable[7]) /*PNode::parent=*/;
20998 }
20999 variable[7] = variable[0];
21000 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[7]) /*AReassignFormExpr::_n_value*/ = variable[5] /*n_value*/;
21001 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::==*/)))))));
21002 if (UNTAG_Bool(variable[7])) { /*if*/
21003 variable[7] = variable[0];
21004 CALL_parser_prod___PNode___parent__eq( variable[5] /*n_value*/)( variable[5] /*n_value*/, variable[7]) /*PNode::parent=*/;
21005 }
21006 return_label735: while(false);
21007 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
21008 tracehead = trace.prev;
21009 return;
21010 }
21011 void parser_prod___ASuperExpr___n_qualified__eq(val_t self, val_t param0) {
21012 struct trace_t trace = {NULL, NULL, 8696, LOCATE_parser_prod___ASuperExpr___n_qualified__eq};
21013 val_t variable[4];
21014 void **closurevariable = NULL;
21015 trace.prev = tracehead; tracehead = &trace;
21016 trace.file = LOCATE_parser_prod;
21017 variable[0] = self;
21018 variable[1] = param0;
21019 variable[3] = variable[0];
21020 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/ = variable[1] /*n*/;
21021 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21022 if (UNTAG_Bool(variable[3])) { /*if*/
21023 variable[3] = variable[0];
21024 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21025 }
21026 return_label737: while(false);
21027 tracehead = trace.prev;
21028 return;
21029 }
21030 void parser_prod___ASuperExpr___n_kwsuper__eq(val_t self, val_t param0) {
21031 struct trace_t trace = {NULL, NULL, 8703, LOCATE_parser_prod___ASuperExpr___n_kwsuper__eq};
21032 val_t variable[4];
21033 void **closurevariable = NULL;
21034 trace.prev = tracehead; tracehead = &trace;
21035 trace.file = LOCATE_parser_prod;
21036 variable[0] = self;
21037 variable[1] = param0;
21038 variable[3] = variable[0];
21039 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/ = variable[1] /*n*/;
21040 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21041 if (UNTAG_Bool(variable[3])) { /*if*/
21042 variable[3] = variable[0];
21043 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21044 }
21045 return_label738: while(false);
21046 tracehead = trace.prev;
21047 return;
21048 }
21049 void parser_prod___ASuperExpr___replace_child(val_t self, val_t param0, val_t param1) {
21050 struct trace_t trace = {NULL, NULL, 8736, LOCATE_parser_prod___ASuperExpr___replace_child};
21051 val_t variable[8];
21052 void **closurevariable = NULL;
21053 trace.prev = tracehead; tracehead = &trace;
21054 trace.file = LOCATE_parser_prod;
21055 variable[0] = self;
21056 variable[1] = param0;
21057 variable[2] = param1;
21058 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::==*/)))))));
21059 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, 8738); nit_exit(1);}
21060 variable[4] = variable[0];
21061 variable[4] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[4]) /*ASuperExpr::_n_qualified*/;
21062 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21063 if (UNTAG_Bool(variable[4])) { /*if*/
21064 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21065 if (UNTAG_Bool(variable[4])) { /*if*/
21066 variable[4] = variable[0];
21067 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
21068 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
21069 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, 8742); nit_exit(1);}
21070 variable[4] = variable[0];
21071 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[4]) /*ASuperExpr::_n_qualified*/ = variable[2] /*new_child*/;
21072 } else { /*if*/
21073 variable[4] = variable[0];
21074 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[4]) /*ASuperExpr::_n_qualified*/ = NIT_NULL /*null*/;
21075 }
21076 goto return_label739;
21077 }
21078 variable[4] = variable[0];
21079 variable[4] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[4]) /*ASuperExpr::_n_kwsuper*/;
21080 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21081 if (UNTAG_Bool(variable[4])) { /*if*/
21082 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21083 if (UNTAG_Bool(variable[4])) { /*if*/
21084 variable[4] = variable[0];
21085 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
21086 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
21087 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, 8752); nit_exit(1);}
21088 variable[4] = variable[0];
21089 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[4]) /*ASuperExpr::_n_kwsuper*/ = variable[2] /*new_child*/;
21090 } else { /*if*/
21091 variable[4] = variable[0];
21092 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[4]) /*ASuperExpr::_n_kwsuper*/ = NIT_NULL /*null*/;
21093 }
21094 goto return_label739;
21095 }
21096 variable[4] = variable[0];
21097 variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[4]) /*ASuperExpr::_n_args*/;
21098 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21099 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
21100 variable[4] = variable[5];
21101 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
21102 while (true) { /*for*/
21103 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
21104 if (!UNTAG_Bool(variable[5])) break; /*for*/
21105 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
21106 variable[6] = variable[5];
21107 variable[7] = variable[0];
21108 variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[7]) /*ASuperExpr::_n_args*/;
21109 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
21110 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::==*/)))));
21111 if (UNTAG_Bool(variable[7])) { /*if*/
21112 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::==*/)))))));
21113 if (UNTAG_Bool(variable[7])) { /*if*/
21114 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21115 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, 8762); nit_exit(1);}
21116 variable[7] = variable[0];
21117 variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[7]) /*ASuperExpr::_n_args*/;
21118 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
21119 variable[7] = variable[0];
21120 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
21121 } else { /*if*/
21122 variable[7] = variable[0];
21123 variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[7]) /*ASuperExpr::_n_args*/;
21124 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
21125 }
21126 goto return_label739;
21127 }
21128 continue_740: while(0);
21129 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
21130 }
21131 break_740: while(0);
21132 return_label739: while(false);
21133 tracehead = trace.prev;
21134 return;
21135 }
21136 void parser_prod___ASuperExpr___visit_all(val_t self, val_t param0) {
21137 struct trace_t trace = {NULL, NULL, 8773, LOCATE_parser_prod___ASuperExpr___visit_all};
21138 val_t variable[6];
21139 void **closurevariable = NULL;
21140 trace.prev = tracehead; tracehead = &trace;
21141 trace.file = LOCATE_parser_prod;
21142 variable[0] = self;
21143 variable[1] = param0;
21144 variable[3] = variable[0];
21145 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
21146 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21147 if (UNTAG_Bool(variable[3])) { /*if*/
21148 variable[3] = variable[0];
21149 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
21150 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21151 }
21152 variable[3] = variable[0];
21153 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
21154 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21155 if (UNTAG_Bool(variable[3])) { /*if*/
21156 variable[3] = variable[0];
21157 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
21158 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21159 }
21160 variable[3] = variable[0];
21161 variable[3] = ATTR_parser_nodes___ASuperExpr____n_args(variable[3]) /*ASuperExpr::_n_args*/;
21162 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
21163 while (true) { /*for*/
21164 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
21165 if (!UNTAG_Bool(variable[4])) break; /*for*/
21166 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
21167 variable[5] = variable[4];
21168 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
21169 continue_742: while(0);
21170 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
21171 }
21172 break_742: while(0);
21173 return_label741: while(false);
21174 tracehead = trace.prev;
21175 return;
21176 }
21177 void parser_prod___ASuperExpr___visit_all_reverse(val_t self, val_t param0) {
21178 struct trace_t trace = {NULL, NULL, 8786, LOCATE_parser_prod___ASuperExpr___visit_all_reverse};
21179 val_t variable[5];
21180 void **closurevariable = NULL;
21181 trace.prev = tracehead; tracehead = &trace;
21182 trace.file = LOCATE_parser_prod;
21183 variable[0] = self;
21184 variable[1] = param0;
21185 variable[3] = variable[0];
21186 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
21187 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21188 if (UNTAG_Bool(variable[3])) { /*if*/
21189 variable[3] = variable[0];
21190 variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
21191 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21192 }
21193 variable[3] = variable[0];
21194 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
21195 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21196 if (UNTAG_Bool(variable[3])) { /*if*/
21197 variable[3] = variable[0];
21198 variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
21199 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21200 }
21201 variable[4] = variable[0];
21202 variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[4]) /*ASuperExpr::_n_args*/;
21203 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21204 variable[3] = variable[4];
21205 while (true) { /*while*/
21206 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
21207 if (!UNTAG_Bool(variable[4])) break; /* while*/
21208 variable[4] = variable[0];
21209 variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[4]) /*ASuperExpr::_n_args*/;
21210 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
21211 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
21212 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
21213 variable[3] = variable[4] /*i=*/;
21214 continue_744: while(0);
21215 }
21216 break_744: while(0);
21217 return_label743: while(false);
21218 tracehead = trace.prev;
21219 return;
21220 }
21221 void parser_prod___ASuperExpr___empty_init(val_t self, int* init_table) {
21222 struct trace_t trace = {NULL, NULL, 8711, LOCATE_parser_prod___ASuperExpr___empty_init};
21223 val_t variable[2];
21224 void **closurevariable = NULL;
21225 trace.prev = tracehead; tracehead = &trace;
21226 trace.file = LOCATE_parser_prod;
21227 variable[0] = self;
21228 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
21229 return_label745: while(false);
21230 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
21231 tracehead = trace.prev;
21232 return;
21233 }
21234 void parser_prod___ASuperExpr___init_asuperexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
21235 struct trace_t trace = {NULL, NULL, 8713, LOCATE_parser_prod___ASuperExpr___init_asuperexpr};
21236 val_t variable[9];
21237 void **closurevariable = NULL;
21238 trace.prev = tracehead; tracehead = &trace;
21239 trace.file = LOCATE_parser_prod;
21240 variable[0] = self;
21241 variable[1] = param0;
21242 variable[2] = param1;
21243 variable[3] = param2;
21244 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
21245 variable[5] = variable[0];
21246 CALL_parser_prod___ASuperExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ASuperExpr::empty_init*/;
21247 variable[5] = variable[0];
21248 ATTR_parser_nodes___ASuperExpr____n_qualified(variable[5]) /*ASuperExpr::_n_qualified*/ = variable[1] /*n_qualified*/;
21249 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::==*/)))))));
21250 if (UNTAG_Bool(variable[5])) { /*if*/
21251 variable[5] = variable[0];
21252 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_qualified*/)( variable[1] /*n_qualified*/, variable[5]) /*PNode::parent=*/;
21253 }
21254 variable[5] = variable[0];
21255 ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[5]) /*ASuperExpr::_n_kwsuper*/ = variable[2] /*n_kwsuper*/;
21256 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::==*/)))))));
21257 if (UNTAG_Bool(variable[5])) { /*if*/
21258 variable[5] = variable[0];
21259 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwsuper*/)( variable[2] /*n_kwsuper*/, variable[5]) /*PNode::parent=*/;
21260 }
21261 variable[5] = variable[0];
21262 variable[6] = NEW_List_list___List___init(); /*new List[PExpr]*/
21263 ATTR_parser_nodes___ASuperExpr____n_args(variable[5]) /*ASuperExpr::_n_args*/ = variable[6];
21264 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
21265 while (true) { /*for*/
21266 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
21267 if (!UNTAG_Bool(variable[6])) break; /*for*/
21268 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
21269 variable[7] = variable[6];
21270 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21271 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, 8730); nit_exit(1);}
21272 variable[8] = variable[0];
21273 variable[8] = ATTR_parser_nodes___ASuperExpr____n_args(variable[8]) /*ASuperExpr::_n_args*/;
21274 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
21275 variable[8] = variable[0];
21276 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
21277 continue_747: while(0);
21278 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
21279 }
21280 break_747: while(0);
21281 return_label746: while(false);
21282 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
21283 tracehead = trace.prev;
21284 return;
21285 }
21286 void parser_prod___AInitExpr___n_expr__eq(val_t self, val_t param0) {
21287 struct trace_t trace = {NULL, NULL, 8804, LOCATE_parser_prod___AInitExpr___n_expr__eq};
21288 val_t variable[4];
21289 void **closurevariable = NULL;
21290 trace.prev = tracehead; tracehead = &trace;
21291 trace.file = LOCATE_parser_prod;
21292 variable[0] = self;
21293 variable[1] = param0;
21294 variable[3] = variable[0];
21295 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
21296 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21297 if (UNTAG_Bool(variable[3])) { /*if*/
21298 variable[3] = variable[0];
21299 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21300 }
21301 return_label748: while(false);
21302 tracehead = trace.prev;
21303 return;
21304 }
21305 void parser_prod___AInitExpr___n_kwinit__eq(val_t self, val_t param0) {
21306 struct trace_t trace = {NULL, NULL, 8811, LOCATE_parser_prod___AInitExpr___n_kwinit__eq};
21307 val_t variable[4];
21308 void **closurevariable = NULL;
21309 trace.prev = tracehead; tracehead = &trace;
21310 trace.file = LOCATE_parser_prod;
21311 variable[0] = self;
21312 variable[1] = param0;
21313 variable[3] = variable[0];
21314 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/ = variable[1] /*n*/;
21315 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21316 if (UNTAG_Bool(variable[3])) { /*if*/
21317 variable[3] = variable[0];
21318 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21319 }
21320 return_label749: while(false);
21321 tracehead = trace.prev;
21322 return;
21323 }
21324 void parser_prod___AInitExpr___replace_child(val_t self, val_t param0, val_t param1) {
21325 struct trace_t trace = {NULL, NULL, 8844, LOCATE_parser_prod___AInitExpr___replace_child};
21326 val_t variable[8];
21327 void **closurevariable = NULL;
21328 trace.prev = tracehead; tracehead = &trace;
21329 trace.file = LOCATE_parser_prod;
21330 variable[0] = self;
21331 variable[1] = param0;
21332 variable[2] = param1;
21333 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::==*/)))))));
21334 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, 8846); nit_exit(1);}
21335 variable[4] = variable[0];
21336 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
21337 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21338 if (UNTAG_Bool(variable[4])) { /*if*/
21339 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21340 if (UNTAG_Bool(variable[4])) { /*if*/
21341 variable[4] = variable[0];
21342 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
21343 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21344 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, 8850); nit_exit(1);}
21345 variable[4] = variable[0];
21346 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
21347 } else { /*if*/
21348 variable[4] = variable[0];
21349 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
21350 }
21351 goto return_label750;
21352 }
21353 variable[4] = variable[0];
21354 variable[4] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[4]) /*AInitExpr::_n_kwinit*/;
21355 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21356 if (UNTAG_Bool(variable[4])) { /*if*/
21357 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21358 if (UNTAG_Bool(variable[4])) { /*if*/
21359 variable[4] = variable[0];
21360 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
21361 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
21362 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, 8860); nit_exit(1);}
21363 variable[4] = variable[0];
21364 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[4]) /*AInitExpr::_n_kwinit*/ = variable[2] /*new_child*/;
21365 } else { /*if*/
21366 variable[4] = variable[0];
21367 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[4]) /*AInitExpr::_n_kwinit*/ = NIT_NULL /*null*/;
21368 }
21369 goto return_label750;
21370 }
21371 variable[4] = variable[0];
21372 variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[4]) /*AInitExpr::_n_args*/;
21373 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21374 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
21375 variable[4] = variable[5];
21376 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
21377 while (true) { /*for*/
21378 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
21379 if (!UNTAG_Bool(variable[5])) break; /*for*/
21380 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
21381 variable[6] = variable[5];
21382 variable[7] = variable[0];
21383 variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[7]) /*AInitExpr::_n_args*/;
21384 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
21385 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::==*/)))));
21386 if (UNTAG_Bool(variable[7])) { /*if*/
21387 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::==*/)))))));
21388 if (UNTAG_Bool(variable[7])) { /*if*/
21389 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21390 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, 8870); nit_exit(1);}
21391 variable[7] = variable[0];
21392 variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[7]) /*AInitExpr::_n_args*/;
21393 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
21394 variable[7] = variable[0];
21395 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
21396 } else { /*if*/
21397 variable[7] = variable[0];
21398 variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[7]) /*AInitExpr::_n_args*/;
21399 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
21400 }
21401 goto return_label750;
21402 }
21403 continue_751: while(0);
21404 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
21405 }
21406 break_751: while(0);
21407 return_label750: while(false);
21408 tracehead = trace.prev;
21409 return;
21410 }
21411 void parser_prod___AInitExpr___visit_all(val_t self, val_t param0) {
21412 struct trace_t trace = {NULL, NULL, 8881, LOCATE_parser_prod___AInitExpr___visit_all};
21413 val_t variable[6];
21414 void **closurevariable = NULL;
21415 trace.prev = tracehead; tracehead = &trace;
21416 trace.file = LOCATE_parser_prod;
21417 variable[0] = self;
21418 variable[1] = param0;
21419 variable[3] = variable[0];
21420 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21421 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21422 if (UNTAG_Bool(variable[3])) { /*if*/
21423 variable[3] = variable[0];
21424 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21425 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21426 }
21427 variable[3] = variable[0];
21428 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
21429 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21430 if (UNTAG_Bool(variable[3])) { /*if*/
21431 variable[3] = variable[0];
21432 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
21433 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21434 }
21435 variable[3] = variable[0];
21436 variable[3] = ATTR_parser_nodes___AInitExpr____n_args(variable[3]) /*AInitExpr::_n_args*/;
21437 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
21438 while (true) { /*for*/
21439 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
21440 if (!UNTAG_Bool(variable[4])) break; /*for*/
21441 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
21442 variable[5] = variable[4];
21443 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
21444 continue_753: while(0);
21445 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
21446 }
21447 break_753: while(0);
21448 return_label752: while(false);
21449 tracehead = trace.prev;
21450 return;
21451 }
21452 void parser_prod___AInitExpr___visit_all_reverse(val_t self, val_t param0) {
21453 struct trace_t trace = {NULL, NULL, 8894, LOCATE_parser_prod___AInitExpr___visit_all_reverse};
21454 val_t variable[5];
21455 void **closurevariable = NULL;
21456 trace.prev = tracehead; tracehead = &trace;
21457 trace.file = LOCATE_parser_prod;
21458 variable[0] = self;
21459 variable[1] = param0;
21460 variable[3] = variable[0];
21461 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21462 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21463 if (UNTAG_Bool(variable[3])) { /*if*/
21464 variable[3] = variable[0];
21465 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21466 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21467 }
21468 variable[3] = variable[0];
21469 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
21470 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21471 if (UNTAG_Bool(variable[3])) { /*if*/
21472 variable[3] = variable[0];
21473 variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
21474 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21475 }
21476 variable[4] = variable[0];
21477 variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[4]) /*AInitExpr::_n_args*/;
21478 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21479 variable[3] = variable[4];
21480 while (true) { /*while*/
21481 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
21482 if (!UNTAG_Bool(variable[4])) break; /* while*/
21483 variable[4] = variable[0];
21484 variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[4]) /*AInitExpr::_n_args*/;
21485 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
21486 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
21487 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
21488 variable[3] = variable[4] /*i=*/;
21489 continue_755: while(0);
21490 }
21491 break_755: while(0);
21492 return_label754: while(false);
21493 tracehead = trace.prev;
21494 return;
21495 }
21496 void parser_prod___AInitExpr___empty_init(val_t self, int* init_table) {
21497 struct trace_t trace = {NULL, NULL, 8819, LOCATE_parser_prod___AInitExpr___empty_init};
21498 val_t variable[2];
21499 void **closurevariable = NULL;
21500 trace.prev = tracehead; tracehead = &trace;
21501 trace.file = LOCATE_parser_prod;
21502 variable[0] = self;
21503 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i]) return;
21504 return_label756: while(false);
21505 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
21506 tracehead = trace.prev;
21507 return;
21508 }
21509 void parser_prod___AInitExpr___init_ainitexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
21510 struct trace_t trace = {NULL, NULL, 8821, LOCATE_parser_prod___AInitExpr___init_ainitexpr};
21511 val_t variable[9];
21512 void **closurevariable = NULL;
21513 trace.prev = tracehead; tracehead = &trace;
21514 trace.file = LOCATE_parser_prod;
21515 variable[0] = self;
21516 variable[1] = param0;
21517 variable[2] = param1;
21518 variable[3] = param2;
21519 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i]) return;
21520 variable[5] = variable[0];
21521 CALL_parser_prod___AInitExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AInitExpr::empty_init*/;
21522 variable[5] = variable[0];
21523 ATTR_parser_nodes___ASendExpr____n_expr(variable[5]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
21524 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::==*/)))))));
21525 if (UNTAG_Bool(variable[5])) { /*if*/
21526 variable[5] = variable[0];
21527 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
21528 }
21529 variable[5] = variable[0];
21530 ATTR_parser_nodes___AInitExpr____n_kwinit(variable[5]) /*AInitExpr::_n_kwinit*/ = variable[2] /*n_kwinit*/;
21531 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::==*/)))))));
21532 if (UNTAG_Bool(variable[5])) { /*if*/
21533 variable[5] = variable[0];
21534 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwinit*/)( variable[2] /*n_kwinit*/, variable[5]) /*PNode::parent=*/;
21535 }
21536 variable[5] = variable[0];
21537 variable[6] = NEW_List_list___List___init(); /*new List[PExpr]*/
21538 ATTR_parser_nodes___AInitExpr____n_args(variable[5]) /*AInitExpr::_n_args*/ = variable[6];
21539 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
21540 while (true) { /*for*/
21541 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
21542 if (!UNTAG_Bool(variable[6])) break; /*for*/
21543 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
21544 variable[7] = variable[6];
21545 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21546 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, 8838); nit_exit(1);}
21547 variable[8] = variable[0];
21548 variable[8] = ATTR_parser_nodes___AInitExpr____n_args(variable[8]) /*AInitExpr::_n_args*/;
21549 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
21550 variable[8] = variable[0];
21551 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
21552 continue_758: while(0);
21553 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
21554 }
21555 break_758: while(0);
21556 return_label757: while(false);
21557 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
21558 tracehead = trace.prev;
21559 return;
21560 }
21561 void parser_prod___ABraExpr___n_expr__eq(val_t self, val_t param0) {
21562 struct trace_t trace = {NULL, NULL, 8912, LOCATE_parser_prod___ABraExpr___n_expr__eq};
21563 val_t variable[4];
21564 void **closurevariable = NULL;
21565 trace.prev = tracehead; tracehead = &trace;
21566 trace.file = LOCATE_parser_prod;
21567 variable[0] = self;
21568 variable[1] = param0;
21569 variable[3] = variable[0];
21570 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
21571 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21572 if (UNTAG_Bool(variable[3])) { /*if*/
21573 variable[3] = variable[0];
21574 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21575 }
21576 return_label759: while(false);
21577 tracehead = trace.prev;
21578 return;
21579 }
21580 void parser_prod___ABraExpr___replace_child(val_t self, val_t param0, val_t param1) {
21581 struct trace_t trace = {NULL, NULL, 8947, LOCATE_parser_prod___ABraExpr___replace_child};
21582 val_t variable[8];
21583 void **closurevariable = NULL;
21584 trace.prev = tracehead; tracehead = &trace;
21585 trace.file = LOCATE_parser_prod;
21586 variable[0] = self;
21587 variable[1] = param0;
21588 variable[2] = param1;
21589 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::==*/)))))));
21590 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, 8949); nit_exit(1);}
21591 variable[4] = variable[0];
21592 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
21593 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21594 if (UNTAG_Bool(variable[4])) { /*if*/
21595 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21596 if (UNTAG_Bool(variable[4])) { /*if*/
21597 variable[4] = variable[0];
21598 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
21599 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21600 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, 8953); nit_exit(1);}
21601 variable[4] = variable[0];
21602 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
21603 } else { /*if*/
21604 variable[4] = variable[0];
21605 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
21606 }
21607 goto return_label760;
21608 }
21609 variable[4] = variable[0];
21610 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
21611 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21612 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
21613 variable[4] = variable[5];
21614 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
21615 while (true) { /*for*/
21616 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
21617 if (!UNTAG_Bool(variable[5])) break; /*for*/
21618 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
21619 variable[6] = variable[5];
21620 variable[7] = variable[0];
21621 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
21622 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
21623 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::==*/)))));
21624 if (UNTAG_Bool(variable[7])) { /*if*/
21625 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::==*/)))))));
21626 if (UNTAG_Bool(variable[7])) { /*if*/
21627 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21628 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, 8963); nit_exit(1);}
21629 variable[7] = variable[0];
21630 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
21631 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
21632 variable[7] = variable[0];
21633 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
21634 } else { /*if*/
21635 variable[7] = variable[0];
21636 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
21637 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
21638 }
21639 goto return_label760;
21640 }
21641 continue_761: while(0);
21642 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
21643 }
21644 break_761: while(0);
21645 variable[4] = variable[0];
21646 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
21647 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21648 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
21649 variable[4] = variable[5];
21650 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
21651 while (true) { /*for*/
21652 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
21653 if (!UNTAG_Bool(variable[5])) break; /*for*/
21654 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
21655 variable[6] = variable[5];
21656 variable[7] = variable[0];
21657 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
21658 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
21659 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::==*/)))));
21660 if (UNTAG_Bool(variable[7])) { /*if*/
21661 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::==*/)))))));
21662 if (UNTAG_Bool(variable[7])) { /*if*/
21663 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
21664 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, 8975); nit_exit(1);}
21665 variable[7] = variable[0];
21666 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
21667 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
21668 variable[7] = variable[0];
21669 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
21670 } else { /*if*/
21671 variable[7] = variable[0];
21672 variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
21673 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
21674 }
21675 goto return_label760;
21676 }
21677 continue_762: while(0);
21678 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
21679 }
21680 break_762: while(0);
21681 return_label760: while(false);
21682 tracehead = trace.prev;
21683 return;
21684 }
21685 void parser_prod___ABraExpr___visit_all(val_t self, val_t param0) {
21686 struct trace_t trace = {NULL, NULL, 8986, LOCATE_parser_prod___ABraExpr___visit_all};
21687 val_t variable[6];
21688 void **closurevariable = NULL;
21689 trace.prev = tracehead; tracehead = &trace;
21690 trace.file = LOCATE_parser_prod;
21691 variable[0] = self;
21692 variable[1] = param0;
21693 variable[3] = variable[0];
21694 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21695 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21696 if (UNTAG_Bool(variable[3])) { /*if*/
21697 variable[3] = variable[0];
21698 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21699 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21700 }
21701 variable[3] = variable[0];
21702 variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[3]) /*ABraFormExpr::_n_args*/;
21703 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
21704 while (true) { /*for*/
21705 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
21706 if (!UNTAG_Bool(variable[4])) break; /*for*/
21707 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
21708 variable[5] = variable[4];
21709 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
21710 continue_764: while(0);
21711 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
21712 }
21713 break_764: while(0);
21714 variable[3] = variable[0];
21715 variable[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[3]) /*ASendExpr::_n_closure_defs*/;
21716 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
21717 while (true) { /*for*/
21718 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
21719 if (!UNTAG_Bool(variable[4])) break; /*for*/
21720 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
21721 variable[5] = variable[4];
21722 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
21723 continue_765: while(0);
21724 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
21725 }
21726 break_765: while(0);
21727 return_label763: while(false);
21728 tracehead = trace.prev;
21729 return;
21730 }
21731 void parser_prod___ABraExpr___visit_all_reverse(val_t self, val_t param0) {
21732 struct trace_t trace = {NULL, NULL, 8999, LOCATE_parser_prod___ABraExpr___visit_all_reverse};
21733 val_t variable[5];
21734 void **closurevariable = NULL;
21735 trace.prev = tracehead; tracehead = &trace;
21736 trace.file = LOCATE_parser_prod;
21737 variable[0] = self;
21738 variable[1] = param0;
21739 variable[3] = variable[0];
21740 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21741 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
21742 if (UNTAG_Bool(variable[3])) { /*if*/
21743 variable[3] = variable[0];
21744 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
21745 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
21746 }
21747 variable[4] = variable[0];
21748 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
21749 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21750 variable[3] = variable[4];
21751 while (true) { /*while*/
21752 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
21753 if (!UNTAG_Bool(variable[4])) break; /* while*/
21754 variable[4] = variable[0];
21755 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
21756 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
21757 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
21758 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
21759 variable[3] = variable[4] /*i=*/;
21760 continue_767: while(0);
21761 }
21762 break_767: while(0);
21763 variable[4] = variable[0];
21764 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
21765 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21766 variable[3] = variable[4];
21767 while (true) { /*while*/
21768 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
21769 if (!UNTAG_Bool(variable[4])) break; /* while*/
21770 variable[4] = variable[0];
21771 variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
21772 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
21773 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
21774 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
21775 variable[3] = variable[4] /*i=*/;
21776 continue_768: while(0);
21777 }
21778 break_768: while(0);
21779 return_label766: while(false);
21780 tracehead = trace.prev;
21781 return;
21782 }
21783 void parser_prod___ABraExpr___empty_init(val_t self, int* init_table) {
21784 struct trace_t trace = {NULL, NULL, 8920, LOCATE_parser_prod___ABraExpr___empty_init};
21785 val_t variable[2];
21786 void **closurevariable = NULL;
21787 trace.prev = tracehead; tracehead = &trace;
21788 trace.file = LOCATE_parser_prod;
21789 variable[0] = self;
21790 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i]) return;
21791 return_label769: while(false);
21792 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
21793 tracehead = trace.prev;
21794 return;
21795 }
21796 void parser_prod___ABraExpr___init_abraexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
21797 struct trace_t trace = {NULL, NULL, 8922, LOCATE_parser_prod___ABraExpr___init_abraexpr};
21798 val_t variable[9];
21799 void **closurevariable = NULL;
21800 trace.prev = tracehead; tracehead = &trace;
21801 trace.file = LOCATE_parser_prod;
21802 variable[0] = self;
21803 variable[1] = param0;
21804 variable[2] = param1;
21805 variable[3] = param2;
21806 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i]) return;
21807 variable[5] = variable[0];
21808 CALL_parser_prod___ABraExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ABraExpr::empty_init*/;
21809 variable[5] = variable[0];
21810 ATTR_parser_nodes___ASendExpr____n_expr(variable[5]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
21811 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::==*/)))))));
21812 if (UNTAG_Bool(variable[5])) { /*if*/
21813 variable[5] = variable[0];
21814 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
21815 }
21816 variable[5] = variable[0];
21817 variable[6] = NEW_List_list___List___init(); /*new List[PExpr]*/
21818 ATTR_parser_nodes___ABraFormExpr____n_args(variable[5]) /*ABraFormExpr::_n_args*/ = variable[6];
21819 variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
21820 while (true) { /*for*/
21821 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
21822 if (!UNTAG_Bool(variable[6])) break; /*for*/
21823 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
21824 variable[7] = variable[6];
21825 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21826 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, 8935); nit_exit(1);}
21827 variable[8] = variable[0];
21828 variable[8] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[8]) /*ABraFormExpr::_n_args*/;
21829 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
21830 variable[8] = variable[0];
21831 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
21832 continue_771: while(0);
21833 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
21834 }
21835 break_771: while(0);
21836 variable[5] = variable[0];
21837 variable[6] = NEW_List_list___List___init(); /*new List[PClosureDef]*/
21838 ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[5]) /*ASendExpr::_n_closure_defs*/ = variable[6];
21839 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_closure_defs*/)( variable[3] /*n_closure_defs*/) /*AbstractArray::iterator*/;
21840 while (true) { /*for*/
21841 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
21842 if (!UNTAG_Bool(variable[6])) break; /*for*/
21843 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
21844 variable[7] = variable[6];
21845 variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
21846 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, 8941); nit_exit(1);}
21847 variable[8] = variable[0];
21848 variable[8] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[8]) /*ASendExpr::_n_closure_defs*/;
21849 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*n*/) /*IndexedCollection::add*/;
21850 variable[8] = variable[0];
21851 CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
21852 continue_772: while(0);
21853 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
21854 }
21855 break_772: while(0);
21856 return_label770: while(false);
21857 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
21858 tracehead = trace.prev;
21859 return;
21860 }
21861 void parser_prod___ABraAssignExpr___n_expr__eq(val_t self, val_t param0) {
21862 struct trace_t trace = {NULL, NULL, 9021, LOCATE_parser_prod___ABraAssignExpr___n_expr__eq};
21863 val_t variable[4];
21864 void **closurevariable = NULL;
21865 trace.prev = tracehead; tracehead = &trace;
21866 trace.file = LOCATE_parser_prod;
21867 variable[0] = self;
21868 variable[1] = param0;
21869 variable[3] = variable[0];
21870 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
21871 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21872 if (UNTAG_Bool(variable[3])) { /*if*/
21873 variable[3] = variable[0];
21874 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21875 }
21876 return_label773: while(false);
21877 tracehead = trace.prev;
21878 return;
21879 }
21880 void parser_prod___ABraAssignExpr___n_assign__eq(val_t self, val_t param0) {
21881 struct trace_t trace = {NULL, NULL, 9028, LOCATE_parser_prod___ABraAssignExpr___n_assign__eq};
21882 val_t variable[4];
21883 void **closurevariable = NULL;
21884 trace.prev = tracehead; tracehead = &trace;
21885 trace.file = LOCATE_parser_prod;
21886 variable[0] = self;
21887 variable[1] = param0;
21888 variable[3] = variable[0];
21889 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
21890 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21891 if (UNTAG_Bool(variable[3])) { /*if*/
21892 variable[3] = variable[0];
21893 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21894 }
21895 return_label774: while(false);
21896 tracehead = trace.prev;
21897 return;
21898 }
21899 void parser_prod___ABraAssignExpr___n_value__eq(val_t self, val_t param0) {
21900 struct trace_t trace = {NULL, NULL, 9035, LOCATE_parser_prod___ABraAssignExpr___n_value__eq};
21901 val_t variable[4];
21902 void **closurevariable = NULL;
21903 trace.prev = tracehead; tracehead = &trace;
21904 trace.file = LOCATE_parser_prod;
21905 variable[0] = self;
21906 variable[1] = param0;
21907 variable[3] = variable[0];
21908 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
21909 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21910 if (UNTAG_Bool(variable[3])) { /*if*/
21911 variable[3] = variable[0];
21912 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
21913 }
21914 return_label775: while(false);
21915 tracehead = trace.prev;
21916 return;
21917 }
21918 void parser_prod___ABraAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
21919 struct trace_t trace = {NULL, NULL, 9073, LOCATE_parser_prod___ABraAssignExpr___replace_child};
21920 val_t variable[8];
21921 void **closurevariable = NULL;
21922 trace.prev = tracehead; tracehead = &trace;
21923 trace.file = LOCATE_parser_prod;
21924 variable[0] = self;
21925 variable[1] = param0;
21926 variable[2] = param1;
21927 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::==*/)))))));
21928 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, 9075); nit_exit(1);}
21929 variable[4] = variable[0];
21930 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
21931 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21932 if (UNTAG_Bool(variable[4])) { /*if*/
21933 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21934 if (UNTAG_Bool(variable[4])) { /*if*/
21935 variable[4] = variable[0];
21936 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
21937 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21938 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, 9079); nit_exit(1);}
21939 variable[4] = variable[0];
21940 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
21941 } else { /*if*/
21942 variable[4] = variable[0];
21943 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
21944 }
21945 goto return_label776;
21946 }
21947 variable[4] = variable[0];
21948 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
21949 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
21950 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
21951 variable[4] = variable[5];
21952 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
21953 while (true) { /*for*/
21954 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
21955 if (!UNTAG_Bool(variable[5])) break; /*for*/
21956 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
21957 variable[6] = variable[5];
21958 variable[7] = variable[0];
21959 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
21960 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
21961 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::==*/)))));
21962 if (UNTAG_Bool(variable[7])) { /*if*/
21963 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::==*/)))))));
21964 if (UNTAG_Bool(variable[7])) { /*if*/
21965 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
21966 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, 9089); nit_exit(1);}
21967 variable[7] = variable[0];
21968 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
21969 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
21970 variable[7] = variable[0];
21971 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
21972 } else { /*if*/
21973 variable[7] = variable[0];
21974 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
21975 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
21976 }
21977 goto return_label776;
21978 }
21979 continue_777: while(0);
21980 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
21981 }
21982 break_777: while(0);
21983 variable[4] = variable[0];
21984 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
21985 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
21986 if (UNTAG_Bool(variable[4])) { /*if*/
21987 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
21988 if (UNTAG_Bool(variable[4])) { /*if*/
21989 variable[4] = variable[0];
21990 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
21991 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
21992 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, 9101); nit_exit(1);}
21993 variable[4] = variable[0];
21994 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
21995 } else { /*if*/
21996 variable[4] = variable[0];
21997 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
21998 }
21999 goto return_label776;
22000 }
22001 variable[4] = variable[0];
22002 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
22003 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22004 if (UNTAG_Bool(variable[4])) { /*if*/
22005 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22006 if (UNTAG_Bool(variable[4])) { /*if*/
22007 variable[4] = variable[0];
22008 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22009 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22010 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, 9111); nit_exit(1);}
22011 variable[4] = variable[0];
22012 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
22013 } else { /*if*/
22014 variable[4] = variable[0];
22015 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
22016 }
22017 goto return_label776;
22018 }
22019 return_label776: while(false);
22020 tracehead = trace.prev;
22021 return;
22022 }
22023 void parser_prod___ABraAssignExpr___visit_all(val_t self, val_t param0) {
22024 struct trace_t trace = {NULL, NULL, 9120, LOCATE_parser_prod___ABraAssignExpr___visit_all};
22025 val_t variable[6];
22026 void **closurevariable = NULL;
22027 trace.prev = tracehead; tracehead = &trace;
22028 trace.file = LOCATE_parser_prod;
22029 variable[0] = self;
22030 variable[1] = param0;
22031 variable[3] = variable[0];
22032 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22033 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22034 if (UNTAG_Bool(variable[3])) { /*if*/
22035 variable[3] = variable[0];
22036 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22037 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22038 }
22039 variable[3] = variable[0];
22040 variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[3]) /*ABraFormExpr::_n_args*/;
22041 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
22042 while (true) { /*for*/
22043 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
22044 if (!UNTAG_Bool(variable[4])) break; /*for*/
22045 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
22046 variable[5] = variable[4];
22047 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
22048 continue_779: while(0);
22049 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
22050 }
22051 break_779: while(0);
22052 variable[3] = variable[0];
22053 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22054 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22055 if (UNTAG_Bool(variable[3])) { /*if*/
22056 variable[3] = variable[0];
22057 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22058 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22059 }
22060 variable[3] = variable[0];
22061 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22062 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22063 if (UNTAG_Bool(variable[3])) { /*if*/
22064 variable[3] = variable[0];
22065 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22066 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22067 }
22068 return_label778: while(false);
22069 tracehead = trace.prev;
22070 return;
22071 }
22072 void parser_prod___ABraAssignExpr___visit_all_reverse(val_t self, val_t param0) {
22073 struct trace_t trace = {NULL, NULL, 9136, LOCATE_parser_prod___ABraAssignExpr___visit_all_reverse};
22074 val_t variable[5];
22075 void **closurevariable = NULL;
22076 trace.prev = tracehead; tracehead = &trace;
22077 trace.file = LOCATE_parser_prod;
22078 variable[0] = self;
22079 variable[1] = param0;
22080 variable[3] = variable[0];
22081 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22082 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22083 if (UNTAG_Bool(variable[3])) { /*if*/
22084 variable[3] = variable[0];
22085 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22086 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22087 }
22088 variable[4] = variable[0];
22089 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
22090 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22091 variable[3] = variable[4];
22092 while (true) { /*while*/
22093 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
22094 if (!UNTAG_Bool(variable[4])) break; /* while*/
22095 variable[4] = variable[0];
22096 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
22097 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
22098 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
22099 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
22100 variable[3] = variable[4] /*i=*/;
22101 continue_781: while(0);
22102 }
22103 break_781: while(0);
22104 variable[3] = variable[0];
22105 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22106 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22107 if (UNTAG_Bool(variable[3])) { /*if*/
22108 variable[3] = variable[0];
22109 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22110 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22111 }
22112 variable[3] = variable[0];
22113 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22114 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22115 if (UNTAG_Bool(variable[3])) { /*if*/
22116 variable[3] = variable[0];
22117 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22118 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22119 }
22120 return_label780: while(false);
22121 tracehead = trace.prev;
22122 return;
22123 }
22124 void parser_prod___ABraAssignExpr___empty_init(val_t self, int* init_table) {
22125 struct trace_t trace = {NULL, NULL, 9043, LOCATE_parser_prod___ABraAssignExpr___empty_init};
22126 val_t variable[2];
22127 void **closurevariable = NULL;
22128 trace.prev = tracehead; tracehead = &trace;
22129 trace.file = LOCATE_parser_prod;
22130 variable[0] = self;
22131 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
22132 return_label782: while(false);
22133 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
22134 tracehead = trace.prev;
22135 return;
22136 }
22137 void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
22138 struct trace_t trace = {NULL, NULL, 9045, LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr};
22139 val_t variable[10];
22140 void **closurevariable = NULL;
22141 trace.prev = tracehead; tracehead = &trace;
22142 trace.file = LOCATE_parser_prod;
22143 variable[0] = self;
22144 variable[1] = param0;
22145 variable[2] = param1;
22146 variable[3] = param2;
22147 variable[4] = param3;
22148 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
22149 variable[6] = variable[0];
22150 CALL_parser_prod___ABraAssignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ABraAssignExpr::empty_init*/;
22151 variable[6] = variable[0];
22152 ATTR_parser_nodes___ASendExpr____n_expr(variable[6]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
22153 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::==*/)))))));
22154 if (UNTAG_Bool(variable[6])) { /*if*/
22155 variable[6] = variable[0];
22156 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
22157 }
22158 variable[6] = variable[0];
22159 variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
22160 ATTR_parser_nodes___ABraFormExpr____n_args(variable[6]) /*ABraFormExpr::_n_args*/ = variable[7];
22161 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
22162 while (true) { /*for*/
22163 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
22164 if (!UNTAG_Bool(variable[7])) break; /*for*/
22165 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
22166 variable[8] = variable[7];
22167 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22168 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, 9059); nit_exit(1);}
22169 variable[9] = variable[0];
22170 variable[9] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[9]) /*ABraFormExpr::_n_args*/;
22171 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
22172 variable[9] = variable[0];
22173 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
22174 continue_784: while(0);
22175 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
22176 }
22177 break_784: while(0);
22178 variable[6] = variable[0];
22179 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[6]) /*AAssignFormExpr::_n_assign*/ = variable[3] /*n_assign*/;
22180 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::==*/)))))));
22181 if (UNTAG_Bool(variable[6])) { /*if*/
22182 variable[6] = variable[0];
22183 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[6]) /*PNode::parent=*/;
22184 }
22185 variable[6] = variable[0];
22186 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[6]) /*AAssignFormExpr::_n_value*/ = variable[4] /*n_value*/;
22187 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::==*/)))))));
22188 if (UNTAG_Bool(variable[6])) { /*if*/
22189 variable[6] = variable[0];
22190 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
22191 }
22192 return_label783: while(false);
22193 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
22194 tracehead = trace.prev;
22195 return;
22196 }
22197 void parser_prod___ABraReassignExpr___n_expr__eq(val_t self, val_t param0) {
22198 struct trace_t trace = {NULL, NULL, 9157, LOCATE_parser_prod___ABraReassignExpr___n_expr__eq};
22199 val_t variable[4];
22200 void **closurevariable = NULL;
22201 trace.prev = tracehead; tracehead = &trace;
22202 trace.file = LOCATE_parser_prod;
22203 variable[0] = self;
22204 variable[1] = param0;
22205 variable[3] = variable[0];
22206 ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ = variable[1] /*n*/;
22207 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22208 if (UNTAG_Bool(variable[3])) { /*if*/
22209 variable[3] = variable[0];
22210 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22211 }
22212 return_label785: while(false);
22213 tracehead = trace.prev;
22214 return;
22215 }
22216 void parser_prod___ABraReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
22217 struct trace_t trace = {NULL, NULL, 9164, LOCATE_parser_prod___ABraReassignExpr___n_assign_op__eq};
22218 val_t variable[4];
22219 void **closurevariable = NULL;
22220 trace.prev = tracehead; tracehead = &trace;
22221 trace.file = LOCATE_parser_prod;
22222 variable[0] = self;
22223 variable[1] = param0;
22224 variable[3] = variable[0];
22225 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
22226 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22227 if (UNTAG_Bool(variable[3])) { /*if*/
22228 variable[3] = variable[0];
22229 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22230 }
22231 return_label786: while(false);
22232 tracehead = trace.prev;
22233 return;
22234 }
22235 void parser_prod___ABraReassignExpr___n_value__eq(val_t self, val_t param0) {
22236 struct trace_t trace = {NULL, NULL, 9171, LOCATE_parser_prod___ABraReassignExpr___n_value__eq};
22237 val_t variable[4];
22238 void **closurevariable = NULL;
22239 trace.prev = tracehead; tracehead = &trace;
22240 trace.file = LOCATE_parser_prod;
22241 variable[0] = self;
22242 variable[1] = param0;
22243 variable[3] = variable[0];
22244 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
22245 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22246 if (UNTAG_Bool(variable[3])) { /*if*/
22247 variable[3] = variable[0];
22248 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22249 }
22250 return_label787: while(false);
22251 tracehead = trace.prev;
22252 return;
22253 }
22254 void parser_prod___ABraReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
22255 struct trace_t trace = {NULL, NULL, 9209, LOCATE_parser_prod___ABraReassignExpr___replace_child};
22256 val_t variable[8];
22257 void **closurevariable = NULL;
22258 trace.prev = tracehead; tracehead = &trace;
22259 trace.file = LOCATE_parser_prod;
22260 variable[0] = self;
22261 variable[1] = param0;
22262 variable[2] = param1;
22263 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::==*/)))))));
22264 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, 9211); nit_exit(1);}
22265 variable[4] = variable[0];
22266 variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
22267 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22268 if (UNTAG_Bool(variable[4])) { /*if*/
22269 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22270 if (UNTAG_Bool(variable[4])) { /*if*/
22271 variable[4] = variable[0];
22272 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22273 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22274 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, 9215); nit_exit(1);}
22275 variable[4] = variable[0];
22276 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = variable[2] /*new_child*/;
22277 } else { /*if*/
22278 variable[4] = variable[0];
22279 ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
22280 }
22281 goto return_label788;
22282 }
22283 variable[4] = variable[0];
22284 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
22285 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22286 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
22287 variable[4] = variable[5];
22288 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
22289 while (true) { /*for*/
22290 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
22291 if (!UNTAG_Bool(variable[5])) break; /*for*/
22292 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
22293 variable[6] = variable[5];
22294 variable[7] = variable[0];
22295 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
22296 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
22297 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::==*/)))));
22298 if (UNTAG_Bool(variable[7])) { /*if*/
22299 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::==*/)))))));
22300 if (UNTAG_Bool(variable[7])) { /*if*/
22301 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22302 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, 9225); nit_exit(1);}
22303 variable[7] = variable[0];
22304 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
22305 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
22306 variable[7] = variable[0];
22307 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
22308 } else { /*if*/
22309 variable[7] = variable[0];
22310 variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
22311 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
22312 }
22313 goto return_label788;
22314 }
22315 continue_789: while(0);
22316 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
22317 }
22318 break_789: while(0);
22319 variable[4] = variable[0];
22320 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
22321 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22322 if (UNTAG_Bool(variable[4])) { /*if*/
22323 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22324 if (UNTAG_Bool(variable[4])) { /*if*/
22325 variable[4] = variable[0];
22326 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22327 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
22328 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, 9237); nit_exit(1);}
22329 variable[4] = variable[0];
22330 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
22331 } else { /*if*/
22332 variable[4] = variable[0];
22333 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
22334 }
22335 goto return_label788;
22336 }
22337 variable[4] = variable[0];
22338 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
22339 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22340 if (UNTAG_Bool(variable[4])) { /*if*/
22341 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22342 if (UNTAG_Bool(variable[4])) { /*if*/
22343 variable[4] = variable[0];
22344 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22345 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22346 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, 9247); nit_exit(1);}
22347 variable[4] = variable[0];
22348 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
22349 } else { /*if*/
22350 variable[4] = variable[0];
22351 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
22352 }
22353 goto return_label788;
22354 }
22355 return_label788: while(false);
22356 tracehead = trace.prev;
22357 return;
22358 }
22359 void parser_prod___ABraReassignExpr___visit_all(val_t self, val_t param0) {
22360 struct trace_t trace = {NULL, NULL, 9256, LOCATE_parser_prod___ABraReassignExpr___visit_all};
22361 val_t variable[6];
22362 void **closurevariable = NULL;
22363 trace.prev = tracehead; tracehead = &trace;
22364 trace.file = LOCATE_parser_prod;
22365 variable[0] = self;
22366 variable[1] = param0;
22367 variable[3] = variable[0];
22368 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22369 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22370 if (UNTAG_Bool(variable[3])) { /*if*/
22371 variable[3] = variable[0];
22372 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22373 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22374 }
22375 variable[3] = variable[0];
22376 variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[3]) /*ABraFormExpr::_n_args*/;
22377 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
22378 while (true) { /*for*/
22379 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
22380 if (!UNTAG_Bool(variable[4])) break; /*for*/
22381 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
22382 variable[5] = variable[4];
22383 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
22384 continue_791: while(0);
22385 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
22386 }
22387 break_791: while(0);
22388 variable[3] = variable[0];
22389 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
22390 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22391 if (UNTAG_Bool(variable[3])) { /*if*/
22392 variable[3] = variable[0];
22393 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
22394 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22395 }
22396 variable[3] = variable[0];
22397 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
22398 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22399 if (UNTAG_Bool(variable[3])) { /*if*/
22400 variable[3] = variable[0];
22401 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
22402 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22403 }
22404 return_label790: while(false);
22405 tracehead = trace.prev;
22406 return;
22407 }
22408 void parser_prod___ABraReassignExpr___visit_all_reverse(val_t self, val_t param0) {
22409 struct trace_t trace = {NULL, NULL, 9272, LOCATE_parser_prod___ABraReassignExpr___visit_all_reverse};
22410 val_t variable[5];
22411 void **closurevariable = NULL;
22412 trace.prev = tracehead; tracehead = &trace;
22413 trace.file = LOCATE_parser_prod;
22414 variable[0] = self;
22415 variable[1] = param0;
22416 variable[3] = variable[0];
22417 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22418 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22419 if (UNTAG_Bool(variable[3])) { /*if*/
22420 variable[3] = variable[0];
22421 variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
22422 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22423 }
22424 variable[4] = variable[0];
22425 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
22426 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
22427 variable[3] = variable[4];
22428 while (true) { /*while*/
22429 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
22430 if (!UNTAG_Bool(variable[4])) break; /* while*/
22431 variable[4] = variable[0];
22432 variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
22433 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
22434 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
22435 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
22436 variable[3] = variable[4] /*i=*/;
22437 continue_793: while(0);
22438 }
22439 break_793: while(0);
22440 variable[3] = variable[0];
22441 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
22442 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22443 if (UNTAG_Bool(variable[3])) { /*if*/
22444 variable[3] = variable[0];
22445 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
22446 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22447 }
22448 variable[3] = variable[0];
22449 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
22450 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22451 if (UNTAG_Bool(variable[3])) { /*if*/
22452 variable[3] = variable[0];
22453 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
22454 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22455 }
22456 return_label792: while(false);
22457 tracehead = trace.prev;
22458 return;
22459 }
22460 void parser_prod___ABraReassignExpr___empty_init(val_t self, int* init_table) {
22461 struct trace_t trace = {NULL, NULL, 9179, LOCATE_parser_prod___ABraReassignExpr___empty_init};
22462 val_t variable[2];
22463 void **closurevariable = NULL;
22464 trace.prev = tracehead; tracehead = &trace;
22465 trace.file = LOCATE_parser_prod;
22466 variable[0] = self;
22467 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
22468 return_label794: while(false);
22469 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
22470 tracehead = trace.prev;
22471 return;
22472 }
22473 void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
22474 struct trace_t trace = {NULL, NULL, 9181, LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr};
22475 val_t variable[10];
22476 void **closurevariable = NULL;
22477 trace.prev = tracehead; tracehead = &trace;
22478 trace.file = LOCATE_parser_prod;
22479 variable[0] = self;
22480 variable[1] = param0;
22481 variable[2] = param1;
22482 variable[3] = param2;
22483 variable[4] = param3;
22484 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
22485 variable[6] = variable[0];
22486 CALL_parser_prod___ABraReassignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ABraReassignExpr::empty_init*/;
22487 variable[6] = variable[0];
22488 ATTR_parser_nodes___ASendExpr____n_expr(variable[6]) /*ASendExpr::_n_expr*/ = variable[1] /*n_expr*/;
22489 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::==*/)))))));
22490 if (UNTAG_Bool(variable[6])) { /*if*/
22491 variable[6] = variable[0];
22492 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
22493 }
22494 variable[6] = variable[0];
22495 variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
22496 ATTR_parser_nodes___ABraFormExpr____n_args(variable[6]) /*ABraFormExpr::_n_args*/ = variable[7];
22497 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
22498 while (true) { /*for*/
22499 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
22500 if (!UNTAG_Bool(variable[7])) break; /*for*/
22501 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
22502 variable[8] = variable[7];
22503 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22504 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, 9195); nit_exit(1);}
22505 variable[9] = variable[0];
22506 variable[9] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[9]) /*ABraFormExpr::_n_args*/;
22507 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
22508 variable[9] = variable[0];
22509 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
22510 continue_796: while(0);
22511 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
22512 }
22513 break_796: while(0);
22514 variable[6] = variable[0];
22515 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[6]) /*AReassignFormExpr::_n_assign_op*/ = variable[3] /*n_assign_op*/;
22516 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::==*/)))))));
22517 if (UNTAG_Bool(variable[6])) { /*if*/
22518 variable[6] = variable[0];
22519 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, variable[6]) /*PNode::parent=*/;
22520 }
22521 variable[6] = variable[0];
22522 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[6]) /*AReassignFormExpr::_n_value*/ = variable[4] /*n_value*/;
22523 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::==*/)))))));
22524 if (UNTAG_Bool(variable[6])) { /*if*/
22525 variable[6] = variable[0];
22526 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
22527 }
22528 return_label795: while(false);
22529 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
22530 tracehead = trace.prev;
22531 return;
22532 }
22533 void parser_prod___AVarExpr___n_id__eq(val_t self, val_t param0) {
22534 struct trace_t trace = {NULL, NULL, 9293, LOCATE_parser_prod___AVarExpr___n_id__eq};
22535 val_t variable[4];
22536 void **closurevariable = NULL;
22537 trace.prev = tracehead; tracehead = &trace;
22538 trace.file = LOCATE_parser_prod;
22539 variable[0] = self;
22540 variable[1] = param0;
22541 variable[3] = variable[0];
22542 ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ = variable[1] /*n*/;
22543 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22544 if (UNTAG_Bool(variable[3])) { /*if*/
22545 variable[3] = variable[0];
22546 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22547 }
22548 return_label797: while(false);
22549 tracehead = trace.prev;
22550 return;
22551 }
22552 void parser_prod___AVarExpr___replace_child(val_t self, val_t param0, val_t param1) {
22553 struct trace_t trace = {NULL, NULL, 9314, LOCATE_parser_prod___AVarExpr___replace_child};
22554 val_t variable[5];
22555 void **closurevariable = NULL;
22556 trace.prev = tracehead; tracehead = &trace;
22557 trace.file = LOCATE_parser_prod;
22558 variable[0] = self;
22559 variable[1] = param0;
22560 variable[2] = param1;
22561 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::==*/)))))));
22562 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, 9316); nit_exit(1);}
22563 variable[4] = variable[0];
22564 variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/;
22565 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22566 if (UNTAG_Bool(variable[4])) { /*if*/
22567 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22568 if (UNTAG_Bool(variable[4])) { /*if*/
22569 variable[4] = variable[0];
22570 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22571 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
22572 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, 9320); nit_exit(1);}
22573 variable[4] = variable[0];
22574 ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/ = variable[2] /*new_child*/;
22575 } else { /*if*/
22576 variable[4] = variable[0];
22577 ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/ = NIT_NULL /*null*/;
22578 }
22579 goto return_label798;
22580 }
22581 return_label798: while(false);
22582 tracehead = trace.prev;
22583 return;
22584 }
22585 void parser_prod___AVarExpr___visit_all(val_t self, val_t param0) {
22586 struct trace_t trace = {NULL, NULL, 9329, LOCATE_parser_prod___AVarExpr___visit_all};
22587 val_t variable[4];
22588 void **closurevariable = NULL;
22589 trace.prev = tracehead; tracehead = &trace;
22590 trace.file = LOCATE_parser_prod;
22591 variable[0] = self;
22592 variable[1] = param0;
22593 variable[3] = variable[0];
22594 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22595 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22596 if (UNTAG_Bool(variable[3])) { /*if*/
22597 variable[3] = variable[0];
22598 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22599 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22600 }
22601 return_label799: while(false);
22602 tracehead = trace.prev;
22603 return;
22604 }
22605 void parser_prod___AVarExpr___visit_all_reverse(val_t self, val_t param0) {
22606 struct trace_t trace = {NULL, NULL, 9336, LOCATE_parser_prod___AVarExpr___visit_all_reverse};
22607 val_t variable[4];
22608 void **closurevariable = NULL;
22609 trace.prev = tracehead; tracehead = &trace;
22610 trace.file = LOCATE_parser_prod;
22611 variable[0] = self;
22612 variable[1] = param0;
22613 variable[3] = variable[0];
22614 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22615 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22616 if (UNTAG_Bool(variable[3])) { /*if*/
22617 variable[3] = variable[0];
22618 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22619 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22620 }
22621 return_label800: while(false);
22622 tracehead = trace.prev;
22623 return;
22624 }
22625 void parser_prod___AVarExpr___empty_init(val_t self, int* init_table) {
22626 struct trace_t trace = {NULL, NULL, 9301, LOCATE_parser_prod___AVarExpr___empty_init};
22627 val_t variable[2];
22628 void **closurevariable = NULL;
22629 trace.prev = tracehead; tracehead = &trace;
22630 trace.file = LOCATE_parser_prod;
22631 variable[0] = self;
22632 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i]) return;
22633 return_label801: while(false);
22634 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
22635 tracehead = trace.prev;
22636 return;
22637 }
22638 void parser_prod___AVarExpr___init_avarexpr(val_t self, val_t param0, int* init_table) {
22639 struct trace_t trace = {NULL, NULL, 9303, LOCATE_parser_prod___AVarExpr___init_avarexpr};
22640 val_t variable[4];
22641 void **closurevariable = NULL;
22642 trace.prev = tracehead; tracehead = &trace;
22643 trace.file = LOCATE_parser_prod;
22644 variable[0] = self;
22645 variable[1] = param0;
22646 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i]) return;
22647 variable[3] = variable[0];
22648 CALL_parser_prod___AVarExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AVarExpr::empty_init*/;
22649 variable[3] = variable[0];
22650 ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ = variable[1] /*n_id*/;
22651 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::==*/)))))));
22652 if (UNTAG_Bool(variable[3])) { /*if*/
22653 variable[3] = variable[0];
22654 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[3]) /*PNode::parent=*/;
22655 }
22656 return_label802: while(false);
22657 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
22658 tracehead = trace.prev;
22659 return;
22660 }
22661 void parser_prod___AVarAssignExpr___n_id__eq(val_t self, val_t param0) {
22662 struct trace_t trace = {NULL, NULL, 9344, LOCATE_parser_prod___AVarAssignExpr___n_id__eq};
22663 val_t variable[4];
22664 void **closurevariable = NULL;
22665 trace.prev = tracehead; tracehead = &trace;
22666 trace.file = LOCATE_parser_prod;
22667 variable[0] = self;
22668 variable[1] = param0;
22669 variable[3] = variable[0];
22670 ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ = variable[1] /*n*/;
22671 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22672 if (UNTAG_Bool(variable[3])) { /*if*/
22673 variable[3] = variable[0];
22674 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22675 }
22676 return_label803: while(false);
22677 tracehead = trace.prev;
22678 return;
22679 }
22680 void parser_prod___AVarAssignExpr___n_assign__eq(val_t self, val_t param0) {
22681 struct trace_t trace = {NULL, NULL, 9351, LOCATE_parser_prod___AVarAssignExpr___n_assign__eq};
22682 val_t variable[4];
22683 void **closurevariable = NULL;
22684 trace.prev = tracehead; tracehead = &trace;
22685 trace.file = LOCATE_parser_prod;
22686 variable[0] = self;
22687 variable[1] = param0;
22688 variable[3] = variable[0];
22689 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ = variable[1] /*n*/;
22690 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22691 if (UNTAG_Bool(variable[3])) { /*if*/
22692 variable[3] = variable[0];
22693 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22694 }
22695 return_label804: while(false);
22696 tracehead = trace.prev;
22697 return;
22698 }
22699 void parser_prod___AVarAssignExpr___n_value__eq(val_t self, val_t param0) {
22700 struct trace_t trace = {NULL, NULL, 9358, LOCATE_parser_prod___AVarAssignExpr___n_value__eq};
22701 val_t variable[4];
22702 void **closurevariable = NULL;
22703 trace.prev = tracehead; tracehead = &trace;
22704 trace.file = LOCATE_parser_prod;
22705 variable[0] = self;
22706 variable[1] = param0;
22707 variable[3] = variable[0];
22708 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ = variable[1] /*n*/;
22709 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22710 if (UNTAG_Bool(variable[3])) { /*if*/
22711 variable[3] = variable[0];
22712 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22713 }
22714 return_label805: while(false);
22715 tracehead = trace.prev;
22716 return;
22717 }
22718 void parser_prod___AVarAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
22719 struct trace_t trace = {NULL, NULL, 9389, LOCATE_parser_prod___AVarAssignExpr___replace_child};
22720 val_t variable[5];
22721 void **closurevariable = NULL;
22722 trace.prev = tracehead; tracehead = &trace;
22723 trace.file = LOCATE_parser_prod;
22724 variable[0] = self;
22725 variable[1] = param0;
22726 variable[2] = param1;
22727 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::==*/)))))));
22728 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, 9391); nit_exit(1);}
22729 variable[4] = variable[0];
22730 variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/;
22731 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22732 if (UNTAG_Bool(variable[4])) { /*if*/
22733 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22734 if (UNTAG_Bool(variable[4])) { /*if*/
22735 variable[4] = variable[0];
22736 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22737 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
22738 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, 9395); nit_exit(1);}
22739 variable[4] = variable[0];
22740 ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/ = variable[2] /*new_child*/;
22741 } else { /*if*/
22742 variable[4] = variable[0];
22743 ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/ = NIT_NULL /*null*/;
22744 }
22745 goto return_label806;
22746 }
22747 variable[4] = variable[0];
22748 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
22749 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22750 if (UNTAG_Bool(variable[4])) { /*if*/
22751 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22752 if (UNTAG_Bool(variable[4])) { /*if*/
22753 variable[4] = variable[0];
22754 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22755 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
22756 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, 9405); nit_exit(1);}
22757 variable[4] = variable[0];
22758 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*new_child*/;
22759 } else { /*if*/
22760 variable[4] = variable[0];
22761 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/ = NIT_NULL /*null*/;
22762 }
22763 goto return_label806;
22764 }
22765 variable[4] = variable[0];
22766 variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
22767 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22768 if (UNTAG_Bool(variable[4])) { /*if*/
22769 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22770 if (UNTAG_Bool(variable[4])) { /*if*/
22771 variable[4] = variable[0];
22772 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22773 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
22774 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, 9415); nit_exit(1);}
22775 variable[4] = variable[0];
22776 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = variable[2] /*new_child*/;
22777 } else { /*if*/
22778 variable[4] = variable[0];
22779 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/ = NIT_NULL /*null*/;
22780 }
22781 goto return_label806;
22782 }
22783 return_label806: while(false);
22784 tracehead = trace.prev;
22785 return;
22786 }
22787 void parser_prod___AVarAssignExpr___visit_all(val_t self, val_t param0) {
22788 struct trace_t trace = {NULL, NULL, 9424, LOCATE_parser_prod___AVarAssignExpr___visit_all};
22789 val_t variable[4];
22790 void **closurevariable = NULL;
22791 trace.prev = tracehead; tracehead = &trace;
22792 trace.file = LOCATE_parser_prod;
22793 variable[0] = self;
22794 variable[1] = param0;
22795 variable[3] = variable[0];
22796 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22797 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22798 if (UNTAG_Bool(variable[3])) { /*if*/
22799 variable[3] = variable[0];
22800 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22801 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22802 }
22803 variable[3] = variable[0];
22804 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22805 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22806 if (UNTAG_Bool(variable[3])) { /*if*/
22807 variable[3] = variable[0];
22808 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22809 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22810 }
22811 variable[3] = variable[0];
22812 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22813 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22814 if (UNTAG_Bool(variable[3])) { /*if*/
22815 variable[3] = variable[0];
22816 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22817 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22818 }
22819 return_label807: while(false);
22820 tracehead = trace.prev;
22821 return;
22822 }
22823 void parser_prod___AVarAssignExpr___visit_all_reverse(val_t self, val_t param0) {
22824 struct trace_t trace = {NULL, NULL, 9437, LOCATE_parser_prod___AVarAssignExpr___visit_all_reverse};
22825 val_t variable[4];
22826 void **closurevariable = NULL;
22827 trace.prev = tracehead; tracehead = &trace;
22828 trace.file = LOCATE_parser_prod;
22829 variable[0] = self;
22830 variable[1] = param0;
22831 variable[3] = variable[0];
22832 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22833 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22834 if (UNTAG_Bool(variable[3])) { /*if*/
22835 variable[3] = variable[0];
22836 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
22837 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22838 }
22839 variable[3] = variable[0];
22840 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22841 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22842 if (UNTAG_Bool(variable[3])) { /*if*/
22843 variable[3] = variable[0];
22844 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
22845 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22846 }
22847 variable[3] = variable[0];
22848 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22849 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
22850 if (UNTAG_Bool(variable[3])) { /*if*/
22851 variable[3] = variable[0];
22852 variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
22853 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
22854 }
22855 return_label808: while(false);
22856 tracehead = trace.prev;
22857 return;
22858 }
22859 void parser_prod___AVarAssignExpr___empty_init(val_t self, int* init_table) {
22860 struct trace_t trace = {NULL, NULL, 9366, LOCATE_parser_prod___AVarAssignExpr___empty_init};
22861 val_t variable[2];
22862 void **closurevariable = NULL;
22863 trace.prev = tracehead; tracehead = &trace;
22864 trace.file = LOCATE_parser_prod;
22865 variable[0] = self;
22866 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
22867 return_label809: while(false);
22868 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
22869 tracehead = trace.prev;
22870 return;
22871 }
22872 void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
22873 struct trace_t trace = {NULL, NULL, 9368, LOCATE_parser_prod___AVarAssignExpr___init_avarassignexpr};
22874 val_t variable[6];
22875 void **closurevariable = NULL;
22876 trace.prev = tracehead; tracehead = &trace;
22877 trace.file = LOCATE_parser_prod;
22878 variable[0] = self;
22879 variable[1] = param0;
22880 variable[2] = param1;
22881 variable[3] = param2;
22882 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
22883 variable[5] = variable[0];
22884 CALL_parser_prod___AVarAssignExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AVarAssignExpr::empty_init*/;
22885 variable[5] = variable[0];
22886 ATTR_parser_nodes___AVarFormExpr____n_id(variable[5]) /*AVarFormExpr::_n_id*/ = variable[1] /*n_id*/;
22887 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::==*/)))))));
22888 if (UNTAG_Bool(variable[5])) { /*if*/
22889 variable[5] = variable[0];
22890 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
22891 }
22892 variable[5] = variable[0];
22893 ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[5]) /*AAssignFormExpr::_n_assign*/ = variable[2] /*n_assign*/;
22894 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::==*/)))))));
22895 if (UNTAG_Bool(variable[5])) { /*if*/
22896 variable[5] = variable[0];
22897 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, variable[5]) /*PNode::parent=*/;
22898 }
22899 variable[5] = variable[0];
22900 ATTR_parser_nodes___AAssignFormExpr____n_value(variable[5]) /*AAssignFormExpr::_n_value*/ = variable[3] /*n_value*/;
22901 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::==*/)))))));
22902 if (UNTAG_Bool(variable[5])) { /*if*/
22903 variable[5] = variable[0];
22904 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_value*/)( variable[3] /*n_value*/, variable[5]) /*PNode::parent=*/;
22905 }
22906 return_label810: while(false);
22907 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
22908 tracehead = trace.prev;
22909 return;
22910 }
22911 void parser_prod___AVarReassignExpr___n_id__eq(val_t self, val_t param0) {
22912 struct trace_t trace = {NULL, NULL, 9451, LOCATE_parser_prod___AVarReassignExpr___n_id__eq};
22913 val_t variable[4];
22914 void **closurevariable = NULL;
22915 trace.prev = tracehead; tracehead = &trace;
22916 trace.file = LOCATE_parser_prod;
22917 variable[0] = self;
22918 variable[1] = param0;
22919 variable[3] = variable[0];
22920 ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ = variable[1] /*n*/;
22921 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22922 if (UNTAG_Bool(variable[3])) { /*if*/
22923 variable[3] = variable[0];
22924 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22925 }
22926 return_label811: while(false);
22927 tracehead = trace.prev;
22928 return;
22929 }
22930 void parser_prod___AVarReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
22931 struct trace_t trace = {NULL, NULL, 9458, LOCATE_parser_prod___AVarReassignExpr___n_assign_op__eq};
22932 val_t variable[4];
22933 void **closurevariable = NULL;
22934 trace.prev = tracehead; tracehead = &trace;
22935 trace.file = LOCATE_parser_prod;
22936 variable[0] = self;
22937 variable[1] = param0;
22938 variable[3] = variable[0];
22939 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ = variable[1] /*n*/;
22940 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22941 if (UNTAG_Bool(variable[3])) { /*if*/
22942 variable[3] = variable[0];
22943 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22944 }
22945 return_label812: while(false);
22946 tracehead = trace.prev;
22947 return;
22948 }
22949 void parser_prod___AVarReassignExpr___n_value__eq(val_t self, val_t param0) {
22950 struct trace_t trace = {NULL, NULL, 9465, LOCATE_parser_prod___AVarReassignExpr___n_value__eq};
22951 val_t variable[4];
22952 void **closurevariable = NULL;
22953 trace.prev = tracehead; tracehead = &trace;
22954 trace.file = LOCATE_parser_prod;
22955 variable[0] = self;
22956 variable[1] = param0;
22957 variable[3] = variable[0];
22958 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ = variable[1] /*n*/;
22959 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22960 if (UNTAG_Bool(variable[3])) { /*if*/
22961 variable[3] = variable[0];
22962 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
22963 }
22964 return_label813: while(false);
22965 tracehead = trace.prev;
22966 return;
22967 }
22968 void parser_prod___AVarReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
22969 struct trace_t trace = {NULL, NULL, 9496, LOCATE_parser_prod___AVarReassignExpr___replace_child};
22970 val_t variable[5];
22971 void **closurevariable = NULL;
22972 trace.prev = tracehead; tracehead = &trace;
22973 trace.file = LOCATE_parser_prod;
22974 variable[0] = self;
22975 variable[1] = param0;
22976 variable[2] = param1;
22977 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::==*/)))))));
22978 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, 9498); nit_exit(1);}
22979 variable[4] = variable[0];
22980 variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/;
22981 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
22982 if (UNTAG_Bool(variable[4])) { /*if*/
22983 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
22984 if (UNTAG_Bool(variable[4])) { /*if*/
22985 variable[4] = variable[0];
22986 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
22987 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
22988 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, 9502); nit_exit(1);}
22989 variable[4] = variable[0];
22990 ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/ = variable[2] /*new_child*/;
22991 } else { /*if*/
22992 variable[4] = variable[0];
22993 ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/ = NIT_NULL /*null*/;
22994 }
22995 goto return_label814;
22996 }
22997 variable[4] = variable[0];
22998 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
22999 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23000 if (UNTAG_Bool(variable[4])) { /*if*/
23001 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23002 if (UNTAG_Bool(variable[4])) { /*if*/
23003 variable[4] = variable[0];
23004 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23005 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
23006 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, 9512); nit_exit(1);}
23007 variable[4] = variable[0];
23008 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*new_child*/;
23009 } else { /*if*/
23010 variable[4] = variable[0];
23011 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/ = NIT_NULL /*null*/;
23012 }
23013 goto return_label814;
23014 }
23015 variable[4] = variable[0];
23016 variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
23017 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23018 if (UNTAG_Bool(variable[4])) { /*if*/
23019 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23020 if (UNTAG_Bool(variable[4])) { /*if*/
23021 variable[4] = variable[0];
23022 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23023 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23024 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, 9522); nit_exit(1);}
23025 variable[4] = variable[0];
23026 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = variable[2] /*new_child*/;
23027 } else { /*if*/
23028 variable[4] = variable[0];
23029 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/ = NIT_NULL /*null*/;
23030 }
23031 goto return_label814;
23032 }
23033 return_label814: while(false);
23034 tracehead = trace.prev;
23035 return;
23036 }
23037 void parser_prod___AVarReassignExpr___visit_all(val_t self, val_t param0) {
23038 struct trace_t trace = {NULL, NULL, 9531, LOCATE_parser_prod___AVarReassignExpr___visit_all};
23039 val_t variable[4];
23040 void **closurevariable = NULL;
23041 trace.prev = tracehead; tracehead = &trace;
23042 trace.file = LOCATE_parser_prod;
23043 variable[0] = self;
23044 variable[1] = param0;
23045 variable[3] = variable[0];
23046 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
23047 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23048 if (UNTAG_Bool(variable[3])) { /*if*/
23049 variable[3] = variable[0];
23050 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
23051 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23052 }
23053 variable[3] = variable[0];
23054 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
23055 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23056 if (UNTAG_Bool(variable[3])) { /*if*/
23057 variable[3] = variable[0];
23058 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
23059 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23060 }
23061 variable[3] = variable[0];
23062 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
23063 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23064 if (UNTAG_Bool(variable[3])) { /*if*/
23065 variable[3] = variable[0];
23066 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
23067 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23068 }
23069 return_label815: while(false);
23070 tracehead = trace.prev;
23071 return;
23072 }
23073 void parser_prod___AVarReassignExpr___visit_all_reverse(val_t self, val_t param0) {
23074 struct trace_t trace = {NULL, NULL, 9544, LOCATE_parser_prod___AVarReassignExpr___visit_all_reverse};
23075 val_t variable[4];
23076 void **closurevariable = NULL;
23077 trace.prev = tracehead; tracehead = &trace;
23078 trace.file = LOCATE_parser_prod;
23079 variable[0] = self;
23080 variable[1] = param0;
23081 variable[3] = variable[0];
23082 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
23083 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23084 if (UNTAG_Bool(variable[3])) { /*if*/
23085 variable[3] = variable[0];
23086 variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
23087 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23088 }
23089 variable[3] = variable[0];
23090 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
23091 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23092 if (UNTAG_Bool(variable[3])) { /*if*/
23093 variable[3] = variable[0];
23094 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
23095 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23096 }
23097 variable[3] = variable[0];
23098 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
23099 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23100 if (UNTAG_Bool(variable[3])) { /*if*/
23101 variable[3] = variable[0];
23102 variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
23103 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23104 }
23105 return_label816: while(false);
23106 tracehead = trace.prev;
23107 return;
23108 }
23109 void parser_prod___AVarReassignExpr___empty_init(val_t self, int* init_table) {
23110 struct trace_t trace = {NULL, NULL, 9473, LOCATE_parser_prod___AVarReassignExpr___empty_init};
23111 val_t variable[2];
23112 void **closurevariable = NULL;
23113 trace.prev = tracehead; tracehead = &trace;
23114 trace.file = LOCATE_parser_prod;
23115 variable[0] = self;
23116 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
23117 return_label817: while(false);
23118 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
23119 tracehead = trace.prev;
23120 return;
23121 }
23122 void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
23123 struct trace_t trace = {NULL, NULL, 9475, LOCATE_parser_prod___AVarReassignExpr___init_avarreassignexpr};
23124 val_t variable[6];
23125 void **closurevariable = NULL;
23126 trace.prev = tracehead; tracehead = &trace;
23127 trace.file = LOCATE_parser_prod;
23128 variable[0] = self;
23129 variable[1] = param0;
23130 variable[2] = param1;
23131 variable[3] = param2;
23132 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
23133 variable[5] = variable[0];
23134 CALL_parser_prod___AVarReassignExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AVarReassignExpr::empty_init*/;
23135 variable[5] = variable[0];
23136 ATTR_parser_nodes___AVarFormExpr____n_id(variable[5]) /*AVarFormExpr::_n_id*/ = variable[1] /*n_id*/;
23137 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::==*/)))))));
23138 if (UNTAG_Bool(variable[5])) { /*if*/
23139 variable[5] = variable[0];
23140 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
23141 }
23142 variable[5] = variable[0];
23143 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[5]) /*AReassignFormExpr::_n_assign_op*/ = variable[2] /*n_assign_op*/;
23144 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::==*/)))))));
23145 if (UNTAG_Bool(variable[5])) { /*if*/
23146 variable[5] = variable[0];
23147 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign_op*/)( variable[2] /*n_assign_op*/, variable[5]) /*PNode::parent=*/;
23148 }
23149 variable[5] = variable[0];
23150 ATTR_parser_nodes___AReassignFormExpr____n_value(variable[5]) /*AReassignFormExpr::_n_value*/ = variable[3] /*n_value*/;
23151 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::==*/)))))));
23152 if (UNTAG_Bool(variable[5])) { /*if*/
23153 variable[5] = variable[0];
23154 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_value*/)( variable[3] /*n_value*/, variable[5]) /*PNode::parent=*/;
23155 }
23156 return_label818: while(false);
23157 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
23158 tracehead = trace.prev;
23159 return;
23160 }
23161 void parser_prod___ARangeExpr___n_expr__eq(val_t self, val_t param0) {
23162 struct trace_t trace = {NULL, NULL, 9558, LOCATE_parser_prod___ARangeExpr___n_expr__eq};
23163 val_t variable[4];
23164 void **closurevariable = NULL;
23165 trace.prev = tracehead; tracehead = &trace;
23166 trace.file = LOCATE_parser_prod;
23167 variable[0] = self;
23168 variable[1] = param0;
23169 variable[3] = variable[0];
23170 ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/ = variable[1] /*n*/;
23171 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23172 if (UNTAG_Bool(variable[3])) { /*if*/
23173 variable[3] = variable[0];
23174 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
23175 }
23176 return_label819: while(false);
23177 tracehead = trace.prev;
23178 return;
23179 }
23180 void parser_prod___ARangeExpr___n_expr2__eq(val_t self, val_t param0) {
23181 struct trace_t trace = {NULL, NULL, 9565, LOCATE_parser_prod___ARangeExpr___n_expr2__eq};
23182 val_t variable[4];
23183 void **closurevariable = NULL;
23184 trace.prev = tracehead; tracehead = &trace;
23185 trace.file = LOCATE_parser_prod;
23186 variable[0] = self;
23187 variable[1] = param0;
23188 variable[3] = variable[0];
23189 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/ = variable[1] /*n*/;
23190 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23191 if (UNTAG_Bool(variable[3])) { /*if*/
23192 variable[3] = variable[0];
23193 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
23194 }
23195 return_label820: while(false);
23196 tracehead = trace.prev;
23197 return;
23198 }
23199 void parser_prod___ARangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
23200 struct trace_t trace = {NULL, NULL, 9591, LOCATE_parser_prod___ARangeExpr___replace_child};
23201 val_t variable[5];
23202 void **closurevariable = NULL;
23203 trace.prev = tracehead; tracehead = &trace;
23204 trace.file = LOCATE_parser_prod;
23205 variable[0] = self;
23206 variable[1] = param0;
23207 variable[2] = param1;
23208 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::==*/)))))));
23209 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, 9593); nit_exit(1);}
23210 variable[4] = variable[0];
23211 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/;
23212 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23213 if (UNTAG_Bool(variable[4])) { /*if*/
23214 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23215 if (UNTAG_Bool(variable[4])) { /*if*/
23216 variable[4] = variable[0];
23217 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23218 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23219 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, 9597); nit_exit(1);}
23220 variable[4] = variable[0];
23221 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = variable[2] /*new_child*/;
23222 } else { /*if*/
23223 variable[4] = variable[0];
23224 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = NIT_NULL /*null*/;
23225 }
23226 goto return_label821;
23227 }
23228 variable[4] = variable[0];
23229 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/;
23230 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23231 if (UNTAG_Bool(variable[4])) { /*if*/
23232 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23233 if (UNTAG_Bool(variable[4])) { /*if*/
23234 variable[4] = variable[0];
23235 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23236 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23237 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, 9607); nit_exit(1);}
23238 variable[4] = variable[0];
23239 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = variable[2] /*new_child*/;
23240 } else { /*if*/
23241 variable[4] = variable[0];
23242 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
23243 }
23244 goto return_label821;
23245 }
23246 return_label821: while(false);
23247 tracehead = trace.prev;
23248 return;
23249 }
23250 void parser_prod___ARangeExpr___visit_all(val_t self, val_t param0) {
23251 struct trace_t trace = {NULL, NULL, 9616, LOCATE_parser_prod___ARangeExpr___visit_all};
23252 val_t variable[4];
23253 void **closurevariable = NULL;
23254 trace.prev = tracehead; tracehead = &trace;
23255 trace.file = LOCATE_parser_prod;
23256 variable[0] = self;
23257 variable[1] = param0;
23258 variable[3] = variable[0];
23259 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23260 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23261 if (UNTAG_Bool(variable[3])) { /*if*/
23262 variable[3] = variable[0];
23263 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23264 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23265 }
23266 variable[3] = variable[0];
23267 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23268 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23269 if (UNTAG_Bool(variable[3])) { /*if*/
23270 variable[3] = variable[0];
23271 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23272 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23273 }
23274 return_label822: while(false);
23275 tracehead = trace.prev;
23276 return;
23277 }
23278 void parser_prod___ARangeExpr___visit_all_reverse(val_t self, val_t param0) {
23279 struct trace_t trace = {NULL, NULL, 9626, LOCATE_parser_prod___ARangeExpr___visit_all_reverse};
23280 val_t variable[4];
23281 void **closurevariable = NULL;
23282 trace.prev = tracehead; tracehead = &trace;
23283 trace.file = LOCATE_parser_prod;
23284 variable[0] = self;
23285 variable[1] = param0;
23286 variable[3] = variable[0];
23287 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23288 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23289 if (UNTAG_Bool(variable[3])) { /*if*/
23290 variable[3] = variable[0];
23291 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23292 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23293 }
23294 variable[3] = variable[0];
23295 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23296 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23297 if (UNTAG_Bool(variable[3])) { /*if*/
23298 variable[3] = variable[0];
23299 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23300 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23301 }
23302 return_label823: while(false);
23303 tracehead = trace.prev;
23304 return;
23305 }
23306 void parser_prod___ARangeExpr___empty_init(val_t self, int* init_table) {
23307 struct trace_t trace = {NULL, NULL, 9573, LOCATE_parser_prod___ARangeExpr___empty_init};
23308 val_t variable[2];
23309 void **closurevariable = NULL;
23310 trace.prev = tracehead; tracehead = &trace;
23311 trace.file = LOCATE_parser_prod;
23312 variable[0] = self;
23313 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
23314 return_label824: while(false);
23315 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
23316 tracehead = trace.prev;
23317 return;
23318 }
23319 void parser_prod___ARangeExpr___init_arangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
23320 struct trace_t trace = {NULL, NULL, 9575, LOCATE_parser_prod___ARangeExpr___init_arangeexpr};
23321 val_t variable[5];
23322 void **closurevariable = NULL;
23323 trace.prev = tracehead; tracehead = &trace;
23324 trace.file = LOCATE_parser_prod;
23325 variable[0] = self;
23326 variable[1] = param0;
23327 variable[2] = param1;
23328 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
23329 variable[4] = variable[0];
23330 CALL_parser_prod___ARangeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ARangeExpr::empty_init*/;
23331 variable[4] = variable[0];
23332 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = variable[1] /*n_expr*/;
23333 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::==*/)))))));
23334 if (UNTAG_Bool(variable[4])) { /*if*/
23335 variable[4] = variable[0];
23336 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
23337 }
23338 variable[4] = variable[0];
23339 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
23340 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::==*/)))))));
23341 if (UNTAG_Bool(variable[4])) { /*if*/
23342 variable[4] = variable[0];
23343 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
23344 }
23345 return_label825: while(false);
23346 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
23347 tracehead = trace.prev;
23348 return;
23349 }
23350 void parser_prod___ACrangeExpr___n_expr__eq(val_t self, val_t param0) {
23351 struct trace_t trace = {NULL, NULL, 9637, LOCATE_parser_prod___ACrangeExpr___n_expr__eq};
23352 val_t variable[4];
23353 void **closurevariable = NULL;
23354 trace.prev = tracehead; tracehead = &trace;
23355 trace.file = LOCATE_parser_prod;
23356 variable[0] = self;
23357 variable[1] = param0;
23358 variable[3] = variable[0];
23359 ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/ = variable[1] /*n*/;
23360 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23361 if (UNTAG_Bool(variable[3])) { /*if*/
23362 variable[3] = variable[0];
23363 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
23364 }
23365 return_label826: while(false);
23366 tracehead = trace.prev;
23367 return;
23368 }
23369 void parser_prod___ACrangeExpr___n_expr2__eq(val_t self, val_t param0) {
23370 struct trace_t trace = {NULL, NULL, 9644, LOCATE_parser_prod___ACrangeExpr___n_expr2__eq};
23371 val_t variable[4];
23372 void **closurevariable = NULL;
23373 trace.prev = tracehead; tracehead = &trace;
23374 trace.file = LOCATE_parser_prod;
23375 variable[0] = self;
23376 variable[1] = param0;
23377 variable[3] = variable[0];
23378 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/ = variable[1] /*n*/;
23379 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23380 if (UNTAG_Bool(variable[3])) { /*if*/
23381 variable[3] = variable[0];
23382 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
23383 }
23384 return_label827: while(false);
23385 tracehead = trace.prev;
23386 return;
23387 }
23388 void parser_prod___ACrangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
23389 struct trace_t trace = {NULL, NULL, 9670, LOCATE_parser_prod___ACrangeExpr___replace_child};
23390 val_t variable[5];
23391 void **closurevariable = NULL;
23392 trace.prev = tracehead; tracehead = &trace;
23393 trace.file = LOCATE_parser_prod;
23394 variable[0] = self;
23395 variable[1] = param0;
23396 variable[2] = param1;
23397 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::==*/)))))));
23398 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, 9672); nit_exit(1);}
23399 variable[4] = variable[0];
23400 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/;
23401 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23402 if (UNTAG_Bool(variable[4])) { /*if*/
23403 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23404 if (UNTAG_Bool(variable[4])) { /*if*/
23405 variable[4] = variable[0];
23406 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23407 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23408 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, 9676); nit_exit(1);}
23409 variable[4] = variable[0];
23410 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = variable[2] /*new_child*/;
23411 } else { /*if*/
23412 variable[4] = variable[0];
23413 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = NIT_NULL /*null*/;
23414 }
23415 goto return_label828;
23416 }
23417 variable[4] = variable[0];
23418 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/;
23419 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23420 if (UNTAG_Bool(variable[4])) { /*if*/
23421 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23422 if (UNTAG_Bool(variable[4])) { /*if*/
23423 variable[4] = variable[0];
23424 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23425 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23426 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, 9686); nit_exit(1);}
23427 variable[4] = variable[0];
23428 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = variable[2] /*new_child*/;
23429 } else { /*if*/
23430 variable[4] = variable[0];
23431 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
23432 }
23433 goto return_label828;
23434 }
23435 return_label828: while(false);
23436 tracehead = trace.prev;
23437 return;
23438 }
23439 void parser_prod___ACrangeExpr___visit_all(val_t self, val_t param0) {
23440 struct trace_t trace = {NULL, NULL, 9695, LOCATE_parser_prod___ACrangeExpr___visit_all};
23441 val_t variable[4];
23442 void **closurevariable = NULL;
23443 trace.prev = tracehead; tracehead = &trace;
23444 trace.file = LOCATE_parser_prod;
23445 variable[0] = self;
23446 variable[1] = param0;
23447 variable[3] = variable[0];
23448 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23449 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23450 if (UNTAG_Bool(variable[3])) { /*if*/
23451 variable[3] = variable[0];
23452 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23453 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23454 }
23455 variable[3] = variable[0];
23456 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23457 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23458 if (UNTAG_Bool(variable[3])) { /*if*/
23459 variable[3] = variable[0];
23460 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23461 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23462 }
23463 return_label829: while(false);
23464 tracehead = trace.prev;
23465 return;
23466 }
23467 void parser_prod___ACrangeExpr___visit_all_reverse(val_t self, val_t param0) {
23468 struct trace_t trace = {NULL, NULL, 9705, LOCATE_parser_prod___ACrangeExpr___visit_all_reverse};
23469 val_t variable[4];
23470 void **closurevariable = NULL;
23471 trace.prev = tracehead; tracehead = &trace;
23472 trace.file = LOCATE_parser_prod;
23473 variable[0] = self;
23474 variable[1] = param0;
23475 variable[3] = variable[0];
23476 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23477 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23478 if (UNTAG_Bool(variable[3])) { /*if*/
23479 variable[3] = variable[0];
23480 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23481 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23482 }
23483 variable[3] = variable[0];
23484 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23485 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23486 if (UNTAG_Bool(variable[3])) { /*if*/
23487 variable[3] = variable[0];
23488 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23489 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23490 }
23491 return_label830: while(false);
23492 tracehead = trace.prev;
23493 return;
23494 }
23495 void parser_prod___ACrangeExpr___empty_init(val_t self, int* init_table) {
23496 struct trace_t trace = {NULL, NULL, 9652, LOCATE_parser_prod___ACrangeExpr___empty_init};
23497 val_t variable[2];
23498 void **closurevariable = NULL;
23499 trace.prev = tracehead; tracehead = &trace;
23500 trace.file = LOCATE_parser_prod;
23501 variable[0] = self;
23502 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
23503 return_label831: while(false);
23504 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
23505 tracehead = trace.prev;
23506 return;
23507 }
23508 void parser_prod___ACrangeExpr___init_acrangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
23509 struct trace_t trace = {NULL, NULL, 9654, LOCATE_parser_prod___ACrangeExpr___init_acrangeexpr};
23510 val_t variable[5];
23511 void **closurevariable = NULL;
23512 trace.prev = tracehead; tracehead = &trace;
23513 trace.file = LOCATE_parser_prod;
23514 variable[0] = self;
23515 variable[1] = param0;
23516 variable[2] = param1;
23517 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
23518 variable[4] = variable[0];
23519 CALL_parser_prod___ACrangeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ACrangeExpr::empty_init*/;
23520 variable[4] = variable[0];
23521 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = variable[1] /*n_expr*/;
23522 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::==*/)))))));
23523 if (UNTAG_Bool(variable[4])) { /*if*/
23524 variable[4] = variable[0];
23525 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
23526 }
23527 variable[4] = variable[0];
23528 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
23529 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::==*/)))))));
23530 if (UNTAG_Bool(variable[4])) { /*if*/
23531 variable[4] = variable[0];
23532 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
23533 }
23534 return_label832: while(false);
23535 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
23536 tracehead = trace.prev;
23537 return;
23538 }
23539 void parser_prod___AOrangeExpr___n_expr__eq(val_t self, val_t param0) {
23540 struct trace_t trace = {NULL, NULL, 9716, LOCATE_parser_prod___AOrangeExpr___n_expr__eq};
23541 val_t variable[4];
23542 void **closurevariable = NULL;
23543 trace.prev = tracehead; tracehead = &trace;
23544 trace.file = LOCATE_parser_prod;
23545 variable[0] = self;
23546 variable[1] = param0;
23547 variable[3] = variable[0];
23548 ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/ = variable[1] /*n*/;
23549 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23550 if (UNTAG_Bool(variable[3])) { /*if*/
23551 variable[3] = variable[0];
23552 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
23553 }
23554 return_label833: while(false);
23555 tracehead = trace.prev;
23556 return;
23557 }
23558 void parser_prod___AOrangeExpr___n_expr2__eq(val_t self, val_t param0) {
23559 struct trace_t trace = {NULL, NULL, 9723, LOCATE_parser_prod___AOrangeExpr___n_expr2__eq};
23560 val_t variable[4];
23561 void **closurevariable = NULL;
23562 trace.prev = tracehead; tracehead = &trace;
23563 trace.file = LOCATE_parser_prod;
23564 variable[0] = self;
23565 variable[1] = param0;
23566 variable[3] = variable[0];
23567 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/ = variable[1] /*n*/;
23568 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23569 if (UNTAG_Bool(variable[3])) { /*if*/
23570 variable[3] = variable[0];
23571 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
23572 }
23573 return_label834: while(false);
23574 tracehead = trace.prev;
23575 return;
23576 }
23577 void parser_prod___AOrangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
23578 struct trace_t trace = {NULL, NULL, 9749, LOCATE_parser_prod___AOrangeExpr___replace_child};
23579 val_t variable[5];
23580 void **closurevariable = NULL;
23581 trace.prev = tracehead; tracehead = &trace;
23582 trace.file = LOCATE_parser_prod;
23583 variable[0] = self;
23584 variable[1] = param0;
23585 variable[2] = param1;
23586 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::==*/)))))));
23587 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, 9751); nit_exit(1);}
23588 variable[4] = variable[0];
23589 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/;
23590 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23591 if (UNTAG_Bool(variable[4])) { /*if*/
23592 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23593 if (UNTAG_Bool(variable[4])) { /*if*/
23594 variable[4] = variable[0];
23595 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23596 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23597 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, 9755); nit_exit(1);}
23598 variable[4] = variable[0];
23599 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = variable[2] /*new_child*/;
23600 } else { /*if*/
23601 variable[4] = variable[0];
23602 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = NIT_NULL /*null*/;
23603 }
23604 goto return_label835;
23605 }
23606 variable[4] = variable[0];
23607 variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/;
23608 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23609 if (UNTAG_Bool(variable[4])) { /*if*/
23610 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23611 if (UNTAG_Bool(variable[4])) { /*if*/
23612 variable[4] = variable[0];
23613 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23614 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23615 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, 9765); nit_exit(1);}
23616 variable[4] = variable[0];
23617 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = variable[2] /*new_child*/;
23618 } else { /*if*/
23619 variable[4] = variable[0];
23620 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
23621 }
23622 goto return_label835;
23623 }
23624 return_label835: while(false);
23625 tracehead = trace.prev;
23626 return;
23627 }
23628 void parser_prod___AOrangeExpr___visit_all(val_t self, val_t param0) {
23629 struct trace_t trace = {NULL, NULL, 9774, LOCATE_parser_prod___AOrangeExpr___visit_all};
23630 val_t variable[4];
23631 void **closurevariable = NULL;
23632 trace.prev = tracehead; tracehead = &trace;
23633 trace.file = LOCATE_parser_prod;
23634 variable[0] = self;
23635 variable[1] = param0;
23636 variable[3] = variable[0];
23637 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23638 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23639 if (UNTAG_Bool(variable[3])) { /*if*/
23640 variable[3] = variable[0];
23641 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23642 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23643 }
23644 variable[3] = variable[0];
23645 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23646 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23647 if (UNTAG_Bool(variable[3])) { /*if*/
23648 variable[3] = variable[0];
23649 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23650 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23651 }
23652 return_label836: while(false);
23653 tracehead = trace.prev;
23654 return;
23655 }
23656 void parser_prod___AOrangeExpr___visit_all_reverse(val_t self, val_t param0) {
23657 struct trace_t trace = {NULL, NULL, 9784, LOCATE_parser_prod___AOrangeExpr___visit_all_reverse};
23658 val_t variable[4];
23659 void **closurevariable = NULL;
23660 trace.prev = tracehead; tracehead = &trace;
23661 trace.file = LOCATE_parser_prod;
23662 variable[0] = self;
23663 variable[1] = param0;
23664 variable[3] = variable[0];
23665 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23666 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23667 if (UNTAG_Bool(variable[3])) { /*if*/
23668 variable[3] = variable[0];
23669 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
23670 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23671 }
23672 variable[3] = variable[0];
23673 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23674 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23675 if (UNTAG_Bool(variable[3])) { /*if*/
23676 variable[3] = variable[0];
23677 variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
23678 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23679 }
23680 return_label837: while(false);
23681 tracehead = trace.prev;
23682 return;
23683 }
23684 void parser_prod___AOrangeExpr___empty_init(val_t self, int* init_table) {
23685 struct trace_t trace = {NULL, NULL, 9731, LOCATE_parser_prod___AOrangeExpr___empty_init};
23686 val_t variable[2];
23687 void **closurevariable = NULL;
23688 trace.prev = tracehead; tracehead = &trace;
23689 trace.file = LOCATE_parser_prod;
23690 variable[0] = self;
23691 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
23692 return_label838: while(false);
23693 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
23694 tracehead = trace.prev;
23695 return;
23696 }
23697 void parser_prod___AOrangeExpr___init_aorangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
23698 struct trace_t trace = {NULL, NULL, 9733, LOCATE_parser_prod___AOrangeExpr___init_aorangeexpr};
23699 val_t variable[5];
23700 void **closurevariable = NULL;
23701 trace.prev = tracehead; tracehead = &trace;
23702 trace.file = LOCATE_parser_prod;
23703 variable[0] = self;
23704 variable[1] = param0;
23705 variable[2] = param1;
23706 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
23707 variable[4] = variable[0];
23708 CALL_parser_prod___AOrangeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AOrangeExpr::empty_init*/;
23709 variable[4] = variable[0];
23710 ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ = variable[1] /*n_expr*/;
23711 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::==*/)))))));
23712 if (UNTAG_Bool(variable[4])) { /*if*/
23713 variable[4] = variable[0];
23714 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
23715 }
23716 variable[4] = variable[0];
23717 ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ = variable[2] /*n_expr2*/;
23718 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::==*/)))))));
23719 if (UNTAG_Bool(variable[4])) { /*if*/
23720 variable[4] = variable[0];
23721 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
23722 }
23723 return_label839: while(false);
23724 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
23725 tracehead = trace.prev;
23726 return;
23727 }
23728 void parser_prod___AArrayExpr___replace_child(val_t self, val_t param0, val_t param1) {
23729 struct trace_t trace = {NULL, NULL, 9811, LOCATE_parser_prod___AArrayExpr___replace_child};
23730 val_t variable[8];
23731 void **closurevariable = NULL;
23732 trace.prev = tracehead; tracehead = &trace;
23733 trace.file = LOCATE_parser_prod;
23734 variable[0] = self;
23735 variable[1] = param0;
23736 variable[2] = param1;
23737 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::==*/)))))));
23738 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, 9813); nit_exit(1);}
23739 variable[4] = variable[0];
23740 variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[4]) /*AArrayExpr::_n_exprs*/;
23741 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
23742 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
23743 variable[4] = variable[5];
23744 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
23745 while (true) { /*for*/
23746 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
23747 if (!UNTAG_Bool(variable[5])) break; /*for*/
23748 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
23749 variable[6] = variable[5];
23750 variable[7] = variable[0];
23751 variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[7]) /*AArrayExpr::_n_exprs*/;
23752 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
23753 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::==*/)))));
23754 if (UNTAG_Bool(variable[7])) { /*if*/
23755 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::==*/)))))));
23756 if (UNTAG_Bool(variable[7])) { /*if*/
23757 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23758 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, 9817); nit_exit(1);}
23759 variable[7] = variable[0];
23760 variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[7]) /*AArrayExpr::_n_exprs*/;
23761 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
23762 variable[7] = variable[0];
23763 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
23764 } else { /*if*/
23765 variable[7] = variable[0];
23766 variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[7]) /*AArrayExpr::_n_exprs*/;
23767 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
23768 }
23769 goto return_label840;
23770 }
23771 continue_841: while(0);
23772 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
23773 }
23774 break_841: while(0);
23775 return_label840: while(false);
23776 tracehead = trace.prev;
23777 return;
23778 }
23779 void parser_prod___AArrayExpr___visit_all(val_t self, val_t param0) {
23780 struct trace_t trace = {NULL, NULL, 9828, LOCATE_parser_prod___AArrayExpr___visit_all};
23781 val_t variable[6];
23782 void **closurevariable = NULL;
23783 trace.prev = tracehead; tracehead = &trace;
23784 trace.file = LOCATE_parser_prod;
23785 variable[0] = self;
23786 variable[1] = param0;
23787 variable[3] = variable[0];
23788 variable[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[3]) /*AArrayExpr::_n_exprs*/;
23789 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
23790 while (true) { /*for*/
23791 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
23792 if (!UNTAG_Bool(variable[4])) break; /*for*/
23793 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
23794 variable[5] = variable[4];
23795 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
23796 continue_843: while(0);
23797 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
23798 }
23799 break_843: while(0);
23800 return_label842: while(false);
23801 tracehead = trace.prev;
23802 return;
23803 }
23804 void parser_prod___AArrayExpr___visit_all_reverse(val_t self, val_t param0) {
23805 struct trace_t trace = {NULL, NULL, 9835, LOCATE_parser_prod___AArrayExpr___visit_all_reverse};
23806 val_t variable[5];
23807 void **closurevariable = NULL;
23808 trace.prev = tracehead; tracehead = &trace;
23809 trace.file = LOCATE_parser_prod;
23810 variable[0] = self;
23811 variable[1] = param0;
23812 variable[4] = variable[0];
23813 variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[4]) /*AArrayExpr::_n_exprs*/;
23814 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
23815 variable[3] = variable[4];
23816 while (true) { /*while*/
23817 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
23818 if (!UNTAG_Bool(variable[4])) break; /* while*/
23819 variable[4] = variable[0];
23820 variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[4]) /*AArrayExpr::_n_exprs*/;
23821 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
23822 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
23823 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
23824 variable[3] = variable[4] /*i=*/;
23825 continue_845: while(0);
23826 }
23827 break_845: while(0);
23828 return_label844: while(false);
23829 tracehead = trace.prev;
23830 return;
23831 }
23832 void parser_prod___AArrayExpr___empty_init(val_t self, int* init_table) {
23833 struct trace_t trace = {NULL, NULL, 9796, LOCATE_parser_prod___AArrayExpr___empty_init};
23834 val_t variable[2];
23835 void **closurevariable = NULL;
23836 trace.prev = tracehead; tracehead = &trace;
23837 trace.file = LOCATE_parser_prod;
23838 variable[0] = self;
23839 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
23840 return_label846: while(false);
23841 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
23842 tracehead = trace.prev;
23843 return;
23844 }
23845 void parser_prod___AArrayExpr___init_aarrayexpr(val_t self, val_t param0, int* init_table) {
23846 struct trace_t trace = {NULL, NULL, 9798, LOCATE_parser_prod___AArrayExpr___init_aarrayexpr};
23847 val_t variable[7];
23848 void **closurevariable = NULL;
23849 trace.prev = tracehead; tracehead = &trace;
23850 trace.file = LOCATE_parser_prod;
23851 variable[0] = self;
23852 variable[1] = param0;
23853 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
23854 variable[3] = variable[0];
23855 CALL_parser_prod___AArrayExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AArrayExpr::empty_init*/;
23856 variable[3] = variable[0];
23857 variable[4] = NEW_List_list___List___init(); /*new List[PExpr]*/
23858 ATTR_parser_nodes___AArrayExpr____n_exprs(variable[3]) /*AArrayExpr::_n_exprs*/ = variable[4];
23859 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_exprs*/)( variable[1] /*n_exprs*/) /*AbstractArray::iterator*/;
23860 while (true) { /*for*/
23861 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
23862 if (!UNTAG_Bool(variable[4])) break; /*for*/
23863 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
23864 variable[5] = variable[4];
23865 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
23866 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, 9805); nit_exit(1);}
23867 variable[6] = variable[0];
23868 variable[6] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[6]) /*AArrayExpr::_n_exprs*/;
23869 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
23870 variable[6] = variable[0];
23871 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
23872 continue_848: while(0);
23873 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
23874 }
23875 break_848: while(0);
23876 return_label847: while(false);
23877 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
23878 tracehead = trace.prev;
23879 return;
23880 }
23881 void parser_prod___ASelfExpr___n_kwself__eq(val_t self, val_t param0) {
23882 struct trace_t trace = {NULL, NULL, 9847, LOCATE_parser_prod___ASelfExpr___n_kwself__eq};
23883 val_t variable[4];
23884 void **closurevariable = NULL;
23885 trace.prev = tracehead; tracehead = &trace;
23886 trace.file = LOCATE_parser_prod;
23887 variable[0] = self;
23888 variable[1] = param0;
23889 variable[3] = variable[0];
23890 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/ = variable[1] /*n*/;
23891 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23892 if (UNTAG_Bool(variable[3])) { /*if*/
23893 variable[3] = variable[0];
23894 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
23895 }
23896 return_label849: while(false);
23897 tracehead = trace.prev;
23898 return;
23899 }
23900 void parser_prod___ASelfExpr___replace_child(val_t self, val_t param0, val_t param1) {
23901 struct trace_t trace = {NULL, NULL, 9868, LOCATE_parser_prod___ASelfExpr___replace_child};
23902 val_t variable[5];
23903 void **closurevariable = NULL;
23904 trace.prev = tracehead; tracehead = &trace;
23905 trace.file = LOCATE_parser_prod;
23906 variable[0] = self;
23907 variable[1] = param0;
23908 variable[2] = param1;
23909 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::==*/)))))));
23910 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, 9870); nit_exit(1);}
23911 variable[4] = variable[0];
23912 variable[4] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[4]) /*ASelfExpr::_n_kwself*/;
23913 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
23914 if (UNTAG_Bool(variable[4])) { /*if*/
23915 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
23916 if (UNTAG_Bool(variable[4])) { /*if*/
23917 variable[4] = variable[0];
23918 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
23919 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
23920 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, 9874); nit_exit(1);}
23921 variable[4] = variable[0];
23922 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[4]) /*ASelfExpr::_n_kwself*/ = variable[2] /*new_child*/;
23923 } else { /*if*/
23924 variable[4] = variable[0];
23925 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[4]) /*ASelfExpr::_n_kwself*/ = NIT_NULL /*null*/;
23926 }
23927 goto return_label850;
23928 }
23929 return_label850: while(false);
23930 tracehead = trace.prev;
23931 return;
23932 }
23933 void parser_prod___ASelfExpr___visit_all(val_t self, val_t param0) {
23934 struct trace_t trace = {NULL, NULL, 9883, LOCATE_parser_prod___ASelfExpr___visit_all};
23935 val_t variable[4];
23936 void **closurevariable = NULL;
23937 trace.prev = tracehead; tracehead = &trace;
23938 trace.file = LOCATE_parser_prod;
23939 variable[0] = self;
23940 variable[1] = param0;
23941 variable[3] = variable[0];
23942 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
23943 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23944 if (UNTAG_Bool(variable[3])) { /*if*/
23945 variable[3] = variable[0];
23946 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
23947 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23948 }
23949 return_label851: while(false);
23950 tracehead = trace.prev;
23951 return;
23952 }
23953 void parser_prod___ASelfExpr___visit_all_reverse(val_t self, val_t param0) {
23954 struct trace_t trace = {NULL, NULL, 9890, LOCATE_parser_prod___ASelfExpr___visit_all_reverse};
23955 val_t variable[4];
23956 void **closurevariable = NULL;
23957 trace.prev = tracehead; tracehead = &trace;
23958 trace.file = LOCATE_parser_prod;
23959 variable[0] = self;
23960 variable[1] = param0;
23961 variable[3] = variable[0];
23962 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
23963 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
23964 if (UNTAG_Bool(variable[3])) { /*if*/
23965 variable[3] = variable[0];
23966 variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
23967 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
23968 }
23969 return_label852: while(false);
23970 tracehead = trace.prev;
23971 return;
23972 }
23973 void parser_prod___ASelfExpr___empty_init(val_t self, int* init_table) {
23974 struct trace_t trace = {NULL, NULL, 9855, LOCATE_parser_prod___ASelfExpr___empty_init};
23975 val_t variable[2];
23976 void **closurevariable = NULL;
23977 trace.prev = tracehead; tracehead = &trace;
23978 trace.file = LOCATE_parser_prod;
23979 variable[0] = self;
23980 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
23981 return_label853: while(false);
23982 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
23983 tracehead = trace.prev;
23984 return;
23985 }
23986 void parser_prod___ASelfExpr___init_aselfexpr(val_t self, val_t param0, int* init_table) {
23987 struct trace_t trace = {NULL, NULL, 9857, LOCATE_parser_prod___ASelfExpr___init_aselfexpr};
23988 val_t variable[4];
23989 void **closurevariable = NULL;
23990 trace.prev = tracehead; tracehead = &trace;
23991 trace.file = LOCATE_parser_prod;
23992 variable[0] = self;
23993 variable[1] = param0;
23994 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
23995 variable[3] = variable[0];
23996 CALL_parser_prod___ASelfExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASelfExpr::empty_init*/;
23997 variable[3] = variable[0];
23998 ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/ = variable[1] /*n_kwself*/;
23999 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::==*/)))))));
24000 if (UNTAG_Bool(variable[3])) { /*if*/
24001 variable[3] = variable[0];
24002 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwself*/)( variable[1] /*n_kwself*/, variable[3]) /*PNode::parent=*/;
24003 }
24004 return_label854: while(false);
24005 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
24006 tracehead = trace.prev;
24007 return;
24008 }
24009 void parser_prod___AImplicitSelfExpr___replace_child(val_t self, val_t param0, val_t param1) {
24010 struct trace_t trace = {NULL, NULL, 9906, LOCATE_parser_prod___AImplicitSelfExpr___replace_child};
24011 val_t variable[5];
24012 void **closurevariable = NULL;
24013 trace.prev = tracehead; tracehead = &trace;
24014 trace.file = LOCATE_parser_prod;
24015 variable[0] = self;
24016 variable[1] = param0;
24017 variable[2] = param1;
24018 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::==*/)))))));
24019 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, 9908); nit_exit(1);}
24020 return_label855: while(false);
24021 tracehead = trace.prev;
24022 return;
24023 }
24024 void parser_prod___AImplicitSelfExpr___visit_all(val_t self, val_t param0) {
24025 struct trace_t trace = {NULL, NULL, 9911, LOCATE_parser_prod___AImplicitSelfExpr___visit_all};
24026 val_t variable[3];
24027 void **closurevariable = NULL;
24028 trace.prev = tracehead; tracehead = &trace;
24029 trace.file = LOCATE_parser_prod;
24030 variable[0] = self;
24031 variable[1] = param0;
24032 return_label856: while(false);
24033 tracehead = trace.prev;
24034 return;
24035 }
24036 void parser_prod___AImplicitSelfExpr___visit_all_reverse(val_t self, val_t param0) {
24037 struct trace_t trace = {NULL, NULL, 9915, LOCATE_parser_prod___AImplicitSelfExpr___visit_all_reverse};
24038 val_t variable[3];
24039 void **closurevariable = NULL;
24040 trace.prev = tracehead; tracehead = &trace;
24041 trace.file = LOCATE_parser_prod;
24042 variable[0] = self;
24043 variable[1] = param0;
24044 return_label857: while(false);
24045 tracehead = trace.prev;
24046 return;
24047 }
24048 void parser_prod___AImplicitSelfExpr___empty_init(val_t self, int* init_table) {
24049 struct trace_t trace = {NULL, NULL, 9899, LOCATE_parser_prod___AImplicitSelfExpr___empty_init};
24050 val_t variable[2];
24051 void **closurevariable = NULL;
24052 trace.prev = tracehead; tracehead = &trace;
24053 trace.file = LOCATE_parser_prod;
24054 variable[0] = self;
24055 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
24056 return_label858: while(false);
24057 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
24058 tracehead = trace.prev;
24059 return;
24060 }
24061 void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t self, int* init_table) {
24062 struct trace_t trace = {NULL, NULL, 9901, LOCATE_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr};
24063 val_t variable[3];
24064 void **closurevariable = NULL;
24065 trace.prev = tracehead; tracehead = &trace;
24066 trace.file = LOCATE_parser_prod;
24067 variable[0] = self;
24068 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
24069 variable[2] = variable[0];
24070 CALL_parser_prod___AImplicitSelfExpr___empty_init(variable[2])(variable[2], init_table /*YYY*/) /*AImplicitSelfExpr::empty_init*/;
24071 return_label859: while(false);
24072 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
24073 tracehead = trace.prev;
24074 return;
24075 }
24076 void parser_prod___ATrueExpr___n_kwtrue__eq(val_t self, val_t param0) {
24077 struct trace_t trace = {NULL, NULL, 9920, LOCATE_parser_prod___ATrueExpr___n_kwtrue__eq};
24078 val_t variable[4];
24079 void **closurevariable = NULL;
24080 trace.prev = tracehead; tracehead = &trace;
24081 trace.file = LOCATE_parser_prod;
24082 variable[0] = self;
24083 variable[1] = param0;
24084 variable[3] = variable[0];
24085 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/ = variable[1] /*n*/;
24086 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24087 if (UNTAG_Bool(variable[3])) { /*if*/
24088 variable[3] = variable[0];
24089 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24090 }
24091 return_label860: while(false);
24092 tracehead = trace.prev;
24093 return;
24094 }
24095 void parser_prod___ATrueExpr___replace_child(val_t self, val_t param0, val_t param1) {
24096 struct trace_t trace = {NULL, NULL, 9941, LOCATE_parser_prod___ATrueExpr___replace_child};
24097 val_t variable[5];
24098 void **closurevariable = NULL;
24099 trace.prev = tracehead; tracehead = &trace;
24100 trace.file = LOCATE_parser_prod;
24101 variable[0] = self;
24102 variable[1] = param0;
24103 variable[2] = param1;
24104 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::==*/)))))));
24105 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, 9943); nit_exit(1);}
24106 variable[4] = variable[0];
24107 variable[4] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[4]) /*ATrueExpr::_n_kwtrue*/;
24108 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24109 if (UNTAG_Bool(variable[4])) { /*if*/
24110 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24111 if (UNTAG_Bool(variable[4])) { /*if*/
24112 variable[4] = variable[0];
24113 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
24114 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
24115 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, 9947); nit_exit(1);}
24116 variable[4] = variable[0];
24117 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[4]) /*ATrueExpr::_n_kwtrue*/ = variable[2] /*new_child*/;
24118 } else { /*if*/
24119 variable[4] = variable[0];
24120 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[4]) /*ATrueExpr::_n_kwtrue*/ = NIT_NULL /*null*/;
24121 }
24122 goto return_label861;
24123 }
24124 return_label861: while(false);
24125 tracehead = trace.prev;
24126 return;
24127 }
24128 void parser_prod___ATrueExpr___visit_all(val_t self, val_t param0) {
24129 struct trace_t trace = {NULL, NULL, 9956, LOCATE_parser_prod___ATrueExpr___visit_all};
24130 val_t variable[4];
24131 void **closurevariable = NULL;
24132 trace.prev = tracehead; tracehead = &trace;
24133 trace.file = LOCATE_parser_prod;
24134 variable[0] = self;
24135 variable[1] = param0;
24136 variable[3] = variable[0];
24137 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
24138 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24139 if (UNTAG_Bool(variable[3])) { /*if*/
24140 variable[3] = variable[0];
24141 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
24142 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24143 }
24144 return_label862: while(false);
24145 tracehead = trace.prev;
24146 return;
24147 }
24148 void parser_prod___ATrueExpr___visit_all_reverse(val_t self, val_t param0) {
24149 struct trace_t trace = {NULL, NULL, 9963, LOCATE_parser_prod___ATrueExpr___visit_all_reverse};
24150 val_t variable[4];
24151 void **closurevariable = NULL;
24152 trace.prev = tracehead; tracehead = &trace;
24153 trace.file = LOCATE_parser_prod;
24154 variable[0] = self;
24155 variable[1] = param0;
24156 variable[3] = variable[0];
24157 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
24158 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24159 if (UNTAG_Bool(variable[3])) { /*if*/
24160 variable[3] = variable[0];
24161 variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
24162 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24163 }
24164 return_label863: while(false);
24165 tracehead = trace.prev;
24166 return;
24167 }
24168 void parser_prod___ATrueExpr___empty_init(val_t self, int* init_table) {
24169 struct trace_t trace = {NULL, NULL, 9928, LOCATE_parser_prod___ATrueExpr___empty_init};
24170 val_t variable[2];
24171 void **closurevariable = NULL;
24172 trace.prev = tracehead; tracehead = &trace;
24173 trace.file = LOCATE_parser_prod;
24174 variable[0] = self;
24175 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
24176 return_label864: while(false);
24177 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
24178 tracehead = trace.prev;
24179 return;
24180 }
24181 void parser_prod___ATrueExpr___init_atrueexpr(val_t self, val_t param0, int* init_table) {
24182 struct trace_t trace = {NULL, NULL, 9930, LOCATE_parser_prod___ATrueExpr___init_atrueexpr};
24183 val_t variable[4];
24184 void **closurevariable = NULL;
24185 trace.prev = tracehead; tracehead = &trace;
24186 trace.file = LOCATE_parser_prod;
24187 variable[0] = self;
24188 variable[1] = param0;
24189 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
24190 variable[3] = variable[0];
24191 CALL_parser_prod___ATrueExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ATrueExpr::empty_init*/;
24192 variable[3] = variable[0];
24193 ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/ = variable[1] /*n_kwtrue*/;
24194 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::==*/)))))));
24195 if (UNTAG_Bool(variable[3])) { /*if*/
24196 variable[3] = variable[0];
24197 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwtrue*/)( variable[1] /*n_kwtrue*/, variable[3]) /*PNode::parent=*/;
24198 }
24199 return_label865: while(false);
24200 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
24201 tracehead = trace.prev;
24202 return;
24203 }
24204 void parser_prod___AFalseExpr___n_kwfalse__eq(val_t self, val_t param0) {
24205 struct trace_t trace = {NULL, NULL, 9971, LOCATE_parser_prod___AFalseExpr___n_kwfalse__eq};
24206 val_t variable[4];
24207 void **closurevariable = NULL;
24208 trace.prev = tracehead; tracehead = &trace;
24209 trace.file = LOCATE_parser_prod;
24210 variable[0] = self;
24211 variable[1] = param0;
24212 variable[3] = variable[0];
24213 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/ = variable[1] /*n*/;
24214 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24215 if (UNTAG_Bool(variable[3])) { /*if*/
24216 variable[3] = variable[0];
24217 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24218 }
24219 return_label866: while(false);
24220 tracehead = trace.prev;
24221 return;
24222 }
24223 void parser_prod___AFalseExpr___replace_child(val_t self, val_t param0, val_t param1) {
24224 struct trace_t trace = {NULL, NULL, 9992, LOCATE_parser_prod___AFalseExpr___replace_child};
24225 val_t variable[5];
24226 void **closurevariable = NULL;
24227 trace.prev = tracehead; tracehead = &trace;
24228 trace.file = LOCATE_parser_prod;
24229 variable[0] = self;
24230 variable[1] = param0;
24231 variable[2] = param1;
24232 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::==*/)))))));
24233 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, 9994); nit_exit(1);}
24234 variable[4] = variable[0];
24235 variable[4] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[4]) /*AFalseExpr::_n_kwfalse*/;
24236 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24237 if (UNTAG_Bool(variable[4])) { /*if*/
24238 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24239 if (UNTAG_Bool(variable[4])) { /*if*/
24240 variable[4] = variable[0];
24241 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
24242 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
24243 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, 9998); nit_exit(1);}
24244 variable[4] = variable[0];
24245 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[4]) /*AFalseExpr::_n_kwfalse*/ = variable[2] /*new_child*/;
24246 } else { /*if*/
24247 variable[4] = variable[0];
24248 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[4]) /*AFalseExpr::_n_kwfalse*/ = NIT_NULL /*null*/;
24249 }
24250 goto return_label867;
24251 }
24252 return_label867: while(false);
24253 tracehead = trace.prev;
24254 return;
24255 }
24256 void parser_prod___AFalseExpr___visit_all(val_t self, val_t param0) {
24257 struct trace_t trace = {NULL, NULL, 10007, LOCATE_parser_prod___AFalseExpr___visit_all};
24258 val_t variable[4];
24259 void **closurevariable = NULL;
24260 trace.prev = tracehead; tracehead = &trace;
24261 trace.file = LOCATE_parser_prod;
24262 variable[0] = self;
24263 variable[1] = param0;
24264 variable[3] = variable[0];
24265 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
24266 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24267 if (UNTAG_Bool(variable[3])) { /*if*/
24268 variable[3] = variable[0];
24269 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
24270 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24271 }
24272 return_label868: while(false);
24273 tracehead = trace.prev;
24274 return;
24275 }
24276 void parser_prod___AFalseExpr___visit_all_reverse(val_t self, val_t param0) {
24277 struct trace_t trace = {NULL, NULL, 10014, LOCATE_parser_prod___AFalseExpr___visit_all_reverse};
24278 val_t variable[4];
24279 void **closurevariable = NULL;
24280 trace.prev = tracehead; tracehead = &trace;
24281 trace.file = LOCATE_parser_prod;
24282 variable[0] = self;
24283 variable[1] = param0;
24284 variable[3] = variable[0];
24285 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
24286 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24287 if (UNTAG_Bool(variable[3])) { /*if*/
24288 variable[3] = variable[0];
24289 variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
24290 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24291 }
24292 return_label869: while(false);
24293 tracehead = trace.prev;
24294 return;
24295 }
24296 void parser_prod___AFalseExpr___empty_init(val_t self, int* init_table) {
24297 struct trace_t trace = {NULL, NULL, 9979, LOCATE_parser_prod___AFalseExpr___empty_init};
24298 val_t variable[2];
24299 void **closurevariable = NULL;
24300 trace.prev = tracehead; tracehead = &trace;
24301 trace.file = LOCATE_parser_prod;
24302 variable[0] = self;
24303 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
24304 return_label870: while(false);
24305 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
24306 tracehead = trace.prev;
24307 return;
24308 }
24309 void parser_prod___AFalseExpr___init_afalseexpr(val_t self, val_t param0, int* init_table) {
24310 struct trace_t trace = {NULL, NULL, 9981, LOCATE_parser_prod___AFalseExpr___init_afalseexpr};
24311 val_t variable[4];
24312 void **closurevariable = NULL;
24313 trace.prev = tracehead; tracehead = &trace;
24314 trace.file = LOCATE_parser_prod;
24315 variable[0] = self;
24316 variable[1] = param0;
24317 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
24318 variable[3] = variable[0];
24319 CALL_parser_prod___AFalseExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AFalseExpr::empty_init*/;
24320 variable[3] = variable[0];
24321 ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/ = variable[1] /*n_kwfalse*/;
24322 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::==*/)))))));
24323 if (UNTAG_Bool(variable[3])) { /*if*/
24324 variable[3] = variable[0];
24325 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwfalse*/)( variable[1] /*n_kwfalse*/, variable[3]) /*PNode::parent=*/;
24326 }
24327 return_label871: while(false);
24328 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
24329 tracehead = trace.prev;
24330 return;
24331 }
24332 void parser_prod___ANullExpr___n_kwnull__eq(val_t self, val_t param0) {
24333 struct trace_t trace = {NULL, NULL, 10022, LOCATE_parser_prod___ANullExpr___n_kwnull__eq};
24334 val_t variable[4];
24335 void **closurevariable = NULL;
24336 trace.prev = tracehead; tracehead = &trace;
24337 trace.file = LOCATE_parser_prod;
24338 variable[0] = self;
24339 variable[1] = param0;
24340 variable[3] = variable[0];
24341 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/ = variable[1] /*n*/;
24342 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24343 if (UNTAG_Bool(variable[3])) { /*if*/
24344 variable[3] = variable[0];
24345 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24346 }
24347 return_label872: while(false);
24348 tracehead = trace.prev;
24349 return;
24350 }
24351 void parser_prod___ANullExpr___replace_child(val_t self, val_t param0, val_t param1) {
24352 struct trace_t trace = {NULL, NULL, 10043, LOCATE_parser_prod___ANullExpr___replace_child};
24353 val_t variable[5];
24354 void **closurevariable = NULL;
24355 trace.prev = tracehead; tracehead = &trace;
24356 trace.file = LOCATE_parser_prod;
24357 variable[0] = self;
24358 variable[1] = param0;
24359 variable[2] = param1;
24360 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::==*/)))))));
24361 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, 10045); nit_exit(1);}
24362 variable[4] = variable[0];
24363 variable[4] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[4]) /*ANullExpr::_n_kwnull*/;
24364 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24365 if (UNTAG_Bool(variable[4])) { /*if*/
24366 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24367 if (UNTAG_Bool(variable[4])) { /*if*/
24368 variable[4] = variable[0];
24369 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
24370 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
24371 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, 10049); nit_exit(1);}
24372 variable[4] = variable[0];
24373 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[4]) /*ANullExpr::_n_kwnull*/ = variable[2] /*new_child*/;
24374 } else { /*if*/
24375 variable[4] = variable[0];
24376 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[4]) /*ANullExpr::_n_kwnull*/ = NIT_NULL /*null*/;
24377 }
24378 goto return_label873;
24379 }
24380 return_label873: while(false);
24381 tracehead = trace.prev;
24382 return;
24383 }
24384 void parser_prod___ANullExpr___visit_all(val_t self, val_t param0) {
24385 struct trace_t trace = {NULL, NULL, 10058, LOCATE_parser_prod___ANullExpr___visit_all};
24386 val_t variable[4];
24387 void **closurevariable = NULL;
24388 trace.prev = tracehead; tracehead = &trace;
24389 trace.file = LOCATE_parser_prod;
24390 variable[0] = self;
24391 variable[1] = param0;
24392 variable[3] = variable[0];
24393 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
24394 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24395 if (UNTAG_Bool(variable[3])) { /*if*/
24396 variable[3] = variable[0];
24397 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
24398 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24399 }
24400 return_label874: while(false);
24401 tracehead = trace.prev;
24402 return;
24403 }
24404 void parser_prod___ANullExpr___visit_all_reverse(val_t self, val_t param0) {
24405 struct trace_t trace = {NULL, NULL, 10065, LOCATE_parser_prod___ANullExpr___visit_all_reverse};
24406 val_t variable[4];
24407 void **closurevariable = NULL;
24408 trace.prev = tracehead; tracehead = &trace;
24409 trace.file = LOCATE_parser_prod;
24410 variable[0] = self;
24411 variable[1] = param0;
24412 variable[3] = variable[0];
24413 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
24414 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24415 if (UNTAG_Bool(variable[3])) { /*if*/
24416 variable[3] = variable[0];
24417 variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
24418 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24419 }
24420 return_label875: while(false);
24421 tracehead = trace.prev;
24422 return;
24423 }
24424 void parser_prod___ANullExpr___empty_init(val_t self, int* init_table) {
24425 struct trace_t trace = {NULL, NULL, 10030, LOCATE_parser_prod___ANullExpr___empty_init};
24426 val_t variable[2];
24427 void **closurevariable = NULL;
24428 trace.prev = tracehead; tracehead = &trace;
24429 trace.file = LOCATE_parser_prod;
24430 variable[0] = self;
24431 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i]) return;
24432 return_label876: while(false);
24433 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
24434 tracehead = trace.prev;
24435 return;
24436 }
24437 void parser_prod___ANullExpr___init_anullexpr(val_t self, val_t param0, int* init_table) {
24438 struct trace_t trace = {NULL, NULL, 10032, LOCATE_parser_prod___ANullExpr___init_anullexpr};
24439 val_t variable[4];
24440 void **closurevariable = NULL;
24441 trace.prev = tracehead; tracehead = &trace;
24442 trace.file = LOCATE_parser_prod;
24443 variable[0] = self;
24444 variable[1] = param0;
24445 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i]) return;
24446 variable[3] = variable[0];
24447 CALL_parser_prod___ANullExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ANullExpr::empty_init*/;
24448 variable[3] = variable[0];
24449 ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/ = variable[1] /*n_kwnull*/;
24450 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::==*/)))))));
24451 if (UNTAG_Bool(variable[3])) { /*if*/
24452 variable[3] = variable[0];
24453 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnull*/)( variable[1] /*n_kwnull*/, variable[3]) /*PNode::parent=*/;
24454 }
24455 return_label877: while(false);
24456 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
24457 tracehead = trace.prev;
24458 return;
24459 }
24460 void parser_prod___AIntExpr___n_number__eq(val_t self, val_t param0) {
24461 struct trace_t trace = {NULL, NULL, 10073, LOCATE_parser_prod___AIntExpr___n_number__eq};
24462 val_t variable[4];
24463 void **closurevariable = NULL;
24464 trace.prev = tracehead; tracehead = &trace;
24465 trace.file = LOCATE_parser_prod;
24466 variable[0] = self;
24467 variable[1] = param0;
24468 variable[3] = variable[0];
24469 ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/ = variable[1] /*n*/;
24470 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24471 if (UNTAG_Bool(variable[3])) { /*if*/
24472 variable[3] = variable[0];
24473 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24474 }
24475 return_label878: while(false);
24476 tracehead = trace.prev;
24477 return;
24478 }
24479 void parser_prod___AIntExpr___replace_child(val_t self, val_t param0, val_t param1) {
24480 struct trace_t trace = {NULL, NULL, 10094, LOCATE_parser_prod___AIntExpr___replace_child};
24481 val_t variable[5];
24482 void **closurevariable = NULL;
24483 trace.prev = tracehead; tracehead = &trace;
24484 trace.file = LOCATE_parser_prod;
24485 variable[0] = self;
24486 variable[1] = param0;
24487 variable[2] = param1;
24488 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::==*/)))))));
24489 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, 10096); nit_exit(1);}
24490 variable[4] = variable[0];
24491 variable[4] = ATTR_parser_nodes___AIntExpr____n_number(variable[4]) /*AIntExpr::_n_number*/;
24492 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24493 if (UNTAG_Bool(variable[4])) { /*if*/
24494 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24495 if (UNTAG_Bool(variable[4])) { /*if*/
24496 variable[4] = variable[0];
24497 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
24498 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
24499 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, 10100); nit_exit(1);}
24500 variable[4] = variable[0];
24501 ATTR_parser_nodes___AIntExpr____n_number(variable[4]) /*AIntExpr::_n_number*/ = variable[2] /*new_child*/;
24502 } else { /*if*/
24503 variable[4] = variable[0];
24504 ATTR_parser_nodes___AIntExpr____n_number(variable[4]) /*AIntExpr::_n_number*/ = NIT_NULL /*null*/;
24505 }
24506 goto return_label879;
24507 }
24508 return_label879: while(false);
24509 tracehead = trace.prev;
24510 return;
24511 }
24512 void parser_prod___AIntExpr___visit_all(val_t self, val_t param0) {
24513 struct trace_t trace = {NULL, NULL, 10109, LOCATE_parser_prod___AIntExpr___visit_all};
24514 val_t variable[4];
24515 void **closurevariable = NULL;
24516 trace.prev = tracehead; tracehead = &trace;
24517 trace.file = LOCATE_parser_prod;
24518 variable[0] = self;
24519 variable[1] = param0;
24520 variable[3] = variable[0];
24521 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
24522 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24523 if (UNTAG_Bool(variable[3])) { /*if*/
24524 variable[3] = variable[0];
24525 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
24526 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24527 }
24528 return_label880: while(false);
24529 tracehead = trace.prev;
24530 return;
24531 }
24532 void parser_prod___AIntExpr___visit_all_reverse(val_t self, val_t param0) {
24533 struct trace_t trace = {NULL, NULL, 10116, LOCATE_parser_prod___AIntExpr___visit_all_reverse};
24534 val_t variable[4];
24535 void **closurevariable = NULL;
24536 trace.prev = tracehead; tracehead = &trace;
24537 trace.file = LOCATE_parser_prod;
24538 variable[0] = self;
24539 variable[1] = param0;
24540 variable[3] = variable[0];
24541 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
24542 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24543 if (UNTAG_Bool(variable[3])) { /*if*/
24544 variable[3] = variable[0];
24545 variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
24546 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24547 }
24548 return_label881: while(false);
24549 tracehead = trace.prev;
24550 return;
24551 }
24552 void parser_prod___AIntExpr___empty_init(val_t self, int* init_table) {
24553 struct trace_t trace = {NULL, NULL, 10081, LOCATE_parser_prod___AIntExpr___empty_init};
24554 val_t variable[2];
24555 void **closurevariable = NULL;
24556 trace.prev = tracehead; tracehead = &trace;
24557 trace.file = LOCATE_parser_prod;
24558 variable[0] = self;
24559 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i]) return;
24560 return_label882: while(false);
24561 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
24562 tracehead = trace.prev;
24563 return;
24564 }
24565 void parser_prod___AIntExpr___init_aintexpr(val_t self, val_t param0, int* init_table) {
24566 struct trace_t trace = {NULL, NULL, 10083, LOCATE_parser_prod___AIntExpr___init_aintexpr};
24567 val_t variable[4];
24568 void **closurevariable = NULL;
24569 trace.prev = tracehead; tracehead = &trace;
24570 trace.file = LOCATE_parser_prod;
24571 variable[0] = self;
24572 variable[1] = param0;
24573 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i]) return;
24574 variable[3] = variable[0];
24575 CALL_parser_prod___AIntExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AIntExpr::empty_init*/;
24576 variable[3] = variable[0];
24577 ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/ = variable[1] /*n_number*/;
24578 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::==*/)))))));
24579 if (UNTAG_Bool(variable[3])) { /*if*/
24580 variable[3] = variable[0];
24581 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_number*/)( variable[1] /*n_number*/, variable[3]) /*PNode::parent=*/;
24582 }
24583 return_label883: while(false);
24584 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
24585 tracehead = trace.prev;
24586 return;
24587 }
24588 void parser_prod___AFloatExpr___n_float__eq(val_t self, val_t param0) {
24589 struct trace_t trace = {NULL, NULL, 10124, LOCATE_parser_prod___AFloatExpr___n_float__eq};
24590 val_t variable[4];
24591 void **closurevariable = NULL;
24592 trace.prev = tracehead; tracehead = &trace;
24593 trace.file = LOCATE_parser_prod;
24594 variable[0] = self;
24595 variable[1] = param0;
24596 variable[3] = variable[0];
24597 ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/ = variable[1] /*n*/;
24598 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24599 if (UNTAG_Bool(variable[3])) { /*if*/
24600 variable[3] = variable[0];
24601 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24602 }
24603 return_label884: while(false);
24604 tracehead = trace.prev;
24605 return;
24606 }
24607 void parser_prod___AFloatExpr___replace_child(val_t self, val_t param0, val_t param1) {
24608 struct trace_t trace = {NULL, NULL, 10145, LOCATE_parser_prod___AFloatExpr___replace_child};
24609 val_t variable[5];
24610 void **closurevariable = NULL;
24611 trace.prev = tracehead; tracehead = &trace;
24612 trace.file = LOCATE_parser_prod;
24613 variable[0] = self;
24614 variable[1] = param0;
24615 variable[2] = param1;
24616 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::==*/)))))));
24617 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, 10147); nit_exit(1);}
24618 variable[4] = variable[0];
24619 variable[4] = ATTR_parser_nodes___AFloatExpr____n_float(variable[4]) /*AFloatExpr::_n_float*/;
24620 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24621 if (UNTAG_Bool(variable[4])) { /*if*/
24622 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24623 if (UNTAG_Bool(variable[4])) { /*if*/
24624 variable[4] = variable[0];
24625 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
24626 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
24627 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, 10151); nit_exit(1);}
24628 variable[4] = variable[0];
24629 ATTR_parser_nodes___AFloatExpr____n_float(variable[4]) /*AFloatExpr::_n_float*/ = variable[2] /*new_child*/;
24630 } else { /*if*/
24631 variable[4] = variable[0];
24632 ATTR_parser_nodes___AFloatExpr____n_float(variable[4]) /*AFloatExpr::_n_float*/ = NIT_NULL /*null*/;
24633 }
24634 goto return_label885;
24635 }
24636 return_label885: while(false);
24637 tracehead = trace.prev;
24638 return;
24639 }
24640 void parser_prod___AFloatExpr___visit_all(val_t self, val_t param0) {
24641 struct trace_t trace = {NULL, NULL, 10160, LOCATE_parser_prod___AFloatExpr___visit_all};
24642 val_t variable[4];
24643 void **closurevariable = NULL;
24644 trace.prev = tracehead; tracehead = &trace;
24645 trace.file = LOCATE_parser_prod;
24646 variable[0] = self;
24647 variable[1] = param0;
24648 variable[3] = variable[0];
24649 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
24650 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24651 if (UNTAG_Bool(variable[3])) { /*if*/
24652 variable[3] = variable[0];
24653 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
24654 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24655 }
24656 return_label886: while(false);
24657 tracehead = trace.prev;
24658 return;
24659 }
24660 void parser_prod___AFloatExpr___visit_all_reverse(val_t self, val_t param0) {
24661 struct trace_t trace = {NULL, NULL, 10167, LOCATE_parser_prod___AFloatExpr___visit_all_reverse};
24662 val_t variable[4];
24663 void **closurevariable = NULL;
24664 trace.prev = tracehead; tracehead = &trace;
24665 trace.file = LOCATE_parser_prod;
24666 variable[0] = self;
24667 variable[1] = param0;
24668 variable[3] = variable[0];
24669 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
24670 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24671 if (UNTAG_Bool(variable[3])) { /*if*/
24672 variable[3] = variable[0];
24673 variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
24674 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24675 }
24676 return_label887: while(false);
24677 tracehead = trace.prev;
24678 return;
24679 }
24680 void parser_prod___AFloatExpr___empty_init(val_t self, int* init_table) {
24681 struct trace_t trace = {NULL, NULL, 10132, LOCATE_parser_prod___AFloatExpr___empty_init};
24682 val_t variable[2];
24683 void **closurevariable = NULL;
24684 trace.prev = tracehead; tracehead = &trace;
24685 trace.file = LOCATE_parser_prod;
24686 variable[0] = self;
24687 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
24688 return_label888: while(false);
24689 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
24690 tracehead = trace.prev;
24691 return;
24692 }
24693 void parser_prod___AFloatExpr___init_afloatexpr(val_t self, val_t param0, int* init_table) {
24694 struct trace_t trace = {NULL, NULL, 10134, LOCATE_parser_prod___AFloatExpr___init_afloatexpr};
24695 val_t variable[4];
24696 void **closurevariable = NULL;
24697 trace.prev = tracehead; tracehead = &trace;
24698 trace.file = LOCATE_parser_prod;
24699 variable[0] = self;
24700 variable[1] = param0;
24701 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
24702 variable[3] = variable[0];
24703 CALL_parser_prod___AFloatExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AFloatExpr::empty_init*/;
24704 variable[3] = variable[0];
24705 ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/ = variable[1] /*n_float*/;
24706 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::==*/)))))));
24707 if (UNTAG_Bool(variable[3])) { /*if*/
24708 variable[3] = variable[0];
24709 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_float*/)( variable[1] /*n_float*/, variable[3]) /*PNode::parent=*/;
24710 }
24711 return_label889: while(false);
24712 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
24713 tracehead = trace.prev;
24714 return;
24715 }
24716 void parser_prod___ACharExpr___n_char__eq(val_t self, val_t param0) {
24717 struct trace_t trace = {NULL, NULL, 10175, LOCATE_parser_prod___ACharExpr___n_char__eq};
24718 val_t variable[4];
24719 void **closurevariable = NULL;
24720 trace.prev = tracehead; tracehead = &trace;
24721 trace.file = LOCATE_parser_prod;
24722 variable[0] = self;
24723 variable[1] = param0;
24724 variable[3] = variable[0];
24725 ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/ = variable[1] /*n*/;
24726 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24727 if (UNTAG_Bool(variable[3])) { /*if*/
24728 variable[3] = variable[0];
24729 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24730 }
24731 return_label890: while(false);
24732 tracehead = trace.prev;
24733 return;
24734 }
24735 void parser_prod___ACharExpr___replace_child(val_t self, val_t param0, val_t param1) {
24736 struct trace_t trace = {NULL, NULL, 10196, LOCATE_parser_prod___ACharExpr___replace_child};
24737 val_t variable[5];
24738 void **closurevariable = NULL;
24739 trace.prev = tracehead; tracehead = &trace;
24740 trace.file = LOCATE_parser_prod;
24741 variable[0] = self;
24742 variable[1] = param0;
24743 variable[2] = param1;
24744 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::==*/)))))));
24745 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, 10198); nit_exit(1);}
24746 variable[4] = variable[0];
24747 variable[4] = ATTR_parser_nodes___ACharExpr____n_char(variable[4]) /*ACharExpr::_n_char*/;
24748 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24749 if (UNTAG_Bool(variable[4])) { /*if*/
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 variable[4] = variable[0];
24753 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
24754 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
24755 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, 10202); nit_exit(1);}
24756 variable[4] = variable[0];
24757 ATTR_parser_nodes___ACharExpr____n_char(variable[4]) /*ACharExpr::_n_char*/ = variable[2] /*new_child*/;
24758 } else { /*if*/
24759 variable[4] = variable[0];
24760 ATTR_parser_nodes___ACharExpr____n_char(variable[4]) /*ACharExpr::_n_char*/ = NIT_NULL /*null*/;
24761 }
24762 goto return_label891;
24763 }
24764 return_label891: while(false);
24765 tracehead = trace.prev;
24766 return;
24767 }
24768 void parser_prod___ACharExpr___visit_all(val_t self, val_t param0) {
24769 struct trace_t trace = {NULL, NULL, 10211, LOCATE_parser_prod___ACharExpr___visit_all};
24770 val_t variable[4];
24771 void **closurevariable = NULL;
24772 trace.prev = tracehead; tracehead = &trace;
24773 trace.file = LOCATE_parser_prod;
24774 variable[0] = self;
24775 variable[1] = param0;
24776 variable[3] = variable[0];
24777 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
24778 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24779 if (UNTAG_Bool(variable[3])) { /*if*/
24780 variable[3] = variable[0];
24781 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
24782 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24783 }
24784 return_label892: while(false);
24785 tracehead = trace.prev;
24786 return;
24787 }
24788 void parser_prod___ACharExpr___visit_all_reverse(val_t self, val_t param0) {
24789 struct trace_t trace = {NULL, NULL, 10218, LOCATE_parser_prod___ACharExpr___visit_all_reverse};
24790 val_t variable[4];
24791 void **closurevariable = NULL;
24792 trace.prev = tracehead; tracehead = &trace;
24793 trace.file = LOCATE_parser_prod;
24794 variable[0] = self;
24795 variable[1] = param0;
24796 variable[3] = variable[0];
24797 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
24798 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24799 if (UNTAG_Bool(variable[3])) { /*if*/
24800 variable[3] = variable[0];
24801 variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
24802 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24803 }
24804 return_label893: while(false);
24805 tracehead = trace.prev;
24806 return;
24807 }
24808 void parser_prod___ACharExpr___empty_init(val_t self, int* init_table) {
24809 struct trace_t trace = {NULL, NULL, 10183, LOCATE_parser_prod___ACharExpr___empty_init};
24810 val_t variable[2];
24811 void **closurevariable = NULL;
24812 trace.prev = tracehead; tracehead = &trace;
24813 trace.file = LOCATE_parser_prod;
24814 variable[0] = self;
24815 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i]) return;
24816 return_label894: while(false);
24817 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
24818 tracehead = trace.prev;
24819 return;
24820 }
24821 void parser_prod___ACharExpr___init_acharexpr(val_t self, val_t param0, int* init_table) {
24822 struct trace_t trace = {NULL, NULL, 10185, LOCATE_parser_prod___ACharExpr___init_acharexpr};
24823 val_t variable[4];
24824 void **closurevariable = NULL;
24825 trace.prev = tracehead; tracehead = &trace;
24826 trace.file = LOCATE_parser_prod;
24827 variable[0] = self;
24828 variable[1] = param0;
24829 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i]) return;
24830 variable[3] = variable[0];
24831 CALL_parser_prod___ACharExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ACharExpr::empty_init*/;
24832 variable[3] = variable[0];
24833 ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/ = variable[1] /*n_char*/;
24834 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::==*/)))))));
24835 if (UNTAG_Bool(variable[3])) { /*if*/
24836 variable[3] = variable[0];
24837 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_char*/)( variable[1] /*n_char*/, variable[3]) /*PNode::parent=*/;
24838 }
24839 return_label895: while(false);
24840 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
24841 tracehead = trace.prev;
24842 return;
24843 }
24844 void parser_prod___AStringExpr___n_string__eq(val_t self, val_t param0) {
24845 struct trace_t trace = {NULL, NULL, 10226, LOCATE_parser_prod___AStringExpr___n_string__eq};
24846 val_t variable[4];
24847 void **closurevariable = NULL;
24848 trace.prev = tracehead; tracehead = &trace;
24849 trace.file = LOCATE_parser_prod;
24850 variable[0] = self;
24851 variable[1] = param0;
24852 variable[3] = variable[0];
24853 ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/ = variable[1] /*n*/;
24854 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24855 if (UNTAG_Bool(variable[3])) { /*if*/
24856 variable[3] = variable[0];
24857 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24858 }
24859 return_label896: while(false);
24860 tracehead = trace.prev;
24861 return;
24862 }
24863 void parser_prod___AStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
24864 struct trace_t trace = {NULL, NULL, 10247, LOCATE_parser_prod___AStringExpr___replace_child};
24865 val_t variable[5];
24866 void **closurevariable = NULL;
24867 trace.prev = tracehead; tracehead = &trace;
24868 trace.file = LOCATE_parser_prod;
24869 variable[0] = self;
24870 variable[1] = param0;
24871 variable[2] = param1;
24872 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::==*/)))))));
24873 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, 10249); nit_exit(1);}
24874 variable[4] = variable[0];
24875 variable[4] = ATTR_parser_nodes___AStringExpr____n_string(variable[4]) /*AStringExpr::_n_string*/;
24876 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
24877 if (UNTAG_Bool(variable[4])) { /*if*/
24878 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24879 if (UNTAG_Bool(variable[4])) { /*if*/
24880 variable[4] = variable[0];
24881 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
24882 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
24883 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, 10253); nit_exit(1);}
24884 variable[4] = variable[0];
24885 ATTR_parser_nodes___AStringExpr____n_string(variable[4]) /*AStringExpr::_n_string*/ = variable[2] /*new_child*/;
24886 } else { /*if*/
24887 variable[4] = variable[0];
24888 ATTR_parser_nodes___AStringExpr____n_string(variable[4]) /*AStringExpr::_n_string*/ = NIT_NULL /*null*/;
24889 }
24890 goto return_label897;
24891 }
24892 return_label897: while(false);
24893 tracehead = trace.prev;
24894 return;
24895 }
24896 void parser_prod___AStringExpr___visit_all(val_t self, val_t param0) {
24897 struct trace_t trace = {NULL, NULL, 10262, LOCATE_parser_prod___AStringExpr___visit_all};
24898 val_t variable[4];
24899 void **closurevariable = NULL;
24900 trace.prev = tracehead; tracehead = &trace;
24901 trace.file = LOCATE_parser_prod;
24902 variable[0] = self;
24903 variable[1] = param0;
24904 variable[3] = variable[0];
24905 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
24906 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24907 if (UNTAG_Bool(variable[3])) { /*if*/
24908 variable[3] = variable[0];
24909 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
24910 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24911 }
24912 return_label898: while(false);
24913 tracehead = trace.prev;
24914 return;
24915 }
24916 void parser_prod___AStringExpr___visit_all_reverse(val_t self, val_t param0) {
24917 struct trace_t trace = {NULL, NULL, 10269, LOCATE_parser_prod___AStringExpr___visit_all_reverse};
24918 val_t variable[4];
24919 void **closurevariable = NULL;
24920 trace.prev = tracehead; tracehead = &trace;
24921 trace.file = LOCATE_parser_prod;
24922 variable[0] = self;
24923 variable[1] = param0;
24924 variable[3] = variable[0];
24925 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
24926 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
24927 if (UNTAG_Bool(variable[3])) { /*if*/
24928 variable[3] = variable[0];
24929 variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
24930 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
24931 }
24932 return_label899: while(false);
24933 tracehead = trace.prev;
24934 return;
24935 }
24936 void parser_prod___AStringExpr___empty_init(val_t self, int* init_table) {
24937 struct trace_t trace = {NULL, NULL, 10234, LOCATE_parser_prod___AStringExpr___empty_init};
24938 val_t variable[2];
24939 void **closurevariable = NULL;
24940 trace.prev = tracehead; tracehead = &trace;
24941 trace.file = LOCATE_parser_prod;
24942 variable[0] = self;
24943 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i]) return;
24944 return_label900: while(false);
24945 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
24946 tracehead = trace.prev;
24947 return;
24948 }
24949 void parser_prod___AStringExpr___init_astringexpr(val_t self, val_t param0, int* init_table) {
24950 struct trace_t trace = {NULL, NULL, 10236, LOCATE_parser_prod___AStringExpr___init_astringexpr};
24951 val_t variable[4];
24952 void **closurevariable = NULL;
24953 trace.prev = tracehead; tracehead = &trace;
24954 trace.file = LOCATE_parser_prod;
24955 variable[0] = self;
24956 variable[1] = param0;
24957 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i]) return;
24958 variable[3] = variable[0];
24959 CALL_parser_prod___AStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStringExpr::empty_init*/;
24960 variable[3] = variable[0];
24961 ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/ = variable[1] /*n_string*/;
24962 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::==*/)))))));
24963 if (UNTAG_Bool(variable[3])) { /*if*/
24964 variable[3] = variable[0];
24965 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
24966 }
24967 return_label901: while(false);
24968 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
24969 tracehead = trace.prev;
24970 return;
24971 }
24972 void parser_prod___AStartStringExpr___n_string__eq(val_t self, val_t param0) {
24973 struct trace_t trace = {NULL, NULL, 10277, LOCATE_parser_prod___AStartStringExpr___n_string__eq};
24974 val_t variable[4];
24975 void **closurevariable = NULL;
24976 trace.prev = tracehead; tracehead = &trace;
24977 trace.file = LOCATE_parser_prod;
24978 variable[0] = self;
24979 variable[1] = param0;
24980 variable[3] = variable[0];
24981 ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/ = variable[1] /*n*/;
24982 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
24983 if (UNTAG_Bool(variable[3])) { /*if*/
24984 variable[3] = variable[0];
24985 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
24986 }
24987 return_label902: while(false);
24988 tracehead = trace.prev;
24989 return;
24990 }
24991 void parser_prod___AStartStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
24992 struct trace_t trace = {NULL, NULL, 10298, LOCATE_parser_prod___AStartStringExpr___replace_child};
24993 val_t variable[5];
24994 void **closurevariable = NULL;
24995 trace.prev = tracehead; tracehead = &trace;
24996 trace.file = LOCATE_parser_prod;
24997 variable[0] = self;
24998 variable[1] = param0;
24999 variable[2] = param1;
25000 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::==*/)))))));
25001 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, 10300); nit_exit(1);}
25002 variable[4] = variable[0];
25003 variable[4] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[4]) /*AStartStringExpr::_n_string*/;
25004 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25005 if (UNTAG_Bool(variable[4])) { /*if*/
25006 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25007 if (UNTAG_Bool(variable[4])) { /*if*/
25008 variable[4] = variable[0];
25009 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25010 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
25011 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, 10304); nit_exit(1);}
25012 variable[4] = variable[0];
25013 ATTR_parser_nodes___AStartStringExpr____n_string(variable[4]) /*AStartStringExpr::_n_string*/ = variable[2] /*new_child*/;
25014 } else { /*if*/
25015 variable[4] = variable[0];
25016 ATTR_parser_nodes___AStartStringExpr____n_string(variable[4]) /*AStartStringExpr::_n_string*/ = NIT_NULL /*null*/;
25017 }
25018 goto return_label903;
25019 }
25020 return_label903: while(false);
25021 tracehead = trace.prev;
25022 return;
25023 }
25024 void parser_prod___AStartStringExpr___visit_all(val_t self, val_t param0) {
25025 struct trace_t trace = {NULL, NULL, 10313, LOCATE_parser_prod___AStartStringExpr___visit_all};
25026 val_t variable[4];
25027 void **closurevariable = NULL;
25028 trace.prev = tracehead; tracehead = &trace;
25029 trace.file = LOCATE_parser_prod;
25030 variable[0] = self;
25031 variable[1] = param0;
25032 variable[3] = variable[0];
25033 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
25034 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25035 if (UNTAG_Bool(variable[3])) { /*if*/
25036 variable[3] = variable[0];
25037 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
25038 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25039 }
25040 return_label904: while(false);
25041 tracehead = trace.prev;
25042 return;
25043 }
25044 void parser_prod___AStartStringExpr___visit_all_reverse(val_t self, val_t param0) {
25045 struct trace_t trace = {NULL, NULL, 10320, LOCATE_parser_prod___AStartStringExpr___visit_all_reverse};
25046 val_t variable[4];
25047 void **closurevariable = NULL;
25048 trace.prev = tracehead; tracehead = &trace;
25049 trace.file = LOCATE_parser_prod;
25050 variable[0] = self;
25051 variable[1] = param0;
25052 variable[3] = variable[0];
25053 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
25054 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25055 if (UNTAG_Bool(variable[3])) { /*if*/
25056 variable[3] = variable[0];
25057 variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
25058 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25059 }
25060 return_label905: while(false);
25061 tracehead = trace.prev;
25062 return;
25063 }
25064 void parser_prod___AStartStringExpr___empty_init(val_t self, int* init_table) {
25065 struct trace_t trace = {NULL, NULL, 10285, LOCATE_parser_prod___AStartStringExpr___empty_init};
25066 val_t variable[2];
25067 void **closurevariable = NULL;
25068 trace.prev = tracehead; tracehead = &trace;
25069 trace.file = LOCATE_parser_prod;
25070 variable[0] = self;
25071 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
25072 return_label906: while(false);
25073 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
25074 tracehead = trace.prev;
25075 return;
25076 }
25077 void parser_prod___AStartStringExpr___init_astartstringexpr(val_t self, val_t param0, int* init_table) {
25078 struct trace_t trace = {NULL, NULL, 10287, LOCATE_parser_prod___AStartStringExpr___init_astartstringexpr};
25079 val_t variable[4];
25080 void **closurevariable = NULL;
25081 trace.prev = tracehead; tracehead = &trace;
25082 trace.file = LOCATE_parser_prod;
25083 variable[0] = self;
25084 variable[1] = param0;
25085 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
25086 variable[3] = variable[0];
25087 CALL_parser_prod___AStartStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStartStringExpr::empty_init*/;
25088 variable[3] = variable[0];
25089 ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/ = variable[1] /*n_string*/;
25090 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::==*/)))))));
25091 if (UNTAG_Bool(variable[3])) { /*if*/
25092 variable[3] = variable[0];
25093 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
25094 }
25095 return_label907: while(false);
25096 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
25097 tracehead = trace.prev;
25098 return;
25099 }
25100 void parser_prod___AMidStringExpr___n_string__eq(val_t self, val_t param0) {
25101 struct trace_t trace = {NULL, NULL, 10328, LOCATE_parser_prod___AMidStringExpr___n_string__eq};
25102 val_t variable[4];
25103 void **closurevariable = NULL;
25104 trace.prev = tracehead; tracehead = &trace;
25105 trace.file = LOCATE_parser_prod;
25106 variable[0] = self;
25107 variable[1] = param0;
25108 variable[3] = variable[0];
25109 ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/ = variable[1] /*n*/;
25110 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25111 if (UNTAG_Bool(variable[3])) { /*if*/
25112 variable[3] = variable[0];
25113 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
25114 }
25115 return_label908: while(false);
25116 tracehead = trace.prev;
25117 return;
25118 }
25119 void parser_prod___AMidStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
25120 struct trace_t trace = {NULL, NULL, 10349, LOCATE_parser_prod___AMidStringExpr___replace_child};
25121 val_t variable[5];
25122 void **closurevariable = NULL;
25123 trace.prev = tracehead; tracehead = &trace;
25124 trace.file = LOCATE_parser_prod;
25125 variable[0] = self;
25126 variable[1] = param0;
25127 variable[2] = param1;
25128 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::==*/)))))));
25129 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, 10351); nit_exit(1);}
25130 variable[4] = variable[0];
25131 variable[4] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[4]) /*AMidStringExpr::_n_string*/;
25132 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25133 if (UNTAG_Bool(variable[4])) { /*if*/
25134 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25135 if (UNTAG_Bool(variable[4])) { /*if*/
25136 variable[4] = variable[0];
25137 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25138 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
25139 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, 10355); nit_exit(1);}
25140 variable[4] = variable[0];
25141 ATTR_parser_nodes___AMidStringExpr____n_string(variable[4]) /*AMidStringExpr::_n_string*/ = variable[2] /*new_child*/;
25142 } else { /*if*/
25143 variable[4] = variable[0];
25144 ATTR_parser_nodes___AMidStringExpr____n_string(variable[4]) /*AMidStringExpr::_n_string*/ = NIT_NULL /*null*/;
25145 }
25146 goto return_label909;
25147 }
25148 return_label909: while(false);
25149 tracehead = trace.prev;
25150 return;
25151 }
25152 void parser_prod___AMidStringExpr___visit_all(val_t self, val_t param0) {
25153 struct trace_t trace = {NULL, NULL, 10364, LOCATE_parser_prod___AMidStringExpr___visit_all};
25154 val_t variable[4];
25155 void **closurevariable = NULL;
25156 trace.prev = tracehead; tracehead = &trace;
25157 trace.file = LOCATE_parser_prod;
25158 variable[0] = self;
25159 variable[1] = param0;
25160 variable[3] = variable[0];
25161 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
25162 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25163 if (UNTAG_Bool(variable[3])) { /*if*/
25164 variable[3] = variable[0];
25165 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
25166 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25167 }
25168 return_label910: while(false);
25169 tracehead = trace.prev;
25170 return;
25171 }
25172 void parser_prod___AMidStringExpr___visit_all_reverse(val_t self, val_t param0) {
25173 struct trace_t trace = {NULL, NULL, 10371, LOCATE_parser_prod___AMidStringExpr___visit_all_reverse};
25174 val_t variable[4];
25175 void **closurevariable = NULL;
25176 trace.prev = tracehead; tracehead = &trace;
25177 trace.file = LOCATE_parser_prod;
25178 variable[0] = self;
25179 variable[1] = param0;
25180 variable[3] = variable[0];
25181 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
25182 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25183 if (UNTAG_Bool(variable[3])) { /*if*/
25184 variable[3] = variable[0];
25185 variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
25186 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25187 }
25188 return_label911: while(false);
25189 tracehead = trace.prev;
25190 return;
25191 }
25192 void parser_prod___AMidStringExpr___empty_init(val_t self, int* init_table) {
25193 struct trace_t trace = {NULL, NULL, 10336, LOCATE_parser_prod___AMidStringExpr___empty_init};
25194 val_t variable[2];
25195 void **closurevariable = NULL;
25196 trace.prev = tracehead; tracehead = &trace;
25197 trace.file = LOCATE_parser_prod;
25198 variable[0] = self;
25199 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
25200 return_label912: while(false);
25201 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
25202 tracehead = trace.prev;
25203 return;
25204 }
25205 void parser_prod___AMidStringExpr___init_amidstringexpr(val_t self, val_t param0, int* init_table) {
25206 struct trace_t trace = {NULL, NULL, 10338, LOCATE_parser_prod___AMidStringExpr___init_amidstringexpr};
25207 val_t variable[4];
25208 void **closurevariable = NULL;
25209 trace.prev = tracehead; tracehead = &trace;
25210 trace.file = LOCATE_parser_prod;
25211 variable[0] = self;
25212 variable[1] = param0;
25213 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
25214 variable[3] = variable[0];
25215 CALL_parser_prod___AMidStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMidStringExpr::empty_init*/;
25216 variable[3] = variable[0];
25217 ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/ = variable[1] /*n_string*/;
25218 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::==*/)))))));
25219 if (UNTAG_Bool(variable[3])) { /*if*/
25220 variable[3] = variable[0];
25221 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
25222 }
25223 return_label913: while(false);
25224 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
25225 tracehead = trace.prev;
25226 return;
25227 }
25228 void parser_prod___AEndStringExpr___n_string__eq(val_t self, val_t param0) {
25229 struct trace_t trace = {NULL, NULL, 10379, LOCATE_parser_prod___AEndStringExpr___n_string__eq};
25230 val_t variable[4];
25231 void **closurevariable = NULL;
25232 trace.prev = tracehead; tracehead = &trace;
25233 trace.file = LOCATE_parser_prod;
25234 variable[0] = self;
25235 variable[1] = param0;
25236 variable[3] = variable[0];
25237 ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/ = variable[1] /*n*/;
25238 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25239 if (UNTAG_Bool(variable[3])) { /*if*/
25240 variable[3] = variable[0];
25241 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
25242 }
25243 return_label914: while(false);
25244 tracehead = trace.prev;
25245 return;
25246 }
25247 void parser_prod___AEndStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
25248 struct trace_t trace = {NULL, NULL, 10400, LOCATE_parser_prod___AEndStringExpr___replace_child};
25249 val_t variable[5];
25250 void **closurevariable = NULL;
25251 trace.prev = tracehead; tracehead = &trace;
25252 trace.file = LOCATE_parser_prod;
25253 variable[0] = self;
25254 variable[1] = param0;
25255 variable[2] = param1;
25256 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::==*/)))))));
25257 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, 10402); nit_exit(1);}
25258 variable[4] = variable[0];
25259 variable[4] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[4]) /*AEndStringExpr::_n_string*/;
25260 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25261 if (UNTAG_Bool(variable[4])) { /*if*/
25262 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25263 if (UNTAG_Bool(variable[4])) { /*if*/
25264 variable[4] = variable[0];
25265 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25266 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
25267 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, 10406); nit_exit(1);}
25268 variable[4] = variable[0];
25269 ATTR_parser_nodes___AEndStringExpr____n_string(variable[4]) /*AEndStringExpr::_n_string*/ = variable[2] /*new_child*/;
25270 } else { /*if*/
25271 variable[4] = variable[0];
25272 ATTR_parser_nodes___AEndStringExpr____n_string(variable[4]) /*AEndStringExpr::_n_string*/ = NIT_NULL /*null*/;
25273 }
25274 goto return_label915;
25275 }
25276 return_label915: while(false);
25277 tracehead = trace.prev;
25278 return;
25279 }
25280 void parser_prod___AEndStringExpr___visit_all(val_t self, val_t param0) {
25281 struct trace_t trace = {NULL, NULL, 10415, LOCATE_parser_prod___AEndStringExpr___visit_all};
25282 val_t variable[4];
25283 void **closurevariable = NULL;
25284 trace.prev = tracehead; tracehead = &trace;
25285 trace.file = LOCATE_parser_prod;
25286 variable[0] = self;
25287 variable[1] = param0;
25288 variable[3] = variable[0];
25289 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
25290 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25291 if (UNTAG_Bool(variable[3])) { /*if*/
25292 variable[3] = variable[0];
25293 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
25294 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25295 }
25296 return_label916: while(false);
25297 tracehead = trace.prev;
25298 return;
25299 }
25300 void parser_prod___AEndStringExpr___visit_all_reverse(val_t self, val_t param0) {
25301 struct trace_t trace = {NULL, NULL, 10422, LOCATE_parser_prod___AEndStringExpr___visit_all_reverse};
25302 val_t variable[4];
25303 void **closurevariable = NULL;
25304 trace.prev = tracehead; tracehead = &trace;
25305 trace.file = LOCATE_parser_prod;
25306 variable[0] = self;
25307 variable[1] = param0;
25308 variable[3] = variable[0];
25309 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
25310 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25311 if (UNTAG_Bool(variable[3])) { /*if*/
25312 variable[3] = variable[0];
25313 variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
25314 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25315 }
25316 return_label917: while(false);
25317 tracehead = trace.prev;
25318 return;
25319 }
25320 void parser_prod___AEndStringExpr___empty_init(val_t self, int* init_table) {
25321 struct trace_t trace = {NULL, NULL, 10387, LOCATE_parser_prod___AEndStringExpr___empty_init};
25322 val_t variable[2];
25323 void **closurevariable = NULL;
25324 trace.prev = tracehead; tracehead = &trace;
25325 trace.file = LOCATE_parser_prod;
25326 variable[0] = self;
25327 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
25328 return_label918: while(false);
25329 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
25330 tracehead = trace.prev;
25331 return;
25332 }
25333 void parser_prod___AEndStringExpr___init_aendstringexpr(val_t self, val_t param0, int* init_table) {
25334 struct trace_t trace = {NULL, NULL, 10389, LOCATE_parser_prod___AEndStringExpr___init_aendstringexpr};
25335 val_t variable[4];
25336 void **closurevariable = NULL;
25337 trace.prev = tracehead; tracehead = &trace;
25338 trace.file = LOCATE_parser_prod;
25339 variable[0] = self;
25340 variable[1] = param0;
25341 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
25342 variable[3] = variable[0];
25343 CALL_parser_prod___AEndStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AEndStringExpr::empty_init*/;
25344 variable[3] = variable[0];
25345 ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/ = variable[1] /*n_string*/;
25346 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::==*/)))))));
25347 if (UNTAG_Bool(variable[3])) { /*if*/
25348 variable[3] = variable[0];
25349 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
25350 }
25351 return_label919: while(false);
25352 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
25353 tracehead = trace.prev;
25354 return;
25355 }
25356 void parser_prod___ASuperstringExpr___replace_child(val_t self, val_t param0, val_t param1) {
25357 struct trace_t trace = {NULL, NULL, 10446, LOCATE_parser_prod___ASuperstringExpr___replace_child};
25358 val_t variable[8];
25359 void **closurevariable = NULL;
25360 trace.prev = tracehead; tracehead = &trace;
25361 trace.file = LOCATE_parser_prod;
25362 variable[0] = self;
25363 variable[1] = param0;
25364 variable[2] = param1;
25365 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::==*/)))))));
25366 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, 10448); nit_exit(1);}
25367 variable[4] = variable[0];
25368 variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[4]) /*ASuperstringExpr::_n_exprs*/;
25369 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25370 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
25371 variable[4] = variable[5];
25372 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
25373 while (true) { /*for*/
25374 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
25375 if (!UNTAG_Bool(variable[5])) break; /*for*/
25376 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
25377 variable[6] = variable[5];
25378 variable[7] = variable[0];
25379 variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[7]) /*ASuperstringExpr::_n_exprs*/;
25380 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
25381 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::==*/)))));
25382 if (UNTAG_Bool(variable[7])) { /*if*/
25383 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::==*/)))))));
25384 if (UNTAG_Bool(variable[7])) { /*if*/
25385 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25386 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, 10452); nit_exit(1);}
25387 variable[7] = variable[0];
25388 variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[7]) /*ASuperstringExpr::_n_exprs*/;
25389 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
25390 variable[7] = variable[0];
25391 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
25392 } else { /*if*/
25393 variable[7] = variable[0];
25394 variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[7]) /*ASuperstringExpr::_n_exprs*/;
25395 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
25396 }
25397 goto return_label920;
25398 }
25399 continue_921: while(0);
25400 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
25401 }
25402 break_921: while(0);
25403 return_label920: while(false);
25404 tracehead = trace.prev;
25405 return;
25406 }
25407 void parser_prod___ASuperstringExpr___visit_all(val_t self, val_t param0) {
25408 struct trace_t trace = {NULL, NULL, 10463, LOCATE_parser_prod___ASuperstringExpr___visit_all};
25409 val_t variable[6];
25410 void **closurevariable = NULL;
25411 trace.prev = tracehead; tracehead = &trace;
25412 trace.file = LOCATE_parser_prod;
25413 variable[0] = self;
25414 variable[1] = param0;
25415 variable[3] = variable[0];
25416 variable[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[3]) /*ASuperstringExpr::_n_exprs*/;
25417 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
25418 while (true) { /*for*/
25419 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
25420 if (!UNTAG_Bool(variable[4])) break; /*for*/
25421 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
25422 variable[5] = variable[4];
25423 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
25424 continue_923: while(0);
25425 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
25426 }
25427 break_923: while(0);
25428 return_label922: while(false);
25429 tracehead = trace.prev;
25430 return;
25431 }
25432 void parser_prod___ASuperstringExpr___visit_all_reverse(val_t self, val_t param0) {
25433 struct trace_t trace = {NULL, NULL, 10470, LOCATE_parser_prod___ASuperstringExpr___visit_all_reverse};
25434 val_t variable[5];
25435 void **closurevariable = NULL;
25436 trace.prev = tracehead; tracehead = &trace;
25437 trace.file = LOCATE_parser_prod;
25438 variable[0] = self;
25439 variable[1] = param0;
25440 variable[4] = variable[0];
25441 variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[4]) /*ASuperstringExpr::_n_exprs*/;
25442 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
25443 variable[3] = variable[4];
25444 while (true) { /*while*/
25445 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
25446 if (!UNTAG_Bool(variable[4])) break; /* while*/
25447 variable[4] = variable[0];
25448 variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[4]) /*ASuperstringExpr::_n_exprs*/;
25449 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
25450 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
25451 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
25452 variable[3] = variable[4] /*i=*/;
25453 continue_925: while(0);
25454 }
25455 break_925: while(0);
25456 return_label924: while(false);
25457 tracehead = trace.prev;
25458 return;
25459 }
25460 void parser_prod___ASuperstringExpr___empty_init(val_t self, int* init_table) {
25461 struct trace_t trace = {NULL, NULL, 10431, LOCATE_parser_prod___ASuperstringExpr___empty_init};
25462 val_t variable[2];
25463 void **closurevariable = NULL;
25464 trace.prev = tracehead; tracehead = &trace;
25465 trace.file = LOCATE_parser_prod;
25466 variable[0] = self;
25467 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
25468 return_label926: while(false);
25469 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
25470 tracehead = trace.prev;
25471 return;
25472 }
25473 void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t self, val_t param0, int* init_table) {
25474 struct trace_t trace = {NULL, NULL, 10433, LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr};
25475 val_t variable[7];
25476 void **closurevariable = NULL;
25477 trace.prev = tracehead; tracehead = &trace;
25478 trace.file = LOCATE_parser_prod;
25479 variable[0] = self;
25480 variable[1] = param0;
25481 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
25482 variable[3] = variable[0];
25483 CALL_parser_prod___ASuperstringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASuperstringExpr::empty_init*/;
25484 variable[3] = variable[0];
25485 variable[4] = NEW_List_list___List___init(); /*new List[PExpr]*/
25486 ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[3]) /*ASuperstringExpr::_n_exprs*/ = variable[4];
25487 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_exprs*/)( variable[1] /*n_exprs*/) /*AbstractArray::iterator*/;
25488 while (true) { /*for*/
25489 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
25490 if (!UNTAG_Bool(variable[4])) break; /*for*/
25491 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
25492 variable[5] = variable[4];
25493 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25494 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, 10440); nit_exit(1);}
25495 variable[6] = variable[0];
25496 variable[6] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[6]) /*ASuperstringExpr::_n_exprs*/;
25497 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
25498 variable[6] = variable[0];
25499 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
25500 continue_928: while(0);
25501 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
25502 }
25503 break_928: while(0);
25504 return_label927: while(false);
25505 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
25506 tracehead = trace.prev;
25507 return;
25508 }
25509 void parser_prod___AParExpr___n_expr__eq(val_t self, val_t param0) {
25510 struct trace_t trace = {NULL, NULL, 10482, LOCATE_parser_prod___AParExpr___n_expr__eq};
25511 val_t variable[4];
25512 void **closurevariable = NULL;
25513 trace.prev = tracehead; tracehead = &trace;
25514 trace.file = LOCATE_parser_prod;
25515 variable[0] = self;
25516 variable[1] = param0;
25517 variable[3] = variable[0];
25518 ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/ = variable[1] /*n*/;
25519 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25520 if (UNTAG_Bool(variable[3])) { /*if*/
25521 variable[3] = variable[0];
25522 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
25523 }
25524 return_label929: while(false);
25525 tracehead = trace.prev;
25526 return;
25527 }
25528 void parser_prod___AParExpr___replace_child(val_t self, val_t param0, val_t param1) {
25529 struct trace_t trace = {NULL, NULL, 10503, LOCATE_parser_prod___AParExpr___replace_child};
25530 val_t variable[5];
25531 void **closurevariable = NULL;
25532 trace.prev = tracehead; tracehead = &trace;
25533 trace.file = LOCATE_parser_prod;
25534 variable[0] = self;
25535 variable[1] = param0;
25536 variable[2] = param1;
25537 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::==*/)))))));
25538 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, 10505); nit_exit(1);}
25539 variable[4] = variable[0];
25540 variable[4] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/;
25541 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25542 if (UNTAG_Bool(variable[4])) { /*if*/
25543 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25544 if (UNTAG_Bool(variable[4])) { /*if*/
25545 variable[4] = variable[0];
25546 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25547 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25548 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, 10509); nit_exit(1);}
25549 variable[4] = variable[0];
25550 ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/ = variable[2] /*new_child*/;
25551 } else { /*if*/
25552 variable[4] = variable[0];
25553 ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/ = NIT_NULL /*null*/;
25554 }
25555 goto return_label930;
25556 }
25557 return_label930: while(false);
25558 tracehead = trace.prev;
25559 return;
25560 }
25561 void parser_prod___AParExpr___visit_all(val_t self, val_t param0) {
25562 struct trace_t trace = {NULL, NULL, 10518, LOCATE_parser_prod___AParExpr___visit_all};
25563 val_t variable[4];
25564 void **closurevariable = NULL;
25565 trace.prev = tracehead; tracehead = &trace;
25566 trace.file = LOCATE_parser_prod;
25567 variable[0] = self;
25568 variable[1] = param0;
25569 variable[3] = variable[0];
25570 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
25571 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25572 if (UNTAG_Bool(variable[3])) { /*if*/
25573 variable[3] = variable[0];
25574 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
25575 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25576 }
25577 return_label931: while(false);
25578 tracehead = trace.prev;
25579 return;
25580 }
25581 void parser_prod___AParExpr___visit_all_reverse(val_t self, val_t param0) {
25582 struct trace_t trace = {NULL, NULL, 10525, LOCATE_parser_prod___AParExpr___visit_all_reverse};
25583 val_t variable[4];
25584 void **closurevariable = NULL;
25585 trace.prev = tracehead; tracehead = &trace;
25586 trace.file = LOCATE_parser_prod;
25587 variable[0] = self;
25588 variable[1] = param0;
25589 variable[3] = variable[0];
25590 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
25591 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25592 if (UNTAG_Bool(variable[3])) { /*if*/
25593 variable[3] = variable[0];
25594 variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
25595 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25596 }
25597 return_label932: while(false);
25598 tracehead = trace.prev;
25599 return;
25600 }
25601 void parser_prod___AParExpr___empty_init(val_t self, int* init_table) {
25602 struct trace_t trace = {NULL, NULL, 10490, LOCATE_parser_prod___AParExpr___empty_init};
25603 val_t variable[2];
25604 void **closurevariable = NULL;
25605 trace.prev = tracehead; tracehead = &trace;
25606 trace.file = LOCATE_parser_prod;
25607 variable[0] = self;
25608 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i]) return;
25609 return_label933: while(false);
25610 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i] = 1;
25611 tracehead = trace.prev;
25612 return;
25613 }
25614 void parser_prod___AParExpr___init_aparexpr(val_t self, val_t param0, int* init_table) {
25615 struct trace_t trace = {NULL, NULL, 10492, LOCATE_parser_prod___AParExpr___init_aparexpr};
25616 val_t variable[4];
25617 void **closurevariable = NULL;
25618 trace.prev = tracehead; tracehead = &trace;
25619 trace.file = LOCATE_parser_prod;
25620 variable[0] = self;
25621 variable[1] = param0;
25622 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i]) return;
25623 variable[3] = variable[0];
25624 CALL_parser_prod___AParExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AParExpr::empty_init*/;
25625 variable[3] = variable[0];
25626 ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/ = variable[1] /*n_expr*/;
25627 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::==*/)))))));
25628 if (UNTAG_Bool(variable[3])) { /*if*/
25629 variable[3] = variable[0];
25630 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[3]) /*PNode::parent=*/;
25631 }
25632 return_label934: while(false);
25633 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i] = 1;
25634 tracehead = trace.prev;
25635 return;
25636 }
25637 void parser_prod___AAsCastExpr___n_expr__eq(val_t self, val_t param0) {
25638 struct trace_t trace = {NULL, NULL, 10533, LOCATE_parser_prod___AAsCastExpr___n_expr__eq};
25639 val_t variable[4];
25640 void **closurevariable = NULL;
25641 trace.prev = tracehead; tracehead = &trace;
25642 trace.file = LOCATE_parser_prod;
25643 variable[0] = self;
25644 variable[1] = param0;
25645 variable[3] = variable[0];
25646 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/ = variable[1] /*n*/;
25647 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25648 if (UNTAG_Bool(variable[3])) { /*if*/
25649 variable[3] = variable[0];
25650 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
25651 }
25652 return_label935: while(false);
25653 tracehead = trace.prev;
25654 return;
25655 }
25656 void parser_prod___AAsCastExpr___n_kwas__eq(val_t self, val_t param0) {
25657 struct trace_t trace = {NULL, NULL, 10540, LOCATE_parser_prod___AAsCastExpr___n_kwas__eq};
25658 val_t variable[4];
25659 void **closurevariable = NULL;
25660 trace.prev = tracehead; tracehead = &trace;
25661 trace.file = LOCATE_parser_prod;
25662 variable[0] = self;
25663 variable[1] = param0;
25664 variable[3] = variable[0];
25665 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/ = variable[1] /*n*/;
25666 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25667 if (UNTAG_Bool(variable[3])) { /*if*/
25668 variable[3] = variable[0];
25669 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
25670 }
25671 return_label936: while(false);
25672 tracehead = trace.prev;
25673 return;
25674 }
25675 void parser_prod___AAsCastExpr___n_type__eq(val_t self, val_t param0) {
25676 struct trace_t trace = {NULL, NULL, 10547, LOCATE_parser_prod___AAsCastExpr___n_type__eq};
25677 val_t variable[4];
25678 void **closurevariable = NULL;
25679 trace.prev = tracehead; tracehead = &trace;
25680 trace.file = LOCATE_parser_prod;
25681 variable[0] = self;
25682 variable[1] = param0;
25683 variable[3] = variable[0];
25684 ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/ = variable[1] /*n*/;
25685 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25686 if (UNTAG_Bool(variable[3])) { /*if*/
25687 variable[3] = variable[0];
25688 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
25689 }
25690 return_label937: while(false);
25691 tracehead = trace.prev;
25692 return;
25693 }
25694 void parser_prod___AAsCastExpr___replace_child(val_t self, val_t param0, val_t param1) {
25695 struct trace_t trace = {NULL, NULL, 10578, LOCATE_parser_prod___AAsCastExpr___replace_child};
25696 val_t variable[5];
25697 void **closurevariable = NULL;
25698 trace.prev = tracehead; tracehead = &trace;
25699 trace.file = LOCATE_parser_prod;
25700 variable[0] = self;
25701 variable[1] = param0;
25702 variable[2] = param1;
25703 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::==*/)))))));
25704 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, 10580); nit_exit(1);}
25705 variable[4] = variable[0];
25706 variable[4] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[4]) /*AAsCastExpr::_n_expr*/;
25707 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25708 if (UNTAG_Bool(variable[4])) { /*if*/
25709 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25710 if (UNTAG_Bool(variable[4])) { /*if*/
25711 variable[4] = variable[0];
25712 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25713 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
25714 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, 10584); nit_exit(1);}
25715 variable[4] = variable[0];
25716 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[4]) /*AAsCastExpr::_n_expr*/ = variable[2] /*new_child*/;
25717 } else { /*if*/
25718 variable[4] = variable[0];
25719 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[4]) /*AAsCastExpr::_n_expr*/ = NIT_NULL /*null*/;
25720 }
25721 goto return_label938;
25722 }
25723 variable[4] = variable[0];
25724 variable[4] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[4]) /*AAsCastExpr::_n_kwas*/;
25725 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25726 if (UNTAG_Bool(variable[4])) { /*if*/
25727 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25728 if (UNTAG_Bool(variable[4])) { /*if*/
25729 variable[4] = variable[0];
25730 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25731 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
25732 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, 10594); nit_exit(1);}
25733 variable[4] = variable[0];
25734 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[4]) /*AAsCastExpr::_n_kwas*/ = variable[2] /*new_child*/;
25735 } else { /*if*/
25736 variable[4] = variable[0];
25737 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[4]) /*AAsCastExpr::_n_kwas*/ = NIT_NULL /*null*/;
25738 }
25739 goto return_label938;
25740 }
25741 variable[4] = variable[0];
25742 variable[4] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[4]) /*AAsCastExpr::_n_type*/;
25743 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25744 if (UNTAG_Bool(variable[4])) { /*if*/
25745 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25746 if (UNTAG_Bool(variable[4])) { /*if*/
25747 variable[4] = variable[0];
25748 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25749 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
25750 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, 10604); nit_exit(1);}
25751 variable[4] = variable[0];
25752 ATTR_parser_nodes___AAsCastExpr____n_type(variable[4]) /*AAsCastExpr::_n_type*/ = variable[2] /*new_child*/;
25753 } else { /*if*/
25754 variable[4] = variable[0];
25755 ATTR_parser_nodes___AAsCastExpr____n_type(variable[4]) /*AAsCastExpr::_n_type*/ = NIT_NULL /*null*/;
25756 }
25757 goto return_label938;
25758 }
25759 return_label938: while(false);
25760 tracehead = trace.prev;
25761 return;
25762 }
25763 void parser_prod___AAsCastExpr___visit_all(val_t self, val_t param0) {
25764 struct trace_t trace = {NULL, NULL, 10613, LOCATE_parser_prod___AAsCastExpr___visit_all};
25765 val_t variable[4];
25766 void **closurevariable = NULL;
25767 trace.prev = tracehead; tracehead = &trace;
25768 trace.file = LOCATE_parser_prod;
25769 variable[0] = self;
25770 variable[1] = param0;
25771 variable[3] = variable[0];
25772 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
25773 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25774 if (UNTAG_Bool(variable[3])) { /*if*/
25775 variable[3] = variable[0];
25776 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
25777 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25778 }
25779 variable[3] = variable[0];
25780 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
25781 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25782 if (UNTAG_Bool(variable[3])) { /*if*/
25783 variable[3] = variable[0];
25784 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
25785 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25786 }
25787 variable[3] = variable[0];
25788 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
25789 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25790 if (UNTAG_Bool(variable[3])) { /*if*/
25791 variable[3] = variable[0];
25792 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
25793 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25794 }
25795 return_label939: while(false);
25796 tracehead = trace.prev;
25797 return;
25798 }
25799 void parser_prod___AAsCastExpr___visit_all_reverse(val_t self, val_t param0) {
25800 struct trace_t trace = {NULL, NULL, 10626, LOCATE_parser_prod___AAsCastExpr___visit_all_reverse};
25801 val_t variable[4];
25802 void **closurevariable = NULL;
25803 trace.prev = tracehead; tracehead = &trace;
25804 trace.file = LOCATE_parser_prod;
25805 variable[0] = self;
25806 variable[1] = param0;
25807 variable[3] = variable[0];
25808 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
25809 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25810 if (UNTAG_Bool(variable[3])) { /*if*/
25811 variable[3] = variable[0];
25812 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
25813 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25814 }
25815 variable[3] = variable[0];
25816 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
25817 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25818 if (UNTAG_Bool(variable[3])) { /*if*/
25819 variable[3] = variable[0];
25820 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
25821 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25822 }
25823 variable[3] = variable[0];
25824 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
25825 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25826 if (UNTAG_Bool(variable[3])) { /*if*/
25827 variable[3] = variable[0];
25828 variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
25829 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25830 }
25831 return_label940: while(false);
25832 tracehead = trace.prev;
25833 return;
25834 }
25835 void parser_prod___AAsCastExpr___empty_init(val_t self, int* init_table) {
25836 struct trace_t trace = {NULL, NULL, 10555, LOCATE_parser_prod___AAsCastExpr___empty_init};
25837 val_t variable[2];
25838 void **closurevariable = NULL;
25839 trace.prev = tracehead; tracehead = &trace;
25840 trace.file = LOCATE_parser_prod;
25841 variable[0] = self;
25842 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i]) return;
25843 return_label941: while(false);
25844 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i] = 1;
25845 tracehead = trace.prev;
25846 return;
25847 }
25848 void parser_prod___AAsCastExpr___init_aascastexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
25849 struct trace_t trace = {NULL, NULL, 10557, LOCATE_parser_prod___AAsCastExpr___init_aascastexpr};
25850 val_t variable[6];
25851 void **closurevariable = NULL;
25852 trace.prev = tracehead; tracehead = &trace;
25853 trace.file = LOCATE_parser_prod;
25854 variable[0] = self;
25855 variable[1] = param0;
25856 variable[2] = param1;
25857 variable[3] = param2;
25858 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i]) return;
25859 variable[5] = variable[0];
25860 CALL_parser_prod___AAsCastExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AAsCastExpr::empty_init*/;
25861 variable[5] = variable[0];
25862 ATTR_parser_nodes___AAsCastExpr____n_expr(variable[5]) /*AAsCastExpr::_n_expr*/ = variable[1] /*n_expr*/;
25863 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::==*/)))))));
25864 if (UNTAG_Bool(variable[5])) { /*if*/
25865 variable[5] = variable[0];
25866 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
25867 }
25868 variable[5] = variable[0];
25869 ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[5]) /*AAsCastExpr::_n_kwas*/ = variable[2] /*n_kwas*/;
25870 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::==*/)))))));
25871 if (UNTAG_Bool(variable[5])) { /*if*/
25872 variable[5] = variable[0];
25873 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwas*/)( variable[2] /*n_kwas*/, variable[5]) /*PNode::parent=*/;
25874 }
25875 variable[5] = variable[0];
25876 ATTR_parser_nodes___AAsCastExpr____n_type(variable[5]) /*AAsCastExpr::_n_type*/ = variable[3] /*n_type*/;
25877 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::==*/)))))));
25878 if (UNTAG_Bool(variable[5])) { /*if*/
25879 variable[5] = variable[0];
25880 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_type*/)( variable[3] /*n_type*/, variable[5]) /*PNode::parent=*/;
25881 }
25882 return_label942: while(false);
25883 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i] = 1;
25884 tracehead = trace.prev;
25885 return;
25886 }
25887 void parser_prod___APlusAssignOp___n_pluseq__eq(val_t self, val_t param0) {
25888 struct trace_t trace = {NULL, NULL, 10640, LOCATE_parser_prod___APlusAssignOp___n_pluseq__eq};
25889 val_t variable[4];
25890 void **closurevariable = NULL;
25891 trace.prev = tracehead; tracehead = &trace;
25892 trace.file = LOCATE_parser_prod;
25893 variable[0] = self;
25894 variable[1] = param0;
25895 variable[3] = variable[0];
25896 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/ = variable[1] /*n*/;
25897 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25898 if (UNTAG_Bool(variable[3])) { /*if*/
25899 variable[3] = variable[0];
25900 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
25901 }
25902 return_label943: while(false);
25903 tracehead = trace.prev;
25904 return;
25905 }
25906 void parser_prod___APlusAssignOp___replace_child(val_t self, val_t param0, val_t param1) {
25907 struct trace_t trace = {NULL, NULL, 10661, LOCATE_parser_prod___APlusAssignOp___replace_child};
25908 val_t variable[5];
25909 void **closurevariable = NULL;
25910 trace.prev = tracehead; tracehead = &trace;
25911 trace.file = LOCATE_parser_prod;
25912 variable[0] = self;
25913 variable[1] = param0;
25914 variable[2] = param1;
25915 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::==*/)))))));
25916 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, 10663); nit_exit(1);}
25917 variable[4] = variable[0];
25918 variable[4] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[4]) /*APlusAssignOp::_n_pluseq*/;
25919 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
25920 if (UNTAG_Bool(variable[4])) { /*if*/
25921 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
25922 if (UNTAG_Bool(variable[4])) { /*if*/
25923 variable[4] = variable[0];
25924 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
25925 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
25926 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, 10667); nit_exit(1);}
25927 variable[4] = variable[0];
25928 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[4]) /*APlusAssignOp::_n_pluseq*/ = variable[2] /*new_child*/;
25929 } else { /*if*/
25930 variable[4] = variable[0];
25931 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[4]) /*APlusAssignOp::_n_pluseq*/ = NIT_NULL /*null*/;
25932 }
25933 goto return_label944;
25934 }
25935 return_label944: while(false);
25936 tracehead = trace.prev;
25937 return;
25938 }
25939 void parser_prod___APlusAssignOp___visit_all(val_t self, val_t param0) {
25940 struct trace_t trace = {NULL, NULL, 10676, LOCATE_parser_prod___APlusAssignOp___visit_all};
25941 val_t variable[4];
25942 void **closurevariable = NULL;
25943 trace.prev = tracehead; tracehead = &trace;
25944 trace.file = LOCATE_parser_prod;
25945 variable[0] = self;
25946 variable[1] = param0;
25947 variable[3] = variable[0];
25948 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
25949 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25950 if (UNTAG_Bool(variable[3])) { /*if*/
25951 variable[3] = variable[0];
25952 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
25953 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25954 }
25955 return_label945: while(false);
25956 tracehead = trace.prev;
25957 return;
25958 }
25959 void parser_prod___APlusAssignOp___visit_all_reverse(val_t self, val_t param0) {
25960 struct trace_t trace = {NULL, NULL, 10683, LOCATE_parser_prod___APlusAssignOp___visit_all_reverse};
25961 val_t variable[4];
25962 void **closurevariable = NULL;
25963 trace.prev = tracehead; tracehead = &trace;
25964 trace.file = LOCATE_parser_prod;
25965 variable[0] = self;
25966 variable[1] = param0;
25967 variable[3] = variable[0];
25968 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
25969 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
25970 if (UNTAG_Bool(variable[3])) { /*if*/
25971 variable[3] = variable[0];
25972 variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
25973 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
25974 }
25975 return_label946: while(false);
25976 tracehead = trace.prev;
25977 return;
25978 }
25979 void parser_prod___APlusAssignOp___empty_init(val_t self, int* init_table) {
25980 struct trace_t trace = {NULL, NULL, 10648, LOCATE_parser_prod___APlusAssignOp___empty_init};
25981 val_t variable[2];
25982 void **closurevariable = NULL;
25983 trace.prev = tracehead; tracehead = &trace;
25984 trace.file = LOCATE_parser_prod;
25985 variable[0] = self;
25986 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
25987 return_label947: while(false);
25988 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
25989 tracehead = trace.prev;
25990 return;
25991 }
25992 void parser_prod___APlusAssignOp___init_aplusassignop(val_t self, val_t param0, int* init_table) {
25993 struct trace_t trace = {NULL, NULL, 10650, LOCATE_parser_prod___APlusAssignOp___init_aplusassignop};
25994 val_t variable[4];
25995 void **closurevariable = NULL;
25996 trace.prev = tracehead; tracehead = &trace;
25997 trace.file = LOCATE_parser_prod;
25998 variable[0] = self;
25999 variable[1] = param0;
26000 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
26001 variable[3] = variable[0];
26002 CALL_parser_prod___APlusAssignOp___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APlusAssignOp::empty_init*/;
26003 variable[3] = variable[0];
26004 ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/ = variable[1] /*n_pluseq*/;
26005 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::==*/)))))));
26006 if (UNTAG_Bool(variable[3])) { /*if*/
26007 variable[3] = variable[0];
26008 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_pluseq*/)( variable[1] /*n_pluseq*/, variable[3]) /*PNode::parent=*/;
26009 }
26010 return_label948: while(false);
26011 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
26012 tracehead = trace.prev;
26013 return;
26014 }
26015 void parser_prod___AMinusAssignOp___n_minuseq__eq(val_t self, val_t param0) {
26016 struct trace_t trace = {NULL, NULL, 10691, LOCATE_parser_prod___AMinusAssignOp___n_minuseq__eq};
26017 val_t variable[4];
26018 void **closurevariable = NULL;
26019 trace.prev = tracehead; tracehead = &trace;
26020 trace.file = LOCATE_parser_prod;
26021 variable[0] = self;
26022 variable[1] = param0;
26023 variable[3] = variable[0];
26024 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/ = variable[1] /*n*/;
26025 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26026 if (UNTAG_Bool(variable[3])) { /*if*/
26027 variable[3] = variable[0];
26028 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
26029 }
26030 return_label949: while(false);
26031 tracehead = trace.prev;
26032 return;
26033 }
26034 void parser_prod___AMinusAssignOp___replace_child(val_t self, val_t param0, val_t param1) {
26035 struct trace_t trace = {NULL, NULL, 10712, LOCATE_parser_prod___AMinusAssignOp___replace_child};
26036 val_t variable[5];
26037 void **closurevariable = NULL;
26038 trace.prev = tracehead; tracehead = &trace;
26039 trace.file = LOCATE_parser_prod;
26040 variable[0] = self;
26041 variable[1] = param0;
26042 variable[2] = param1;
26043 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::==*/)))))));
26044 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, 10714); nit_exit(1);}
26045 variable[4] = variable[0];
26046 variable[4] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[4]) /*AMinusAssignOp::_n_minuseq*/;
26047 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26048 if (UNTAG_Bool(variable[4])) { /*if*/
26049 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26050 if (UNTAG_Bool(variable[4])) { /*if*/
26051 variable[4] = variable[0];
26052 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
26053 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
26054 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, 10718); nit_exit(1);}
26055 variable[4] = variable[0];
26056 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[4]) /*AMinusAssignOp::_n_minuseq*/ = variable[2] /*new_child*/;
26057 } else { /*if*/
26058 variable[4] = variable[0];
26059 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[4]) /*AMinusAssignOp::_n_minuseq*/ = NIT_NULL /*null*/;
26060 }
26061 goto return_label950;
26062 }
26063 return_label950: while(false);
26064 tracehead = trace.prev;
26065 return;
26066 }
26067 void parser_prod___AMinusAssignOp___visit_all(val_t self, val_t param0) {
26068 struct trace_t trace = {NULL, NULL, 10727, LOCATE_parser_prod___AMinusAssignOp___visit_all};
26069 val_t variable[4];
26070 void **closurevariable = NULL;
26071 trace.prev = tracehead; tracehead = &trace;
26072 trace.file = LOCATE_parser_prod;
26073 variable[0] = self;
26074 variable[1] = param0;
26075 variable[3] = variable[0];
26076 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
26077 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26078 if (UNTAG_Bool(variable[3])) { /*if*/
26079 variable[3] = variable[0];
26080 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
26081 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26082 }
26083 return_label951: while(false);
26084 tracehead = trace.prev;
26085 return;
26086 }
26087 void parser_prod___AMinusAssignOp___visit_all_reverse(val_t self, val_t param0) {
26088 struct trace_t trace = {NULL, NULL, 10734, LOCATE_parser_prod___AMinusAssignOp___visit_all_reverse};
26089 val_t variable[4];
26090 void **closurevariable = NULL;
26091 trace.prev = tracehead; tracehead = &trace;
26092 trace.file = LOCATE_parser_prod;
26093 variable[0] = self;
26094 variable[1] = param0;
26095 variable[3] = variable[0];
26096 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
26097 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26098 if (UNTAG_Bool(variable[3])) { /*if*/
26099 variable[3] = variable[0];
26100 variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
26101 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26102 }
26103 return_label952: while(false);
26104 tracehead = trace.prev;
26105 return;
26106 }
26107 void parser_prod___AMinusAssignOp___empty_init(val_t self, int* init_table) {
26108 struct trace_t trace = {NULL, NULL, 10699, LOCATE_parser_prod___AMinusAssignOp___empty_init};
26109 val_t variable[2];
26110 void **closurevariable = NULL;
26111 trace.prev = tracehead; tracehead = &trace;
26112 trace.file = LOCATE_parser_prod;
26113 variable[0] = self;
26114 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
26115 return_label953: while(false);
26116 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
26117 tracehead = trace.prev;
26118 return;
26119 }
26120 void parser_prod___AMinusAssignOp___init_aminusassignop(val_t self, val_t param0, int* init_table) {
26121 struct trace_t trace = {NULL, NULL, 10701, LOCATE_parser_prod___AMinusAssignOp___init_aminusassignop};
26122 val_t variable[4];
26123 void **closurevariable = NULL;
26124 trace.prev = tracehead; tracehead = &trace;
26125 trace.file = LOCATE_parser_prod;
26126 variable[0] = self;
26127 variable[1] = param0;
26128 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
26129 variable[3] = variable[0];
26130 CALL_parser_prod___AMinusAssignOp___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMinusAssignOp::empty_init*/;
26131 variable[3] = variable[0];
26132 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/ = variable[1] /*n_minuseq*/;
26133 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::==*/)))))));
26134 if (UNTAG_Bool(variable[3])) { /*if*/
26135 variable[3] = variable[0];
26136 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minuseq*/)( variable[1] /*n_minuseq*/, variable[3]) /*PNode::parent=*/;
26137 }
26138 return_label954: while(false);
26139 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
26140 tracehead = trace.prev;
26141 return;
26142 }
26143 void parser_prod___AClosureDef___n_kwwith__eq(val_t self, val_t param0) {
26144 struct trace_t trace = {NULL, NULL, 10742, LOCATE_parser_prod___AClosureDef___n_kwwith__eq};
26145 val_t variable[4];
26146 void **closurevariable = NULL;
26147 trace.prev = tracehead; tracehead = &trace;
26148 trace.file = LOCATE_parser_prod;
26149 variable[0] = self;
26150 variable[1] = param0;
26151 variable[3] = variable[0];
26152 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/ = variable[1] /*n*/;
26153 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26154 if (UNTAG_Bool(variable[3])) { /*if*/
26155 variable[3] = variable[0];
26156 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
26157 }
26158 return_label955: while(false);
26159 tracehead = trace.prev;
26160 return;
26161 }
26162 void parser_prod___AClosureDef___n_kwdo__eq(val_t self, val_t param0) {
26163 struct trace_t trace = {NULL, NULL, 10749, LOCATE_parser_prod___AClosureDef___n_kwdo__eq};
26164 val_t variable[4];
26165 void **closurevariable = NULL;
26166 trace.prev = tracehead; tracehead = &trace;
26167 trace.file = LOCATE_parser_prod;
26168 variable[0] = self;
26169 variable[1] = param0;
26170 variable[3] = variable[0];
26171 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/ = variable[1] /*n*/;
26172 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26173 if (UNTAG_Bool(variable[3])) { /*if*/
26174 variable[3] = variable[0];
26175 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
26176 }
26177 return_label956: while(false);
26178 tracehead = trace.prev;
26179 return;
26180 }
26181 void parser_prod___AClosureDef___n_expr__eq(val_t self, val_t param0) {
26182 struct trace_t trace = {NULL, NULL, 10756, LOCATE_parser_prod___AClosureDef___n_expr__eq};
26183 val_t variable[4];
26184 void **closurevariable = NULL;
26185 trace.prev = tracehead; tracehead = &trace;
26186 trace.file = LOCATE_parser_prod;
26187 variable[0] = self;
26188 variable[1] = param0;
26189 variable[3] = variable[0];
26190 ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/ = variable[1] /*n*/;
26191 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26192 if (UNTAG_Bool(variable[3])) { /*if*/
26193 variable[3] = variable[0];
26194 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
26195 }
26196 return_label957: while(false);
26197 tracehead = trace.prev;
26198 return;
26199 }
26200 void parser_prod___AClosureDef___replace_child(val_t self, val_t param0, val_t param1) {
26201 struct trace_t trace = {NULL, NULL, 10794, LOCATE_parser_prod___AClosureDef___replace_child};
26202 val_t variable[8];
26203 void **closurevariable = NULL;
26204 trace.prev = tracehead; tracehead = &trace;
26205 trace.file = LOCATE_parser_prod;
26206 variable[0] = self;
26207 variable[1] = param0;
26208 variable[2] = param1;
26209 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::==*/)))))));
26210 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, 10796); nit_exit(1);}
26211 variable[4] = variable[0];
26212 variable[4] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[4]) /*AClosureDef::_n_kwwith*/;
26213 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26214 if (UNTAG_Bool(variable[4])) { /*if*/
26215 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26216 if (UNTAG_Bool(variable[4])) { /*if*/
26217 variable[4] = variable[0];
26218 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
26219 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
26220 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, 10800); nit_exit(1);}
26221 variable[4] = variable[0];
26222 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[4]) /*AClosureDef::_n_kwwith*/ = variable[2] /*new_child*/;
26223 } else { /*if*/
26224 variable[4] = variable[0];
26225 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[4]) /*AClosureDef::_n_kwwith*/ = NIT_NULL /*null*/;
26226 }
26227 goto return_label958;
26228 }
26229 variable[4] = variable[0];
26230 variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[4]) /*AClosureDef::_n_id*/;
26231 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
26232 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
26233 variable[4] = variable[5];
26234 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
26235 while (true) { /*for*/
26236 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
26237 if (!UNTAG_Bool(variable[5])) break; /*for*/
26238 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
26239 variable[6] = variable[5];
26240 variable[7] = variable[0];
26241 variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[7]) /*AClosureDef::_n_id*/;
26242 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
26243 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::==*/)))));
26244 if (UNTAG_Bool(variable[7])) { /*if*/
26245 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::==*/)))))));
26246 if (UNTAG_Bool(variable[7])) { /*if*/
26247 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
26248 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, 10810); nit_exit(1);}
26249 variable[7] = variable[0];
26250 variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[7]) /*AClosureDef::_n_id*/;
26251 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
26252 variable[7] = variable[0];
26253 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
26254 } else { /*if*/
26255 variable[7] = variable[0];
26256 variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[7]) /*AClosureDef::_n_id*/;
26257 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
26258 }
26259 goto return_label958;
26260 }
26261 continue_959: while(0);
26262 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
26263 }
26264 break_959: while(0);
26265 variable[4] = variable[0];
26266 variable[4] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[4]) /*AClosureDef::_n_kwdo*/;
26267 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26268 if (UNTAG_Bool(variable[4])) { /*if*/
26269 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26270 if (UNTAG_Bool(variable[4])) { /*if*/
26271 variable[4] = variable[0];
26272 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
26273 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
26274 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, 10822); nit_exit(1);}
26275 variable[4] = variable[0];
26276 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[4]) /*AClosureDef::_n_kwdo*/ = variable[2] /*new_child*/;
26277 } else { /*if*/
26278 variable[4] = variable[0];
26279 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[4]) /*AClosureDef::_n_kwdo*/ = NIT_NULL /*null*/;
26280 }
26281 goto return_label958;
26282 }
26283 variable[4] = variable[0];
26284 variable[4] = ATTR_parser_nodes___AClosureDef____n_expr(variable[4]) /*AClosureDef::_n_expr*/;
26285 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26286 if (UNTAG_Bool(variable[4])) { /*if*/
26287 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26288 if (UNTAG_Bool(variable[4])) { /*if*/
26289 variable[4] = variable[0];
26290 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
26291 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
26292 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, 10832); nit_exit(1);}
26293 variable[4] = variable[0];
26294 ATTR_parser_nodes___AClosureDef____n_expr(variable[4]) /*AClosureDef::_n_expr*/ = variable[2] /*new_child*/;
26295 } else { /*if*/
26296 variable[4] = variable[0];
26297 ATTR_parser_nodes___AClosureDef____n_expr(variable[4]) /*AClosureDef::_n_expr*/ = NIT_NULL /*null*/;
26298 }
26299 goto return_label958;
26300 }
26301 return_label958: while(false);
26302 tracehead = trace.prev;
26303 return;
26304 }
26305 void parser_prod___AClosureDef___visit_all(val_t self, val_t param0) {
26306 struct trace_t trace = {NULL, NULL, 10841, LOCATE_parser_prod___AClosureDef___visit_all};
26307 val_t variable[6];
26308 void **closurevariable = NULL;
26309 trace.prev = tracehead; tracehead = &trace;
26310 trace.file = LOCATE_parser_prod;
26311 variable[0] = self;
26312 variable[1] = param0;
26313 variable[3] = variable[0];
26314 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
26315 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26316 if (UNTAG_Bool(variable[3])) { /*if*/
26317 variable[3] = variable[0];
26318 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
26319 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26320 }
26321 variable[3] = variable[0];
26322 variable[3] = ATTR_parser_nodes___AClosureDef____n_id(variable[3]) /*AClosureDef::_n_id*/;
26323 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
26324 while (true) { /*for*/
26325 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
26326 if (!UNTAG_Bool(variable[4])) break; /*for*/
26327 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
26328 variable[5] = variable[4];
26329 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
26330 continue_961: while(0);
26331 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
26332 }
26333 break_961: while(0);
26334 variable[3] = variable[0];
26335 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
26336 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26337 if (UNTAG_Bool(variable[3])) { /*if*/
26338 variable[3] = variable[0];
26339 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
26340 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26341 }
26342 variable[3] = variable[0];
26343 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
26344 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26345 if (UNTAG_Bool(variable[3])) { /*if*/
26346 variable[3] = variable[0];
26347 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
26348 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26349 }
26350 return_label960: while(false);
26351 tracehead = trace.prev;
26352 return;
26353 }
26354 void parser_prod___AClosureDef___visit_all_reverse(val_t self, val_t param0) {
26355 struct trace_t trace = {NULL, NULL, 10857, LOCATE_parser_prod___AClosureDef___visit_all_reverse};
26356 val_t variable[5];
26357 void **closurevariable = NULL;
26358 trace.prev = tracehead; tracehead = &trace;
26359 trace.file = LOCATE_parser_prod;
26360 variable[0] = self;
26361 variable[1] = param0;
26362 variable[3] = variable[0];
26363 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
26364 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26365 if (UNTAG_Bool(variable[3])) { /*if*/
26366 variable[3] = variable[0];
26367 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
26368 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26369 }
26370 variable[4] = variable[0];
26371 variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[4]) /*AClosureDef::_n_id*/;
26372 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
26373 variable[3] = variable[4];
26374 while (true) { /*while*/
26375 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
26376 if (!UNTAG_Bool(variable[4])) break; /* while*/
26377 variable[4] = variable[0];
26378 variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[4]) /*AClosureDef::_n_id*/;
26379 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
26380 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
26381 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
26382 variable[3] = variable[4] /*i=*/;
26383 continue_963: while(0);
26384 }
26385 break_963: while(0);
26386 variable[3] = variable[0];
26387 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
26388 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26389 if (UNTAG_Bool(variable[3])) { /*if*/
26390 variable[3] = variable[0];
26391 variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
26392 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26393 }
26394 variable[3] = variable[0];
26395 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
26396 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26397 if (UNTAG_Bool(variable[3])) { /*if*/
26398 variable[3] = variable[0];
26399 variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
26400 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26401 }
26402 return_label962: while(false);
26403 tracehead = trace.prev;
26404 return;
26405 }
26406 void parser_prod___AClosureDef___empty_init(val_t self, int* init_table) {
26407 struct trace_t trace = {NULL, NULL, 10764, LOCATE_parser_prod___AClosureDef___empty_init};
26408 val_t variable[2];
26409 void **closurevariable = NULL;
26410 trace.prev = tracehead; tracehead = &trace;
26411 trace.file = LOCATE_parser_prod;
26412 variable[0] = self;
26413 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i]) return;
26414 return_label964: while(false);
26415 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i] = 1;
26416 tracehead = trace.prev;
26417 return;
26418 }
26419 void parser_prod___AClosureDef___init_aclosuredef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
26420 struct trace_t trace = {NULL, NULL, 10766, LOCATE_parser_prod___AClosureDef___init_aclosuredef};
26421 val_t variable[10];
26422 void **closurevariable = NULL;
26423 trace.prev = tracehead; tracehead = &trace;
26424 trace.file = LOCATE_parser_prod;
26425 variable[0] = self;
26426 variable[1] = param0;
26427 variable[2] = param1;
26428 variable[3] = param2;
26429 variable[4] = param3;
26430 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i]) return;
26431 variable[6] = variable[0];
26432 CALL_parser_prod___AClosureDef___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AClosureDef::empty_init*/;
26433 variable[6] = variable[0];
26434 ATTR_parser_nodes___AClosureDef____n_kwwith(variable[6]) /*AClosureDef::_n_kwwith*/ = variable[1] /*n_kwwith*/;
26435 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::==*/)))))));
26436 if (UNTAG_Bool(variable[6])) { /*if*/
26437 variable[6] = variable[0];
26438 CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, variable[6]) /*PNode::parent=*/;
26439 }
26440 variable[6] = variable[0];
26441 variable[7] = NEW_List_list___List___init(); /*new List[TId]*/
26442 ATTR_parser_nodes___AClosureDef____n_id(variable[6]) /*AClosureDef::_n_id*/ = variable[7];
26443 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_id*/)( variable[2] /*n_id*/) /*AbstractArray::iterator*/;
26444 while (true) { /*for*/
26445 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
26446 if (!UNTAG_Bool(variable[7])) break; /*for*/
26447 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
26448 variable[8] = variable[7];
26449 variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
26450 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, 10780); nit_exit(1);}
26451 variable[9] = variable[0];
26452 variable[9] = ATTR_parser_nodes___AClosureDef____n_id(variable[9]) /*AClosureDef::_n_id*/;
26453 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*n*/) /*IndexedCollection::add*/;
26454 variable[9] = variable[0];
26455 CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
26456 continue_966: while(0);
26457 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
26458 }
26459 break_966: while(0);
26460 variable[6] = variable[0];
26461 ATTR_parser_nodes___AClosureDef____n_kwdo(variable[6]) /*AClosureDef::_n_kwdo*/ = variable[3] /*n_kwdo*/;
26462 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::==*/)))))));
26463 if (UNTAG_Bool(variable[6])) { /*if*/
26464 variable[6] = variable[0];
26465 CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, variable[6]) /*PNode::parent=*/;
26466 }
26467 variable[6] = variable[0];
26468 ATTR_parser_nodes___AClosureDef____n_expr(variable[6]) /*AClosureDef::_n_expr*/ = variable[4] /*n_expr*/;
26469 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::==*/)))))));
26470 if (UNTAG_Bool(variable[6])) { /*if*/
26471 variable[6] = variable[0];
26472 CALL_parser_prod___PNode___parent__eq( variable[4] /*n_expr*/)( variable[4] /*n_expr*/, variable[6]) /*PNode::parent=*/;
26473 }
26474 return_label965: while(false);
26475 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i] = 1;
26476 tracehead = trace.prev;
26477 return;
26478 }
26479 void parser_prod___AQualified___n_classid__eq(val_t self, val_t param0) {
26480 struct trace_t trace = {NULL, NULL, 10878, LOCATE_parser_prod___AQualified___n_classid__eq};
26481 val_t variable[4];
26482 void **closurevariable = NULL;
26483 trace.prev = tracehead; tracehead = &trace;
26484 trace.file = LOCATE_parser_prod;
26485 variable[0] = self;
26486 variable[1] = param0;
26487 variable[3] = variable[0];
26488 ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/ = variable[1] /*n*/;
26489 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26490 if (UNTAG_Bool(variable[3])) { /*if*/
26491 variable[3] = variable[0];
26492 CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
26493 }
26494 return_label967: while(false);
26495 tracehead = trace.prev;
26496 return;
26497 }
26498 void parser_prod___AQualified___replace_child(val_t self, val_t param0, val_t param1) {
26499 struct trace_t trace = {NULL, NULL, 10906, LOCATE_parser_prod___AQualified___replace_child};
26500 val_t variable[8];
26501 void **closurevariable = NULL;
26502 trace.prev = tracehead; tracehead = &trace;
26503 trace.file = LOCATE_parser_prod;
26504 variable[0] = self;
26505 variable[1] = param0;
26506 variable[2] = param1;
26507 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::==*/)))))));
26508 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, 10908); nit_exit(1);}
26509 variable[4] = variable[0];
26510 variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/;
26511 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
26512 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
26513 variable[4] = variable[5];
26514 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
26515 while (true) { /*for*/
26516 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
26517 if (!UNTAG_Bool(variable[5])) break; /*for*/
26518 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
26519 variable[6] = variable[5];
26520 variable[7] = variable[0];
26521 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
26522 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
26523 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::==*/)))));
26524 if (UNTAG_Bool(variable[7])) { /*if*/
26525 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::==*/)))))));
26526 if (UNTAG_Bool(variable[7])) { /*if*/
26527 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
26528 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, 10912); nit_exit(1);}
26529 variable[7] = variable[0];
26530 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
26531 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
26532 variable[7] = variable[0];
26533 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
26534 } else { /*if*/
26535 variable[7] = variable[0];
26536 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
26537 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
26538 }
26539 goto return_label968;
26540 }
26541 continue_969: while(0);
26542 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
26543 }
26544 break_969: while(0);
26545 variable[4] = variable[0];
26546 variable[4] = ATTR_parser_nodes___AQualified____n_classid(variable[4]) /*AQualified::_n_classid*/;
26547 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26548 if (UNTAG_Bool(variable[4])) { /*if*/
26549 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ == NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26550 if (UNTAG_Bool(variable[4])) { /*if*/
26551 variable[4] = variable[0];
26552 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
26553 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
26554 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, 10924); nit_exit(1);}
26555 variable[4] = variable[0];
26556 ATTR_parser_nodes___AQualified____n_classid(variable[4]) /*AQualified::_n_classid*/ = variable[2] /*new_child*/;
26557 } else { /*if*/
26558 variable[4] = variable[0];
26559 ATTR_parser_nodes___AQualified____n_classid(variable[4]) /*AQualified::_n_classid*/ = NIT_NULL /*null*/;
26560 }
26561 goto return_label968;
26562 }
26563 return_label968: while(false);
26564 tracehead = trace.prev;
26565 return;
26566 }
26567 void parser_prod___AQualified___visit_all(val_t self, val_t param0) {
26568 struct trace_t trace = {NULL, NULL, 10933, LOCATE_parser_prod___AQualified___visit_all};
26569 val_t variable[6];
26570 void **closurevariable = NULL;
26571 trace.prev = tracehead; tracehead = &trace;
26572 trace.file = LOCATE_parser_prod;
26573 variable[0] = self;
26574 variable[1] = param0;
26575 variable[3] = variable[0];
26576 variable[3] = ATTR_parser_nodes___AQualified____n_id(variable[3]) /*AQualified::_n_id*/;
26577 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
26578 while (true) { /*for*/
26579 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
26580 if (!UNTAG_Bool(variable[4])) break; /*for*/
26581 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
26582 variable[5] = variable[4];
26583 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
26584 continue_971: while(0);
26585 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
26586 }
26587 break_971: while(0);
26588 variable[3] = variable[0];
26589 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
26590 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26591 if (UNTAG_Bool(variable[3])) { /*if*/
26592 variable[3] = variable[0];
26593 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
26594 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26595 }
26596 return_label970: while(false);
26597 tracehead = trace.prev;
26598 return;
26599 }
26600 void parser_prod___AQualified___visit_all_reverse(val_t self, val_t param0) {
26601 struct trace_t trace = {NULL, NULL, 10943, LOCATE_parser_prod___AQualified___visit_all_reverse};
26602 val_t variable[5];
26603 void **closurevariable = NULL;
26604 trace.prev = tracehead; tracehead = &trace;
26605 trace.file = LOCATE_parser_prod;
26606 variable[0] = self;
26607 variable[1] = param0;
26608 variable[4] = variable[0];
26609 variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/;
26610 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
26611 variable[3] = variable[4];
26612 while (true) { /*while*/
26613 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
26614 if (!UNTAG_Bool(variable[4])) break; /* while*/
26615 variable[4] = variable[0];
26616 variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/;
26617 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
26618 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
26619 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
26620 variable[3] = variable[4] /*i=*/;
26621 continue_973: while(0);
26622 }
26623 break_973: while(0);
26624 variable[3] = variable[0];
26625 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
26626 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26627 if (UNTAG_Bool(variable[3])) { /*if*/
26628 variable[3] = variable[0];
26629 variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
26630 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26631 }
26632 return_label972: while(false);
26633 tracehead = trace.prev;
26634 return;
26635 }
26636 void parser_prod___AQualified___empty_init(val_t self, int* init_table) {
26637 struct trace_t trace = {NULL, NULL, 10886, LOCATE_parser_prod___AQualified___empty_init};
26638 val_t variable[2];
26639 void **closurevariable = NULL;
26640 trace.prev = tracehead; tracehead = &trace;
26641 trace.file = LOCATE_parser_prod;
26642 variable[0] = self;
26643 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i]) return;
26644 return_label974: while(false);
26645 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i] = 1;
26646 tracehead = trace.prev;
26647 return;
26648 }
26649 void parser_prod___AQualified___init_aqualified(val_t self, val_t param0, val_t param1, int* init_table) {
26650 struct trace_t trace = {NULL, NULL, 10888, LOCATE_parser_prod___AQualified___init_aqualified};
26651 val_t variable[8];
26652 void **closurevariable = NULL;
26653 trace.prev = tracehead; tracehead = &trace;
26654 trace.file = LOCATE_parser_prod;
26655 variable[0] = self;
26656 variable[1] = param0;
26657 variable[2] = param1;
26658 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i]) return;
26659 variable[4] = variable[0];
26660 CALL_parser_prod___AQualified___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AQualified::empty_init*/;
26661 variable[4] = variable[0];
26662 variable[5] = NEW_List_list___List___init(); /*new List[TId]*/
26663 ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/ = variable[5];
26664 variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_id*/)( variable[1] /*n_id*/) /*AbstractArray::iterator*/;
26665 while (true) { /*for*/
26666 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
26667 if (!UNTAG_Bool(variable[5])) break; /*for*/
26668 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
26669 variable[6] = variable[5];
26670 variable[7] = TAG_Bool(( variable[6] /*n*/==NIT_NULL) || VAL_ISA( variable[6] /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
26671 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, 10896); nit_exit(1);}
26672 variable[7] = variable[0];
26673 variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
26674 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[6] /*n*/) /*IndexedCollection::add*/;
26675 variable[7] = variable[0];
26676 CALL_parser_prod___PNode___parent__eq( variable[6] /*n*/)( variable[6] /*n*/, variable[7]) /*PNode::parent=*/;
26677 continue_976: while(0);
26678 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
26679 }
26680 break_976: while(0);
26681 variable[4] = variable[0];
26682 ATTR_parser_nodes___AQualified____n_classid(variable[4]) /*AQualified::_n_classid*/ = variable[2] /*n_classid*/;
26683 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::==*/)))))));
26684 if (UNTAG_Bool(variable[4])) { /*if*/
26685 variable[4] = variable[0];
26686 CALL_parser_prod___PNode___parent__eq( variable[2] /*n_classid*/)( variable[2] /*n_classid*/, variable[4]) /*PNode::parent=*/;
26687 }
26688 return_label975: while(false);
26689 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i] = 1;
26690 tracehead = trace.prev;
26691 return;
26692 }
26693 void parser_prod___ADoc___replace_child(val_t self, val_t param0, val_t param1) {
26694 struct trace_t trace = {NULL, NULL, 10974, LOCATE_parser_prod___ADoc___replace_child};
26695 val_t variable[8];
26696 void **closurevariable = NULL;
26697 trace.prev = tracehead; tracehead = &trace;
26698 trace.file = LOCATE_parser_prod;
26699 variable[0] = self;
26700 variable[1] = param0;
26701 variable[2] = param1;
26702 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::==*/)))))));
26703 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, 10976); nit_exit(1);}
26704 variable[4] = variable[0];
26705 variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[4]) /*ADoc::_n_comment*/;
26706 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
26707 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
26708 variable[4] = variable[5];
26709 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
26710 while (true) { /*for*/
26711 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
26712 if (!UNTAG_Bool(variable[5])) break; /*for*/
26713 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
26714 variable[6] = variable[5];
26715 variable[7] = variable[0];
26716 variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[7]) /*ADoc::_n_comment*/;
26717 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[6] /*i*/) /*List::[]*/;
26718 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::==*/)))));
26719 if (UNTAG_Bool(variable[7])) { /*if*/
26720 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::==*/)))))));
26721 if (UNTAG_Bool(variable[7])) { /*if*/
26722 variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
26723 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, 10980); nit_exit(1);}
26724 variable[7] = variable[0];
26725 variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[7]) /*ADoc::_n_comment*/;
26726 CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[6] /*i*/, variable[2] /*new_child*/) /*List::[]=*/;
26727 variable[7] = variable[0];
26728 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
26729 } else { /*if*/
26730 variable[7] = variable[0];
26731 variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[7]) /*ADoc::_n_comment*/;
26732 CALL_abstract_collection___Map___remove_at(variable[7])(variable[7], variable[6] /*i*/) /*List::remove_at*/;
26733 }
26734 goto return_label977;
26735 }
26736 continue_978: while(0);
26737 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
26738 }
26739 break_978: while(0);
26740 return_label977: while(false);
26741 tracehead = trace.prev;
26742 return;
26743 }
26744 void parser_prod___ADoc___visit_all(val_t self, val_t param0) {
26745 struct trace_t trace = {NULL, NULL, 10991, LOCATE_parser_prod___ADoc___visit_all};
26746 val_t variable[6];
26747 void **closurevariable = NULL;
26748 trace.prev = tracehead; tracehead = &trace;
26749 trace.file = LOCATE_parser_prod;
26750 variable[0] = self;
26751 variable[1] = param0;
26752 variable[3] = variable[0];
26753 variable[3] = ATTR_parser_nodes___ADoc____n_comment(variable[3]) /*ADoc::_n_comment*/;
26754 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
26755 while (true) { /*for*/
26756 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
26757 if (!UNTAG_Bool(variable[4])) break; /*for*/
26758 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
26759 variable[5] = variable[4];
26760 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/;
26761 continue_980: while(0);
26762 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
26763 }
26764 break_980: while(0);
26765 return_label979: while(false);
26766 tracehead = trace.prev;
26767 return;
26768 }
26769 void parser_prod___ADoc___visit_all_reverse(val_t self, val_t param0) {
26770 struct trace_t trace = {NULL, NULL, 10998, LOCATE_parser_prod___ADoc___visit_all_reverse};
26771 val_t variable[5];
26772 void **closurevariable = NULL;
26773 trace.prev = tracehead; tracehead = &trace;
26774 trace.file = LOCATE_parser_prod;
26775 variable[0] = self;
26776 variable[1] = param0;
26777 variable[4] = variable[0];
26778 variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[4]) /*ADoc::_n_comment*/;
26779 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
26780 variable[3] = variable[4];
26781 while (true) { /*while*/
26782 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
26783 if (!UNTAG_Bool(variable[4])) break; /* while*/
26784 variable[4] = variable[0];
26785 variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[4]) /*ADoc::_n_comment*/;
26786 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[3] /*i*/) /*List::[]*/;
26787 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
26788 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
26789 variable[3] = variable[4] /*i=*/;
26790 continue_982: while(0);
26791 }
26792 break_982: while(0);
26793 return_label981: while(false);
26794 tracehead = trace.prev;
26795 return;
26796 }
26797 void parser_prod___ADoc___empty_init(val_t self, int* init_table) {
26798 struct trace_t trace = {NULL, NULL, 10959, LOCATE_parser_prod___ADoc___empty_init};
26799 val_t variable[2];
26800 void **closurevariable = NULL;
26801 trace.prev = tracehead; tracehead = &trace;
26802 trace.file = LOCATE_parser_prod;
26803 variable[0] = self;
26804 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i]) return;
26805 return_label983: while(false);
26806 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i] = 1;
26807 tracehead = trace.prev;
26808 return;
26809 }
26810 void parser_prod___ADoc___init_adoc(val_t self, val_t param0, int* init_table) {
26811 struct trace_t trace = {NULL, NULL, 10961, LOCATE_parser_prod___ADoc___init_adoc};
26812 val_t variable[7];
26813 void **closurevariable = NULL;
26814 trace.prev = tracehead; tracehead = &trace;
26815 trace.file = LOCATE_parser_prod;
26816 variable[0] = self;
26817 variable[1] = param0;
26818 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i]) return;
26819 variable[3] = variable[0];
26820 CALL_parser_prod___ADoc___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ADoc::empty_init*/;
26821 variable[3] = variable[0];
26822 variable[4] = NEW_List_list___List___init(); /*new List[TComment]*/
26823 ATTR_parser_nodes___ADoc____n_comment(variable[3]) /*ADoc::_n_comment*/ = variable[4];
26824 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_comment*/)( variable[1] /*n_comment*/) /*AbstractArray::iterator*/;
26825 while (true) { /*for*/
26826 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
26827 if (!UNTAG_Bool(variable[4])) break; /*for*/
26828 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
26829 variable[5] = variable[4];
26830 variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
26831 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, 10968); nit_exit(1);}
26832 variable[6] = variable[0];
26833 variable[6] = ATTR_parser_nodes___ADoc____n_comment(variable[6]) /*ADoc::_n_comment*/;
26834 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[5] /*n*/) /*IndexedCollection::add*/;
26835 variable[6] = variable[0];
26836 CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
26837 continue_985: while(0);
26838 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
26839 }
26840 break_985: while(0);
26841 return_label984: while(false);
26842 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i] = 1;
26843 tracehead = trace.prev;
26844 return;
26845 }
26846 void parser_prod___Start___replace_child(val_t self, val_t param0, val_t param1) {
26847 struct trace_t trace = {NULL, NULL, 11019, LOCATE_parser_prod___Start___replace_child};
26848 val_t variable[5];
26849 void **closurevariable = NULL;
26850 trace.prev = tracehead; tracehead = &trace;
26851 trace.file = LOCATE_parser_prod;
26852 variable[0] = self;
26853 variable[1] = param0;
26854 variable[2] = param1;
26855 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::==*/)))))));
26856 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, 11021); nit_exit(1);}
26857 variable[4] = variable[0];
26858 variable[4] = ATTR_parser_nodes___Start____n_base(variable[4]) /*Start::_n_base*/;
26859 variable[4] = TAG_Bool((variable[4] == variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*old_child*/) /*Object::==*/)))));
26860 if (UNTAG_Bool(variable[4])) { /*if*/
26861 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::==*/)))));
26862 if (UNTAG_Bool(variable[4])) { /*if*/
26863 } else { /*if*/
26864 variable[4] = variable[0];
26865 CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
26866 variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PModule, ID_PModule)) /*cast PModule*/;
26867 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, 11026); nit_exit(1);}
26868 variable[4] = variable[0];
26869 ATTR_parser_nodes___Start____n_base(variable[4]) /*Start::_n_base*/ = variable[2] /*new_child*/;
26870 }
26871 CALL_parser_prod___PNode___parent__eq( variable[1] /*old_child*/)( variable[1] /*old_child*/, NIT_NULL /*null*/) /*PNode::parent=*/;
26872 goto return_label986;
26873 }
26874 return_label986: while(false);
26875 tracehead = trace.prev;
26876 return;
26877 }
26878 void parser_prod___Start___visit_all(val_t self, val_t param0) {
26879 struct trace_t trace = {NULL, NULL, 11034, LOCATE_parser_prod___Start___visit_all};
26880 val_t variable[4];
26881 void **closurevariable = NULL;
26882 trace.prev = tracehead; tracehead = &trace;
26883 trace.file = LOCATE_parser_prod;
26884 variable[0] = self;
26885 variable[1] = param0;
26886 variable[3] = variable[0];
26887 variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
26888 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26889 if (UNTAG_Bool(variable[3])) { /*if*/
26890 variable[3] = variable[0];
26891 variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
26892 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26893 }
26894 return_label987: while(false);
26895 tracehead = trace.prev;
26896 return;
26897 }
26898 void parser_prod___Start___visit_all_reverse(val_t self, val_t param0) {
26899 struct trace_t trace = {NULL, NULL, 11041, LOCATE_parser_prod___Start___visit_all_reverse};
26900 val_t variable[4];
26901 void **closurevariable = NULL;
26902 trace.prev = tracehead; tracehead = &trace;
26903 trace.file = LOCATE_parser_prod;
26904 variable[0] = self;
26905 variable[1] = param0;
26906 variable[3] = variable[0];
26907 variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
26908 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
26909 if (UNTAG_Bool(variable[3])) { /*if*/
26910 variable[3] = variable[0];
26911 variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
26912 CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
26913 }
26914 return_label988: while(false);
26915 tracehead = trace.prev;
26916 return;
26917 }
26918 void parser_prod___Start___init(val_t self, val_t param0, val_t param1, int* init_table) {
26919 struct trace_t trace = {NULL, NULL, 11011, LOCATE_parser_prod___Start___init};
26920 val_t variable[5];
26921 void **closurevariable = NULL;
26922 trace.prev = tracehead; tracehead = &trace;
26923 trace.file = LOCATE_parser_prod;
26924 variable[0] = self;
26925 variable[1] = param0;
26926 variable[2] = param1;
26927 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Start].i]) return;
26928 variable[4] = variable[0];
26929 ATTR_parser_nodes___Start____n_base(variable[4]) /*Start::_n_base*/ = variable[1] /*n_base*/;
26930 variable[4] = variable[0];
26931 ATTR_parser_nodes___Start____n_eof(variable[4]) /*Start::_n_eof*/ = variable[2] /*n_eof*/;
26932 return_label989: while(false);
26933 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Start].i] = 1;
26934 tracehead = trace.prev;
26935 return;
26936 }