New c_src (with reduced string pool and simplified building)
[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, LOCATE_parser_prod___PNode___parent, 9};
5 trace.prev = tracehead; tracehead = &trace;
6 tracehead = trace.prev;
7 return ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/;
8 }
9 void parser_prod___PNode___parent__eq(val_t self, val_t param0) {
10 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___parent__eq, 9};
11 trace.prev = tracehead; tracehead = &trace;
12 ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/ = param0;
13 tracehead = trace.prev;
14 return;
15 }
16 void parser_prod___PNode___remove_child(val_t self, val_t param0) {
17 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___remove_child, 12};
18 val_t variable0;
19 trace.prev = tracehead; tracehead = &trace;
20 variable0 = param0;
21 ((parser_prod___PNode___replace_child_t)CALL( self,COLOR_parser_prod___PNode___replace_child))( self, variable0 /*child*/, NIT_NULL /*null*/) /*PNode::replace_child*/;
22 tracehead = trace.prev;
23 return;
24 }
25 void parser_prod___PNode___replace_child(val_t self, val_t param0, val_t param1) {
26 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___replace_child, 18};
27 trace.prev = tracehead; tracehead = &trace;
28 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "replace_child", LOCATE_parser_prod___PNode___remove_child, 18);
29 nit_exit(1);
30 tracehead = trace.prev;
31 return;
32 }
33 void parser_prod___PNode___replace_with(val_t self, val_t param0) {
34 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___replace_with, 21};
35 val_t variable0;
36 val_t variable1;
37 trace.prev = tracehead; tracehead = &trace;
38 variable0 = param0;
39 variable1 = ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/;
40 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PNode::==*/)))))));
41 if (UNTAG_Bool(variable1)) { /*if*/
42 variable1 = ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/;
43 ((parser_prod___PNode___replace_child_t)CALL(variable1,COLOR_parser_prod___PNode___replace_child))(variable1, self, variable0 /*node*/) /*PNode::replace_child*/;
44 }
45 tracehead = trace.prev;
46 return;
47 }
48 void parser_prod___PNode___visit_all(val_t self, val_t param0) {
49 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___visit_all, 29};
50 trace.prev = tracehead; tracehead = &trace;
51 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "visit_all", LOCATE_parser_prod___PNode___replace_with, 29);
52 nit_exit(1);
53 tracehead = trace.prev;
54 return;
55 }
56 void parser_prod___PNode___visit_all_reverse(val_t self, val_t param0) {
57 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___visit_all_reverse, 33};
58 trace.prev = tracehead; tracehead = &trace;
59 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "visit_all_reverse", LOCATE_parser_prod___PNode___replace_with, 33);
60 nit_exit(1);
61 tracehead = trace.prev;
62 return;
63 }
64 val_t parser_prod___PNode___locate(val_t self) {
65 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___locate, 37};
66 trace.prev = tracehead; tracehead = &trace;
67 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "locate", LOCATE_parser_prod___PNode___replace_with, 37);
68 nit_exit(1);
69 tracehead = trace.prev;
70 return NIT_NULL;
71 }
72 val_t parser_prod___PNode___line_number(val_t self) {
73 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___line_number, 40};
74 trace.prev = tracehead; tracehead = &trace;
75 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "line_number", LOCATE_parser_prod___PNode___replace_with, 40);
76 nit_exit(1);
77 tracehead = trace.prev;
78 return NIT_NULL;
79 }
80 void parser_prod___PNode___printl(val_t self, val_t param0) {
81 struct trace_t trace = {NULL, LOCATE_parser_prod___PNode___printl, 43};
82 val_t variable0;
83 val_t variable1;
84 val_t variable2;
85 val_t variable3;
86 val_t variable4;
87 val_t variable5;
88 val_t variable6;
89 val_t variable7;
90 val_t variable8;
91 val_t variable9;
92 val_t variable10;
93 trace.prev = tracehead; tracehead = &trace;
94 variable0 = param0;
95 variable1 = NEW_string___String___init(); /*new String*/
96 variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
97 variable3 = variable2;
98 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
99 variable4 = ((parser_prod___PNode___locate_t)CALL( self,COLOR_parser_prod___PNode___locate))( self) /*PNode::locate*/;
100 variable5 = variable4;
101 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
102 variable6 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
103 variable7 = variable6;
104 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
105 variable8 = variable0 /*str*/;
106 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable8) /*String::append*/;
107 variable9 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
108 variable10 = variable9;
109 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable10) /*String::append*/;
110 ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable1) /*PNode::print*/;
111 tracehead = trace.prev;
112 return;
113 }
114 void parser_prod___Token___visit_all(val_t self, val_t param0) {
115 struct trace_t trace = {NULL, LOCATE_parser_prod___Token___visit_all, 51};
116 val_t variable0;
117 trace.prev = tracehead; tracehead = &trace;
118 variable0 = param0;
119 tracehead = trace.prev;
120 return;
121 }
122 void parser_prod___Token___visit_all_reverse(val_t self, val_t param0) {
123 struct trace_t trace = {NULL, LOCATE_parser_prod___Token___visit_all_reverse, 52};
124 val_t variable0;
125 trace.prev = tracehead; tracehead = &trace;
126 variable0 = param0;
127 tracehead = trace.prev;
128 return;
129 }
130 void parser_prod___Token___replace_child(val_t self, val_t param0, val_t param1) {
131 struct trace_t trace = {NULL, LOCATE_parser_prod___Token___replace_child, 53};
132 val_t variable0;
133 val_t variable1;
134 trace.prev = tracehead; tracehead = &trace;
135 variable0 = param0;
136 variable1 = param1;
137 tracehead = trace.prev;
138 return;
139 }
140 val_t parser_prod___Token___locate(val_t self) {
141 struct trace_t trace = {NULL, LOCATE_parser_prod___Token___locate, 55};
142 val_t variable0;
143 val_t variable1;
144 val_t variable2;
145 val_t variable3;
146 val_t variable4;
147 val_t variable5;
148 val_t variable6;
149 val_t variable7;
150 val_t variable8;
151 val_t variable9;
152 val_t variable10;
153 val_t variable11;
154 val_t variable12;
155 val_t variable13;
156 val_t variable14;
157 trace.prev = tracehead; tracehead = &trace;
158 variable0 = NEW_string___String___init(); /*new String*/
159 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
160 variable2 = variable1;
161 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
162 variable3 = ((lexer___Token___filename_t)CALL( self,COLOR_lexer___Token___filename))( self) /*Token::filename*/;
163 variable4 = variable3;
164 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
165 variable5 = NEW_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
166 variable6 = variable5;
167 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
168 variable7 = ((lexer___Token___line_t)CALL( self,COLOR_lexer___Token___line))( self) /*Token::line*/;
169 variable8 = variable7;
170 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
171 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
172 variable9 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
173 variable10 = variable9;
174 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
175 variable11 = ((lexer___Token___pos_t)CALL( self,COLOR_lexer___Token___pos))( self) /*Token::pos*/;
176 variable12 = variable11;
177 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
178 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
179 variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
180 variable14 = variable13;
181 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
182 goto return_label6;
183 return_label6: while(false);
184 tracehead = trace.prev;
185 return variable0;
186 }
187 val_t parser_prod___Token___line_number(val_t self) {
188 struct trace_t trace = {NULL, LOCATE_parser_prod___Token___line_number, 60};
189 val_t variable0;
190 trace.prev = tracehead; tracehead = &trace;
191 variable0 = ((lexer___Token___line_t)CALL( self,COLOR_lexer___Token___line))( self) /*Token::line*/;
192 goto return_label7;
193 return_label7: while(false);
194 tracehead = trace.prev;
195 return variable0;
196 }
197 val_t parser_prod___Prod___first_token(val_t self) {
198 struct trace_t trace = {NULL, LOCATE_parser_prod___Prod___first_token, 64};
199 trace.prev = tracehead; tracehead = &trace;
200 tracehead = trace.prev;
201 return ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/;
202 }
203 void parser_prod___Prod___first_token__eq(val_t self, val_t param0) {
204 struct trace_t trace = {NULL, LOCATE_parser_prod___Prod___first_token__eq, 64};
205 trace.prev = tracehead; tracehead = &trace;
206 ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/ = param0;
207 tracehead = trace.prev;
208 return;
209 }
210 val_t parser_prod___Prod___last_token(val_t self) {
211 struct trace_t trace = {NULL, LOCATE_parser_prod___Prod___last_token, 67};
212 trace.prev = tracehead; tracehead = &trace;
213 tracehead = trace.prev;
214 return ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/;
215 }
216 void parser_prod___Prod___last_token__eq(val_t self, val_t param0) {
217 struct trace_t trace = {NULL, LOCATE_parser_prod___Prod___last_token__eq, 67};
218 trace.prev = tracehead; tracehead = &trace;
219 ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/ = param0;
220 tracehead = trace.prev;
221 return;
222 }
223 val_t parser_prod___Prod___locate(val_t self) {
224 struct trace_t trace = {NULL, LOCATE_parser_prod___Prod___locate, 70};
225 val_t variable0;
226 val_t variable1;
227 val_t variable2;
228 val_t variable3;
229 val_t variable4;
230 val_t variable5;
231 val_t variable6;
232 val_t variable7;
233 val_t variable8;
234 val_t variable9;
235 val_t variable10;
236 val_t variable11;
237 val_t variable12;
238 val_t variable13;
239 val_t variable14;
240 trace.prev = tracehead; tracehead = &trace;
241 variable0 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
242 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Token::==*/)))));
243 if (UNTAG_Bool(variable0)) { /*if*/
244 variable0 = NEW_string___String___with_native(BOX_NativeString("????"), TAG_Int(4)); /*new String*/
245 goto return_label8;
246 }
247 variable1 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
248 variable1 = ((lexer___Token___pos_t)CALL(variable1,COLOR_lexer___Token___pos))(variable1) /*Token::pos*/;
249 variable2 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
250 variable2 = ((lexer___Token___text_t)CALL(variable2,COLOR_lexer___Token___text))(variable2) /*Token::text*/;
251 variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*String::length*/;
252 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int(variable2));
253 variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
254 variable0 = variable1;
255 variable1 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
256 variable1 = ((lexer___Token___line_t)CALL(variable1,COLOR_lexer___Token___line))(variable1) /*Token::line*/;
257 variable2 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
258 variable2 = ((lexer___Token___line_t)CALL(variable2,COLOR_lexer___Token___line))(variable2) /*Token::line*/;
259 variable1 = TAG_Bool((variable1)==(variable2));
260 if (UNTAG_Bool(variable1)) { /*if*/
261 variable1 = NEW_string___String___init(); /*new String*/
262 variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
263 variable3 = variable2;
264 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
265 variable4 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
266 variable4 = ((parser_prod___Token___locate_t)CALL(variable4,COLOR_parser_prod___PNode___locate))(variable4) /*Token::locate*/;
267 variable5 = variable4;
268 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
269 variable6 = NEW_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
270 variable7 = variable6;
271 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
272 variable8 = variable0 /*lastpos*/;
273 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
274 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable8) /*String::append*/;
275 variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
276 variable10 = variable9;
277 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable10) /*String::append*/;
278 variable0 = variable1;
279 goto return_label8;
280 } else { /*if*/
281 variable1 = NEW_string___String___init(); /*new String*/
282 variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
283 variable3 = variable2;
284 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
285 variable4 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
286 variable4 = ((parser_prod___Token___locate_t)CALL(variable4,COLOR_parser_prod___PNode___locate))(variable4) /*Token::locate*/;
287 variable5 = variable4;
288 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
289 variable6 = NEW_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
290 variable7 = variable6;
291 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
292 variable8 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
293 variable8 = ((lexer___Token___line_t)CALL(variable8,COLOR_lexer___Token___line))(variable8) /*Token::line*/;
294 variable9 = variable8;
295 variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
296 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
297 variable10 = NEW_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
298 variable11 = variable10;
299 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
300 variable12 = variable0 /*lastpos*/;
301 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
302 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable12) /*String::append*/;
303 variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
304 variable14 = variable13;
305 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable14) /*String::append*/;
306 variable0 = variable1;
307 goto return_label8;
308 }
309 return_label8: while(false);
310 tracehead = trace.prev;
311 return variable0;
312 }
313 void parser_prod___Prod___replace_with(val_t self, val_t param0) {
314 struct trace_t trace = {NULL, LOCATE_parser_prod___Prod___replace_with, 83};
315 val_t variable0;
316 val_t variable1;
317 trace.prev = tracehead; tracehead = &trace;
318 variable0 = param0;
319 ((parser_prod___Prod___replace_with_t)CALL( self,COLOR_SUPER_parser_prod___Prod___replace_with))( self, param0) /*super Prod::replace_with*/;
320 variable1 = TAG_Bool(( variable0 /*n*/==NIT_NULL) || VAL_ISA( variable0 /*n*/, COLOR_Prod, ID_Prod)) /*cast Prod*/;
321 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___Prod___replace_with, 86); nit_exit(1);}
322 variable1 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
323 ((parser_prod___Prod___first_token__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___Prod___first_token__eq))( variable0 /*n*/, variable1) /*Prod::first_token=*/;
324 variable1 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
325 ((parser_prod___Prod___last_token__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___Prod___last_token__eq))( variable0 /*n*/, variable1) /*Prod::last_token=*/;
326 tracehead = trace.prev;
327 return;
328 }
329 val_t parser_prod___Prod___line_number(val_t self) {
330 struct trace_t trace = {NULL, LOCATE_parser_prod___Prod___line_number, 91};
331 val_t variable0;
332 trace.prev = tracehead; tracehead = &trace;
333 variable0 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
334 variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Token::==*/)))))));
335 if (UNTAG_Bool(variable0)) { /*if*/
336 variable0 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
337 variable0 = ((lexer___Token___line_t)CALL(variable0,COLOR_lexer___Token___line))(variable0) /*Token::line*/;
338 goto return_label10;
339 } else { /*if*/
340 variable0 = TAG_Int(0);
341 goto return_label10;
342 }
343 return_label10: while(false);
344 tracehead = trace.prev;
345 return variable0;
346 }
347 void parser_prod___Visitor___visit(val_t self, val_t param0) {
348 struct trace_t trace = {NULL, LOCATE_parser_prod___Visitor___visit, 103};
349 trace.prev = tracehead; tracehead = &trace;
350 fprintf(stderr, "Deferred method %s called (%s: %d)\n", "visit", LOCATE_parser_prod___Prod___line_number, 103);
351 nit_exit(1);
352 tracehead = trace.prev;
353 return;
354 }
355 void parser_prod___AModule___n_packagedecl__eq(val_t self, val_t param0) {
356 struct trace_t trace = {NULL, LOCATE_parser_prod___AModule___n_packagedecl__eq, 110};
357 val_t variable0;
358 val_t variable1;
359 trace.prev = tracehead; tracehead = &trace;
360 variable0 = param0;
361 ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ = variable0 /*n*/;
362 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
363 if (UNTAG_Bool(variable1)) { /*if*/
364 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PPackagedecl::parent=*/;
365 }
366 tracehead = trace.prev;
367 return;
368 }
369 void parser_prod___AModule___empty_init(val_t self, int* init_table) {
370 struct trace_t trace = {NULL, LOCATE_parser_prod___AModule___empty_init, 118};
371 trace.prev = tracehead; tracehead = &trace;
372 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i]) return;
373 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i] = 1;
374 tracehead = trace.prev;
375 return;
376 }
377 void parser_prod___AModule___init_amodule(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
378 struct trace_t trace = {NULL, LOCATE_parser_prod___AModule___init_amodule, 120};
379 val_t variable0;
380 val_t variable1;
381 val_t variable2;
382 val_t variable3;
383 val_t variable4;
384 val_t variable5;
385 trace.prev = tracehead; tracehead = &trace;
386 variable0 = param0;
387 variable1 = param1;
388 variable2 = param2;
389 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i]) return;
390 ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ = variable0 /*n_packagedecl*/;
391 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_packagedecl*/ == NIT_NULL /*null*/) || (( variable0 /*n_packagedecl*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_packagedecl*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_packagedecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_packagedecl*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_packagedecl*/, NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
392 if (UNTAG_Bool(variable3)) { /*if*/
393 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_packagedecl*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_packagedecl*/, self) /*PPackagedecl::parent=*/;
394 }
395 variable3 = NEW_list___List___init(); /*new List[PImport]*/
396 ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/ = variable3;
397 variable3 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_imports*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_imports*/) /*Array::iterator*/;
398 while (true) { /*for*/
399 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
400 if (!UNTAG_Bool(variable4)) break; /*for*/
401 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
402 variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
403 if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AModule___init_amodule, 132); nit_exit(1);}
404 variable5 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
405 ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable4 /*n*/) /*List::add*/;
406 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/, self) /*PImport::parent=*/;
407 continue_14: while(0);
408 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
409 }
410 break_14: while(0);
411 variable3 = NEW_list___List___init(); /*new List[PClassdef]*/
412 ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/ = variable3;
413 variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_classdefs*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_classdefs*/) /*Array::iterator*/;
414 while (true) { /*for*/
415 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
416 if (!UNTAG_Bool(variable4)) break; /*for*/
417 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
418 variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
419 if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AModule___init_amodule, 138); nit_exit(1);}
420 variable5 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
421 ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable4 /*n*/) /*List::add*/;
422 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/, self) /*PClassdef::parent=*/;
423 continue_15: while(0);
424 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
425 }
426 break_15: while(0);
427 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i] = 1;
428 tracehead = trace.prev;
429 return;
430 }
431 void parser_prod___AModule___replace_child(val_t self, val_t param0, val_t param1) {
432 struct trace_t trace = {NULL, LOCATE_parser_prod___AModule___replace_child, 144};
433 val_t variable0;
434 val_t variable1;
435 val_t variable2;
436 val_t variable3;
437 val_t variable4;
438 trace.prev = tracehead; tracehead = &trace;
439 variable0 = param0;
440 variable1 = param1;
441 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
442 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AModule___replace_child, 146); nit_exit(1);}
443 variable2 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
444 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PPackagedecl::==*/)))));
445 if (UNTAG_Bool(variable2)) { /*if*/
446 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
447 if (UNTAG_Bool(variable2)) { /*if*/
448 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
449 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
450 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AModule___replace_child, 150); nit_exit(1);}
451 ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ = variable1 /*new_child*/;
452 } else { /*if*/
453 ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ = NIT_NULL /*null*/;
454 }
455 goto return_label16;
456 }
457 variable2 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
458 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
459 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
460 variable2 = variable3;
461 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
462 while (true) { /*for*/
463 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
464 if (!UNTAG_Bool(variable3)) break; /*for*/
465 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
466 variable4 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
467 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
468 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PImport::==*/)))));
469 if (UNTAG_Bool(variable4)) { /*if*/
470 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
471 if (UNTAG_Bool(variable4)) { /*if*/
472 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
473 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AModule___replace_child, 160); nit_exit(1);}
474 variable4 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
475 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
476 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PImport::parent=*/;
477 } else { /*if*/
478 variable4 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
479 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
480 }
481 goto return_label16;
482 }
483 continue_17: while(0);
484 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
485 }
486 break_17: while(0);
487 variable2 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
488 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
489 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
490 variable2 = variable3;
491 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
492 while (true) { /*for*/
493 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
494 if (!UNTAG_Bool(variable3)) break; /*for*/
495 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
496 variable4 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
497 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
498 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PClassdef::==*/)))));
499 if (UNTAG_Bool(variable4)) { /*if*/
500 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
501 if (UNTAG_Bool(variable4)) { /*if*/
502 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
503 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AModule___replace_child, 172); nit_exit(1);}
504 variable4 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
505 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
506 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PClassdef::parent=*/;
507 } else { /*if*/
508 variable4 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
509 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
510 }
511 goto return_label16;
512 }
513 continue_18: while(0);
514 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
515 }
516 break_18: while(0);
517 return_label16: while(false);
518 tracehead = trace.prev;
519 return;
520 }
521 void parser_prod___AModule___visit_all(val_t self, val_t param0) {
522 struct trace_t trace = {NULL, LOCATE_parser_prod___AModule___visit_all, 183};
523 val_t variable0;
524 val_t variable1;
525 val_t variable2;
526 trace.prev = tracehead; tracehead = &trace;
527 variable0 = param0;
528 variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
529 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
530 if (UNTAG_Bool(variable1)) { /*if*/
531 variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
532 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
533 }
534 variable1 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
535 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
536 while (true) { /*for*/
537 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
538 if (!UNTAG_Bool(variable2)) break; /*for*/
539 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
540 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
541 continue_20: while(0);
542 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
543 }
544 break_20: while(0);
545 variable1 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
546 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
547 while (true) { /*for*/
548 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
549 if (!UNTAG_Bool(variable2)) break; /*for*/
550 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
551 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
552 continue_21: while(0);
553 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
554 }
555 break_21: while(0);
556 tracehead = trace.prev;
557 return;
558 }
559 void parser_prod___AModule___visit_all_reverse(val_t self, val_t param0) {
560 struct trace_t trace = {NULL, LOCATE_parser_prod___AModule___visit_all_reverse, 196};
561 val_t variable0;
562 val_t variable1;
563 val_t variable2;
564 trace.prev = tracehead; tracehead = &trace;
565 variable0 = param0;
566 variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
567 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
568 if (UNTAG_Bool(variable1)) { /*if*/
569 variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
570 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
571 }
572 variable2 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
573 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
574 variable1 = variable2;
575 while (true) { /*while*/
576 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
577 if (!UNTAG_Bool(variable2)) break; /* while*/
578 variable2 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
579 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
580 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
581 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
582 variable1 = variable2 /*i=*/;
583 continue_23: while(0);
584 }
585 break_23: while(0);
586 variable2 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
587 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
588 variable1 = variable2;
589 while (true) { /*while*/
590 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
591 if (!UNTAG_Bool(variable2)) break; /* while*/
592 variable2 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
593 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
594 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
595 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
596 variable1 = variable2 /*i=*/;
597 continue_24: while(0);
598 }
599 break_24: while(0);
600 tracehead = trace.prev;
601 return;
602 }
603 void parser_prod___APackagedecl___n_doc__eq(val_t self, val_t param0) {
604 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___n_doc__eq, 218};
605 val_t variable0;
606 val_t variable1;
607 trace.prev = tracehead; tracehead = &trace;
608 variable0 = param0;
609 ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ = variable0 /*n*/;
610 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
611 if (UNTAG_Bool(variable1)) { /*if*/
612 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
613 }
614 tracehead = trace.prev;
615 return;
616 }
617 void parser_prod___APackagedecl___n_kwpackage__eq(val_t self, val_t param0) {
618 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___n_kwpackage__eq, 225};
619 val_t variable0;
620 val_t variable1;
621 trace.prev = tracehead; tracehead = &trace;
622 variable0 = param0;
623 ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ = variable0 /*n*/;
624 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
625 if (UNTAG_Bool(variable1)) { /*if*/
626 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwpackage::parent=*/;
627 }
628 tracehead = trace.prev;
629 return;
630 }
631 void parser_prod___APackagedecl___n_id__eq(val_t self, val_t param0) {
632 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___n_id__eq, 232};
633 val_t variable0;
634 val_t variable1;
635 trace.prev = tracehead; tracehead = &trace;
636 variable0 = param0;
637 ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ = variable0 /*n*/;
638 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
639 if (UNTAG_Bool(variable1)) { /*if*/
640 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
641 }
642 tracehead = trace.prev;
643 return;
644 }
645 void parser_prod___APackagedecl___empty_init(val_t self, int* init_table) {
646 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___empty_init, 240};
647 trace.prev = tracehead; tracehead = &trace;
648 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i]) return;
649 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
650 tracehead = trace.prev;
651 return;
652 }
653 void parser_prod___APackagedecl___init_apackagedecl(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
654 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___init_apackagedecl, 242};
655 val_t variable0;
656 val_t variable1;
657 val_t variable2;
658 val_t variable3;
659 trace.prev = tracehead; tracehead = &trace;
660 variable0 = param0;
661 variable1 = param1;
662 variable2 = param2;
663 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i]) return;
664 ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ = variable0 /*n_doc*/;
665 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
666 if (UNTAG_Bool(variable3)) { /*if*/
667 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
668 }
669 ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ = variable1 /*n_kwpackage*/;
670 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwpackage*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwpackage*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwpackage*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwpackage*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwpackage*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwpackage*/, NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
671 if (UNTAG_Bool(variable3)) { /*if*/
672 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwpackage*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwpackage*/, self) /*TKwpackage::parent=*/;
673 }
674 ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ = variable2 /*n_id*/;
675 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_id*/ == NIT_NULL /*null*/) || (( variable2 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
676 if (UNTAG_Bool(variable3)) { /*if*/
677 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_id*/, self) /*TId::parent=*/;
678 }
679 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
680 tracehead = trace.prev;
681 return;
682 }
683 void parser_prod___APackagedecl___replace_child(val_t self, val_t param0, val_t param1) {
684 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___replace_child, 262};
685 val_t variable0;
686 val_t variable1;
687 val_t variable2;
688 trace.prev = tracehead; tracehead = &trace;
689 variable0 = param0;
690 variable1 = param1;
691 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
692 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APackagedecl___replace_child, 264); nit_exit(1);}
693 variable2 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
694 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
695 if (UNTAG_Bool(variable2)) { /*if*/
696 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
697 if (UNTAG_Bool(variable2)) { /*if*/
698 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
699 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
700 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APackagedecl___replace_child, 268); nit_exit(1);}
701 ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ = variable1 /*new_child*/;
702 } else { /*if*/
703 ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ = NIT_NULL /*null*/;
704 }
705 goto return_label30;
706 }
707 variable2 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
708 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwpackage::==*/)))));
709 if (UNTAG_Bool(variable2)) { /*if*/
710 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
711 if (UNTAG_Bool(variable2)) { /*if*/
712 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
713 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwpackage, ID_TKwpackage)) /*cast TKwpackage*/;
714 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APackagedecl___replace_child, 278); nit_exit(1);}
715 ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ = variable1 /*new_child*/;
716 } else { /*if*/
717 ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ = NIT_NULL /*null*/;
718 }
719 goto return_label30;
720 }
721 variable2 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
722 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
723 if (UNTAG_Bool(variable2)) { /*if*/
724 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
725 if (UNTAG_Bool(variable2)) { /*if*/
726 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
727 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
728 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APackagedecl___replace_child, 288); nit_exit(1);}
729 ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ = variable1 /*new_child*/;
730 } else { /*if*/
731 ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ = NIT_NULL /*null*/;
732 }
733 goto return_label30;
734 }
735 return_label30: while(false);
736 tracehead = trace.prev;
737 return;
738 }
739 void parser_prod___APackagedecl___visit_all(val_t self, val_t param0) {
740 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___visit_all, 297};
741 val_t variable0;
742 val_t variable1;
743 trace.prev = tracehead; tracehead = &trace;
744 variable0 = param0;
745 variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
746 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
747 if (UNTAG_Bool(variable1)) { /*if*/
748 variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
749 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
750 }
751 variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
752 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
753 if (UNTAG_Bool(variable1)) { /*if*/
754 variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
755 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
756 }
757 variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
758 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
759 if (UNTAG_Bool(variable1)) { /*if*/
760 variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
761 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
762 }
763 tracehead = trace.prev;
764 return;
765 }
766 void parser_prod___APackagedecl___visit_all_reverse(val_t self, val_t param0) {
767 struct trace_t trace = {NULL, LOCATE_parser_prod___APackagedecl___visit_all_reverse, 310};
768 val_t variable0;
769 val_t variable1;
770 trace.prev = tracehead; tracehead = &trace;
771 variable0 = param0;
772 variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
773 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
774 if (UNTAG_Bool(variable1)) { /*if*/
775 variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
776 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
777 }
778 variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
779 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
780 if (UNTAG_Bool(variable1)) { /*if*/
781 variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
782 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
783 }
784 variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
785 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
786 if (UNTAG_Bool(variable1)) { /*if*/
787 variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
788 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
789 }
790 tracehead = trace.prev;
791 return;
792 }
793 void parser_prod___AImport___n_visibility__eq(val_t self, val_t param0) {
794 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___n_visibility__eq, 324};
795 val_t variable0;
796 val_t variable1;
797 trace.prev = tracehead; tracehead = &trace;
798 variable0 = param0;
799 ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ = variable0 /*n*/;
800 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
801 if (UNTAG_Bool(variable1)) { /*if*/
802 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
803 }
804 tracehead = trace.prev;
805 return;
806 }
807 void parser_prod___AImport___n_kwimport__eq(val_t self, val_t param0) {
808 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___n_kwimport__eq, 331};
809 val_t variable0;
810 val_t variable1;
811 trace.prev = tracehead; tracehead = &trace;
812 variable0 = param0;
813 ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ = variable0 /*n*/;
814 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
815 if (UNTAG_Bool(variable1)) { /*if*/
816 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwimport::parent=*/;
817 }
818 tracehead = trace.prev;
819 return;
820 }
821 void parser_prod___AImport___n_id__eq(val_t self, val_t param0) {
822 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___n_id__eq, 338};
823 val_t variable0;
824 val_t variable1;
825 trace.prev = tracehead; tracehead = &trace;
826 variable0 = param0;
827 ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ = variable0 /*n*/;
828 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
829 if (UNTAG_Bool(variable1)) { /*if*/
830 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
831 }
832 tracehead = trace.prev;
833 return;
834 }
835 void parser_prod___AImport___empty_init(val_t self, int* init_table) {
836 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___empty_init, 346};
837 trace.prev = tracehead; tracehead = &trace;
838 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i]) return;
839 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i] = 1;
840 tracehead = trace.prev;
841 return;
842 }
843 void parser_prod___AImport___init_aimport(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
844 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___init_aimport, 348};
845 val_t variable0;
846 val_t variable1;
847 val_t variable2;
848 val_t variable3;
849 trace.prev = tracehead; tracehead = &trace;
850 variable0 = param0;
851 variable1 = param1;
852 variable2 = param2;
853 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i]) return;
854 ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ = variable0 /*n_visibility*/;
855 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable0 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
856 if (UNTAG_Bool(variable3)) { /*if*/
857 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_visibility*/, self) /*PVisibility::parent=*/;
858 }
859 ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ = variable1 /*n_kwimport*/;
860 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwimport*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwimport*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwimport*/, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
861 if (UNTAG_Bool(variable3)) { /*if*/
862 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwimport*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwimport*/, self) /*TKwimport::parent=*/;
863 }
864 ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ = variable2 /*n_id*/;
865 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_id*/ == NIT_NULL /*null*/) || (( variable2 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
866 if (UNTAG_Bool(variable3)) { /*if*/
867 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_id*/, self) /*TId::parent=*/;
868 }
869 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i] = 1;
870 tracehead = trace.prev;
871 return;
872 }
873 void parser_prod___AImport___replace_child(val_t self, val_t param0, val_t param1) {
874 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___replace_child, 368};
875 val_t variable0;
876 val_t variable1;
877 val_t variable2;
878 trace.prev = tracehead; tracehead = &trace;
879 variable0 = param0;
880 variable1 = param1;
881 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
882 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AImport___replace_child, 370); nit_exit(1);}
883 variable2 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
884 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
885 if (UNTAG_Bool(variable2)) { /*if*/
886 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
887 if (UNTAG_Bool(variable2)) { /*if*/
888 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
889 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
890 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AImport___replace_child, 374); nit_exit(1);}
891 ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ = variable1 /*new_child*/;
892 } else { /*if*/
893 ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ = NIT_NULL /*null*/;
894 }
895 goto return_label38;
896 }
897 variable2 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
898 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwimport::==*/)))));
899 if (UNTAG_Bool(variable2)) { /*if*/
900 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
901 if (UNTAG_Bool(variable2)) { /*if*/
902 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
903 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
904 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AImport___replace_child, 384); nit_exit(1);}
905 ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ = variable1 /*new_child*/;
906 } else { /*if*/
907 ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ = NIT_NULL /*null*/;
908 }
909 goto return_label38;
910 }
911 variable2 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
912 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
913 if (UNTAG_Bool(variable2)) { /*if*/
914 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
915 if (UNTAG_Bool(variable2)) { /*if*/
916 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
917 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
918 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AImport___replace_child, 394); nit_exit(1);}
919 ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ = variable1 /*new_child*/;
920 } else { /*if*/
921 ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ = NIT_NULL /*null*/;
922 }
923 goto return_label38;
924 }
925 return_label38: while(false);
926 tracehead = trace.prev;
927 return;
928 }
929 void parser_prod___AImport___visit_all(val_t self, val_t param0) {
930 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___visit_all, 403};
931 val_t variable0;
932 val_t variable1;
933 trace.prev = tracehead; tracehead = &trace;
934 variable0 = param0;
935 variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
936 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
937 if (UNTAG_Bool(variable1)) { /*if*/
938 variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
939 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
940 }
941 variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
942 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
943 if (UNTAG_Bool(variable1)) { /*if*/
944 variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
945 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
946 }
947 variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
948 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
949 if (UNTAG_Bool(variable1)) { /*if*/
950 variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
951 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
952 }
953 tracehead = trace.prev;
954 return;
955 }
956 void parser_prod___AImport___visit_all_reverse(val_t self, val_t param0) {
957 struct trace_t trace = {NULL, LOCATE_parser_prod___AImport___visit_all_reverse, 416};
958 val_t variable0;
959 val_t variable1;
960 trace.prev = tracehead; tracehead = &trace;
961 variable0 = param0;
962 variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
963 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
964 if (UNTAG_Bool(variable1)) { /*if*/
965 variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
966 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
967 }
968 variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
969 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
970 if (UNTAG_Bool(variable1)) { /*if*/
971 variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
972 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
973 }
974 variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
975 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
976 if (UNTAG_Bool(variable1)) { /*if*/
977 variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
978 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
979 }
980 tracehead = trace.prev;
981 return;
982 }
983 void parser_prod___ANoImport___n_visibility__eq(val_t self, val_t param0) {
984 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___n_visibility__eq, 430};
985 val_t variable0;
986 val_t variable1;
987 trace.prev = tracehead; tracehead = &trace;
988 variable0 = param0;
989 ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ = variable0 /*n*/;
990 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
991 if (UNTAG_Bool(variable1)) { /*if*/
992 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
993 }
994 tracehead = trace.prev;
995 return;
996 }
997 void parser_prod___ANoImport___n_kwimport__eq(val_t self, val_t param0) {
998 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___n_kwimport__eq, 437};
999 val_t variable0;
1000 val_t variable1;
1001 trace.prev = tracehead; tracehead = &trace;
1002 variable0 = param0;
1003 ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ = variable0 /*n*/;
1004 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
1005 if (UNTAG_Bool(variable1)) { /*if*/
1006 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwimport::parent=*/;
1007 }
1008 tracehead = trace.prev;
1009 return;
1010 }
1011 void parser_prod___ANoImport___n_kwend__eq(val_t self, val_t param0) {
1012 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___n_kwend__eq, 444};
1013 val_t variable0;
1014 val_t variable1;
1015 trace.prev = tracehead; tracehead = &trace;
1016 variable0 = param0;
1017 ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ = variable0 /*n*/;
1018 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwend::==*/)))))));
1019 if (UNTAG_Bool(variable1)) { /*if*/
1020 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwend::parent=*/;
1021 }
1022 tracehead = trace.prev;
1023 return;
1024 }
1025 void parser_prod___ANoImport___empty_init(val_t self, int* init_table) {
1026 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___empty_init, 452};
1027 trace.prev = tracehead; tracehead = &trace;
1028 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i]) return;
1029 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i] = 1;
1030 tracehead = trace.prev;
1031 return;
1032 }
1033 void parser_prod___ANoImport___init_anoimport(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1034 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___init_anoimport, 454};
1035 val_t variable0;
1036 val_t variable1;
1037 val_t variable2;
1038 val_t variable3;
1039 trace.prev = tracehead; tracehead = &trace;
1040 variable0 = param0;
1041 variable1 = param1;
1042 variable2 = param2;
1043 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i]) return;
1044 ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ = variable0 /*n_visibility*/;
1045 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable0 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
1046 if (UNTAG_Bool(variable3)) { /*if*/
1047 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_visibility*/, self) /*PVisibility::parent=*/;
1048 }
1049 ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ = variable1 /*n_kwimport*/;
1050 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwimport*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwimport*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwimport*/, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
1051 if (UNTAG_Bool(variable3)) { /*if*/
1052 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwimport*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwimport*/, self) /*TKwimport::parent=*/;
1053 }
1054 ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ = variable2 /*n_kwend*/;
1055 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_kwend*/ == NIT_NULL /*null*/) || (( variable2 /*n_kwend*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwend*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_kwend*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwend*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_kwend*/, NIT_NULL /*null*/) /*TKwend::==*/)))))));
1056 if (UNTAG_Bool(variable3)) { /*if*/
1057 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_kwend*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_kwend*/, self) /*TKwend::parent=*/;
1058 }
1059 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i] = 1;
1060 tracehead = trace.prev;
1061 return;
1062 }
1063 void parser_prod___ANoImport___replace_child(val_t self, val_t param0, val_t param1) {
1064 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___replace_child, 474};
1065 val_t variable0;
1066 val_t variable1;
1067 val_t variable2;
1068 trace.prev = tracehead; tracehead = &trace;
1069 variable0 = param0;
1070 variable1 = param1;
1071 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1072 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANoImport___replace_child, 476); nit_exit(1);}
1073 variable2 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
1074 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
1075 if (UNTAG_Bool(variable2)) { /*if*/
1076 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1077 if (UNTAG_Bool(variable2)) { /*if*/
1078 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1079 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
1080 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANoImport___replace_child, 480); nit_exit(1);}
1081 ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ = variable1 /*new_child*/;
1082 } else { /*if*/
1083 ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ = NIT_NULL /*null*/;
1084 }
1085 goto return_label46;
1086 }
1087 variable2 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
1088 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwimport::==*/)))));
1089 if (UNTAG_Bool(variable2)) { /*if*/
1090 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1091 if (UNTAG_Bool(variable2)) { /*if*/
1092 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1093 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
1094 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANoImport___replace_child, 490); nit_exit(1);}
1095 ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ = variable1 /*new_child*/;
1096 } else { /*if*/
1097 ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ = NIT_NULL /*null*/;
1098 }
1099 goto return_label46;
1100 }
1101 variable2 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
1102 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwend::==*/)))));
1103 if (UNTAG_Bool(variable2)) { /*if*/
1104 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1105 if (UNTAG_Bool(variable2)) { /*if*/
1106 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1107 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwend, ID_TKwend)) /*cast TKwend*/;
1108 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANoImport___replace_child, 500); nit_exit(1);}
1109 ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ = variable1 /*new_child*/;
1110 } else { /*if*/
1111 ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ = NIT_NULL /*null*/;
1112 }
1113 goto return_label46;
1114 }
1115 return_label46: while(false);
1116 tracehead = trace.prev;
1117 return;
1118 }
1119 void parser_prod___ANoImport___visit_all(val_t self, val_t param0) {
1120 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___visit_all, 509};
1121 val_t variable0;
1122 val_t variable1;
1123 trace.prev = tracehead; tracehead = &trace;
1124 variable0 = param0;
1125 variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
1126 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
1127 if (UNTAG_Bool(variable1)) { /*if*/
1128 variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
1129 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1130 }
1131 variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
1132 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
1133 if (UNTAG_Bool(variable1)) { /*if*/
1134 variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
1135 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1136 }
1137 variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
1138 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwend::==*/)))))));
1139 if (UNTAG_Bool(variable1)) { /*if*/
1140 variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
1141 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1142 }
1143 tracehead = trace.prev;
1144 return;
1145 }
1146 void parser_prod___ANoImport___visit_all_reverse(val_t self, val_t param0) {
1147 struct trace_t trace = {NULL, LOCATE_parser_prod___ANoImport___visit_all_reverse, 522};
1148 val_t variable0;
1149 val_t variable1;
1150 trace.prev = tracehead; tracehead = &trace;
1151 variable0 = param0;
1152 variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
1153 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
1154 if (UNTAG_Bool(variable1)) { /*if*/
1155 variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
1156 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1157 }
1158 variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
1159 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwimport::==*/)))))));
1160 if (UNTAG_Bool(variable1)) { /*if*/
1161 variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
1162 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1163 }
1164 variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
1165 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwend::==*/)))))));
1166 if (UNTAG_Bool(variable1)) { /*if*/
1167 variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
1168 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1169 }
1170 tracehead = trace.prev;
1171 return;
1172 }
1173 void parser_prod___APublicVisibility___empty_init(val_t self, int* init_table) {
1174 struct trace_t trace = {NULL, LOCATE_parser_prod___APublicVisibility___empty_init, 537};
1175 trace.prev = tracehead; tracehead = &trace;
1176 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
1177 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
1178 tracehead = trace.prev;
1179 return;
1180 }
1181 void parser_prod___APublicVisibility___init_apublicvisibility(val_t self, int* init_table) {
1182 struct trace_t trace = {NULL, LOCATE_parser_prod___APublicVisibility___init_apublicvisibility, 539};
1183 trace.prev = tracehead; tracehead = &trace;
1184 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
1185 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
1186 tracehead = trace.prev;
1187 return;
1188 }
1189 void parser_prod___APublicVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1190 struct trace_t trace = {NULL, LOCATE_parser_prod___APublicVisibility___replace_child, 543};
1191 val_t variable0;
1192 val_t variable1;
1193 val_t variable2;
1194 trace.prev = tracehead; tracehead = &trace;
1195 variable0 = param0;
1196 variable1 = param1;
1197 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1198 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APublicVisibility___replace_child, 545); nit_exit(1);}
1199 tracehead = trace.prev;
1200 return;
1201 }
1202 void parser_prod___APublicVisibility___visit_all(val_t self, val_t param0) {
1203 struct trace_t trace = {NULL, LOCATE_parser_prod___APublicVisibility___visit_all, 548};
1204 val_t variable0;
1205 trace.prev = tracehead; tracehead = &trace;
1206 variable0 = param0;
1207 tracehead = trace.prev;
1208 return;
1209 }
1210 void parser_prod___APublicVisibility___visit_all_reverse(val_t self, val_t param0) {
1211 struct trace_t trace = {NULL, LOCATE_parser_prod___APublicVisibility___visit_all_reverse, 552};
1212 val_t variable0;
1213 trace.prev = tracehead; tracehead = &trace;
1214 variable0 = param0;
1215 tracehead = trace.prev;
1216 return;
1217 }
1218 void parser_prod___APrivateVisibility___n_kwprivate__eq(val_t self, val_t param0) {
1219 struct trace_t trace = {NULL, LOCATE_parser_prod___APrivateVisibility___n_kwprivate__eq, 557};
1220 val_t variable0;
1221 val_t variable1;
1222 trace.prev = tracehead; tracehead = &trace;
1223 variable0 = param0;
1224 ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ = variable0 /*n*/;
1225 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
1226 if (UNTAG_Bool(variable1)) { /*if*/
1227 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwprivate::parent=*/;
1228 }
1229 tracehead = trace.prev;
1230 return;
1231 }
1232 void parser_prod___APrivateVisibility___empty_init(val_t self, int* init_table) {
1233 struct trace_t trace = {NULL, LOCATE_parser_prod___APrivateVisibility___empty_init, 565};
1234 trace.prev = tracehead; tracehead = &trace;
1235 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
1236 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
1237 tracehead = trace.prev;
1238 return;
1239 }
1240 void parser_prod___APrivateVisibility___init_aprivatevisibility(val_t self, val_t param0, int* init_table) {
1241 struct trace_t trace = {NULL, LOCATE_parser_prod___APrivateVisibility___init_aprivatevisibility, 567};
1242 val_t variable0;
1243 val_t variable1;
1244 trace.prev = tracehead; tracehead = &trace;
1245 variable0 = param0;
1246 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
1247 ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ = variable0 /*n_kwprivate*/;
1248 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwprivate*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwprivate*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprivate*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwprivate*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprivate*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwprivate*/, NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
1249 if (UNTAG_Bool(variable1)) { /*if*/
1250 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwprivate*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwprivate*/, self) /*TKwprivate::parent=*/;
1251 }
1252 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
1253 tracehead = trace.prev;
1254 return;
1255 }
1256 void parser_prod___APrivateVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1257 struct trace_t trace = {NULL, LOCATE_parser_prod___APrivateVisibility___replace_child, 577};
1258 val_t variable0;
1259 val_t variable1;
1260 val_t variable2;
1261 trace.prev = tracehead; tracehead = &trace;
1262 variable0 = param0;
1263 variable1 = param1;
1264 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1265 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APrivateVisibility___replace_child, 579); nit_exit(1);}
1266 variable2 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
1267 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwprivate::==*/)))));
1268 if (UNTAG_Bool(variable2)) { /*if*/
1269 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1270 if (UNTAG_Bool(variable2)) { /*if*/
1271 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1272 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
1273 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APrivateVisibility___replace_child, 583); nit_exit(1);}
1274 ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ = variable1 /*new_child*/;
1275 } else { /*if*/
1276 ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ = NIT_NULL /*null*/;
1277 }
1278 goto return_label57;
1279 }
1280 return_label57: while(false);
1281 tracehead = trace.prev;
1282 return;
1283 }
1284 void parser_prod___APrivateVisibility___visit_all(val_t self, val_t param0) {
1285 struct trace_t trace = {NULL, LOCATE_parser_prod___APrivateVisibility___visit_all, 592};
1286 val_t variable0;
1287 val_t variable1;
1288 trace.prev = tracehead; tracehead = &trace;
1289 variable0 = param0;
1290 variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
1291 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
1292 if (UNTAG_Bool(variable1)) { /*if*/
1293 variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
1294 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1295 }
1296 tracehead = trace.prev;
1297 return;
1298 }
1299 void parser_prod___APrivateVisibility___visit_all_reverse(val_t self, val_t param0) {
1300 struct trace_t trace = {NULL, LOCATE_parser_prod___APrivateVisibility___visit_all_reverse, 599};
1301 val_t variable0;
1302 val_t variable1;
1303 trace.prev = tracehead; tracehead = &trace;
1304 variable0 = param0;
1305 variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
1306 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
1307 if (UNTAG_Bool(variable1)) { /*if*/
1308 variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
1309 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1310 }
1311 tracehead = trace.prev;
1312 return;
1313 }
1314 void parser_prod___AProtectedVisibility___n_kwprotected__eq(val_t self, val_t param0) {
1315 struct trace_t trace = {NULL, LOCATE_parser_prod___AProtectedVisibility___n_kwprotected__eq, 607};
1316 val_t variable0;
1317 val_t variable1;
1318 trace.prev = tracehead; tracehead = &trace;
1319 variable0 = param0;
1320 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ = variable0 /*n*/;
1321 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
1322 if (UNTAG_Bool(variable1)) { /*if*/
1323 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwprotected::parent=*/;
1324 }
1325 tracehead = trace.prev;
1326 return;
1327 }
1328 void parser_prod___AProtectedVisibility___empty_init(val_t self, int* init_table) {
1329 struct trace_t trace = {NULL, LOCATE_parser_prod___AProtectedVisibility___empty_init, 615};
1330 trace.prev = tracehead; tracehead = &trace;
1331 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
1332 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
1333 tracehead = trace.prev;
1334 return;
1335 }
1336 void parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t self, val_t param0, int* init_table) {
1337 struct trace_t trace = {NULL, LOCATE_parser_prod___AProtectedVisibility___init_aprotectedvisibility, 617};
1338 val_t variable0;
1339 val_t variable1;
1340 trace.prev = tracehead; tracehead = &trace;
1341 variable0 = param0;
1342 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
1343 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ = variable0 /*n_kwprotected*/;
1344 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwprotected*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwprotected*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprotected*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwprotected*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprotected*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwprotected*/, NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
1345 if (UNTAG_Bool(variable1)) { /*if*/
1346 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwprotected*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwprotected*/, self) /*TKwprotected::parent=*/;
1347 }
1348 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
1349 tracehead = trace.prev;
1350 return;
1351 }
1352 void parser_prod___AProtectedVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1353 struct trace_t trace = {NULL, LOCATE_parser_prod___AProtectedVisibility___replace_child, 627};
1354 val_t variable0;
1355 val_t variable1;
1356 val_t variable2;
1357 trace.prev = tracehead; tracehead = &trace;
1358 variable0 = param0;
1359 variable1 = param1;
1360 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1361 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AProtectedVisibility___replace_child, 629); nit_exit(1);}
1362 variable2 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
1363 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwprotected::==*/)))));
1364 if (UNTAG_Bool(variable2)) { /*if*/
1365 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1366 if (UNTAG_Bool(variable2)) { /*if*/
1367 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1368 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
1369 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AProtectedVisibility___replace_child, 633); nit_exit(1);}
1370 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ = variable1 /*new_child*/;
1371 } else { /*if*/
1372 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ = NIT_NULL /*null*/;
1373 }
1374 goto return_label63;
1375 }
1376 return_label63: while(false);
1377 tracehead = trace.prev;
1378 return;
1379 }
1380 void parser_prod___AProtectedVisibility___visit_all(val_t self, val_t param0) {
1381 struct trace_t trace = {NULL, LOCATE_parser_prod___AProtectedVisibility___visit_all, 642};
1382 val_t variable0;
1383 val_t variable1;
1384 trace.prev = tracehead; tracehead = &trace;
1385 variable0 = param0;
1386 variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
1387 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
1388 if (UNTAG_Bool(variable1)) { /*if*/
1389 variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
1390 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1391 }
1392 tracehead = trace.prev;
1393 return;
1394 }
1395 void parser_prod___AProtectedVisibility___visit_all_reverse(val_t self, val_t param0) {
1396 struct trace_t trace = {NULL, LOCATE_parser_prod___AProtectedVisibility___visit_all_reverse, 649};
1397 val_t variable0;
1398 val_t variable1;
1399 trace.prev = tracehead; tracehead = &trace;
1400 variable0 = param0;
1401 variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
1402 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
1403 if (UNTAG_Bool(variable1)) { /*if*/
1404 variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
1405 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1406 }
1407 tracehead = trace.prev;
1408 return;
1409 }
1410 void parser_prod___AIntrudeVisibility___n_kwintrude__eq(val_t self, val_t param0) {
1411 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntrudeVisibility___n_kwintrude__eq, 657};
1412 val_t variable0;
1413 val_t variable1;
1414 trace.prev = tracehead; tracehead = &trace;
1415 variable0 = param0;
1416 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ = variable0 /*n*/;
1417 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
1418 if (UNTAG_Bool(variable1)) { /*if*/
1419 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwintrude::parent=*/;
1420 }
1421 tracehead = trace.prev;
1422 return;
1423 }
1424 void parser_prod___AIntrudeVisibility___empty_init(val_t self, int* init_table) {
1425 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntrudeVisibility___empty_init, 665};
1426 trace.prev = tracehead; tracehead = &trace;
1427 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
1428 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
1429 tracehead = trace.prev;
1430 return;
1431 }
1432 void parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t self, val_t param0, int* init_table) {
1433 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntrudeVisibility___init_aintrudevisibility, 667};
1434 val_t variable0;
1435 val_t variable1;
1436 trace.prev = tracehead; tracehead = &trace;
1437 variable0 = param0;
1438 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
1439 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ = variable0 /*n_kwintrude*/;
1440 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwintrude*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwintrude*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwintrude*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwintrude*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwintrude*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwintrude*/, NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
1441 if (UNTAG_Bool(variable1)) { /*if*/
1442 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwintrude*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwintrude*/, self) /*TKwintrude::parent=*/;
1443 }
1444 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
1445 tracehead = trace.prev;
1446 return;
1447 }
1448 void parser_prod___AIntrudeVisibility___replace_child(val_t self, val_t param0, val_t param1) {
1449 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntrudeVisibility___replace_child, 677};
1450 val_t variable0;
1451 val_t variable1;
1452 val_t variable2;
1453 trace.prev = tracehead; tracehead = &trace;
1454 variable0 = param0;
1455 variable1 = param1;
1456 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1457 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIntrudeVisibility___replace_child, 679); nit_exit(1);}
1458 variable2 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
1459 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwintrude::==*/)))));
1460 if (UNTAG_Bool(variable2)) { /*if*/
1461 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1462 if (UNTAG_Bool(variable2)) { /*if*/
1463 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1464 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
1465 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIntrudeVisibility___replace_child, 683); nit_exit(1);}
1466 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ = variable1 /*new_child*/;
1467 } else { /*if*/
1468 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ = NIT_NULL /*null*/;
1469 }
1470 goto return_label69;
1471 }
1472 return_label69: while(false);
1473 tracehead = trace.prev;
1474 return;
1475 }
1476 void parser_prod___AIntrudeVisibility___visit_all(val_t self, val_t param0) {
1477 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntrudeVisibility___visit_all, 692};
1478 val_t variable0;
1479 val_t variable1;
1480 trace.prev = tracehead; tracehead = &trace;
1481 variable0 = param0;
1482 variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
1483 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
1484 if (UNTAG_Bool(variable1)) { /*if*/
1485 variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
1486 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1487 }
1488 tracehead = trace.prev;
1489 return;
1490 }
1491 void parser_prod___AIntrudeVisibility___visit_all_reverse(val_t self, val_t param0) {
1492 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntrudeVisibility___visit_all_reverse, 699};
1493 val_t variable0;
1494 val_t variable1;
1495 trace.prev = tracehead; tracehead = &trace;
1496 variable0 = param0;
1497 variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
1498 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
1499 if (UNTAG_Bool(variable1)) { /*if*/
1500 variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
1501 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1502 }
1503 tracehead = trace.prev;
1504 return;
1505 }
1506 void parser_prod___AClassdef___n_doc__eq(val_t self, val_t param0) {
1507 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___n_doc__eq, 707};
1508 val_t variable0;
1509 val_t variable1;
1510 trace.prev = tracehead; tracehead = &trace;
1511 variable0 = param0;
1512 ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ = variable0 /*n*/;
1513 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
1514 if (UNTAG_Bool(variable1)) { /*if*/
1515 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
1516 }
1517 tracehead = trace.prev;
1518 return;
1519 }
1520 void parser_prod___AClassdef___n_kwredef__eq(val_t self, val_t param0) {
1521 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___n_kwredef__eq, 714};
1522 val_t variable0;
1523 val_t variable1;
1524 trace.prev = tracehead; tracehead = &trace;
1525 variable0 = param0;
1526 ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ = variable0 /*n*/;
1527 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
1528 if (UNTAG_Bool(variable1)) { /*if*/
1529 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
1530 }
1531 tracehead = trace.prev;
1532 return;
1533 }
1534 void parser_prod___AClassdef___n_visibility__eq(val_t self, val_t param0) {
1535 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___n_visibility__eq, 721};
1536 val_t variable0;
1537 val_t variable1;
1538 trace.prev = tracehead; tracehead = &trace;
1539 variable0 = param0;
1540 ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ = variable0 /*n*/;
1541 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
1542 if (UNTAG_Bool(variable1)) { /*if*/
1543 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
1544 }
1545 tracehead = trace.prev;
1546 return;
1547 }
1548 void parser_prod___AClassdef___n_classkind__eq(val_t self, val_t param0) {
1549 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___n_classkind__eq, 728};
1550 val_t variable0;
1551 val_t variable1;
1552 trace.prev = tracehead; tracehead = &trace;
1553 variable0 = param0;
1554 ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ = variable0 /*n*/;
1555 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PClasskind::==*/)))))));
1556 if (UNTAG_Bool(variable1)) { /*if*/
1557 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PClasskind::parent=*/;
1558 }
1559 tracehead = trace.prev;
1560 return;
1561 }
1562 void parser_prod___AClassdef___n_id__eq(val_t self, val_t param0) {
1563 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___n_id__eq, 735};
1564 val_t variable0;
1565 val_t variable1;
1566 trace.prev = tracehead; tracehead = &trace;
1567 variable0 = param0;
1568 ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ = variable0 /*n*/;
1569 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
1570 if (UNTAG_Bool(variable1)) { /*if*/
1571 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TClassid::parent=*/;
1572 }
1573 tracehead = trace.prev;
1574 return;
1575 }
1576 void parser_prod___AClassdef___empty_init(val_t self, int* init_table) {
1577 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___empty_init, 743};
1578 trace.prev = tracehead; tracehead = &trace;
1579 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i]) return;
1580 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i] = 1;
1581 tracehead = trace.prev;
1582 return;
1583 }
1584 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) {
1585 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___init_aclassdef, 745};
1586 val_t variable0;
1587 val_t variable1;
1588 val_t variable2;
1589 val_t variable3;
1590 val_t variable4;
1591 val_t variable5;
1592 val_t variable6;
1593 val_t variable7;
1594 val_t variable8;
1595 val_t variable9;
1596 val_t variable10;
1597 trace.prev = tracehead; tracehead = &trace;
1598 variable0 = param0;
1599 variable1 = param1;
1600 variable2 = param2;
1601 variable3 = param3;
1602 variable4 = param4;
1603 variable5 = param5;
1604 variable6 = param6;
1605 variable7 = param7;
1606 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i]) return;
1607 ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ = variable0 /*n_doc*/;
1608 variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
1609 if (UNTAG_Bool(variable8)) { /*if*/
1610 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
1611 }
1612 ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
1613 variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
1614 if (UNTAG_Bool(variable8)) { /*if*/
1615 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
1616 }
1617 ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ = variable2 /*n_visibility*/;
1618 variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
1619 if (UNTAG_Bool(variable8)) { /*if*/
1620 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
1621 }
1622 ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ = variable3 /*n_classkind*/;
1623 variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_classkind*/ == NIT_NULL /*null*/) || (( variable3 /*n_classkind*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_classkind*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_classkind*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_classkind*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_classkind*/, NIT_NULL /*null*/) /*PClasskind::==*/)))))));
1624 if (UNTAG_Bool(variable8)) { /*if*/
1625 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_classkind*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_classkind*/, self) /*PClasskind::parent=*/;
1626 }
1627 ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ = variable4 /*n_id*/;
1628 variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_id*/ == NIT_NULL /*null*/) || (( variable4 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_id*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
1629 if (UNTAG_Bool(variable8)) { /*if*/
1630 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_id*/, self) /*TClassid::parent=*/;
1631 }
1632 variable8 = NEW_list___List___init(); /*new List[PFormaldef]*/
1633 ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/ = variable8;
1634 variable8 = ((array___AbstractArray___iterator_t)CALL( variable5 /*n_formaldefs*/,COLOR_abstract_collection___Collection___iterator))( variable5 /*n_formaldefs*/) /*Array::iterator*/;
1635 while (true) { /*for*/
1636 variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
1637 if (!UNTAG_Bool(variable9)) break; /*for*/
1638 variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
1639 variable10 = TAG_Bool(( variable9 /*n*/==NIT_NULL) || VAL_ISA( variable9 /*n*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
1640 if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___init_aclassdef, 778); nit_exit(1);}
1641 variable10 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1642 ((abstract_collection___IndexedCollection___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable9 /*n*/) /*List::add*/;
1643 ((parser_prod___PNode___parent__eq_t)CALL( variable9 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable9 /*n*/, self) /*PFormaldef::parent=*/;
1644 continue_79: while(0);
1645 ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
1646 }
1647 break_79: while(0);
1648 variable8 = NEW_list___List___init(); /*new List[PSuperclass]*/
1649 ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/ = variable8;
1650 variable8 = ((array___AbstractArray___iterator_t)CALL( variable6 /*n_superclasses*/,COLOR_abstract_collection___Collection___iterator))( variable6 /*n_superclasses*/) /*Array::iterator*/;
1651 while (true) { /*for*/
1652 variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
1653 if (!UNTAG_Bool(variable9)) break; /*for*/
1654 variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
1655 variable10 = TAG_Bool(( variable9 /*n*/==NIT_NULL) || VAL_ISA( variable9 /*n*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
1656 if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___init_aclassdef, 784); nit_exit(1);}
1657 variable10 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1658 ((abstract_collection___IndexedCollection___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable9 /*n*/) /*List::add*/;
1659 ((parser_prod___PNode___parent__eq_t)CALL( variable9 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable9 /*n*/, self) /*PSuperclass::parent=*/;
1660 continue_80: while(0);
1661 ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
1662 }
1663 break_80: while(0);
1664 variable8 = NEW_list___List___init(); /*new List[PPropdef]*/
1665 ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/ = variable8;
1666 variable8 = ((array___AbstractArray___iterator_t)CALL( variable7 /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable7 /*n_propdefs*/) /*Array::iterator*/;
1667 while (true) { /*for*/
1668 variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
1669 if (!UNTAG_Bool(variable9)) break; /*for*/
1670 variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
1671 variable10 = TAG_Bool(( variable9 /*n*/==NIT_NULL) || VAL_ISA( variable9 /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
1672 if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___init_aclassdef, 790); nit_exit(1);}
1673 variable10 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
1674 ((abstract_collection___IndexedCollection___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable9 /*n*/) /*List::add*/;
1675 ((parser_prod___PNode___parent__eq_t)CALL( variable9 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable9 /*n*/, self) /*PPropdef::parent=*/;
1676 continue_81: while(0);
1677 ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
1678 }
1679 break_81: while(0);
1680 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i] = 1;
1681 tracehead = trace.prev;
1682 return;
1683 }
1684 void parser_prod___AClassdef___replace_child(val_t self, val_t param0, val_t param1) {
1685 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___replace_child, 796};
1686 val_t variable0;
1687 val_t variable1;
1688 val_t variable2;
1689 val_t variable3;
1690 val_t variable4;
1691 trace.prev = tracehead; tracehead = &trace;
1692 variable0 = param0;
1693 variable1 = param1;
1694 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1695 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 798); nit_exit(1);}
1696 variable2 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
1697 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
1698 if (UNTAG_Bool(variable2)) { /*if*/
1699 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1700 if (UNTAG_Bool(variable2)) { /*if*/
1701 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1702 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
1703 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 802); nit_exit(1);}
1704 ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ = variable1 /*new_child*/;
1705 } else { /*if*/
1706 ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ = NIT_NULL /*null*/;
1707 }
1708 goto return_label82;
1709 }
1710 variable2 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
1711 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
1712 if (UNTAG_Bool(variable2)) { /*if*/
1713 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1714 if (UNTAG_Bool(variable2)) { /*if*/
1715 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1716 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
1717 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 812); nit_exit(1);}
1718 ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ = variable1 /*new_child*/;
1719 } else { /*if*/
1720 ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ = NIT_NULL /*null*/;
1721 }
1722 goto return_label82;
1723 }
1724 variable2 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
1725 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
1726 if (UNTAG_Bool(variable2)) { /*if*/
1727 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1728 if (UNTAG_Bool(variable2)) { /*if*/
1729 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1730 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
1731 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 822); nit_exit(1);}
1732 ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ = variable1 /*new_child*/;
1733 } else { /*if*/
1734 ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ = NIT_NULL /*null*/;
1735 }
1736 goto return_label82;
1737 }
1738 variable2 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
1739 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PClasskind::==*/)))));
1740 if (UNTAG_Bool(variable2)) { /*if*/
1741 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1742 if (UNTAG_Bool(variable2)) { /*if*/
1743 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1744 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
1745 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 832); nit_exit(1);}
1746 ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ = variable1 /*new_child*/;
1747 } else { /*if*/
1748 ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ = NIT_NULL /*null*/;
1749 }
1750 goto return_label82;
1751 }
1752 variable2 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
1753 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TClassid::==*/)))));
1754 if (UNTAG_Bool(variable2)) { /*if*/
1755 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1756 if (UNTAG_Bool(variable2)) { /*if*/
1757 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
1758 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
1759 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 842); nit_exit(1);}
1760 ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ = variable1 /*new_child*/;
1761 } else { /*if*/
1762 ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ = NIT_NULL /*null*/;
1763 }
1764 goto return_label82;
1765 }
1766 variable2 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1767 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
1768 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
1769 variable2 = variable3;
1770 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
1771 while (true) { /*for*/
1772 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
1773 if (!UNTAG_Bool(variable3)) break; /*for*/
1774 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
1775 variable4 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1776 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
1777 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PFormaldef::==*/)))));
1778 if (UNTAG_Bool(variable4)) { /*if*/
1779 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1780 if (UNTAG_Bool(variable4)) { /*if*/
1781 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
1782 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 852); nit_exit(1);}
1783 variable4 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1784 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
1785 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PFormaldef::parent=*/;
1786 } else { /*if*/
1787 variable4 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1788 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
1789 }
1790 goto return_label82;
1791 }
1792 continue_83: while(0);
1793 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
1794 }
1795 break_83: while(0);
1796 variable2 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1797 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
1798 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
1799 variable2 = variable3;
1800 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
1801 while (true) { /*for*/
1802 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
1803 if (!UNTAG_Bool(variable3)) break; /*for*/
1804 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
1805 variable4 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1806 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
1807 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PSuperclass::==*/)))));
1808 if (UNTAG_Bool(variable4)) { /*if*/
1809 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1810 if (UNTAG_Bool(variable4)) { /*if*/
1811 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
1812 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 864); nit_exit(1);}
1813 variable4 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1814 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
1815 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PSuperclass::parent=*/;
1816 } else { /*if*/
1817 variable4 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1818 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
1819 }
1820 goto return_label82;
1821 }
1822 continue_84: while(0);
1823 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
1824 }
1825 break_84: while(0);
1826 variable2 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
1827 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
1828 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
1829 variable2 = variable3;
1830 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
1831 while (true) { /*for*/
1832 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
1833 if (!UNTAG_Bool(variable3)) break; /*for*/
1834 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
1835 variable4 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
1836 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
1837 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PPropdef::==*/)))));
1838 if (UNTAG_Bool(variable4)) { /*if*/
1839 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
1840 if (UNTAG_Bool(variable4)) { /*if*/
1841 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
1842 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AClassdef___replace_child, 876); nit_exit(1);}
1843 variable4 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
1844 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
1845 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PPropdef::parent=*/;
1846 } else { /*if*/
1847 variable4 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
1848 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
1849 }
1850 goto return_label82;
1851 }
1852 continue_85: while(0);
1853 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
1854 }
1855 break_85: while(0);
1856 return_label82: while(false);
1857 tracehead = trace.prev;
1858 return;
1859 }
1860 void parser_prod___AClassdef___visit_all(val_t self, val_t param0) {
1861 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___visit_all, 887};
1862 val_t variable0;
1863 val_t variable1;
1864 val_t variable2;
1865 trace.prev = tracehead; tracehead = &trace;
1866 variable0 = param0;
1867 variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
1868 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
1869 if (UNTAG_Bool(variable1)) { /*if*/
1870 variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
1871 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1872 }
1873 variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
1874 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
1875 if (UNTAG_Bool(variable1)) { /*if*/
1876 variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
1877 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1878 }
1879 variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
1880 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
1881 if (UNTAG_Bool(variable1)) { /*if*/
1882 variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
1883 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1884 }
1885 variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
1886 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PClasskind::==*/)))))));
1887 if (UNTAG_Bool(variable1)) { /*if*/
1888 variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
1889 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1890 }
1891 variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
1892 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
1893 if (UNTAG_Bool(variable1)) { /*if*/
1894 variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
1895 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1896 }
1897 variable1 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1898 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
1899 while (true) { /*for*/
1900 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
1901 if (!UNTAG_Bool(variable2)) break; /*for*/
1902 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
1903 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
1904 continue_87: while(0);
1905 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
1906 }
1907 break_87: while(0);
1908 variable1 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1909 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
1910 while (true) { /*for*/
1911 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
1912 if (!UNTAG_Bool(variable2)) break; /*for*/
1913 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
1914 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
1915 continue_88: while(0);
1916 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
1917 }
1918 break_88: while(0);
1919 variable1 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
1920 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
1921 while (true) { /*for*/
1922 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
1923 if (!UNTAG_Bool(variable2)) break; /*for*/
1924 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
1925 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
1926 continue_89: while(0);
1927 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
1928 }
1929 break_89: while(0);
1930 tracehead = trace.prev;
1931 return;
1932 }
1933 void parser_prod___AClassdef___visit_all_reverse(val_t self, val_t param0) {
1934 struct trace_t trace = {NULL, LOCATE_parser_prod___AClassdef___visit_all_reverse, 915};
1935 val_t variable0;
1936 val_t variable1;
1937 val_t variable2;
1938 trace.prev = tracehead; tracehead = &trace;
1939 variable0 = param0;
1940 variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
1941 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
1942 if (UNTAG_Bool(variable1)) { /*if*/
1943 variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
1944 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1945 }
1946 variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
1947 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
1948 if (UNTAG_Bool(variable1)) { /*if*/
1949 variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
1950 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1951 }
1952 variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
1953 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
1954 if (UNTAG_Bool(variable1)) { /*if*/
1955 variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
1956 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1957 }
1958 variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
1959 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PClasskind::==*/)))))));
1960 if (UNTAG_Bool(variable1)) { /*if*/
1961 variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
1962 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1963 }
1964 variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
1965 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
1966 if (UNTAG_Bool(variable1)) { /*if*/
1967 variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
1968 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
1969 }
1970 variable2 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1971 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
1972 variable1 = variable2;
1973 while (true) { /*while*/
1974 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
1975 if (!UNTAG_Bool(variable2)) break; /* while*/
1976 variable2 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
1977 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
1978 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
1979 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
1980 variable1 = variable2 /*i=*/;
1981 continue_91: while(0);
1982 }
1983 break_91: while(0);
1984 variable2 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1985 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
1986 variable1 = variable2;
1987 while (true) { /*while*/
1988 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
1989 if (!UNTAG_Bool(variable2)) break; /* while*/
1990 variable2 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
1991 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
1992 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
1993 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
1994 variable1 = variable2 /*i=*/;
1995 continue_92: while(0);
1996 }
1997 break_92: while(0);
1998 variable2 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
1999 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
2000 variable1 = variable2;
2001 while (true) { /*while*/
2002 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
2003 if (!UNTAG_Bool(variable2)) break; /* while*/
2004 variable2 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
2005 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
2006 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
2007 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
2008 variable1 = variable2 /*i=*/;
2009 continue_93: while(0);
2010 }
2011 break_93: while(0);
2012 tracehead = trace.prev;
2013 return;
2014 }
2015 void parser_prod___ATopClassdef___empty_init(val_t self, int* init_table) {
2016 struct trace_t trace = {NULL, LOCATE_parser_prod___ATopClassdef___empty_init, 957};
2017 trace.prev = tracehead; tracehead = &trace;
2018 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
2019 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
2020 tracehead = trace.prev;
2021 return;
2022 }
2023 void parser_prod___ATopClassdef___init_atopclassdef(val_t self, val_t param0, int* init_table) {
2024 struct trace_t trace = {NULL, LOCATE_parser_prod___ATopClassdef___init_atopclassdef, 959};
2025 val_t variable0;
2026 val_t variable1;
2027 val_t variable2;
2028 val_t variable3;
2029 trace.prev = tracehead; tracehead = &trace;
2030 variable0 = param0;
2031 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
2032 variable1 = NEW_list___List___init(); /*new List[PPropdef]*/
2033 ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/ = variable1;
2034 variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_propdefs*/) /*Array::iterator*/;
2035 while (true) { /*for*/
2036 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
2037 if (!UNTAG_Bool(variable2)) break; /*for*/
2038 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
2039 variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2040 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATopClassdef___init_atopclassdef, 965); nit_exit(1);}
2041 variable3 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2042 ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable2 /*n*/) /*List::add*/;
2043 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/, self) /*PPropdef::parent=*/;
2044 continue_96: while(0);
2045 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
2046 }
2047 break_96: while(0);
2048 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
2049 tracehead = trace.prev;
2050 return;
2051 }
2052 void parser_prod___ATopClassdef___replace_child(val_t self, val_t param0, val_t param1) {
2053 struct trace_t trace = {NULL, LOCATE_parser_prod___ATopClassdef___replace_child, 971};
2054 val_t variable0;
2055 val_t variable1;
2056 val_t variable2;
2057 val_t variable3;
2058 val_t variable4;
2059 trace.prev = tracehead; tracehead = &trace;
2060 variable0 = param0;
2061 variable1 = param1;
2062 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2063 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATopClassdef___replace_child, 973); nit_exit(1);}
2064 variable2 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2065 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
2066 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
2067 variable2 = variable3;
2068 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
2069 while (true) { /*for*/
2070 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
2071 if (!UNTAG_Bool(variable3)) break; /*for*/
2072 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
2073 variable4 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2074 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
2075 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PPropdef::==*/)))));
2076 if (UNTAG_Bool(variable4)) { /*if*/
2077 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2078 if (UNTAG_Bool(variable4)) { /*if*/
2079 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2080 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATopClassdef___replace_child, 977); nit_exit(1);}
2081 variable4 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2082 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
2083 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PPropdef::parent=*/;
2084 } else { /*if*/
2085 variable4 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2086 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
2087 }
2088 goto return_label97;
2089 }
2090 continue_98: while(0);
2091 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
2092 }
2093 break_98: while(0);
2094 return_label97: while(false);
2095 tracehead = trace.prev;
2096 return;
2097 }
2098 void parser_prod___ATopClassdef___visit_all(val_t self, val_t param0) {
2099 struct trace_t trace = {NULL, LOCATE_parser_prod___ATopClassdef___visit_all, 988};
2100 val_t variable0;
2101 val_t variable1;
2102 val_t variable2;
2103 trace.prev = tracehead; tracehead = &trace;
2104 variable0 = param0;
2105 variable1 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2106 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
2107 while (true) { /*for*/
2108 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
2109 if (!UNTAG_Bool(variable2)) break; /*for*/
2110 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
2111 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
2112 continue_100: while(0);
2113 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
2114 }
2115 break_100: while(0);
2116 tracehead = trace.prev;
2117 return;
2118 }
2119 void parser_prod___ATopClassdef___visit_all_reverse(val_t self, val_t param0) {
2120 struct trace_t trace = {NULL, LOCATE_parser_prod___ATopClassdef___visit_all_reverse, 995};
2121 val_t variable0;
2122 val_t variable1;
2123 val_t variable2;
2124 trace.prev = tracehead; tracehead = &trace;
2125 variable0 = param0;
2126 variable2 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2127 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
2128 variable1 = variable2;
2129 while (true) { /*while*/
2130 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
2131 if (!UNTAG_Bool(variable2)) break; /* while*/
2132 variable2 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
2133 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
2134 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
2135 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
2136 variable1 = variable2 /*i=*/;
2137 continue_102: while(0);
2138 }
2139 break_102: while(0);
2140 tracehead = trace.prev;
2141 return;
2142 }
2143 void parser_prod___AMainClassdef___empty_init(val_t self, int* init_table) {
2144 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainClassdef___empty_init, 1008};
2145 trace.prev = tracehead; tracehead = &trace;
2146 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
2147 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
2148 tracehead = trace.prev;
2149 return;
2150 }
2151 void parser_prod___AMainClassdef___init_amainclassdef(val_t self, val_t param0, int* init_table) {
2152 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainClassdef___init_amainclassdef, 1010};
2153 val_t variable0;
2154 val_t variable1;
2155 val_t variable2;
2156 val_t variable3;
2157 trace.prev = tracehead; tracehead = &trace;
2158 variable0 = param0;
2159 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
2160 variable1 = NEW_list___List___init(); /*new List[PPropdef]*/
2161 ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/ = variable1;
2162 variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_propdefs*/) /*Array::iterator*/;
2163 while (true) { /*for*/
2164 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
2165 if (!UNTAG_Bool(variable2)) break; /*for*/
2166 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
2167 variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2168 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMainClassdef___init_amainclassdef, 1016); nit_exit(1);}
2169 variable3 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2170 ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable2 /*n*/) /*List::add*/;
2171 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/, self) /*PPropdef::parent=*/;
2172 continue_105: while(0);
2173 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
2174 }
2175 break_105: while(0);
2176 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
2177 tracehead = trace.prev;
2178 return;
2179 }
2180 void parser_prod___AMainClassdef___replace_child(val_t self, val_t param0, val_t param1) {
2181 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainClassdef___replace_child, 1022};
2182 val_t variable0;
2183 val_t variable1;
2184 val_t variable2;
2185 val_t variable3;
2186 val_t variable4;
2187 trace.prev = tracehead; tracehead = &trace;
2188 variable0 = param0;
2189 variable1 = param1;
2190 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2191 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMainClassdef___replace_child, 1024); nit_exit(1);}
2192 variable2 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2193 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
2194 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
2195 variable2 = variable3;
2196 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
2197 while (true) { /*for*/
2198 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
2199 if (!UNTAG_Bool(variable3)) break; /*for*/
2200 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
2201 variable4 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2202 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
2203 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PPropdef::==*/)))));
2204 if (UNTAG_Bool(variable4)) { /*if*/
2205 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2206 if (UNTAG_Bool(variable4)) { /*if*/
2207 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
2208 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMainClassdef___replace_child, 1028); nit_exit(1);}
2209 variable4 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2210 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
2211 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PPropdef::parent=*/;
2212 } else { /*if*/
2213 variable4 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2214 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
2215 }
2216 goto return_label106;
2217 }
2218 continue_107: while(0);
2219 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
2220 }
2221 break_107: while(0);
2222 return_label106: while(false);
2223 tracehead = trace.prev;
2224 return;
2225 }
2226 void parser_prod___AMainClassdef___visit_all(val_t self, val_t param0) {
2227 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainClassdef___visit_all, 1039};
2228 val_t variable0;
2229 val_t variable1;
2230 val_t variable2;
2231 trace.prev = tracehead; tracehead = &trace;
2232 variable0 = param0;
2233 variable1 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2234 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
2235 while (true) { /*for*/
2236 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
2237 if (!UNTAG_Bool(variable2)) break; /*for*/
2238 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
2239 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
2240 continue_109: while(0);
2241 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
2242 }
2243 break_109: while(0);
2244 tracehead = trace.prev;
2245 return;
2246 }
2247 void parser_prod___AMainClassdef___visit_all_reverse(val_t self, val_t param0) {
2248 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainClassdef___visit_all_reverse, 1046};
2249 val_t variable0;
2250 val_t variable1;
2251 val_t variable2;
2252 trace.prev = tracehead; tracehead = &trace;
2253 variable0 = param0;
2254 variable2 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2255 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
2256 variable1 = variable2;
2257 while (true) { /*while*/
2258 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
2259 if (!UNTAG_Bool(variable2)) break; /* while*/
2260 variable2 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
2261 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
2262 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
2263 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
2264 variable1 = variable2 /*i=*/;
2265 continue_111: while(0);
2266 }
2267 break_111: while(0);
2268 tracehead = trace.prev;
2269 return;
2270 }
2271 void parser_prod___AConcreteClasskind___n_kwclass__eq(val_t self, val_t param0) {
2272 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteClasskind___n_kwclass__eq, 1058};
2273 val_t variable0;
2274 val_t variable1;
2275 trace.prev = tracehead; tracehead = &trace;
2276 variable0 = param0;
2277 ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ = variable0 /*n*/;
2278 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2279 if (UNTAG_Bool(variable1)) { /*if*/
2280 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwclass::parent=*/;
2281 }
2282 tracehead = trace.prev;
2283 return;
2284 }
2285 void parser_prod___AConcreteClasskind___empty_init(val_t self, int* init_table) {
2286 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteClasskind___empty_init, 1066};
2287 trace.prev = tracehead; tracehead = &trace;
2288 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
2289 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
2290 tracehead = trace.prev;
2291 return;
2292 }
2293 void parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t self, val_t param0, int* init_table) {
2294 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteClasskind___init_aconcreteclasskind, 1068};
2295 val_t variable0;
2296 val_t variable1;
2297 trace.prev = tracehead; tracehead = &trace;
2298 variable0 = param0;
2299 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
2300 ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ = variable0 /*n_kwclass*/;
2301 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwclass*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwclass*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwclass*/, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2302 if (UNTAG_Bool(variable1)) { /*if*/
2303 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwclass*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwclass*/, self) /*TKwclass::parent=*/;
2304 }
2305 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
2306 tracehead = trace.prev;
2307 return;
2308 }
2309 void parser_prod___AConcreteClasskind___replace_child(val_t self, val_t param0, val_t param1) {
2310 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteClasskind___replace_child, 1078};
2311 val_t variable0;
2312 val_t variable1;
2313 val_t variable2;
2314 trace.prev = tracehead; tracehead = &trace;
2315 variable0 = param0;
2316 variable1 = param1;
2317 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2318 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteClasskind___replace_child, 1080); nit_exit(1);}
2319 variable2 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
2320 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwclass::==*/)))));
2321 if (UNTAG_Bool(variable2)) { /*if*/
2322 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2323 if (UNTAG_Bool(variable2)) { /*if*/
2324 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2325 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
2326 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteClasskind___replace_child, 1084); nit_exit(1);}
2327 ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ = variable1 /*new_child*/;
2328 } else { /*if*/
2329 ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ = NIT_NULL /*null*/;
2330 }
2331 goto return_label115;
2332 }
2333 return_label115: while(false);
2334 tracehead = trace.prev;
2335 return;
2336 }
2337 void parser_prod___AConcreteClasskind___visit_all(val_t self, val_t param0) {
2338 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteClasskind___visit_all, 1093};
2339 val_t variable0;
2340 val_t variable1;
2341 trace.prev = tracehead; tracehead = &trace;
2342 variable0 = param0;
2343 variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
2344 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2345 if (UNTAG_Bool(variable1)) { /*if*/
2346 variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
2347 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2348 }
2349 tracehead = trace.prev;
2350 return;
2351 }
2352 void parser_prod___AConcreteClasskind___visit_all_reverse(val_t self, val_t param0) {
2353 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteClasskind___visit_all_reverse, 1100};
2354 val_t variable0;
2355 val_t variable1;
2356 trace.prev = tracehead; tracehead = &trace;
2357 variable0 = param0;
2358 variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
2359 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2360 if (UNTAG_Bool(variable1)) { /*if*/
2361 variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
2362 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2363 }
2364 tracehead = trace.prev;
2365 return;
2366 }
2367 void parser_prod___AAbstractClasskind___n_kwabstract__eq(val_t self, val_t param0) {
2368 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbstractClasskind___n_kwabstract__eq, 1108};
2369 val_t variable0;
2370 val_t variable1;
2371 trace.prev = tracehead; tracehead = &trace;
2372 variable0 = param0;
2373 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ = variable0 /*n*/;
2374 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
2375 if (UNTAG_Bool(variable1)) { /*if*/
2376 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwabstract::parent=*/;
2377 }
2378 tracehead = trace.prev;
2379 return;
2380 }
2381 void parser_prod___AAbstractClasskind___n_kwclass__eq(val_t self, val_t param0) {
2382 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbstractClasskind___n_kwclass__eq, 1115};
2383 val_t variable0;
2384 val_t variable1;
2385 trace.prev = tracehead; tracehead = &trace;
2386 variable0 = param0;
2387 ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ = variable0 /*n*/;
2388 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2389 if (UNTAG_Bool(variable1)) { /*if*/
2390 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwclass::parent=*/;
2391 }
2392 tracehead = trace.prev;
2393 return;
2394 }
2395 void parser_prod___AAbstractClasskind___empty_init(val_t self, int* init_table) {
2396 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbstractClasskind___empty_init, 1123};
2397 trace.prev = tracehead; tracehead = &trace;
2398 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
2399 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
2400 tracehead = trace.prev;
2401 return;
2402 }
2403 void parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t self, val_t param0, val_t param1, int* init_table) {
2404 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbstractClasskind___init_aabstractclasskind, 1125};
2405 val_t variable0;
2406 val_t variable1;
2407 val_t variable2;
2408 trace.prev = tracehead; tracehead = &trace;
2409 variable0 = param0;
2410 variable1 = param1;
2411 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
2412 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ = variable0 /*n_kwabstract*/;
2413 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwabstract*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwabstract*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabstract*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwabstract*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabstract*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwabstract*/, NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
2414 if (UNTAG_Bool(variable2)) { /*if*/
2415 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwabstract*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwabstract*/, self) /*TKwabstract::parent=*/;
2416 }
2417 ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ = variable1 /*n_kwclass*/;
2418 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwclass*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwclass*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwclass*/, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2419 if (UNTAG_Bool(variable2)) { /*if*/
2420 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwclass*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwclass*/, self) /*TKwclass::parent=*/;
2421 }
2422 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
2423 tracehead = trace.prev;
2424 return;
2425 }
2426 void parser_prod___AAbstractClasskind___replace_child(val_t self, val_t param0, val_t param1) {
2427 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbstractClasskind___replace_child, 1140};
2428 val_t variable0;
2429 val_t variable1;
2430 val_t variable2;
2431 trace.prev = tracehead; tracehead = &trace;
2432 variable0 = param0;
2433 variable1 = param1;
2434 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2435 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAbstractClasskind___replace_child, 1142); nit_exit(1);}
2436 variable2 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
2437 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwabstract::==*/)))));
2438 if (UNTAG_Bool(variable2)) { /*if*/
2439 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2440 if (UNTAG_Bool(variable2)) { /*if*/
2441 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2442 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
2443 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAbstractClasskind___replace_child, 1146); nit_exit(1);}
2444 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ = variable1 /*new_child*/;
2445 } else { /*if*/
2446 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ = NIT_NULL /*null*/;
2447 }
2448 goto return_label122;
2449 }
2450 variable2 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
2451 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwclass::==*/)))));
2452 if (UNTAG_Bool(variable2)) { /*if*/
2453 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2454 if (UNTAG_Bool(variable2)) { /*if*/
2455 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2456 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
2457 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAbstractClasskind___replace_child, 1156); nit_exit(1);}
2458 ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ = variable1 /*new_child*/;
2459 } else { /*if*/
2460 ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ = NIT_NULL /*null*/;
2461 }
2462 goto return_label122;
2463 }
2464 return_label122: while(false);
2465 tracehead = trace.prev;
2466 return;
2467 }
2468 void parser_prod___AAbstractClasskind___visit_all(val_t self, val_t param0) {
2469 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbstractClasskind___visit_all, 1165};
2470 val_t variable0;
2471 val_t variable1;
2472 trace.prev = tracehead; tracehead = &trace;
2473 variable0 = param0;
2474 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
2475 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
2476 if (UNTAG_Bool(variable1)) { /*if*/
2477 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
2478 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2479 }
2480 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
2481 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2482 if (UNTAG_Bool(variable1)) { /*if*/
2483 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
2484 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2485 }
2486 tracehead = trace.prev;
2487 return;
2488 }
2489 void parser_prod___AAbstractClasskind___visit_all_reverse(val_t self, val_t param0) {
2490 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbstractClasskind___visit_all_reverse, 1175};
2491 val_t variable0;
2492 val_t variable1;
2493 trace.prev = tracehead; tracehead = &trace;
2494 variable0 = param0;
2495 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
2496 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
2497 if (UNTAG_Bool(variable1)) { /*if*/
2498 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
2499 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2500 }
2501 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
2502 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwclass::==*/)))))));
2503 if (UNTAG_Bool(variable1)) { /*if*/
2504 variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
2505 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2506 }
2507 tracehead = trace.prev;
2508 return;
2509 }
2510 void parser_prod___AInterfaceClasskind___n_kwinterface__eq(val_t self, val_t param0) {
2511 struct trace_t trace = {NULL, LOCATE_parser_prod___AInterfaceClasskind___n_kwinterface__eq, 1186};
2512 val_t variable0;
2513 val_t variable1;
2514 trace.prev = tracehead; tracehead = &trace;
2515 variable0 = param0;
2516 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ = variable0 /*n*/;
2517 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
2518 if (UNTAG_Bool(variable1)) { /*if*/
2519 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwinterface::parent=*/;
2520 }
2521 tracehead = trace.prev;
2522 return;
2523 }
2524 void parser_prod___AInterfaceClasskind___empty_init(val_t self, int* init_table) {
2525 struct trace_t trace = {NULL, LOCATE_parser_prod___AInterfaceClasskind___empty_init, 1194};
2526 trace.prev = tracehead; tracehead = &trace;
2527 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
2528 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
2529 tracehead = trace.prev;
2530 return;
2531 }
2532 void parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t self, val_t param0, int* init_table) {
2533 struct trace_t trace = {NULL, LOCATE_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind, 1196};
2534 val_t variable0;
2535 val_t variable1;
2536 trace.prev = tracehead; tracehead = &trace;
2537 variable0 = param0;
2538 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
2539 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ = variable0 /*n_kwinterface*/;
2540 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwinterface*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwinterface*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwinterface*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwinterface*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwinterface*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwinterface*/, NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
2541 if (UNTAG_Bool(variable1)) { /*if*/
2542 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwinterface*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwinterface*/, self) /*TKwinterface::parent=*/;
2543 }
2544 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
2545 tracehead = trace.prev;
2546 return;
2547 }
2548 void parser_prod___AInterfaceClasskind___replace_child(val_t self, val_t param0, val_t param1) {
2549 struct trace_t trace = {NULL, LOCATE_parser_prod___AInterfaceClasskind___replace_child, 1206};
2550 val_t variable0;
2551 val_t variable1;
2552 val_t variable2;
2553 trace.prev = tracehead; tracehead = &trace;
2554 variable0 = param0;
2555 variable1 = param1;
2556 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2557 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInterfaceClasskind___replace_child, 1208); nit_exit(1);}
2558 variable2 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
2559 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwinterface::==*/)))));
2560 if (UNTAG_Bool(variable2)) { /*if*/
2561 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2562 if (UNTAG_Bool(variable2)) { /*if*/
2563 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2564 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
2565 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInterfaceClasskind___replace_child, 1212); nit_exit(1);}
2566 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ = variable1 /*new_child*/;
2567 } else { /*if*/
2568 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ = NIT_NULL /*null*/;
2569 }
2570 goto return_label128;
2571 }
2572 return_label128: while(false);
2573 tracehead = trace.prev;
2574 return;
2575 }
2576 void parser_prod___AInterfaceClasskind___visit_all(val_t self, val_t param0) {
2577 struct trace_t trace = {NULL, LOCATE_parser_prod___AInterfaceClasskind___visit_all, 1221};
2578 val_t variable0;
2579 val_t variable1;
2580 trace.prev = tracehead; tracehead = &trace;
2581 variable0 = param0;
2582 variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
2583 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
2584 if (UNTAG_Bool(variable1)) { /*if*/
2585 variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
2586 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2587 }
2588 tracehead = trace.prev;
2589 return;
2590 }
2591 void parser_prod___AInterfaceClasskind___visit_all_reverse(val_t self, val_t param0) {
2592 struct trace_t trace = {NULL, LOCATE_parser_prod___AInterfaceClasskind___visit_all_reverse, 1228};
2593 val_t variable0;
2594 val_t variable1;
2595 trace.prev = tracehead; tracehead = &trace;
2596 variable0 = param0;
2597 variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
2598 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
2599 if (UNTAG_Bool(variable1)) { /*if*/
2600 variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
2601 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2602 }
2603 tracehead = trace.prev;
2604 return;
2605 }
2606 void parser_prod___AUniversalClasskind___n_kwuniversal__eq(val_t self, val_t param0) {
2607 struct trace_t trace = {NULL, LOCATE_parser_prod___AUniversalClasskind___n_kwuniversal__eq, 1236};
2608 val_t variable0;
2609 val_t variable1;
2610 trace.prev = tracehead; tracehead = &trace;
2611 variable0 = param0;
2612 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ = variable0 /*n*/;
2613 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
2614 if (UNTAG_Bool(variable1)) { /*if*/
2615 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwuniversal::parent=*/;
2616 }
2617 tracehead = trace.prev;
2618 return;
2619 }
2620 void parser_prod___AUniversalClasskind___empty_init(val_t self, int* init_table) {
2621 struct trace_t trace = {NULL, LOCATE_parser_prod___AUniversalClasskind___empty_init, 1244};
2622 trace.prev = tracehead; tracehead = &trace;
2623 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
2624 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
2625 tracehead = trace.prev;
2626 return;
2627 }
2628 void parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t self, val_t param0, int* init_table) {
2629 struct trace_t trace = {NULL, LOCATE_parser_prod___AUniversalClasskind___init_auniversalclasskind, 1246};
2630 val_t variable0;
2631 val_t variable1;
2632 trace.prev = tracehead; tracehead = &trace;
2633 variable0 = param0;
2634 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
2635 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ = variable0 /*n_kwuniversal*/;
2636 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwuniversal*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwuniversal*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwuniversal*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwuniversal*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwuniversal*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwuniversal*/, NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
2637 if (UNTAG_Bool(variable1)) { /*if*/
2638 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwuniversal*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwuniversal*/, self) /*TKwuniversal::parent=*/;
2639 }
2640 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
2641 tracehead = trace.prev;
2642 return;
2643 }
2644 void parser_prod___AUniversalClasskind___replace_child(val_t self, val_t param0, val_t param1) {
2645 struct trace_t trace = {NULL, LOCATE_parser_prod___AUniversalClasskind___replace_child, 1256};
2646 val_t variable0;
2647 val_t variable1;
2648 val_t variable2;
2649 trace.prev = tracehead; tracehead = &trace;
2650 variable0 = param0;
2651 variable1 = param1;
2652 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2653 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AUniversalClasskind___replace_child, 1258); nit_exit(1);}
2654 variable2 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
2655 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwuniversal::==*/)))));
2656 if (UNTAG_Bool(variable2)) { /*if*/
2657 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2658 if (UNTAG_Bool(variable2)) { /*if*/
2659 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2660 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwuniversal, ID_TKwuniversal)) /*cast TKwuniversal*/;
2661 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AUniversalClasskind___replace_child, 1262); nit_exit(1);}
2662 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ = variable1 /*new_child*/;
2663 } else { /*if*/
2664 ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ = NIT_NULL /*null*/;
2665 }
2666 goto return_label134;
2667 }
2668 return_label134: while(false);
2669 tracehead = trace.prev;
2670 return;
2671 }
2672 void parser_prod___AUniversalClasskind___visit_all(val_t self, val_t param0) {
2673 struct trace_t trace = {NULL, LOCATE_parser_prod___AUniversalClasskind___visit_all, 1271};
2674 val_t variable0;
2675 val_t variable1;
2676 trace.prev = tracehead; tracehead = &trace;
2677 variable0 = param0;
2678 variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
2679 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
2680 if (UNTAG_Bool(variable1)) { /*if*/
2681 variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
2682 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2683 }
2684 tracehead = trace.prev;
2685 return;
2686 }
2687 void parser_prod___AUniversalClasskind___visit_all_reverse(val_t self, val_t param0) {
2688 struct trace_t trace = {NULL, LOCATE_parser_prod___AUniversalClasskind___visit_all_reverse, 1278};
2689 val_t variable0;
2690 val_t variable1;
2691 trace.prev = tracehead; tracehead = &trace;
2692 variable0 = param0;
2693 variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
2694 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
2695 if (UNTAG_Bool(variable1)) { /*if*/
2696 variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
2697 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2698 }
2699 tracehead = trace.prev;
2700 return;
2701 }
2702 void parser_prod___AFormaldef___n_id__eq(val_t self, val_t param0) {
2703 struct trace_t trace = {NULL, LOCATE_parser_prod___AFormaldef___n_id__eq, 1286};
2704 val_t variable0;
2705 val_t variable1;
2706 trace.prev = tracehead; tracehead = &trace;
2707 variable0 = param0;
2708 ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ = variable0 /*n*/;
2709 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
2710 if (UNTAG_Bool(variable1)) { /*if*/
2711 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TClassid::parent=*/;
2712 }
2713 tracehead = trace.prev;
2714 return;
2715 }
2716 void parser_prod___AFormaldef___n_type__eq(val_t self, val_t param0) {
2717 struct trace_t trace = {NULL, LOCATE_parser_prod___AFormaldef___n_type__eq, 1293};
2718 val_t variable0;
2719 val_t variable1;
2720 trace.prev = tracehead; tracehead = &trace;
2721 variable0 = param0;
2722 ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ = variable0 /*n*/;
2723 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
2724 if (UNTAG_Bool(variable1)) { /*if*/
2725 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
2726 }
2727 tracehead = trace.prev;
2728 return;
2729 }
2730 void parser_prod___AFormaldef___empty_init(val_t self, int* init_table) {
2731 struct trace_t trace = {NULL, LOCATE_parser_prod___AFormaldef___empty_init, 1301};
2732 trace.prev = tracehead; tracehead = &trace;
2733 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i]) return;
2734 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
2735 tracehead = trace.prev;
2736 return;
2737 }
2738 void parser_prod___AFormaldef___init_aformaldef(val_t self, val_t param0, val_t param1, int* init_table) {
2739 struct trace_t trace = {NULL, LOCATE_parser_prod___AFormaldef___init_aformaldef, 1303};
2740 val_t variable0;
2741 val_t variable1;
2742 val_t variable2;
2743 trace.prev = tracehead; tracehead = &trace;
2744 variable0 = param0;
2745 variable1 = param1;
2746 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i]) return;
2747 ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ = variable0 /*n_id*/;
2748 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
2749 if (UNTAG_Bool(variable2)) { /*if*/
2750 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TClassid::parent=*/;
2751 }
2752 ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ = variable1 /*n_type*/;
2753 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ == NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
2754 if (UNTAG_Bool(variable2)) { /*if*/
2755 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/, self) /*PType::parent=*/;
2756 }
2757 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
2758 tracehead = trace.prev;
2759 return;
2760 }
2761 void parser_prod___AFormaldef___replace_child(val_t self, val_t param0, val_t param1) {
2762 struct trace_t trace = {NULL, LOCATE_parser_prod___AFormaldef___replace_child, 1318};
2763 val_t variable0;
2764 val_t variable1;
2765 val_t variable2;
2766 trace.prev = tracehead; tracehead = &trace;
2767 variable0 = param0;
2768 variable1 = param1;
2769 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2770 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AFormaldef___replace_child, 1320); nit_exit(1);}
2771 variable2 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
2772 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TClassid::==*/)))));
2773 if (UNTAG_Bool(variable2)) { /*if*/
2774 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2775 if (UNTAG_Bool(variable2)) { /*if*/
2776 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2777 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
2778 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AFormaldef___replace_child, 1324); nit_exit(1);}
2779 ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ = variable1 /*new_child*/;
2780 } else { /*if*/
2781 ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ = NIT_NULL /*null*/;
2782 }
2783 goto return_label141;
2784 }
2785 variable2 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
2786 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
2787 if (UNTAG_Bool(variable2)) { /*if*/
2788 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2789 if (UNTAG_Bool(variable2)) { /*if*/
2790 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2791 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
2792 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AFormaldef___replace_child, 1334); nit_exit(1);}
2793 ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ = variable1 /*new_child*/;
2794 } else { /*if*/
2795 ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ = NIT_NULL /*null*/;
2796 }
2797 goto return_label141;
2798 }
2799 return_label141: while(false);
2800 tracehead = trace.prev;
2801 return;
2802 }
2803 void parser_prod___AFormaldef___visit_all(val_t self, val_t param0) {
2804 struct trace_t trace = {NULL, LOCATE_parser_prod___AFormaldef___visit_all, 1343};
2805 val_t variable0;
2806 val_t variable1;
2807 trace.prev = tracehead; tracehead = &trace;
2808 variable0 = param0;
2809 variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
2810 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
2811 if (UNTAG_Bool(variable1)) { /*if*/
2812 variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
2813 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2814 }
2815 variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
2816 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
2817 if (UNTAG_Bool(variable1)) { /*if*/
2818 variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
2819 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2820 }
2821 tracehead = trace.prev;
2822 return;
2823 }
2824 void parser_prod___AFormaldef___visit_all_reverse(val_t self, val_t param0) {
2825 struct trace_t trace = {NULL, LOCATE_parser_prod___AFormaldef___visit_all_reverse, 1353};
2826 val_t variable0;
2827 val_t variable1;
2828 trace.prev = tracehead; tracehead = &trace;
2829 variable0 = param0;
2830 variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
2831 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
2832 if (UNTAG_Bool(variable1)) { /*if*/
2833 variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
2834 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2835 }
2836 variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
2837 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
2838 if (UNTAG_Bool(variable1)) { /*if*/
2839 variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
2840 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2841 }
2842 tracehead = trace.prev;
2843 return;
2844 }
2845 void parser_prod___ASuperclass___n_kwspecial__eq(val_t self, val_t param0) {
2846 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperclass___n_kwspecial__eq, 1364};
2847 val_t variable0;
2848 val_t variable1;
2849 trace.prev = tracehead; tracehead = &trace;
2850 variable0 = param0;
2851 ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ = variable0 /*n*/;
2852 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
2853 if (UNTAG_Bool(variable1)) { /*if*/
2854 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwspecial::parent=*/;
2855 }
2856 tracehead = trace.prev;
2857 return;
2858 }
2859 void parser_prod___ASuperclass___n_type__eq(val_t self, val_t param0) {
2860 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperclass___n_type__eq, 1371};
2861 val_t variable0;
2862 val_t variable1;
2863 trace.prev = tracehead; tracehead = &trace;
2864 variable0 = param0;
2865 ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ = variable0 /*n*/;
2866 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
2867 if (UNTAG_Bool(variable1)) { /*if*/
2868 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
2869 }
2870 tracehead = trace.prev;
2871 return;
2872 }
2873 void parser_prod___ASuperclass___empty_init(val_t self, int* init_table) {
2874 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperclass___empty_init, 1379};
2875 trace.prev = tracehead; tracehead = &trace;
2876 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i]) return;
2877 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
2878 tracehead = trace.prev;
2879 return;
2880 }
2881 void parser_prod___ASuperclass___init_asuperclass(val_t self, val_t param0, val_t param1, int* init_table) {
2882 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperclass___init_asuperclass, 1381};
2883 val_t variable0;
2884 val_t variable1;
2885 val_t variable2;
2886 trace.prev = tracehead; tracehead = &trace;
2887 variable0 = param0;
2888 variable1 = param1;
2889 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i]) return;
2890 ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ = variable0 /*n_kwspecial*/;
2891 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwspecial*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwspecial*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwspecial*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwspecial*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwspecial*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwspecial*/, NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
2892 if (UNTAG_Bool(variable2)) { /*if*/
2893 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwspecial*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwspecial*/, self) /*TKwspecial::parent=*/;
2894 }
2895 ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ = variable1 /*n_type*/;
2896 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ == NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
2897 if (UNTAG_Bool(variable2)) { /*if*/
2898 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/, self) /*PType::parent=*/;
2899 }
2900 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
2901 tracehead = trace.prev;
2902 return;
2903 }
2904 void parser_prod___ASuperclass___replace_child(val_t self, val_t param0, val_t param1) {
2905 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperclass___replace_child, 1396};
2906 val_t variable0;
2907 val_t variable1;
2908 val_t variable2;
2909 trace.prev = tracehead; tracehead = &trace;
2910 variable0 = param0;
2911 variable1 = param1;
2912 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2913 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperclass___replace_child, 1398); nit_exit(1);}
2914 variable2 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
2915 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwspecial::==*/)))));
2916 if (UNTAG_Bool(variable2)) { /*if*/
2917 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2918 if (UNTAG_Bool(variable2)) { /*if*/
2919 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2920 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
2921 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperclass___replace_child, 1402); nit_exit(1);}
2922 ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ = variable1 /*new_child*/;
2923 } else { /*if*/
2924 ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ = NIT_NULL /*null*/;
2925 }
2926 goto return_label148;
2927 }
2928 variable2 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
2929 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
2930 if (UNTAG_Bool(variable2)) { /*if*/
2931 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
2932 if (UNTAG_Bool(variable2)) { /*if*/
2933 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
2934 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
2935 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperclass___replace_child, 1412); nit_exit(1);}
2936 ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ = variable1 /*new_child*/;
2937 } else { /*if*/
2938 ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ = NIT_NULL /*null*/;
2939 }
2940 goto return_label148;
2941 }
2942 return_label148: while(false);
2943 tracehead = trace.prev;
2944 return;
2945 }
2946 void parser_prod___ASuperclass___visit_all(val_t self, val_t param0) {
2947 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperclass___visit_all, 1421};
2948 val_t variable0;
2949 val_t variable1;
2950 trace.prev = tracehead; tracehead = &trace;
2951 variable0 = param0;
2952 variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
2953 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
2954 if (UNTAG_Bool(variable1)) { /*if*/
2955 variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
2956 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2957 }
2958 variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
2959 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
2960 if (UNTAG_Bool(variable1)) { /*if*/
2961 variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
2962 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2963 }
2964 tracehead = trace.prev;
2965 return;
2966 }
2967 void parser_prod___ASuperclass___visit_all_reverse(val_t self, val_t param0) {
2968 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperclass___visit_all_reverse, 1431};
2969 val_t variable0;
2970 val_t variable1;
2971 trace.prev = tracehead; tracehead = &trace;
2972 variable0 = param0;
2973 variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
2974 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
2975 if (UNTAG_Bool(variable1)) { /*if*/
2976 variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
2977 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2978 }
2979 variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
2980 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
2981 if (UNTAG_Bool(variable1)) { /*if*/
2982 variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
2983 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
2984 }
2985 tracehead = trace.prev;
2986 return;
2987 }
2988 void parser_prod___AAttrPropdef___n_doc__eq(val_t self, val_t param0) {
2989 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_doc__eq, 1442};
2990 val_t variable0;
2991 val_t variable1;
2992 trace.prev = tracehead; tracehead = &trace;
2993 variable0 = param0;
2994 ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ = variable0 /*n*/;
2995 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
2996 if (UNTAG_Bool(variable1)) { /*if*/
2997 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
2998 }
2999 tracehead = trace.prev;
3000 return;
3001 }
3002 void parser_prod___AAttrPropdef___n_readable__eq(val_t self, val_t param0) {
3003 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_readable__eq, 1449};
3004 val_t variable0;
3005 val_t variable1;
3006 trace.prev = tracehead; tracehead = &trace;
3007 variable0 = param0;
3008 ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ = variable0 /*n*/;
3009 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PAble::==*/)))))));
3010 if (UNTAG_Bool(variable1)) { /*if*/
3011 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PAble::parent=*/;
3012 }
3013 tracehead = trace.prev;
3014 return;
3015 }
3016 void parser_prod___AAttrPropdef___n_writable__eq(val_t self, val_t param0) {
3017 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_writable__eq, 1456};
3018 val_t variable0;
3019 val_t variable1;
3020 trace.prev = tracehead; tracehead = &trace;
3021 variable0 = param0;
3022 ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ = variable0 /*n*/;
3023 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PAble::==*/)))))));
3024 if (UNTAG_Bool(variable1)) { /*if*/
3025 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PAble::parent=*/;
3026 }
3027 tracehead = trace.prev;
3028 return;
3029 }
3030 void parser_prod___AAttrPropdef___n_kwredef__eq(val_t self, val_t param0) {
3031 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_kwredef__eq, 1463};
3032 val_t variable0;
3033 val_t variable1;
3034 trace.prev = tracehead; tracehead = &trace;
3035 variable0 = param0;
3036 ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ = variable0 /*n*/;
3037 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3038 if (UNTAG_Bool(variable1)) { /*if*/
3039 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
3040 }
3041 tracehead = trace.prev;
3042 return;
3043 }
3044 void parser_prod___AAttrPropdef___n_visibility__eq(val_t self, val_t param0) {
3045 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_visibility__eq, 1470};
3046 val_t variable0;
3047 val_t variable1;
3048 trace.prev = tracehead; tracehead = &trace;
3049 variable0 = param0;
3050 ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ = variable0 /*n*/;
3051 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3052 if (UNTAG_Bool(variable1)) { /*if*/
3053 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
3054 }
3055 tracehead = trace.prev;
3056 return;
3057 }
3058 void parser_prod___AAttrPropdef___n_kwattr__eq(val_t self, val_t param0) {
3059 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_kwattr__eq, 1477};
3060 val_t variable0;
3061 val_t variable1;
3062 trace.prev = tracehead; tracehead = &trace;
3063 variable0 = param0;
3064 ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ = variable0 /*n*/;
3065 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwattr::==*/)))))));
3066 if (UNTAG_Bool(variable1)) { /*if*/
3067 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwattr::parent=*/;
3068 }
3069 tracehead = trace.prev;
3070 return;
3071 }
3072 void parser_prod___AAttrPropdef___n_id__eq(val_t self, val_t param0) {
3073 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_id__eq, 1484};
3074 val_t variable0;
3075 val_t variable1;
3076 trace.prev = tracehead; tracehead = &trace;
3077 variable0 = param0;
3078 ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ = variable0 /*n*/;
3079 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
3080 if (UNTAG_Bool(variable1)) { /*if*/
3081 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAttrid::parent=*/;
3082 }
3083 tracehead = trace.prev;
3084 return;
3085 }
3086 void parser_prod___AAttrPropdef___n_type__eq(val_t self, val_t param0) {
3087 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_type__eq, 1491};
3088 val_t variable0;
3089 val_t variable1;
3090 trace.prev = tracehead; tracehead = &trace;
3091 variable0 = param0;
3092 ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ = variable0 /*n*/;
3093 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
3094 if (UNTAG_Bool(variable1)) { /*if*/
3095 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
3096 }
3097 tracehead = trace.prev;
3098 return;
3099 }
3100 void parser_prod___AAttrPropdef___n_expr__eq(val_t self, val_t param0) {
3101 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___n_expr__eq, 1498};
3102 val_t variable0;
3103 val_t variable1;
3104 trace.prev = tracehead; tracehead = &trace;
3105 variable0 = param0;
3106 ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ = variable0 /*n*/;
3107 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
3108 if (UNTAG_Bool(variable1)) { /*if*/
3109 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
3110 }
3111 tracehead = trace.prev;
3112 return;
3113 }
3114 void parser_prod___AAttrPropdef___empty_init(val_t self, int* init_table) {
3115 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___empty_init, 1506};
3116 trace.prev = tracehead; tracehead = &trace;
3117 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
3118 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
3119 tracehead = trace.prev;
3120 return;
3121 }
3122 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) {
3123 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___init_aattrpropdef, 1508};
3124 val_t variable0;
3125 val_t variable1;
3126 val_t variable2;
3127 val_t variable3;
3128 val_t variable4;
3129 val_t variable5;
3130 val_t variable6;
3131 val_t variable7;
3132 val_t variable8;
3133 val_t variable9;
3134 trace.prev = tracehead; tracehead = &trace;
3135 variable0 = param0;
3136 variable1 = param1;
3137 variable2 = param2;
3138 variable3 = param3;
3139 variable4 = param4;
3140 variable5 = param5;
3141 variable6 = param6;
3142 variable7 = param7;
3143 variable8 = param8;
3144 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
3145 ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ = variable0 /*n_doc*/;
3146 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3147 if (UNTAG_Bool(variable9)) { /*if*/
3148 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
3149 }
3150 ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ = variable1 /*n_readable*/;
3151 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_readable*/ == NIT_NULL /*null*/) || (( variable1 /*n_readable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_readable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_readable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_readable*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_readable*/, NIT_NULL /*null*/) /*PAble::==*/)))))));
3152 if (UNTAG_Bool(variable9)) { /*if*/
3153 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_readable*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_readable*/, self) /*PAble::parent=*/;
3154 }
3155 ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ = variable2 /*n_writable*/;
3156 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_writable*/ == NIT_NULL /*null*/) || (( variable2 /*n_writable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_writable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_writable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_writable*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_writable*/, NIT_NULL /*null*/) /*PAble::==*/)))))));
3157 if (UNTAG_Bool(variable9)) { /*if*/
3158 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_writable*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_writable*/, self) /*PAble::parent=*/;
3159 }
3160 ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ = variable3 /*n_kwredef*/;
3161 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable3 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3162 if (UNTAG_Bool(variable9)) { /*if*/
3163 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwredef*/, self) /*TKwredef::parent=*/;
3164 }
3165 ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ = variable4 /*n_visibility*/;
3166 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable4 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3167 if (UNTAG_Bool(variable9)) { /*if*/
3168 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_visibility*/, self) /*PVisibility::parent=*/;
3169 }
3170 ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ = variable5 /*n_kwattr*/;
3171 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_kwattr*/ == NIT_NULL /*null*/) || (( variable5 /*n_kwattr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_kwattr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_kwattr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_kwattr*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_kwattr*/, NIT_NULL /*null*/) /*TKwattr::==*/)))))));
3172 if (UNTAG_Bool(variable9)) { /*if*/
3173 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_kwattr*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_kwattr*/, self) /*TKwattr::parent=*/;
3174 }
3175 ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ = variable6 /*n_id*/;
3176 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_id*/ == NIT_NULL /*null*/) || (( variable6 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_id*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
3177 if (UNTAG_Bool(variable9)) { /*if*/
3178 ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_id*/, self) /*TAttrid::parent=*/;
3179 }
3180 ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ = variable7 /*n_type*/;
3181 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*n_type*/ == NIT_NULL /*null*/) || (( variable7 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable7 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
3182 if (UNTAG_Bool(variable9)) { /*if*/
3183 ((parser_prod___PNode___parent__eq_t)CALL( variable7 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable7 /*n_type*/, self) /*PType::parent=*/;
3184 }
3185 ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ = variable8 /*n_expr*/;
3186 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*n_expr*/ == NIT_NULL /*null*/) || (( variable8 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable8 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
3187 if (UNTAG_Bool(variable9)) { /*if*/
3188 ((parser_prod___PNode___parent__eq_t)CALL( variable8 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable8 /*n_expr*/, self) /*PExpr::parent=*/;
3189 }
3190 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
3191 tracehead = trace.prev;
3192 return;
3193 }
3194 void parser_prod___AAttrPropdef___replace_child(val_t self, val_t param0, val_t param1) {
3195 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___replace_child, 1558};
3196 val_t variable0;
3197 val_t variable1;
3198 val_t variable2;
3199 trace.prev = tracehead; tracehead = &trace;
3200 variable0 = param0;
3201 variable1 = param1;
3202 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3203 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1560); nit_exit(1);}
3204 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
3205 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
3206 if (UNTAG_Bool(variable2)) { /*if*/
3207 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3208 if (UNTAG_Bool(variable2)) { /*if*/
3209 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3210 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
3211 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1564); nit_exit(1);}
3212 ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ = variable1 /*new_child*/;
3213 } else { /*if*/
3214 ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ = NIT_NULL /*null*/;
3215 }
3216 goto return_label162;
3217 }
3218 variable2 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
3219 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PAble::==*/)))));
3220 if (UNTAG_Bool(variable2)) { /*if*/
3221 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3222 if (UNTAG_Bool(variable2)) { /*if*/
3223 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3224 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
3225 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1574); nit_exit(1);}
3226 ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ = variable1 /*new_child*/;
3227 } else { /*if*/
3228 ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ = NIT_NULL /*null*/;
3229 }
3230 goto return_label162;
3231 }
3232 variable2 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
3233 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PAble::==*/)))));
3234 if (UNTAG_Bool(variable2)) { /*if*/
3235 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3236 if (UNTAG_Bool(variable2)) { /*if*/
3237 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3238 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
3239 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1584); nit_exit(1);}
3240 ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ = variable1 /*new_child*/;
3241 } else { /*if*/
3242 ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ = NIT_NULL /*null*/;
3243 }
3244 goto return_label162;
3245 }
3246 variable2 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
3247 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
3248 if (UNTAG_Bool(variable2)) { /*if*/
3249 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3250 if (UNTAG_Bool(variable2)) { /*if*/
3251 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3252 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
3253 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1594); nit_exit(1);}
3254 ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ = variable1 /*new_child*/;
3255 } else { /*if*/
3256 ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
3257 }
3258 goto return_label162;
3259 }
3260 variable2 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
3261 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
3262 if (UNTAG_Bool(variable2)) { /*if*/
3263 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3264 if (UNTAG_Bool(variable2)) { /*if*/
3265 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3266 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
3267 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1604); nit_exit(1);}
3268 ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ = variable1 /*new_child*/;
3269 } else { /*if*/
3270 ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ = NIT_NULL /*null*/;
3271 }
3272 goto return_label162;
3273 }
3274 variable2 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
3275 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwattr::==*/)))));
3276 if (UNTAG_Bool(variable2)) { /*if*/
3277 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3278 if (UNTAG_Bool(variable2)) { /*if*/
3279 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3280 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
3281 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1614); nit_exit(1);}
3282 ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ = variable1 /*new_child*/;
3283 } else { /*if*/
3284 ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ = NIT_NULL /*null*/;
3285 }
3286 goto return_label162;
3287 }
3288 variable2 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
3289 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAttrid::==*/)))));
3290 if (UNTAG_Bool(variable2)) { /*if*/
3291 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3292 if (UNTAG_Bool(variable2)) { /*if*/
3293 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3294 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
3295 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1624); nit_exit(1);}
3296 ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ = variable1 /*new_child*/;
3297 } else { /*if*/
3298 ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ = NIT_NULL /*null*/;
3299 }
3300 goto return_label162;
3301 }
3302 variable2 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
3303 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
3304 if (UNTAG_Bool(variable2)) { /*if*/
3305 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3306 if (UNTAG_Bool(variable2)) { /*if*/
3307 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3308 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
3309 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1634); nit_exit(1);}
3310 ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ = variable1 /*new_child*/;
3311 } else { /*if*/
3312 ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ = NIT_NULL /*null*/;
3313 }
3314 goto return_label162;
3315 }
3316 variable2 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
3317 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
3318 if (UNTAG_Bool(variable2)) { /*if*/
3319 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3320 if (UNTAG_Bool(variable2)) { /*if*/
3321 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3322 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
3323 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrPropdef___replace_child, 1644); nit_exit(1);}
3324 ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ = variable1 /*new_child*/;
3325 } else { /*if*/
3326 ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ = NIT_NULL /*null*/;
3327 }
3328 goto return_label162;
3329 }
3330 return_label162: while(false);
3331 tracehead = trace.prev;
3332 return;
3333 }
3334 void parser_prod___AAttrPropdef___visit_all(val_t self, val_t param0) {
3335 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___visit_all, 1653};
3336 val_t variable0;
3337 val_t variable1;
3338 trace.prev = tracehead; tracehead = &trace;
3339 variable0 = param0;
3340 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
3341 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3342 if (UNTAG_Bool(variable1)) { /*if*/
3343 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
3344 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3345 }
3346 variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
3347 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAble::==*/)))))));
3348 if (UNTAG_Bool(variable1)) { /*if*/
3349 variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
3350 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3351 }
3352 variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
3353 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAble::==*/)))))));
3354 if (UNTAG_Bool(variable1)) { /*if*/
3355 variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
3356 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3357 }
3358 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
3359 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3360 if (UNTAG_Bool(variable1)) { /*if*/
3361 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
3362 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3363 }
3364 variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
3365 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3366 if (UNTAG_Bool(variable1)) { /*if*/
3367 variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
3368 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3369 }
3370 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
3371 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwattr::==*/)))))));
3372 if (UNTAG_Bool(variable1)) { /*if*/
3373 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
3374 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3375 }
3376 variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
3377 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
3378 if (UNTAG_Bool(variable1)) { /*if*/
3379 variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
3380 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3381 }
3382 variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
3383 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
3384 if (UNTAG_Bool(variable1)) { /*if*/
3385 variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
3386 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3387 }
3388 variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
3389 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
3390 if (UNTAG_Bool(variable1)) { /*if*/
3391 variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
3392 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3393 }
3394 tracehead = trace.prev;
3395 return;
3396 }
3397 void parser_prod___AAttrPropdef___visit_all_reverse(val_t self, val_t param0) {
3398 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrPropdef___visit_all_reverse, 1684};
3399 val_t variable0;
3400 val_t variable1;
3401 trace.prev = tracehead; tracehead = &trace;
3402 variable0 = param0;
3403 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
3404 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3405 if (UNTAG_Bool(variable1)) { /*if*/
3406 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
3407 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3408 }
3409 variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
3410 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAble::==*/)))))));
3411 if (UNTAG_Bool(variable1)) { /*if*/
3412 variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
3413 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3414 }
3415 variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
3416 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAble::==*/)))))));
3417 if (UNTAG_Bool(variable1)) { /*if*/
3418 variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
3419 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3420 }
3421 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
3422 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3423 if (UNTAG_Bool(variable1)) { /*if*/
3424 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
3425 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3426 }
3427 variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
3428 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3429 if (UNTAG_Bool(variable1)) { /*if*/
3430 variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
3431 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3432 }
3433 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
3434 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwattr::==*/)))))));
3435 if (UNTAG_Bool(variable1)) { /*if*/
3436 variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
3437 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3438 }
3439 variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
3440 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
3441 if (UNTAG_Bool(variable1)) { /*if*/
3442 variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
3443 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3444 }
3445 variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
3446 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
3447 if (UNTAG_Bool(variable1)) { /*if*/
3448 variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
3449 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3450 }
3451 variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
3452 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
3453 if (UNTAG_Bool(variable1)) { /*if*/
3454 variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
3455 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3456 }
3457 tracehead = trace.prev;
3458 return;
3459 }
3460 void parser_prod___AMethPropdef___n_doc__eq(val_t self, val_t param0) {
3461 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___n_doc__eq, 1716};
3462 val_t variable0;
3463 val_t variable1;
3464 trace.prev = tracehead; tracehead = &trace;
3465 variable0 = param0;
3466 ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ = variable0 /*n*/;
3467 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3468 if (UNTAG_Bool(variable1)) { /*if*/
3469 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
3470 }
3471 tracehead = trace.prev;
3472 return;
3473 }
3474 void parser_prod___AMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
3475 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___n_kwredef__eq, 1723};
3476 val_t variable0;
3477 val_t variable1;
3478 trace.prev = tracehead; tracehead = &trace;
3479 variable0 = param0;
3480 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ = variable0 /*n*/;
3481 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3482 if (UNTAG_Bool(variable1)) { /*if*/
3483 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
3484 }
3485 tracehead = trace.prev;
3486 return;
3487 }
3488 void parser_prod___AMethPropdef___n_visibility__eq(val_t self, val_t param0) {
3489 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___n_visibility__eq, 1730};
3490 val_t variable0;
3491 val_t variable1;
3492 trace.prev = tracehead; tracehead = &trace;
3493 variable0 = param0;
3494 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ = variable0 /*n*/;
3495 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3496 if (UNTAG_Bool(variable1)) { /*if*/
3497 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
3498 }
3499 tracehead = trace.prev;
3500 return;
3501 }
3502 void parser_prod___AMethPropdef___n_methid__eq(val_t self, val_t param0) {
3503 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___n_methid__eq, 1737};
3504 val_t variable0;
3505 val_t variable1;
3506 trace.prev = tracehead; tracehead = &trace;
3507 variable0 = param0;
3508 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ = variable0 /*n*/;
3509 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
3510 if (UNTAG_Bool(variable1)) { /*if*/
3511 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PMethid::parent=*/;
3512 }
3513 tracehead = trace.prev;
3514 return;
3515 }
3516 void parser_prod___AMethPropdef___n_signature__eq(val_t self, val_t param0) {
3517 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___n_signature__eq, 1744};
3518 val_t variable0;
3519 val_t variable1;
3520 trace.prev = tracehead; tracehead = &trace;
3521 variable0 = param0;
3522 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ = variable0 /*n*/;
3523 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
3524 if (UNTAG_Bool(variable1)) { /*if*/
3525 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PSignature::parent=*/;
3526 }
3527 tracehead = trace.prev;
3528 return;
3529 }
3530 void parser_prod___AMethPropdef___empty_init(val_t self, int* init_table) {
3531 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___empty_init, 1752};
3532 trace.prev = tracehead; tracehead = &trace;
3533 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
3534 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
3535 tracehead = trace.prev;
3536 return;
3537 }
3538 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) {
3539 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___init_amethpropdef, 1754};
3540 val_t variable0;
3541 val_t variable1;
3542 val_t variable2;
3543 val_t variable3;
3544 val_t variable4;
3545 val_t variable5;
3546 trace.prev = tracehead; tracehead = &trace;
3547 variable0 = param0;
3548 variable1 = param1;
3549 variable2 = param2;
3550 variable3 = param3;
3551 variable4 = param4;
3552 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
3553 ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ = variable0 /*n_doc*/;
3554 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3555 if (UNTAG_Bool(variable5)) { /*if*/
3556 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
3557 }
3558 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
3559 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3560 if (UNTAG_Bool(variable5)) { /*if*/
3561 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
3562 }
3563 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ = variable2 /*n_visibility*/;
3564 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3565 if (UNTAG_Bool(variable5)) { /*if*/
3566 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
3567 }
3568 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ = variable3 /*n_methid*/;
3569 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_methid*/ == NIT_NULL /*null*/) || (( variable3 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_methid*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
3570 if (UNTAG_Bool(variable5)) { /*if*/
3571 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_methid*/, self) /*PMethid::parent=*/;
3572 }
3573 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ = variable4 /*n_signature*/;
3574 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_signature*/ == NIT_NULL /*null*/) || (( variable4 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_signature*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
3575 if (UNTAG_Bool(variable5)) { /*if*/
3576 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_signature*/, self) /*PSignature::parent=*/;
3577 }
3578 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
3579 tracehead = trace.prev;
3580 return;
3581 }
3582 void parser_prod___AMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
3583 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___replace_child, 1784};
3584 val_t variable0;
3585 val_t variable1;
3586 val_t variable2;
3587 trace.prev = tracehead; tracehead = &trace;
3588 variable0 = param0;
3589 variable1 = param1;
3590 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3591 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMethPropdef___replace_child, 1786); nit_exit(1);}
3592 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
3593 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
3594 if (UNTAG_Bool(variable2)) { /*if*/
3595 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3596 if (UNTAG_Bool(variable2)) { /*if*/
3597 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3598 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
3599 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMethPropdef___replace_child, 1790); nit_exit(1);}
3600 ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ = variable1 /*new_child*/;
3601 } else { /*if*/
3602 ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ = NIT_NULL /*null*/;
3603 }
3604 goto return_label172;
3605 }
3606 variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
3607 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
3608 if (UNTAG_Bool(variable2)) { /*if*/
3609 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3610 if (UNTAG_Bool(variable2)) { /*if*/
3611 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3612 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
3613 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMethPropdef___replace_child, 1800); nit_exit(1);}
3614 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ = variable1 /*new_child*/;
3615 } else { /*if*/
3616 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
3617 }
3618 goto return_label172;
3619 }
3620 variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
3621 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
3622 if (UNTAG_Bool(variable2)) { /*if*/
3623 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3624 if (UNTAG_Bool(variable2)) { /*if*/
3625 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3626 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
3627 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMethPropdef___replace_child, 1810); nit_exit(1);}
3628 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ = variable1 /*new_child*/;
3629 } else { /*if*/
3630 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
3631 }
3632 goto return_label172;
3633 }
3634 variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
3635 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PMethid::==*/)))));
3636 if (UNTAG_Bool(variable2)) { /*if*/
3637 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3638 if (UNTAG_Bool(variable2)) { /*if*/
3639 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3640 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
3641 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMethPropdef___replace_child, 1820); nit_exit(1);}
3642 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ = variable1 /*new_child*/;
3643 } else { /*if*/
3644 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
3645 }
3646 goto return_label172;
3647 }
3648 variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
3649 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PSignature::==*/)))));
3650 if (UNTAG_Bool(variable2)) { /*if*/
3651 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3652 if (UNTAG_Bool(variable2)) { /*if*/
3653 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3654 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
3655 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMethPropdef___replace_child, 1830); nit_exit(1);}
3656 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ = variable1 /*new_child*/;
3657 } else { /*if*/
3658 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
3659 }
3660 goto return_label172;
3661 }
3662 return_label172: while(false);
3663 tracehead = trace.prev;
3664 return;
3665 }
3666 void parser_prod___AMethPropdef___visit_all(val_t self, val_t param0) {
3667 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___visit_all, 1839};
3668 val_t variable0;
3669 val_t variable1;
3670 trace.prev = tracehead; tracehead = &trace;
3671 variable0 = param0;
3672 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
3673 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3674 if (UNTAG_Bool(variable1)) { /*if*/
3675 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
3676 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3677 }
3678 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
3679 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3680 if (UNTAG_Bool(variable1)) { /*if*/
3681 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
3682 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3683 }
3684 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
3685 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3686 if (UNTAG_Bool(variable1)) { /*if*/
3687 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
3688 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3689 }
3690 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
3691 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
3692 if (UNTAG_Bool(variable1)) { /*if*/
3693 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
3694 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3695 }
3696 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
3697 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
3698 if (UNTAG_Bool(variable1)) { /*if*/
3699 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
3700 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3701 }
3702 tracehead = trace.prev;
3703 return;
3704 }
3705 void parser_prod___AMethPropdef___visit_all_reverse(val_t self, val_t param0) {
3706 struct trace_t trace = {NULL, LOCATE_parser_prod___AMethPropdef___visit_all_reverse, 1858};
3707 val_t variable0;
3708 val_t variable1;
3709 trace.prev = tracehead; tracehead = &trace;
3710 variable0 = param0;
3711 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
3712 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3713 if (UNTAG_Bool(variable1)) { /*if*/
3714 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
3715 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3716 }
3717 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
3718 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3719 if (UNTAG_Bool(variable1)) { /*if*/
3720 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
3721 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3722 }
3723 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
3724 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3725 if (UNTAG_Bool(variable1)) { /*if*/
3726 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
3727 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3728 }
3729 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
3730 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
3731 if (UNTAG_Bool(variable1)) { /*if*/
3732 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
3733 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3734 }
3735 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
3736 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
3737 if (UNTAG_Bool(variable1)) { /*if*/
3738 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
3739 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3740 }
3741 tracehead = trace.prev;
3742 return;
3743 }
3744 void parser_prod___ADeferredMethPropdef___n_doc__eq(val_t self, val_t param0) {
3745 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___n_doc__eq, 1878};
3746 val_t variable0;
3747 val_t variable1;
3748 trace.prev = tracehead; tracehead = &trace;
3749 variable0 = param0;
3750 ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ = variable0 /*n*/;
3751 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3752 if (UNTAG_Bool(variable1)) { /*if*/
3753 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
3754 }
3755 tracehead = trace.prev;
3756 return;
3757 }
3758 void parser_prod___ADeferredMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
3759 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___n_kwredef__eq, 1885};
3760 val_t variable0;
3761 val_t variable1;
3762 trace.prev = tracehead; tracehead = &trace;
3763 variable0 = param0;
3764 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ = variable0 /*n*/;
3765 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3766 if (UNTAG_Bool(variable1)) { /*if*/
3767 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
3768 }
3769 tracehead = trace.prev;
3770 return;
3771 }
3772 void parser_prod___ADeferredMethPropdef___n_visibility__eq(val_t self, val_t param0) {
3773 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___n_visibility__eq, 1892};
3774 val_t variable0;
3775 val_t variable1;
3776 trace.prev = tracehead; tracehead = &trace;
3777 variable0 = param0;
3778 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ = variable0 /*n*/;
3779 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3780 if (UNTAG_Bool(variable1)) { /*if*/
3781 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
3782 }
3783 tracehead = trace.prev;
3784 return;
3785 }
3786 void parser_prod___ADeferredMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
3787 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___n_kwmeth__eq, 1899};
3788 val_t variable0;
3789 val_t variable1;
3790 trace.prev = tracehead; tracehead = &trace;
3791 variable0 = param0;
3792 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ = variable0 /*n*/;
3793 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
3794 if (UNTAG_Bool(variable1)) { /*if*/
3795 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwmeth::parent=*/;
3796 }
3797 tracehead = trace.prev;
3798 return;
3799 }
3800 void parser_prod___ADeferredMethPropdef___n_methid__eq(val_t self, val_t param0) {
3801 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___n_methid__eq, 1906};
3802 val_t variable0;
3803 val_t variable1;
3804 trace.prev = tracehead; tracehead = &trace;
3805 variable0 = param0;
3806 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ = variable0 /*n*/;
3807 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
3808 if (UNTAG_Bool(variable1)) { /*if*/
3809 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PMethid::parent=*/;
3810 }
3811 tracehead = trace.prev;
3812 return;
3813 }
3814 void parser_prod___ADeferredMethPropdef___n_signature__eq(val_t self, val_t param0) {
3815 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___n_signature__eq, 1913};
3816 val_t variable0;
3817 val_t variable1;
3818 trace.prev = tracehead; tracehead = &trace;
3819 variable0 = param0;
3820 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ = variable0 /*n*/;
3821 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
3822 if (UNTAG_Bool(variable1)) { /*if*/
3823 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PSignature::parent=*/;
3824 }
3825 tracehead = trace.prev;
3826 return;
3827 }
3828 void parser_prod___ADeferredMethPropdef___empty_init(val_t self, int* init_table) {
3829 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___empty_init, 1921};
3830 trace.prev = tracehead; tracehead = &trace;
3831 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
3832 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
3833 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
3834 tracehead = trace.prev;
3835 return;
3836 }
3837 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) {
3838 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef, 1923};
3839 val_t variable0;
3840 val_t variable1;
3841 val_t variable2;
3842 val_t variable3;
3843 val_t variable4;
3844 val_t variable5;
3845 val_t variable6;
3846 trace.prev = tracehead; tracehead = &trace;
3847 variable0 = param0;
3848 variable1 = param1;
3849 variable2 = param2;
3850 variable3 = param3;
3851 variable4 = param4;
3852 variable5 = param5;
3853 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
3854 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
3855 ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ = variable0 /*n_doc*/;
3856 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3857 if (UNTAG_Bool(variable6)) { /*if*/
3858 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
3859 }
3860 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
3861 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
3862 if (UNTAG_Bool(variable6)) { /*if*/
3863 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
3864 }
3865 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ = variable2 /*n_visibility*/;
3866 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
3867 if (UNTAG_Bool(variable6)) { /*if*/
3868 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
3869 }
3870 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ = variable3 /*n_kwmeth*/;
3871 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
3872 if (UNTAG_Bool(variable6)) { /*if*/
3873 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/, self) /*TKwmeth::parent=*/;
3874 }
3875 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ = variable4 /*n_methid*/;
3876 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ == NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
3877 if (UNTAG_Bool(variable6)) { /*if*/
3878 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/, self) /*PMethid::parent=*/;
3879 }
3880 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ = variable5 /*n_signature*/;
3881 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ == NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
3882 if (UNTAG_Bool(variable6)) { /*if*/
3883 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/, self) /*PSignature::parent=*/;
3884 }
3885 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
3886 tracehead = trace.prev;
3887 return;
3888 }
3889 void parser_prod___ADeferredMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
3890 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 1958};
3891 val_t variable0;
3892 val_t variable1;
3893 val_t variable2;
3894 trace.prev = tracehead; tracehead = &trace;
3895 variable0 = param0;
3896 variable1 = param1;
3897 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3898 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 1960); nit_exit(1);}
3899 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
3900 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
3901 if (UNTAG_Bool(variable2)) { /*if*/
3902 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3903 if (UNTAG_Bool(variable2)) { /*if*/
3904 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3905 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
3906 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 1964); nit_exit(1);}
3907 ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ = variable1 /*new_child*/;
3908 } else { /*if*/
3909 ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ = NIT_NULL /*null*/;
3910 }
3911 goto return_label183;
3912 }
3913 variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
3914 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
3915 if (UNTAG_Bool(variable2)) { /*if*/
3916 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3917 if (UNTAG_Bool(variable2)) { /*if*/
3918 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3919 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
3920 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 1974); nit_exit(1);}
3921 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ = variable1 /*new_child*/;
3922 } else { /*if*/
3923 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
3924 }
3925 goto return_label183;
3926 }
3927 variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
3928 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
3929 if (UNTAG_Bool(variable2)) { /*if*/
3930 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3931 if (UNTAG_Bool(variable2)) { /*if*/
3932 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3933 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
3934 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 1984); nit_exit(1);}
3935 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ = variable1 /*new_child*/;
3936 } else { /*if*/
3937 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
3938 }
3939 goto return_label183;
3940 }
3941 variable2 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
3942 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwmeth::==*/)))));
3943 if (UNTAG_Bool(variable2)) { /*if*/
3944 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3945 if (UNTAG_Bool(variable2)) { /*if*/
3946 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3947 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
3948 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 1994); nit_exit(1);}
3949 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ = variable1 /*new_child*/;
3950 } else { /*if*/
3951 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
3952 }
3953 goto return_label183;
3954 }
3955 variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
3956 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PMethid::==*/)))));
3957 if (UNTAG_Bool(variable2)) { /*if*/
3958 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3959 if (UNTAG_Bool(variable2)) { /*if*/
3960 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3961 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
3962 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 2004); nit_exit(1);}
3963 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ = variable1 /*new_child*/;
3964 } else { /*if*/
3965 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
3966 }
3967 goto return_label183;
3968 }
3969 variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
3970 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PSignature::==*/)))));
3971 if (UNTAG_Bool(variable2)) { /*if*/
3972 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
3973 if (UNTAG_Bool(variable2)) { /*if*/
3974 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
3975 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
3976 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, 2014); nit_exit(1);}
3977 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ = variable1 /*new_child*/;
3978 } else { /*if*/
3979 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
3980 }
3981 goto return_label183;
3982 }
3983 return_label183: while(false);
3984 tracehead = trace.prev;
3985 return;
3986 }
3987 void parser_prod___ADeferredMethPropdef___visit_all(val_t self, val_t param0) {
3988 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___visit_all, 2023};
3989 val_t variable0;
3990 val_t variable1;
3991 trace.prev = tracehead; tracehead = &trace;
3992 variable0 = param0;
3993 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
3994 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
3995 if (UNTAG_Bool(variable1)) { /*if*/
3996 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
3997 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
3998 }
3999 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
4000 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4001 if (UNTAG_Bool(variable1)) { /*if*/
4002 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
4003 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4004 }
4005 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
4006 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4007 if (UNTAG_Bool(variable1)) { /*if*/
4008 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
4009 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4010 }
4011 variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
4012 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4013 if (UNTAG_Bool(variable1)) { /*if*/
4014 variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
4015 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4016 }
4017 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
4018 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4019 if (UNTAG_Bool(variable1)) { /*if*/
4020 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
4021 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4022 }
4023 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
4024 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4025 if (UNTAG_Bool(variable1)) { /*if*/
4026 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
4027 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4028 }
4029 tracehead = trace.prev;
4030 return;
4031 }
4032 void parser_prod___ADeferredMethPropdef___visit_all_reverse(val_t self, val_t param0) {
4033 struct trace_t trace = {NULL, LOCATE_parser_prod___ADeferredMethPropdef___visit_all_reverse, 2045};
4034 val_t variable0;
4035 val_t variable1;
4036 trace.prev = tracehead; tracehead = &trace;
4037 variable0 = param0;
4038 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
4039 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4040 if (UNTAG_Bool(variable1)) { /*if*/
4041 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
4042 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4043 }
4044 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
4045 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4046 if (UNTAG_Bool(variable1)) { /*if*/
4047 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
4048 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4049 }
4050 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
4051 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4052 if (UNTAG_Bool(variable1)) { /*if*/
4053 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
4054 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4055 }
4056 variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
4057 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4058 if (UNTAG_Bool(variable1)) { /*if*/
4059 variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
4060 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4061 }
4062 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
4063 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4064 if (UNTAG_Bool(variable1)) { /*if*/
4065 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
4066 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4067 }
4068 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
4069 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4070 if (UNTAG_Bool(variable1)) { /*if*/
4071 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
4072 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4073 }
4074 tracehead = trace.prev;
4075 return;
4076 }
4077 void parser_prod___AInternMethPropdef___n_doc__eq(val_t self, val_t param0) {
4078 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___n_doc__eq, 2068};
4079 val_t variable0;
4080 val_t variable1;
4081 trace.prev = tracehead; tracehead = &trace;
4082 variable0 = param0;
4083 ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ = variable0 /*n*/;
4084 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4085 if (UNTAG_Bool(variable1)) { /*if*/
4086 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
4087 }
4088 tracehead = trace.prev;
4089 return;
4090 }
4091 void parser_prod___AInternMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
4092 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___n_kwredef__eq, 2075};
4093 val_t variable0;
4094 val_t variable1;
4095 trace.prev = tracehead; tracehead = &trace;
4096 variable0 = param0;
4097 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ = variable0 /*n*/;
4098 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4099 if (UNTAG_Bool(variable1)) { /*if*/
4100 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
4101 }
4102 tracehead = trace.prev;
4103 return;
4104 }
4105 void parser_prod___AInternMethPropdef___n_visibility__eq(val_t self, val_t param0) {
4106 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___n_visibility__eq, 2082};
4107 val_t variable0;
4108 val_t variable1;
4109 trace.prev = tracehead; tracehead = &trace;
4110 variable0 = param0;
4111 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ = variable0 /*n*/;
4112 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4113 if (UNTAG_Bool(variable1)) { /*if*/
4114 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
4115 }
4116 tracehead = trace.prev;
4117 return;
4118 }
4119 void parser_prod___AInternMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
4120 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___n_kwmeth__eq, 2089};
4121 val_t variable0;
4122 val_t variable1;
4123 trace.prev = tracehead; tracehead = &trace;
4124 variable0 = param0;
4125 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ = variable0 /*n*/;
4126 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4127 if (UNTAG_Bool(variable1)) { /*if*/
4128 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwmeth::parent=*/;
4129 }
4130 tracehead = trace.prev;
4131 return;
4132 }
4133 void parser_prod___AInternMethPropdef___n_methid__eq(val_t self, val_t param0) {
4134 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___n_methid__eq, 2096};
4135 val_t variable0;
4136 val_t variable1;
4137 trace.prev = tracehead; tracehead = &trace;
4138 variable0 = param0;
4139 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ = variable0 /*n*/;
4140 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4141 if (UNTAG_Bool(variable1)) { /*if*/
4142 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PMethid::parent=*/;
4143 }
4144 tracehead = trace.prev;
4145 return;
4146 }
4147 void parser_prod___AInternMethPropdef___n_signature__eq(val_t self, val_t param0) {
4148 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___n_signature__eq, 2103};
4149 val_t variable0;
4150 val_t variable1;
4151 trace.prev = tracehead; tracehead = &trace;
4152 variable0 = param0;
4153 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ = variable0 /*n*/;
4154 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4155 if (UNTAG_Bool(variable1)) { /*if*/
4156 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PSignature::parent=*/;
4157 }
4158 tracehead = trace.prev;
4159 return;
4160 }
4161 void parser_prod___AInternMethPropdef___empty_init(val_t self, int* init_table) {
4162 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___empty_init, 2111};
4163 trace.prev = tracehead; tracehead = &trace;
4164 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
4165 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
4166 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
4167 tracehead = trace.prev;
4168 return;
4169 }
4170 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) {
4171 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___init_ainternmethpropdef, 2113};
4172 val_t variable0;
4173 val_t variable1;
4174 val_t variable2;
4175 val_t variable3;
4176 val_t variable4;
4177 val_t variable5;
4178 val_t variable6;
4179 trace.prev = tracehead; tracehead = &trace;
4180 variable0 = param0;
4181 variable1 = param1;
4182 variable2 = param2;
4183 variable3 = param3;
4184 variable4 = param4;
4185 variable5 = param5;
4186 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
4187 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
4188 ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ = variable0 /*n_doc*/;
4189 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4190 if (UNTAG_Bool(variable6)) { /*if*/
4191 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
4192 }
4193 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
4194 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4195 if (UNTAG_Bool(variable6)) { /*if*/
4196 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
4197 }
4198 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ = variable2 /*n_visibility*/;
4199 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4200 if (UNTAG_Bool(variable6)) { /*if*/
4201 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
4202 }
4203 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ = variable3 /*n_kwmeth*/;
4204 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4205 if (UNTAG_Bool(variable6)) { /*if*/
4206 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/, self) /*TKwmeth::parent=*/;
4207 }
4208 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ = variable4 /*n_methid*/;
4209 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ == NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4210 if (UNTAG_Bool(variable6)) { /*if*/
4211 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/, self) /*PMethid::parent=*/;
4212 }
4213 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ = variable5 /*n_signature*/;
4214 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ == NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4215 if (UNTAG_Bool(variable6)) { /*if*/
4216 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/, self) /*PSignature::parent=*/;
4217 }
4218 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
4219 tracehead = trace.prev;
4220 return;
4221 }
4222 void parser_prod___AInternMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
4223 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___replace_child, 2148};
4224 val_t variable0;
4225 val_t variable1;
4226 val_t variable2;
4227 trace.prev = tracehead; tracehead = &trace;
4228 variable0 = param0;
4229 variable1 = param1;
4230 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4231 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInternMethPropdef___replace_child, 2150); nit_exit(1);}
4232 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
4233 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
4234 if (UNTAG_Bool(variable2)) { /*if*/
4235 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4236 if (UNTAG_Bool(variable2)) { /*if*/
4237 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4238 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
4239 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInternMethPropdef___replace_child, 2154); nit_exit(1);}
4240 ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ = variable1 /*new_child*/;
4241 } else { /*if*/
4242 ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ = NIT_NULL /*null*/;
4243 }
4244 goto return_label194;
4245 }
4246 variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
4247 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
4248 if (UNTAG_Bool(variable2)) { /*if*/
4249 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4250 if (UNTAG_Bool(variable2)) { /*if*/
4251 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4252 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
4253 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInternMethPropdef___replace_child, 2164); nit_exit(1);}
4254 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ = variable1 /*new_child*/;
4255 } else { /*if*/
4256 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
4257 }
4258 goto return_label194;
4259 }
4260 variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
4261 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
4262 if (UNTAG_Bool(variable2)) { /*if*/
4263 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4264 if (UNTAG_Bool(variable2)) { /*if*/
4265 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4266 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
4267 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInternMethPropdef___replace_child, 2174); nit_exit(1);}
4268 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ = variable1 /*new_child*/;
4269 } else { /*if*/
4270 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
4271 }
4272 goto return_label194;
4273 }
4274 variable2 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
4275 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwmeth::==*/)))));
4276 if (UNTAG_Bool(variable2)) { /*if*/
4277 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4278 if (UNTAG_Bool(variable2)) { /*if*/
4279 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4280 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
4281 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInternMethPropdef___replace_child, 2184); nit_exit(1);}
4282 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ = variable1 /*new_child*/;
4283 } else { /*if*/
4284 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
4285 }
4286 goto return_label194;
4287 }
4288 variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
4289 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PMethid::==*/)))));
4290 if (UNTAG_Bool(variable2)) { /*if*/
4291 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4292 if (UNTAG_Bool(variable2)) { /*if*/
4293 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4294 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
4295 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInternMethPropdef___replace_child, 2194); nit_exit(1);}
4296 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ = variable1 /*new_child*/;
4297 } else { /*if*/
4298 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
4299 }
4300 goto return_label194;
4301 }
4302 variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
4303 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PSignature::==*/)))));
4304 if (UNTAG_Bool(variable2)) { /*if*/
4305 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4306 if (UNTAG_Bool(variable2)) { /*if*/
4307 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4308 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
4309 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInternMethPropdef___replace_child, 2204); nit_exit(1);}
4310 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ = variable1 /*new_child*/;
4311 } else { /*if*/
4312 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
4313 }
4314 goto return_label194;
4315 }
4316 return_label194: while(false);
4317 tracehead = trace.prev;
4318 return;
4319 }
4320 void parser_prod___AInternMethPropdef___visit_all(val_t self, val_t param0) {
4321 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___visit_all, 2213};
4322 val_t variable0;
4323 val_t variable1;
4324 trace.prev = tracehead; tracehead = &trace;
4325 variable0 = param0;
4326 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
4327 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4328 if (UNTAG_Bool(variable1)) { /*if*/
4329 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
4330 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4331 }
4332 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
4333 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4334 if (UNTAG_Bool(variable1)) { /*if*/
4335 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
4336 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4337 }
4338 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
4339 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4340 if (UNTAG_Bool(variable1)) { /*if*/
4341 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
4342 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4343 }
4344 variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
4345 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4346 if (UNTAG_Bool(variable1)) { /*if*/
4347 variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
4348 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4349 }
4350 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
4351 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4352 if (UNTAG_Bool(variable1)) { /*if*/
4353 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
4354 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4355 }
4356 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
4357 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4358 if (UNTAG_Bool(variable1)) { /*if*/
4359 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
4360 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4361 }
4362 tracehead = trace.prev;
4363 return;
4364 }
4365 void parser_prod___AInternMethPropdef___visit_all_reverse(val_t self, val_t param0) {
4366 struct trace_t trace = {NULL, LOCATE_parser_prod___AInternMethPropdef___visit_all_reverse, 2235};
4367 val_t variable0;
4368 val_t variable1;
4369 trace.prev = tracehead; tracehead = &trace;
4370 variable0 = param0;
4371 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
4372 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4373 if (UNTAG_Bool(variable1)) { /*if*/
4374 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
4375 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4376 }
4377 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
4378 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4379 if (UNTAG_Bool(variable1)) { /*if*/
4380 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
4381 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4382 }
4383 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
4384 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4385 if (UNTAG_Bool(variable1)) { /*if*/
4386 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
4387 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4388 }
4389 variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
4390 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4391 if (UNTAG_Bool(variable1)) { /*if*/
4392 variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
4393 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4394 }
4395 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
4396 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4397 if (UNTAG_Bool(variable1)) { /*if*/
4398 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
4399 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4400 }
4401 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
4402 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4403 if (UNTAG_Bool(variable1)) { /*if*/
4404 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
4405 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4406 }
4407 tracehead = trace.prev;
4408 return;
4409 }
4410 void parser_prod___AExternMethPropdef___n_doc__eq(val_t self, val_t param0) {
4411 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___n_doc__eq, 2258};
4412 val_t variable0;
4413 val_t variable1;
4414 trace.prev = tracehead; tracehead = &trace;
4415 variable0 = param0;
4416 ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ = variable0 /*n*/;
4417 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4418 if (UNTAG_Bool(variable1)) { /*if*/
4419 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
4420 }
4421 tracehead = trace.prev;
4422 return;
4423 }
4424 void parser_prod___AExternMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
4425 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___n_kwredef__eq, 2265};
4426 val_t variable0;
4427 val_t variable1;
4428 trace.prev = tracehead; tracehead = &trace;
4429 variable0 = param0;
4430 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ = variable0 /*n*/;
4431 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4432 if (UNTAG_Bool(variable1)) { /*if*/
4433 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
4434 }
4435 tracehead = trace.prev;
4436 return;
4437 }
4438 void parser_prod___AExternMethPropdef___n_visibility__eq(val_t self, val_t param0) {
4439 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___n_visibility__eq, 2272};
4440 val_t variable0;
4441 val_t variable1;
4442 trace.prev = tracehead; tracehead = &trace;
4443 variable0 = param0;
4444 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ = variable0 /*n*/;
4445 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4446 if (UNTAG_Bool(variable1)) { /*if*/
4447 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
4448 }
4449 tracehead = trace.prev;
4450 return;
4451 }
4452 void parser_prod___AExternMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
4453 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___n_kwmeth__eq, 2279};
4454 val_t variable0;
4455 val_t variable1;
4456 trace.prev = tracehead; tracehead = &trace;
4457 variable0 = param0;
4458 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ = variable0 /*n*/;
4459 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4460 if (UNTAG_Bool(variable1)) { /*if*/
4461 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwmeth::parent=*/;
4462 }
4463 tracehead = trace.prev;
4464 return;
4465 }
4466 void parser_prod___AExternMethPropdef___n_methid__eq(val_t self, val_t param0) {
4467 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___n_methid__eq, 2286};
4468 val_t variable0;
4469 val_t variable1;
4470 trace.prev = tracehead; tracehead = &trace;
4471 variable0 = param0;
4472 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ = variable0 /*n*/;
4473 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4474 if (UNTAG_Bool(variable1)) { /*if*/
4475 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PMethid::parent=*/;
4476 }
4477 tracehead = trace.prev;
4478 return;
4479 }
4480 void parser_prod___AExternMethPropdef___n_signature__eq(val_t self, val_t param0) {
4481 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___n_signature__eq, 2293};
4482 val_t variable0;
4483 val_t variable1;
4484 trace.prev = tracehead; tracehead = &trace;
4485 variable0 = param0;
4486 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ = variable0 /*n*/;
4487 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4488 if (UNTAG_Bool(variable1)) { /*if*/
4489 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PSignature::parent=*/;
4490 }
4491 tracehead = trace.prev;
4492 return;
4493 }
4494 void parser_prod___AExternMethPropdef___n_extern__eq(val_t self, val_t param0) {
4495 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___n_extern__eq, 2300};
4496 val_t variable0;
4497 val_t variable1;
4498 trace.prev = tracehead; tracehead = &trace;
4499 variable0 = param0;
4500 ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ = variable0 /*n*/;
4501 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TString::==*/)))))));
4502 if (UNTAG_Bool(variable1)) { /*if*/
4503 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TString::parent=*/;
4504 }
4505 tracehead = trace.prev;
4506 return;
4507 }
4508 void parser_prod___AExternMethPropdef___empty_init(val_t self, int* init_table) {
4509 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___empty_init, 2308};
4510 trace.prev = tracehead; tracehead = &trace;
4511 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
4512 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
4513 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
4514 tracehead = trace.prev;
4515 return;
4516 }
4517 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) {
4518 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___init_aexternmethpropdef, 2310};
4519 val_t variable0;
4520 val_t variable1;
4521 val_t variable2;
4522 val_t variable3;
4523 val_t variable4;
4524 val_t variable5;
4525 val_t variable6;
4526 val_t variable7;
4527 trace.prev = tracehead; tracehead = &trace;
4528 variable0 = param0;
4529 variable1 = param1;
4530 variable2 = param2;
4531 variable3 = param3;
4532 variable4 = param4;
4533 variable5 = param5;
4534 variable6 = param6;
4535 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
4536 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
4537 ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ = variable0 /*n_doc*/;
4538 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4539 if (UNTAG_Bool(variable7)) { /*if*/
4540 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
4541 }
4542 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
4543 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4544 if (UNTAG_Bool(variable7)) { /*if*/
4545 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
4546 }
4547 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ = variable2 /*n_visibility*/;
4548 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4549 if (UNTAG_Bool(variable7)) { /*if*/
4550 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
4551 }
4552 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ = variable3 /*n_kwmeth*/;
4553 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4554 if (UNTAG_Bool(variable7)) { /*if*/
4555 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/, self) /*TKwmeth::parent=*/;
4556 }
4557 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ = variable4 /*n_methid*/;
4558 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ == NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4559 if (UNTAG_Bool(variable7)) { /*if*/
4560 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/, self) /*PMethid::parent=*/;
4561 }
4562 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ = variable5 /*n_signature*/;
4563 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ == NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4564 if (UNTAG_Bool(variable7)) { /*if*/
4565 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/, self) /*PSignature::parent=*/;
4566 }
4567 ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ = variable6 /*n_extern*/;
4568 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_extern*/ == NIT_NULL /*null*/) || (( variable6 /*n_extern*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_extern*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_extern*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_extern*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_extern*/, NIT_NULL /*null*/) /*TString::==*/)))))));
4569 if (UNTAG_Bool(variable7)) { /*if*/
4570 ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_extern*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_extern*/, self) /*TString::parent=*/;
4571 }
4572 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
4573 tracehead = trace.prev;
4574 return;
4575 }
4576 void parser_prod___AExternMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
4577 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___replace_child, 2350};
4578 val_t variable0;
4579 val_t variable1;
4580 val_t variable2;
4581 trace.prev = tracehead; tracehead = &trace;
4582 variable0 = param0;
4583 variable1 = param1;
4584 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4585 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2352); nit_exit(1);}
4586 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
4587 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
4588 if (UNTAG_Bool(variable2)) { /*if*/
4589 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4590 if (UNTAG_Bool(variable2)) { /*if*/
4591 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4592 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
4593 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2356); nit_exit(1);}
4594 ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ = variable1 /*new_child*/;
4595 } else { /*if*/
4596 ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ = NIT_NULL /*null*/;
4597 }
4598 goto return_label206;
4599 }
4600 variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
4601 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
4602 if (UNTAG_Bool(variable2)) { /*if*/
4603 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4604 if (UNTAG_Bool(variable2)) { /*if*/
4605 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4606 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
4607 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2366); nit_exit(1);}
4608 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ = variable1 /*new_child*/;
4609 } else { /*if*/
4610 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
4611 }
4612 goto return_label206;
4613 }
4614 variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
4615 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
4616 if (UNTAG_Bool(variable2)) { /*if*/
4617 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4618 if (UNTAG_Bool(variable2)) { /*if*/
4619 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4620 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
4621 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2376); nit_exit(1);}
4622 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ = variable1 /*new_child*/;
4623 } else { /*if*/
4624 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
4625 }
4626 goto return_label206;
4627 }
4628 variable2 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
4629 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwmeth::==*/)))));
4630 if (UNTAG_Bool(variable2)) { /*if*/
4631 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4632 if (UNTAG_Bool(variable2)) { /*if*/
4633 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4634 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
4635 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2386); nit_exit(1);}
4636 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ = variable1 /*new_child*/;
4637 } else { /*if*/
4638 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
4639 }
4640 goto return_label206;
4641 }
4642 variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
4643 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PMethid::==*/)))));
4644 if (UNTAG_Bool(variable2)) { /*if*/
4645 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4646 if (UNTAG_Bool(variable2)) { /*if*/
4647 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4648 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
4649 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2396); nit_exit(1);}
4650 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ = variable1 /*new_child*/;
4651 } else { /*if*/
4652 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
4653 }
4654 goto return_label206;
4655 }
4656 variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
4657 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PSignature::==*/)))));
4658 if (UNTAG_Bool(variable2)) { /*if*/
4659 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4660 if (UNTAG_Bool(variable2)) { /*if*/
4661 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4662 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
4663 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2406); nit_exit(1);}
4664 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ = variable1 /*new_child*/;
4665 } else { /*if*/
4666 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
4667 }
4668 goto return_label206;
4669 }
4670 variable2 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
4671 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TString::==*/)))));
4672 if (UNTAG_Bool(variable2)) { /*if*/
4673 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4674 if (UNTAG_Bool(variable2)) { /*if*/
4675 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4676 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
4677 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AExternMethPropdef___replace_child, 2416); nit_exit(1);}
4678 ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ = variable1 /*new_child*/;
4679 } else { /*if*/
4680 ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ = NIT_NULL /*null*/;
4681 }
4682 goto return_label206;
4683 }
4684 return_label206: while(false);
4685 tracehead = trace.prev;
4686 return;
4687 }
4688 void parser_prod___AExternMethPropdef___visit_all(val_t self, val_t param0) {
4689 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___visit_all, 2425};
4690 val_t variable0;
4691 val_t variable1;
4692 trace.prev = tracehead; tracehead = &trace;
4693 variable0 = param0;
4694 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
4695 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4696 if (UNTAG_Bool(variable1)) { /*if*/
4697 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
4698 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4699 }
4700 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
4701 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4702 if (UNTAG_Bool(variable1)) { /*if*/
4703 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
4704 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4705 }
4706 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
4707 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4708 if (UNTAG_Bool(variable1)) { /*if*/
4709 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
4710 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4711 }
4712 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
4713 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4714 if (UNTAG_Bool(variable1)) { /*if*/
4715 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
4716 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4717 }
4718 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
4719 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4720 if (UNTAG_Bool(variable1)) { /*if*/
4721 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
4722 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4723 }
4724 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
4725 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4726 if (UNTAG_Bool(variable1)) { /*if*/
4727 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
4728 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4729 }
4730 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
4731 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TString::==*/)))))));
4732 if (UNTAG_Bool(variable1)) { /*if*/
4733 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
4734 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4735 }
4736 tracehead = trace.prev;
4737 return;
4738 }
4739 void parser_prod___AExternMethPropdef___visit_all_reverse(val_t self, val_t param0) {
4740 struct trace_t trace = {NULL, LOCATE_parser_prod___AExternMethPropdef___visit_all_reverse, 2450};
4741 val_t variable0;
4742 val_t variable1;
4743 trace.prev = tracehead; tracehead = &trace;
4744 variable0 = param0;
4745 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
4746 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4747 if (UNTAG_Bool(variable1)) { /*if*/
4748 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
4749 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4750 }
4751 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
4752 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4753 if (UNTAG_Bool(variable1)) { /*if*/
4754 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
4755 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4756 }
4757 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
4758 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4759 if (UNTAG_Bool(variable1)) { /*if*/
4760 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
4761 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4762 }
4763 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
4764 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4765 if (UNTAG_Bool(variable1)) { /*if*/
4766 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
4767 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4768 }
4769 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
4770 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4771 if (UNTAG_Bool(variable1)) { /*if*/
4772 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
4773 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4774 }
4775 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
4776 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4777 if (UNTAG_Bool(variable1)) { /*if*/
4778 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
4779 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4780 }
4781 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
4782 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TString::==*/)))))));
4783 if (UNTAG_Bool(variable1)) { /*if*/
4784 variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
4785 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
4786 }
4787 tracehead = trace.prev;
4788 return;
4789 }
4790 void parser_prod___AConcreteMethPropdef___n_doc__eq(val_t self, val_t param0) {
4791 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___n_doc__eq, 2476};
4792 val_t variable0;
4793 val_t variable1;
4794 trace.prev = tracehead; tracehead = &trace;
4795 variable0 = param0;
4796 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ = variable0 /*n*/;
4797 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4798 if (UNTAG_Bool(variable1)) { /*if*/
4799 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
4800 }
4801 tracehead = trace.prev;
4802 return;
4803 }
4804 void parser_prod___AConcreteMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
4805 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___n_kwredef__eq, 2483};
4806 val_t variable0;
4807 val_t variable1;
4808 trace.prev = tracehead; tracehead = &trace;
4809 variable0 = param0;
4810 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ = variable0 /*n*/;
4811 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4812 if (UNTAG_Bool(variable1)) { /*if*/
4813 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
4814 }
4815 tracehead = trace.prev;
4816 return;
4817 }
4818 void parser_prod___AConcreteMethPropdef___n_visibility__eq(val_t self, val_t param0) {
4819 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___n_visibility__eq, 2490};
4820 val_t variable0;
4821 val_t variable1;
4822 trace.prev = tracehead; tracehead = &trace;
4823 variable0 = param0;
4824 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ = variable0 /*n*/;
4825 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4826 if (UNTAG_Bool(variable1)) { /*if*/
4827 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
4828 }
4829 tracehead = trace.prev;
4830 return;
4831 }
4832 void parser_prod___AConcreteMethPropdef___n_kwmeth__eq(val_t self, val_t param0) {
4833 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___n_kwmeth__eq, 2497};
4834 val_t variable0;
4835 val_t variable1;
4836 trace.prev = tracehead; tracehead = &trace;
4837 variable0 = param0;
4838 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ = variable0 /*n*/;
4839 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4840 if (UNTAG_Bool(variable1)) { /*if*/
4841 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwmeth::parent=*/;
4842 }
4843 tracehead = trace.prev;
4844 return;
4845 }
4846 void parser_prod___AConcreteMethPropdef___n_methid__eq(val_t self, val_t param0) {
4847 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___n_methid__eq, 2504};
4848 val_t variable0;
4849 val_t variable1;
4850 trace.prev = tracehead; tracehead = &trace;
4851 variable0 = param0;
4852 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ = variable0 /*n*/;
4853 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4854 if (UNTAG_Bool(variable1)) { /*if*/
4855 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PMethid::parent=*/;
4856 }
4857 tracehead = trace.prev;
4858 return;
4859 }
4860 void parser_prod___AConcreteMethPropdef___n_signature__eq(val_t self, val_t param0) {
4861 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___n_signature__eq, 2511};
4862 val_t variable0;
4863 val_t variable1;
4864 trace.prev = tracehead; tracehead = &trace;
4865 variable0 = param0;
4866 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ = variable0 /*n*/;
4867 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4868 if (UNTAG_Bool(variable1)) { /*if*/
4869 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PSignature::parent=*/;
4870 }
4871 tracehead = trace.prev;
4872 return;
4873 }
4874 void parser_prod___AConcreteMethPropdef___n_block__eq(val_t self, val_t param0) {
4875 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___n_block__eq, 2518};
4876 val_t variable0;
4877 val_t variable1;
4878 trace.prev = tracehead; tracehead = &trace;
4879 variable0 = param0;
4880 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ = variable0 /*n*/;
4881 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
4882 if (UNTAG_Bool(variable1)) { /*if*/
4883 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
4884 }
4885 tracehead = trace.prev;
4886 return;
4887 }
4888 void parser_prod___AConcreteMethPropdef___empty_init(val_t self, int* init_table) {
4889 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___empty_init, 2526};
4890 trace.prev = tracehead; tracehead = &trace;
4891 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
4892 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
4893 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
4894 tracehead = trace.prev;
4895 return;
4896 }
4897 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) {
4898 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef, 2528};
4899 val_t variable0;
4900 val_t variable1;
4901 val_t variable2;
4902 val_t variable3;
4903 val_t variable4;
4904 val_t variable5;
4905 val_t variable6;
4906 val_t variable7;
4907 trace.prev = tracehead; tracehead = &trace;
4908 variable0 = param0;
4909 variable1 = param1;
4910 variable2 = param2;
4911 variable3 = param3;
4912 variable4 = param4;
4913 variable5 = param5;
4914 variable6 = param6;
4915 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
4916 ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
4917 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ = variable0 /*n_doc*/;
4918 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
4919 if (UNTAG_Bool(variable7)) { /*if*/
4920 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
4921 }
4922 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
4923 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
4924 if (UNTAG_Bool(variable7)) { /*if*/
4925 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
4926 }
4927 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ = variable2 /*n_visibility*/;
4928 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
4929 if (UNTAG_Bool(variable7)) { /*if*/
4930 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
4931 }
4932 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ = variable3 /*n_kwmeth*/;
4933 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ == NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
4934 if (UNTAG_Bool(variable7)) { /*if*/
4935 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/, self) /*TKwmeth::parent=*/;
4936 }
4937 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ = variable4 /*n_methid*/;
4938 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ == NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
4939 if (UNTAG_Bool(variable7)) { /*if*/
4940 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/, self) /*PMethid::parent=*/;
4941 }
4942 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ = variable5 /*n_signature*/;
4943 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ == NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
4944 if (UNTAG_Bool(variable7)) { /*if*/
4945 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/, self) /*PSignature::parent=*/;
4946 }
4947 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ = variable6 /*n_block*/;
4948 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_block*/ == NIT_NULL /*null*/) || (( variable6 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_block*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
4949 if (UNTAG_Bool(variable7)) { /*if*/
4950 ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_block*/, self) /*PExpr::parent=*/;
4951 }
4952 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
4953 tracehead = trace.prev;
4954 return;
4955 }
4956 void parser_prod___AConcreteMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
4957 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2568};
4958 val_t variable0;
4959 val_t variable1;
4960 val_t variable2;
4961 trace.prev = tracehead; tracehead = &trace;
4962 variable0 = param0;
4963 variable1 = param1;
4964 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4965 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2570); nit_exit(1);}
4966 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
4967 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
4968 if (UNTAG_Bool(variable2)) { /*if*/
4969 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4970 if (UNTAG_Bool(variable2)) { /*if*/
4971 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4972 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
4973 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2574); nit_exit(1);}
4974 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ = variable1 /*new_child*/;
4975 } else { /*if*/
4976 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ = NIT_NULL /*null*/;
4977 }
4978 goto return_label218;
4979 }
4980 variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
4981 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
4982 if (UNTAG_Bool(variable2)) { /*if*/
4983 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4984 if (UNTAG_Bool(variable2)) { /*if*/
4985 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
4986 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
4987 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2584); nit_exit(1);}
4988 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ = variable1 /*new_child*/;
4989 } else { /*if*/
4990 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
4991 }
4992 goto return_label218;
4993 }
4994 variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
4995 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
4996 if (UNTAG_Bool(variable2)) { /*if*/
4997 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
4998 if (UNTAG_Bool(variable2)) { /*if*/
4999 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5000 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
5001 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2594); nit_exit(1);}
5002 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ = variable1 /*new_child*/;
5003 } else { /*if*/
5004 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ = NIT_NULL /*null*/;
5005 }
5006 goto return_label218;
5007 }
5008 variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
5009 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwmeth::==*/)))));
5010 if (UNTAG_Bool(variable2)) { /*if*/
5011 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5012 if (UNTAG_Bool(variable2)) { /*if*/
5013 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5014 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
5015 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2604); nit_exit(1);}
5016 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ = variable1 /*new_child*/;
5017 } else { /*if*/
5018 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ = NIT_NULL /*null*/;
5019 }
5020 goto return_label218;
5021 }
5022 variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
5023 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PMethid::==*/)))));
5024 if (UNTAG_Bool(variable2)) { /*if*/
5025 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5026 if (UNTAG_Bool(variable2)) { /*if*/
5027 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5028 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
5029 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2614); nit_exit(1);}
5030 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ = variable1 /*new_child*/;
5031 } else { /*if*/
5032 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ = NIT_NULL /*null*/;
5033 }
5034 goto return_label218;
5035 }
5036 variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
5037 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PSignature::==*/)))));
5038 if (UNTAG_Bool(variable2)) { /*if*/
5039 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5040 if (UNTAG_Bool(variable2)) { /*if*/
5041 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5042 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
5043 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2624); nit_exit(1);}
5044 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ = variable1 /*new_child*/;
5045 } else { /*if*/
5046 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ = NIT_NULL /*null*/;
5047 }
5048 goto return_label218;
5049 }
5050 variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
5051 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
5052 if (UNTAG_Bool(variable2)) { /*if*/
5053 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5054 if (UNTAG_Bool(variable2)) { /*if*/
5055 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5056 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
5057 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, 2634); nit_exit(1);}
5058 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ = variable1 /*new_child*/;
5059 } else { /*if*/
5060 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ = NIT_NULL /*null*/;
5061 }
5062 goto return_label218;
5063 }
5064 return_label218: while(false);
5065 tracehead = trace.prev;
5066 return;
5067 }
5068 void parser_prod___AConcreteMethPropdef___visit_all(val_t self, val_t param0) {
5069 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___visit_all, 2643};
5070 val_t variable0;
5071 val_t variable1;
5072 trace.prev = tracehead; tracehead = &trace;
5073 variable0 = param0;
5074 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
5075 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5076 if (UNTAG_Bool(variable1)) { /*if*/
5077 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
5078 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5079 }
5080 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
5081 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5082 if (UNTAG_Bool(variable1)) { /*if*/
5083 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
5084 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5085 }
5086 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
5087 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5088 if (UNTAG_Bool(variable1)) { /*if*/
5089 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
5090 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5091 }
5092 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
5093 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
5094 if (UNTAG_Bool(variable1)) { /*if*/
5095 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
5096 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5097 }
5098 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
5099 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
5100 if (UNTAG_Bool(variable1)) { /*if*/
5101 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
5102 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5103 }
5104 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
5105 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
5106 if (UNTAG_Bool(variable1)) { /*if*/
5107 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
5108 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5109 }
5110 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
5111 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5112 if (UNTAG_Bool(variable1)) { /*if*/
5113 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
5114 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5115 }
5116 tracehead = trace.prev;
5117 return;
5118 }
5119 void parser_prod___AConcreteMethPropdef___visit_all_reverse(val_t self, val_t param0) {
5120 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteMethPropdef___visit_all_reverse, 2668};
5121 val_t variable0;
5122 val_t variable1;
5123 trace.prev = tracehead; tracehead = &trace;
5124 variable0 = param0;
5125 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
5126 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5127 if (UNTAG_Bool(variable1)) { /*if*/
5128 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
5129 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5130 }
5131 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
5132 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5133 if (UNTAG_Bool(variable1)) { /*if*/
5134 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
5135 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5136 }
5137 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
5138 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5139 if (UNTAG_Bool(variable1)) { /*if*/
5140 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
5141 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5142 }
5143 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
5144 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
5145 if (UNTAG_Bool(variable1)) { /*if*/
5146 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
5147 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5148 }
5149 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
5150 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
5151 if (UNTAG_Bool(variable1)) { /*if*/
5152 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
5153 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5154 }
5155 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
5156 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
5157 if (UNTAG_Bool(variable1)) { /*if*/
5158 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
5159 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5160 }
5161 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
5162 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5163 if (UNTAG_Bool(variable1)) { /*if*/
5164 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
5165 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5166 }
5167 tracehead = trace.prev;
5168 return;
5169 }
5170 void parser_prod___AConcreteInitPropdef___n_doc__eq(val_t self, val_t param0) {
5171 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___n_doc__eq, 2694};
5172 val_t variable0;
5173 val_t variable1;
5174 trace.prev = tracehead; tracehead = &trace;
5175 variable0 = param0;
5176 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ = variable0 /*n*/;
5177 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5178 if (UNTAG_Bool(variable1)) { /*if*/
5179 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
5180 }
5181 tracehead = trace.prev;
5182 return;
5183 }
5184 void parser_prod___AConcreteInitPropdef___n_kwredef__eq(val_t self, val_t param0) {
5185 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___n_kwredef__eq, 2701};
5186 val_t variable0;
5187 val_t variable1;
5188 trace.prev = tracehead; tracehead = &trace;
5189 variable0 = param0;
5190 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ = variable0 /*n*/;
5191 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5192 if (UNTAG_Bool(variable1)) { /*if*/
5193 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
5194 }
5195 tracehead = trace.prev;
5196 return;
5197 }
5198 void parser_prod___AConcreteInitPropdef___n_visibility__eq(val_t self, val_t param0) {
5199 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___n_visibility__eq, 2708};
5200 val_t variable0;
5201 val_t variable1;
5202 trace.prev = tracehead; tracehead = &trace;
5203 variable0 = param0;
5204 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ = variable0 /*n*/;
5205 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5206 if (UNTAG_Bool(variable1)) { /*if*/
5207 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
5208 }
5209 tracehead = trace.prev;
5210 return;
5211 }
5212 void parser_prod___AConcreteInitPropdef___n_kwinit__eq(val_t self, val_t param0) {
5213 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___n_kwinit__eq, 2715};
5214 val_t variable0;
5215 val_t variable1;
5216 trace.prev = tracehead; tracehead = &trace;
5217 variable0 = param0;
5218 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ = variable0 /*n*/;
5219 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
5220 if (UNTAG_Bool(variable1)) { /*if*/
5221 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwinit::parent=*/;
5222 }
5223 tracehead = trace.prev;
5224 return;
5225 }
5226 void parser_prod___AConcreteInitPropdef___n_methid__eq(val_t self, val_t param0) {
5227 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___n_methid__eq, 2722};
5228 val_t variable0;
5229 val_t variable1;
5230 trace.prev = tracehead; tracehead = &trace;
5231 variable0 = param0;
5232 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ = variable0 /*n*/;
5233 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
5234 if (UNTAG_Bool(variable1)) { /*if*/
5235 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PMethid::parent=*/;
5236 }
5237 tracehead = trace.prev;
5238 return;
5239 }
5240 void parser_prod___AConcreteInitPropdef___n_signature__eq(val_t self, val_t param0) {
5241 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___n_signature__eq, 2729};
5242 val_t variable0;
5243 val_t variable1;
5244 trace.prev = tracehead; tracehead = &trace;
5245 variable0 = param0;
5246 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ = variable0 /*n*/;
5247 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
5248 if (UNTAG_Bool(variable1)) { /*if*/
5249 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PSignature::parent=*/;
5250 }
5251 tracehead = trace.prev;
5252 return;
5253 }
5254 void parser_prod___AConcreteInitPropdef___n_block__eq(val_t self, val_t param0) {
5255 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___n_block__eq, 2736};
5256 val_t variable0;
5257 val_t variable1;
5258 trace.prev = tracehead; tracehead = &trace;
5259 variable0 = param0;
5260 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ = variable0 /*n*/;
5261 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5262 if (UNTAG_Bool(variable1)) { /*if*/
5263 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
5264 }
5265 tracehead = trace.prev;
5266 return;
5267 }
5268 void parser_prod___AConcreteInitPropdef___empty_init(val_t self, int* init_table) {
5269 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___empty_init, 2744};
5270 trace.prev = tracehead; tracehead = &trace;
5271 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
5272 ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
5273 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
5274 tracehead = trace.prev;
5275 return;
5276 }
5277 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) {
5278 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef, 2746};
5279 val_t variable0;
5280 val_t variable1;
5281 val_t variable2;
5282 val_t variable3;
5283 val_t variable4;
5284 val_t variable5;
5285 val_t variable6;
5286 val_t variable7;
5287 trace.prev = tracehead; tracehead = &trace;
5288 variable0 = param0;
5289 variable1 = param1;
5290 variable2 = param2;
5291 variable3 = param3;
5292 variable4 = param4;
5293 variable5 = param5;
5294 variable6 = param6;
5295 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
5296 ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
5297 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ = variable0 /*n_doc*/;
5298 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5299 if (UNTAG_Bool(variable7)) { /*if*/
5300 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
5301 }
5302 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
5303 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5304 if (UNTAG_Bool(variable7)) { /*if*/
5305 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
5306 }
5307 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ = variable2 /*n_visibility*/;
5308 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5309 if (UNTAG_Bool(variable7)) { /*if*/
5310 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
5311 }
5312 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ = variable3 /*n_kwinit*/;
5313 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwinit*/ == NIT_NULL /*null*/) || (( variable3 /*n_kwinit*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwinit*/, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
5314 if (UNTAG_Bool(variable7)) { /*if*/
5315 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwinit*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwinit*/, self) /*TKwinit::parent=*/;
5316 }
5317 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ = variable4 /*n_methid*/;
5318 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ == NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/, NIT_NULL /*null*/) /*PMethid::==*/)))))));
5319 if (UNTAG_Bool(variable7)) { /*if*/
5320 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/, self) /*PMethid::parent=*/;
5321 }
5322 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ = variable5 /*n_signature*/;
5323 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ == NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/, NIT_NULL /*null*/) /*PSignature::==*/)))))));
5324 if (UNTAG_Bool(variable7)) { /*if*/
5325 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/, self) /*PSignature::parent=*/;
5326 }
5327 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ = variable6 /*n_block*/;
5328 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_block*/ == NIT_NULL /*null*/) || (( variable6 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_block*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5329 if (UNTAG_Bool(variable7)) { /*if*/
5330 ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_block*/, self) /*PExpr::parent=*/;
5331 }
5332 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
5333 tracehead = trace.prev;
5334 return;
5335 }
5336 void parser_prod___AConcreteInitPropdef___replace_child(val_t self, val_t param0, val_t param1) {
5337 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2786};
5338 val_t variable0;
5339 val_t variable1;
5340 val_t variable2;
5341 trace.prev = tracehead; tracehead = &trace;
5342 variable0 = param0;
5343 variable1 = param1;
5344 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5345 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2788); nit_exit(1);}
5346 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
5347 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
5348 if (UNTAG_Bool(variable2)) { /*if*/
5349 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5350 if (UNTAG_Bool(variable2)) { /*if*/
5351 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5352 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
5353 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2792); nit_exit(1);}
5354 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ = variable1 /*new_child*/;
5355 } else { /*if*/
5356 ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ = NIT_NULL /*null*/;
5357 }
5358 goto return_label230;
5359 }
5360 variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
5361 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
5362 if (UNTAG_Bool(variable2)) { /*if*/
5363 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5364 if (UNTAG_Bool(variable2)) { /*if*/
5365 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5366 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5367 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2802); nit_exit(1);}
5368 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ = variable1 /*new_child*/;
5369 } else { /*if*/
5370 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
5371 }
5372 goto return_label230;
5373 }
5374 variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
5375 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
5376 if (UNTAG_Bool(variable2)) { /*if*/
5377 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5378 if (UNTAG_Bool(variable2)) { /*if*/
5379 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5380 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
5381 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2812); nit_exit(1);}
5382 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ = variable1 /*new_child*/;
5383 } else { /*if*/
5384 ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ = NIT_NULL /*null*/;
5385 }
5386 goto return_label230;
5387 }
5388 variable2 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
5389 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwinit::==*/)))));
5390 if (UNTAG_Bool(variable2)) { /*if*/
5391 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5392 if (UNTAG_Bool(variable2)) { /*if*/
5393 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5394 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
5395 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2822); nit_exit(1);}
5396 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ = variable1 /*new_child*/;
5397 } else { /*if*/
5398 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ = NIT_NULL /*null*/;
5399 }
5400 goto return_label230;
5401 }
5402 variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
5403 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PMethid::==*/)))));
5404 if (UNTAG_Bool(variable2)) { /*if*/
5405 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5406 if (UNTAG_Bool(variable2)) { /*if*/
5407 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5408 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
5409 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2832); nit_exit(1);}
5410 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ = variable1 /*new_child*/;
5411 } else { /*if*/
5412 ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ = NIT_NULL /*null*/;
5413 }
5414 goto return_label230;
5415 }
5416 variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
5417 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PSignature::==*/)))));
5418 if (UNTAG_Bool(variable2)) { /*if*/
5419 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5420 if (UNTAG_Bool(variable2)) { /*if*/
5421 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5422 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
5423 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2842); nit_exit(1);}
5424 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ = variable1 /*new_child*/;
5425 } else { /*if*/
5426 ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ = NIT_NULL /*null*/;
5427 }
5428 goto return_label230;
5429 }
5430 variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
5431 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
5432 if (UNTAG_Bool(variable2)) { /*if*/
5433 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5434 if (UNTAG_Bool(variable2)) { /*if*/
5435 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5436 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
5437 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, 2852); nit_exit(1);}
5438 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ = variable1 /*new_child*/;
5439 } else { /*if*/
5440 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ = NIT_NULL /*null*/;
5441 }
5442 goto return_label230;
5443 }
5444 return_label230: while(false);
5445 tracehead = trace.prev;
5446 return;
5447 }
5448 void parser_prod___AConcreteInitPropdef___visit_all(val_t self, val_t param0) {
5449 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___visit_all, 2861};
5450 val_t variable0;
5451 val_t variable1;
5452 trace.prev = tracehead; tracehead = &trace;
5453 variable0 = param0;
5454 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
5455 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5456 if (UNTAG_Bool(variable1)) { /*if*/
5457 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
5458 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5459 }
5460 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
5461 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5462 if (UNTAG_Bool(variable1)) { /*if*/
5463 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
5464 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5465 }
5466 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
5467 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5468 if (UNTAG_Bool(variable1)) { /*if*/
5469 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
5470 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5471 }
5472 variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
5473 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
5474 if (UNTAG_Bool(variable1)) { /*if*/
5475 variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
5476 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5477 }
5478 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
5479 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
5480 if (UNTAG_Bool(variable1)) { /*if*/
5481 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
5482 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5483 }
5484 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
5485 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
5486 if (UNTAG_Bool(variable1)) { /*if*/
5487 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
5488 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5489 }
5490 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
5491 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5492 if (UNTAG_Bool(variable1)) { /*if*/
5493 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
5494 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5495 }
5496 tracehead = trace.prev;
5497 return;
5498 }
5499 void parser_prod___AConcreteInitPropdef___visit_all_reverse(val_t self, val_t param0) {
5500 struct trace_t trace = {NULL, LOCATE_parser_prod___AConcreteInitPropdef___visit_all_reverse, 2886};
5501 val_t variable0;
5502 val_t variable1;
5503 trace.prev = tracehead; tracehead = &trace;
5504 variable0 = param0;
5505 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
5506 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5507 if (UNTAG_Bool(variable1)) { /*if*/
5508 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
5509 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5510 }
5511 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
5512 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5513 if (UNTAG_Bool(variable1)) { /*if*/
5514 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
5515 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5516 }
5517 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
5518 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5519 if (UNTAG_Bool(variable1)) { /*if*/
5520 variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
5521 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5522 }
5523 variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
5524 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
5525 if (UNTAG_Bool(variable1)) { /*if*/
5526 variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
5527 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5528 }
5529 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
5530 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PMethid::==*/)))))));
5531 if (UNTAG_Bool(variable1)) { /*if*/
5532 variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
5533 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5534 }
5535 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
5536 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PSignature::==*/)))))));
5537 if (UNTAG_Bool(variable1)) { /*if*/
5538 variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
5539 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5540 }
5541 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
5542 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5543 if (UNTAG_Bool(variable1)) { /*if*/
5544 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
5545 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5546 }
5547 tracehead = trace.prev;
5548 return;
5549 }
5550 void parser_prod___AMainMethPropdef___n_kwredef__eq(val_t self, val_t param0) {
5551 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainMethPropdef___n_kwredef__eq, 2912};
5552 val_t variable0;
5553 val_t variable1;
5554 trace.prev = tracehead; tracehead = &trace;
5555 variable0 = param0;
5556 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ = variable0 /*n*/;
5557 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5558 if (UNTAG_Bool(variable1)) { /*if*/
5559 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
5560 }
5561 tracehead = trace.prev;
5562 return;
5563 }
5564 void parser_prod___AMainMethPropdef___n_block__eq(val_t self, val_t param0) {
5565 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainMethPropdef___n_block__eq, 2919};
5566 val_t variable0;
5567 val_t variable1;
5568 trace.prev = tracehead; tracehead = &trace;
5569 variable0 = param0;
5570 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ = variable0 /*n*/;
5571 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5572 if (UNTAG_Bool(variable1)) { /*if*/
5573 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
5574 }
5575 tracehead = trace.prev;
5576 return;
5577 }
5578 void parser_prod___AMainMethPropdef___empty_init(val_t self, int* init_table) {
5579 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainMethPropdef___empty_init, 2927};
5580 trace.prev = tracehead; tracehead = &trace;
5581 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
5582 ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
5583 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
5584 tracehead = trace.prev;
5585 return;
5586 }
5587 void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t self, val_t param0, val_t param1, int* init_table) {
5588 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainMethPropdef___init_amainmethpropdef, 2929};
5589 val_t variable0;
5590 val_t variable1;
5591 val_t variable2;
5592 trace.prev = tracehead; tracehead = &trace;
5593 variable0 = param0;
5594 variable1 = param1;
5595 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
5596 ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
5597 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ = variable0 /*n_kwredef*/;
5598 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5599 if (UNTAG_Bool(variable2)) { /*if*/
5600 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwredef*/, self) /*TKwredef::parent=*/;
5601 }
5602 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ = variable1 /*n_block*/;
5603 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_block*/ == NIT_NULL /*null*/) || (( variable1 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_block*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5604 if (UNTAG_Bool(variable2)) { /*if*/
5605 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_block*/, self) /*PExpr::parent=*/;
5606 }
5607 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
5608 tracehead = trace.prev;
5609 return;
5610 }
5611 void parser_prod___AMainMethPropdef___replace_child(val_t self, val_t param0, val_t param1) {
5612 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainMethPropdef___replace_child, 2944};
5613 val_t variable0;
5614 val_t variable1;
5615 val_t variable2;
5616 trace.prev = tracehead; tracehead = &trace;
5617 variable0 = param0;
5618 variable1 = param1;
5619 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5620 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMainMethPropdef___replace_child, 2946); nit_exit(1);}
5621 variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
5622 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
5623 if (UNTAG_Bool(variable2)) { /*if*/
5624 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5625 if (UNTAG_Bool(variable2)) { /*if*/
5626 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5627 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5628 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMainMethPropdef___replace_child, 2950); nit_exit(1);}
5629 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ = variable1 /*new_child*/;
5630 } else { /*if*/
5631 ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ = NIT_NULL /*null*/;
5632 }
5633 goto return_label237;
5634 }
5635 variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
5636 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
5637 if (UNTAG_Bool(variable2)) { /*if*/
5638 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5639 if (UNTAG_Bool(variable2)) { /*if*/
5640 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5641 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
5642 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMainMethPropdef___replace_child, 2960); nit_exit(1);}
5643 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ = variable1 /*new_child*/;
5644 } else { /*if*/
5645 ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ = NIT_NULL /*null*/;
5646 }
5647 goto return_label237;
5648 }
5649 return_label237: while(false);
5650 tracehead = trace.prev;
5651 return;
5652 }
5653 void parser_prod___AMainMethPropdef___visit_all(val_t self, val_t param0) {
5654 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainMethPropdef___visit_all, 2969};
5655 val_t variable0;
5656 val_t variable1;
5657 trace.prev = tracehead; tracehead = &trace;
5658 variable0 = param0;
5659 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
5660 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5661 if (UNTAG_Bool(variable1)) { /*if*/
5662 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
5663 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5664 }
5665 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
5666 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5667 if (UNTAG_Bool(variable1)) { /*if*/
5668 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
5669 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5670 }
5671 tracehead = trace.prev;
5672 return;
5673 }
5674 void parser_prod___AMainMethPropdef___visit_all_reverse(val_t self, val_t param0) {
5675 struct trace_t trace = {NULL, LOCATE_parser_prod___AMainMethPropdef___visit_all_reverse, 2979};
5676 val_t variable0;
5677 val_t variable1;
5678 trace.prev = tracehead; tracehead = &trace;
5679 variable0 = param0;
5680 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
5681 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5682 if (UNTAG_Bool(variable1)) { /*if*/
5683 variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
5684 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5685 }
5686 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
5687 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
5688 if (UNTAG_Bool(variable1)) { /*if*/
5689 variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
5690 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5691 }
5692 tracehead = trace.prev;
5693 return;
5694 }
5695 void parser_prod___ATypePropdef___n_doc__eq(val_t self, val_t param0) {
5696 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___n_doc__eq, 2990};
5697 val_t variable0;
5698 val_t variable1;
5699 trace.prev = tracehead; tracehead = &trace;
5700 variable0 = param0;
5701 ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ = variable0 /*n*/;
5702 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5703 if (UNTAG_Bool(variable1)) { /*if*/
5704 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PDoc::parent=*/;
5705 }
5706 tracehead = trace.prev;
5707 return;
5708 }
5709 void parser_prod___ATypePropdef___n_kwredef__eq(val_t self, val_t param0) {
5710 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___n_kwredef__eq, 2997};
5711 val_t variable0;
5712 val_t variable1;
5713 trace.prev = tracehead; tracehead = &trace;
5714 variable0 = param0;
5715 ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ = variable0 /*n*/;
5716 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5717 if (UNTAG_Bool(variable1)) { /*if*/
5718 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
5719 }
5720 tracehead = trace.prev;
5721 return;
5722 }
5723 void parser_prod___ATypePropdef___n_visibility__eq(val_t self, val_t param0) {
5724 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___n_visibility__eq, 3004};
5725 val_t variable0;
5726 val_t variable1;
5727 trace.prev = tracehead; tracehead = &trace;
5728 variable0 = param0;
5729 ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ = variable0 /*n*/;
5730 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5731 if (UNTAG_Bool(variable1)) { /*if*/
5732 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PVisibility::parent=*/;
5733 }
5734 tracehead = trace.prev;
5735 return;
5736 }
5737 void parser_prod___ATypePropdef___n_kwtype__eq(val_t self, val_t param0) {
5738 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___n_kwtype__eq, 3011};
5739 val_t variable0;
5740 val_t variable1;
5741 trace.prev = tracehead; tracehead = &trace;
5742 variable0 = param0;
5743 ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ = variable0 /*n*/;
5744 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwtype::==*/)))))));
5745 if (UNTAG_Bool(variable1)) { /*if*/
5746 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwtype::parent=*/;
5747 }
5748 tracehead = trace.prev;
5749 return;
5750 }
5751 void parser_prod___ATypePropdef___n_id__eq(val_t self, val_t param0) {
5752 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___n_id__eq, 3018};
5753 val_t variable0;
5754 val_t variable1;
5755 trace.prev = tracehead; tracehead = &trace;
5756 variable0 = param0;
5757 ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ = variable0 /*n*/;
5758 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
5759 if (UNTAG_Bool(variable1)) { /*if*/
5760 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TClassid::parent=*/;
5761 }
5762 tracehead = trace.prev;
5763 return;
5764 }
5765 void parser_prod___ATypePropdef___n_type__eq(val_t self, val_t param0) {
5766 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___n_type__eq, 3025};
5767 val_t variable0;
5768 val_t variable1;
5769 trace.prev = tracehead; tracehead = &trace;
5770 variable0 = param0;
5771 ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ = variable0 /*n*/;
5772 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
5773 if (UNTAG_Bool(variable1)) { /*if*/
5774 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
5775 }
5776 tracehead = trace.prev;
5777 return;
5778 }
5779 void parser_prod___ATypePropdef___empty_init(val_t self, int* init_table) {
5780 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___empty_init, 3033};
5781 trace.prev = tracehead; tracehead = &trace;
5782 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
5783 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
5784 tracehead = trace.prev;
5785 return;
5786 }
5787 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) {
5788 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___init_atypepropdef, 3035};
5789 val_t variable0;
5790 val_t variable1;
5791 val_t variable2;
5792 val_t variable3;
5793 val_t variable4;
5794 val_t variable5;
5795 val_t variable6;
5796 trace.prev = tracehead; tracehead = &trace;
5797 variable0 = param0;
5798 variable1 = param1;
5799 variable2 = param2;
5800 variable3 = param3;
5801 variable4 = param4;
5802 variable5 = param5;
5803 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
5804 ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ = variable0 /*n_doc*/;
5805 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ == NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5806 if (UNTAG_Bool(variable6)) { /*if*/
5807 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/, self) /*PDoc::parent=*/;
5808 }
5809 ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ = variable1 /*n_kwredef*/;
5810 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5811 if (UNTAG_Bool(variable6)) { /*if*/
5812 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/, self) /*TKwredef::parent=*/;
5813 }
5814 ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ = variable2 /*n_visibility*/;
5815 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ == NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5816 if (UNTAG_Bool(variable6)) { /*if*/
5817 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/, self) /*PVisibility::parent=*/;
5818 }
5819 ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ = variable3 /*n_kwtype*/;
5820 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwtype*/ == NIT_NULL /*null*/) || (( variable3 /*n_kwtype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwtype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwtype*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwtype*/, NIT_NULL /*null*/) /*TKwtype::==*/)))))));
5821 if (UNTAG_Bool(variable6)) { /*if*/
5822 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwtype*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwtype*/, self) /*TKwtype::parent=*/;
5823 }
5824 ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ = variable4 /*n_id*/;
5825 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_id*/ == NIT_NULL /*null*/) || (( variable4 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_id*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
5826 if (UNTAG_Bool(variable6)) { /*if*/
5827 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_id*/, self) /*TClassid::parent=*/;
5828 }
5829 ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ = variable5 /*n_type*/;
5830 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_type*/ == NIT_NULL /*null*/) || (( variable5 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
5831 if (UNTAG_Bool(variable6)) { /*if*/
5832 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_type*/, self) /*PType::parent=*/;
5833 }
5834 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
5835 tracehead = trace.prev;
5836 return;
5837 }
5838 void parser_prod___ATypePropdef___replace_child(val_t self, val_t param0, val_t param1) {
5839 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___replace_child, 3070};
5840 val_t variable0;
5841 val_t variable1;
5842 val_t variable2;
5843 trace.prev = tracehead; tracehead = &trace;
5844 variable0 = param0;
5845 variable1 = param1;
5846 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5847 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATypePropdef___replace_child, 3072); nit_exit(1);}
5848 variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
5849 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PDoc::==*/)))));
5850 if (UNTAG_Bool(variable2)) { /*if*/
5851 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5852 if (UNTAG_Bool(variable2)) { /*if*/
5853 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5854 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
5855 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATypePropdef___replace_child, 3076); nit_exit(1);}
5856 ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ = variable1 /*new_child*/;
5857 } else { /*if*/
5858 ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ = NIT_NULL /*null*/;
5859 }
5860 goto return_label248;
5861 }
5862 variable2 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
5863 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
5864 if (UNTAG_Bool(variable2)) { /*if*/
5865 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5866 if (UNTAG_Bool(variable2)) { /*if*/
5867 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5868 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5869 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATypePropdef___replace_child, 3086); nit_exit(1);}
5870 ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ = variable1 /*new_child*/;
5871 } else { /*if*/
5872 ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ = NIT_NULL /*null*/;
5873 }
5874 goto return_label248;
5875 }
5876 variable2 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
5877 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PVisibility::==*/)))));
5878 if (UNTAG_Bool(variable2)) { /*if*/
5879 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5880 if (UNTAG_Bool(variable2)) { /*if*/
5881 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5882 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
5883 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATypePropdef___replace_child, 3096); nit_exit(1);}
5884 ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ = variable1 /*new_child*/;
5885 } else { /*if*/
5886 ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ = NIT_NULL /*null*/;
5887 }
5888 goto return_label248;
5889 }
5890 variable2 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
5891 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwtype::==*/)))));
5892 if (UNTAG_Bool(variable2)) { /*if*/
5893 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5894 if (UNTAG_Bool(variable2)) { /*if*/
5895 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5896 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
5897 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATypePropdef___replace_child, 3106); nit_exit(1);}
5898 ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ = variable1 /*new_child*/;
5899 } else { /*if*/
5900 ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ = NIT_NULL /*null*/;
5901 }
5902 goto return_label248;
5903 }
5904 variable2 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
5905 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TClassid::==*/)))));
5906 if (UNTAG_Bool(variable2)) { /*if*/
5907 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5908 if (UNTAG_Bool(variable2)) { /*if*/
5909 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5910 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
5911 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATypePropdef___replace_child, 3116); nit_exit(1);}
5912 ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ = variable1 /*new_child*/;
5913 } else { /*if*/
5914 ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ = NIT_NULL /*null*/;
5915 }
5916 goto return_label248;
5917 }
5918 variable2 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
5919 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
5920 if (UNTAG_Bool(variable2)) { /*if*/
5921 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
5922 if (UNTAG_Bool(variable2)) { /*if*/
5923 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
5924 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
5925 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATypePropdef___replace_child, 3126); nit_exit(1);}
5926 ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ = variable1 /*new_child*/;
5927 } else { /*if*/
5928 ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ = NIT_NULL /*null*/;
5929 }
5930 goto return_label248;
5931 }
5932 return_label248: while(false);
5933 tracehead = trace.prev;
5934 return;
5935 }
5936 void parser_prod___ATypePropdef___visit_all(val_t self, val_t param0) {
5937 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___visit_all, 3135};
5938 val_t variable0;
5939 val_t variable1;
5940 trace.prev = tracehead; tracehead = &trace;
5941 variable0 = param0;
5942 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
5943 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5944 if (UNTAG_Bool(variable1)) { /*if*/
5945 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
5946 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5947 }
5948 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
5949 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5950 if (UNTAG_Bool(variable1)) { /*if*/
5951 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
5952 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5953 }
5954 variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
5955 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
5956 if (UNTAG_Bool(variable1)) { /*if*/
5957 variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
5958 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5959 }
5960 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
5961 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwtype::==*/)))))));
5962 if (UNTAG_Bool(variable1)) { /*if*/
5963 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
5964 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5965 }
5966 variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
5967 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
5968 if (UNTAG_Bool(variable1)) { /*if*/
5969 variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
5970 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5971 }
5972 variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
5973 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
5974 if (UNTAG_Bool(variable1)) { /*if*/
5975 variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
5976 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5977 }
5978 tracehead = trace.prev;
5979 return;
5980 }
5981 void parser_prod___ATypePropdef___visit_all_reverse(val_t self, val_t param0) {
5982 struct trace_t trace = {NULL, LOCATE_parser_prod___ATypePropdef___visit_all_reverse, 3157};
5983 val_t variable0;
5984 val_t variable1;
5985 trace.prev = tracehead; tracehead = &trace;
5986 variable0 = param0;
5987 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
5988 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PDoc::==*/)))))));
5989 if (UNTAG_Bool(variable1)) { /*if*/
5990 variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
5991 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5992 }
5993 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
5994 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
5995 if (UNTAG_Bool(variable1)) { /*if*/
5996 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
5997 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
5998 }
5999 variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
6000 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PVisibility::==*/)))))));
6001 if (UNTAG_Bool(variable1)) { /*if*/
6002 variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
6003 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6004 }
6005 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
6006 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwtype::==*/)))))));
6007 if (UNTAG_Bool(variable1)) { /*if*/
6008 variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
6009 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6010 }
6011 variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
6012 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
6013 if (UNTAG_Bool(variable1)) { /*if*/
6014 variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
6015 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6016 }
6017 variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
6018 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
6019 if (UNTAG_Bool(variable1)) { /*if*/
6020 variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
6021 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6022 }
6023 tracehead = trace.prev;
6024 return;
6025 }
6026 void parser_prod___AReadAble___n_kwredef__eq(val_t self, val_t param0) {
6027 struct trace_t trace = {NULL, LOCATE_parser_prod___AReadAble___n_kwredef__eq, 3180};
6028 val_t variable0;
6029 val_t variable1;
6030 trace.prev = tracehead; tracehead = &trace;
6031 variable0 = param0;
6032 ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ = variable0 /*n*/;
6033 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6034 if (UNTAG_Bool(variable1)) { /*if*/
6035 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
6036 }
6037 tracehead = trace.prev;
6038 return;
6039 }
6040 void parser_prod___AReadAble___n_kwreadable__eq(val_t self, val_t param0) {
6041 struct trace_t trace = {NULL, LOCATE_parser_prod___AReadAble___n_kwreadable__eq, 3187};
6042 val_t variable0;
6043 val_t variable1;
6044 trace.prev = tracehead; tracehead = &trace;
6045 variable0 = param0;
6046 ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ = variable0 /*n*/;
6047 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
6048 if (UNTAG_Bool(variable1)) { /*if*/
6049 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwreadable::parent=*/;
6050 }
6051 tracehead = trace.prev;
6052 return;
6053 }
6054 void parser_prod___AReadAble___empty_init(val_t self, int* init_table) {
6055 struct trace_t trace = {NULL, LOCATE_parser_prod___AReadAble___empty_init, 3195};
6056 trace.prev = tracehead; tracehead = &trace;
6057 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i]) return;
6058 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i] = 1;
6059 tracehead = trace.prev;
6060 return;
6061 }
6062 void parser_prod___AReadAble___init_areadable(val_t self, val_t param0, val_t param1, int* init_table) {
6063 struct trace_t trace = {NULL, LOCATE_parser_prod___AReadAble___init_areadable, 3197};
6064 val_t variable0;
6065 val_t variable1;
6066 val_t variable2;
6067 trace.prev = tracehead; tracehead = &trace;
6068 variable0 = param0;
6069 variable1 = param1;
6070 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i]) return;
6071 ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ = variable0 /*n_kwredef*/;
6072 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6073 if (UNTAG_Bool(variable2)) { /*if*/
6074 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwredef*/, self) /*TKwredef::parent=*/;
6075 }
6076 ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ = variable1 /*n_kwreadable*/;
6077 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwreadable*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwreadable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwreadable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwreadable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwreadable*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwreadable*/, NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
6078 if (UNTAG_Bool(variable2)) { /*if*/
6079 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwreadable*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwreadable*/, self) /*TKwreadable::parent=*/;
6080 }
6081 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i] = 1;
6082 tracehead = trace.prev;
6083 return;
6084 }
6085 void parser_prod___AReadAble___replace_child(val_t self, val_t param0, val_t param1) {
6086 struct trace_t trace = {NULL, LOCATE_parser_prod___AReadAble___replace_child, 3212};
6087 val_t variable0;
6088 val_t variable1;
6089 val_t variable2;
6090 trace.prev = tracehead; tracehead = &trace;
6091 variable0 = param0;
6092 variable1 = param1;
6093 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6094 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AReadAble___replace_child, 3214); nit_exit(1);}
6095 variable2 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
6096 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
6097 if (UNTAG_Bool(variable2)) { /*if*/
6098 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6099 if (UNTAG_Bool(variable2)) { /*if*/
6100 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6101 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6102 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AReadAble___replace_child, 3218); nit_exit(1);}
6103 ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ = variable1 /*new_child*/;
6104 } else { /*if*/
6105 ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ = NIT_NULL /*null*/;
6106 }
6107 goto return_label255;
6108 }
6109 variable2 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
6110 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwreadable::==*/)))));
6111 if (UNTAG_Bool(variable2)) { /*if*/
6112 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6113 if (UNTAG_Bool(variable2)) { /*if*/
6114 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6115 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
6116 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AReadAble___replace_child, 3228); nit_exit(1);}
6117 ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ = variable1 /*new_child*/;
6118 } else { /*if*/
6119 ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ = NIT_NULL /*null*/;
6120 }
6121 goto return_label255;
6122 }
6123 return_label255: while(false);
6124 tracehead = trace.prev;
6125 return;
6126 }
6127 void parser_prod___AReadAble___visit_all(val_t self, val_t param0) {
6128 struct trace_t trace = {NULL, LOCATE_parser_prod___AReadAble___visit_all, 3237};
6129 val_t variable0;
6130 val_t variable1;
6131 trace.prev = tracehead; tracehead = &trace;
6132 variable0 = param0;
6133 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
6134 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6135 if (UNTAG_Bool(variable1)) { /*if*/
6136 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
6137 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6138 }
6139 variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
6140 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
6141 if (UNTAG_Bool(variable1)) { /*if*/
6142 variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
6143 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6144 }
6145 tracehead = trace.prev;
6146 return;
6147 }
6148 void parser_prod___AReadAble___visit_all_reverse(val_t self, val_t param0) {
6149 struct trace_t trace = {NULL, LOCATE_parser_prod___AReadAble___visit_all_reverse, 3247};
6150 val_t variable0;
6151 val_t variable1;
6152 trace.prev = tracehead; tracehead = &trace;
6153 variable0 = param0;
6154 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
6155 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6156 if (UNTAG_Bool(variable1)) { /*if*/
6157 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
6158 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6159 }
6160 variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
6161 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
6162 if (UNTAG_Bool(variable1)) { /*if*/
6163 variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
6164 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6165 }
6166 tracehead = trace.prev;
6167 return;
6168 }
6169 void parser_prod___AWriteAble___n_kwredef__eq(val_t self, val_t param0) {
6170 struct trace_t trace = {NULL, LOCATE_parser_prod___AWriteAble___n_kwredef__eq, 3258};
6171 val_t variable0;
6172 val_t variable1;
6173 trace.prev = tracehead; tracehead = &trace;
6174 variable0 = param0;
6175 ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ = variable0 /*n*/;
6176 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6177 if (UNTAG_Bool(variable1)) { /*if*/
6178 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwredef::parent=*/;
6179 }
6180 tracehead = trace.prev;
6181 return;
6182 }
6183 void parser_prod___AWriteAble___n_kwwritable__eq(val_t self, val_t param0) {
6184 struct trace_t trace = {NULL, LOCATE_parser_prod___AWriteAble___n_kwwritable__eq, 3265};
6185 val_t variable0;
6186 val_t variable1;
6187 trace.prev = tracehead; tracehead = &trace;
6188 variable0 = param0;
6189 ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ = variable0 /*n*/;
6190 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
6191 if (UNTAG_Bool(variable1)) { /*if*/
6192 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwwritable::parent=*/;
6193 }
6194 tracehead = trace.prev;
6195 return;
6196 }
6197 void parser_prod___AWriteAble___empty_init(val_t self, int* init_table) {
6198 struct trace_t trace = {NULL, LOCATE_parser_prod___AWriteAble___empty_init, 3273};
6199 trace.prev = tracehead; tracehead = &trace;
6200 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i]) return;
6201 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
6202 tracehead = trace.prev;
6203 return;
6204 }
6205 void parser_prod___AWriteAble___init_awriteable(val_t self, val_t param0, val_t param1, int* init_table) {
6206 struct trace_t trace = {NULL, LOCATE_parser_prod___AWriteAble___init_awriteable, 3275};
6207 val_t variable0;
6208 val_t variable1;
6209 val_t variable2;
6210 trace.prev = tracehead; tracehead = &trace;
6211 variable0 = param0;
6212 variable1 = param1;
6213 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i]) return;
6214 ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ = variable0 /*n_kwredef*/;
6215 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwredef*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwredef*/, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6216 if (UNTAG_Bool(variable2)) { /*if*/
6217 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwredef*/, self) /*TKwredef::parent=*/;
6218 }
6219 ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ = variable1 /*n_kwwritable*/;
6220 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwwritable*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwwritable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwwritable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwwritable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwwritable*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwwritable*/, NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
6221 if (UNTAG_Bool(variable2)) { /*if*/
6222 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwwritable*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwwritable*/, self) /*TKwwritable::parent=*/;
6223 }
6224 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
6225 tracehead = trace.prev;
6226 return;
6227 }
6228 void parser_prod___AWriteAble___replace_child(val_t self, val_t param0, val_t param1) {
6229 struct trace_t trace = {NULL, LOCATE_parser_prod___AWriteAble___replace_child, 3290};
6230 val_t variable0;
6231 val_t variable1;
6232 val_t variable2;
6233 trace.prev = tracehead; tracehead = &trace;
6234 variable0 = param0;
6235 variable1 = param1;
6236 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6237 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWriteAble___replace_child, 3292); nit_exit(1);}
6238 variable2 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
6239 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwredef::==*/)))));
6240 if (UNTAG_Bool(variable2)) { /*if*/
6241 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6242 if (UNTAG_Bool(variable2)) { /*if*/
6243 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6244 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6245 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWriteAble___replace_child, 3296); nit_exit(1);}
6246 ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ = variable1 /*new_child*/;
6247 } else { /*if*/
6248 ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ = NIT_NULL /*null*/;
6249 }
6250 goto return_label262;
6251 }
6252 variable2 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
6253 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwwritable::==*/)))));
6254 if (UNTAG_Bool(variable2)) { /*if*/
6255 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6256 if (UNTAG_Bool(variable2)) { /*if*/
6257 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6258 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
6259 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWriteAble___replace_child, 3306); nit_exit(1);}
6260 ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ = variable1 /*new_child*/;
6261 } else { /*if*/
6262 ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ = NIT_NULL /*null*/;
6263 }
6264 goto return_label262;
6265 }
6266 return_label262: while(false);
6267 tracehead = trace.prev;
6268 return;
6269 }
6270 void parser_prod___AWriteAble___visit_all(val_t self, val_t param0) {
6271 struct trace_t trace = {NULL, LOCATE_parser_prod___AWriteAble___visit_all, 3315};
6272 val_t variable0;
6273 val_t variable1;
6274 trace.prev = tracehead; tracehead = &trace;
6275 variable0 = param0;
6276 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
6277 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6278 if (UNTAG_Bool(variable1)) { /*if*/
6279 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
6280 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6281 }
6282 variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
6283 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
6284 if (UNTAG_Bool(variable1)) { /*if*/
6285 variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
6286 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6287 }
6288 tracehead = trace.prev;
6289 return;
6290 }
6291 void parser_prod___AWriteAble___visit_all_reverse(val_t self, val_t param0) {
6292 struct trace_t trace = {NULL, LOCATE_parser_prod___AWriteAble___visit_all_reverse, 3325};
6293 val_t variable0;
6294 val_t variable1;
6295 trace.prev = tracehead; tracehead = &trace;
6296 variable0 = param0;
6297 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
6298 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwredef::==*/)))))));
6299 if (UNTAG_Bool(variable1)) { /*if*/
6300 variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
6301 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6302 }
6303 variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
6304 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
6305 if (UNTAG_Bool(variable1)) { /*if*/
6306 variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
6307 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6308 }
6309 tracehead = trace.prev;
6310 return;
6311 }
6312 void parser_prod___AIdMethid___n_id__eq(val_t self, val_t param0) {
6313 struct trace_t trace = {NULL, LOCATE_parser_prod___AIdMethid___n_id__eq, 3336};
6314 val_t variable0;
6315 val_t variable1;
6316 trace.prev = tracehead; tracehead = &trace;
6317 variable0 = param0;
6318 ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ = variable0 /*n*/;
6319 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
6320 if (UNTAG_Bool(variable1)) { /*if*/
6321 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
6322 }
6323 tracehead = trace.prev;
6324 return;
6325 }
6326 void parser_prod___AIdMethid___empty_init(val_t self, int* init_table) {
6327 struct trace_t trace = {NULL, LOCATE_parser_prod___AIdMethid___empty_init, 3344};
6328 trace.prev = tracehead; tracehead = &trace;
6329 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i]) return;
6330 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
6331 tracehead = trace.prev;
6332 return;
6333 }
6334 void parser_prod___AIdMethid___init_aidmethid(val_t self, val_t param0, int* init_table) {
6335 struct trace_t trace = {NULL, LOCATE_parser_prod___AIdMethid___init_aidmethid, 3346};
6336 val_t variable0;
6337 val_t variable1;
6338 trace.prev = tracehead; tracehead = &trace;
6339 variable0 = param0;
6340 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i]) return;
6341 ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ = variable0 /*n_id*/;
6342 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
6343 if (UNTAG_Bool(variable1)) { /*if*/
6344 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TId::parent=*/;
6345 }
6346 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
6347 tracehead = trace.prev;
6348 return;
6349 }
6350 void parser_prod___AIdMethid___replace_child(val_t self, val_t param0, val_t param1) {
6351 struct trace_t trace = {NULL, LOCATE_parser_prod___AIdMethid___replace_child, 3356};
6352 val_t variable0;
6353 val_t variable1;
6354 val_t variable2;
6355 trace.prev = tracehead; tracehead = &trace;
6356 variable0 = param0;
6357 variable1 = param1;
6358 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6359 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIdMethid___replace_child, 3358); nit_exit(1);}
6360 variable2 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
6361 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
6362 if (UNTAG_Bool(variable2)) { /*if*/
6363 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6364 if (UNTAG_Bool(variable2)) { /*if*/
6365 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6366 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
6367 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIdMethid___replace_child, 3362); nit_exit(1);}
6368 ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ = variable1 /*new_child*/;
6369 } else { /*if*/
6370 ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ = NIT_NULL /*null*/;
6371 }
6372 goto return_label268;
6373 }
6374 return_label268: while(false);
6375 tracehead = trace.prev;
6376 return;
6377 }
6378 void parser_prod___AIdMethid___visit_all(val_t self, val_t param0) {
6379 struct trace_t trace = {NULL, LOCATE_parser_prod___AIdMethid___visit_all, 3371};
6380 val_t variable0;
6381 val_t variable1;
6382 trace.prev = tracehead; tracehead = &trace;
6383 variable0 = param0;
6384 variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
6385 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
6386 if (UNTAG_Bool(variable1)) { /*if*/
6387 variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
6388 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6389 }
6390 tracehead = trace.prev;
6391 return;
6392 }
6393 void parser_prod___AIdMethid___visit_all_reverse(val_t self, val_t param0) {
6394 struct trace_t trace = {NULL, LOCATE_parser_prod___AIdMethid___visit_all_reverse, 3378};
6395 val_t variable0;
6396 val_t variable1;
6397 trace.prev = tracehead; tracehead = &trace;
6398 variable0 = param0;
6399 variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
6400 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
6401 if (UNTAG_Bool(variable1)) { /*if*/
6402 variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
6403 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6404 }
6405 tracehead = trace.prev;
6406 return;
6407 }
6408 void parser_prod___APlusMethid___n_plus__eq(val_t self, val_t param0) {
6409 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusMethid___n_plus__eq, 3386};
6410 val_t variable0;
6411 val_t variable1;
6412 trace.prev = tracehead; tracehead = &trace;
6413 variable0 = param0;
6414 ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ = variable0 /*n*/;
6415 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TPlus::==*/)))))));
6416 if (UNTAG_Bool(variable1)) { /*if*/
6417 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TPlus::parent=*/;
6418 }
6419 tracehead = trace.prev;
6420 return;
6421 }
6422 void parser_prod___APlusMethid___empty_init(val_t self, int* init_table) {
6423 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusMethid___empty_init, 3394};
6424 trace.prev = tracehead; tracehead = &trace;
6425 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i]) return;
6426 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
6427 tracehead = trace.prev;
6428 return;
6429 }
6430 void parser_prod___APlusMethid___init_aplusmethid(val_t self, val_t param0, int* init_table) {
6431 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusMethid___init_aplusmethid, 3396};
6432 val_t variable0;
6433 val_t variable1;
6434 trace.prev = tracehead; tracehead = &trace;
6435 variable0 = param0;
6436 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i]) return;
6437 ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ = variable0 /*n_plus*/;
6438 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_plus*/ == NIT_NULL /*null*/) || (( variable0 /*n_plus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_plus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_plus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_plus*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_plus*/, NIT_NULL /*null*/) /*TPlus::==*/)))))));
6439 if (UNTAG_Bool(variable1)) { /*if*/
6440 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_plus*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_plus*/, self) /*TPlus::parent=*/;
6441 }
6442 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
6443 tracehead = trace.prev;
6444 return;
6445 }
6446 void parser_prod___APlusMethid___replace_child(val_t self, val_t param0, val_t param1) {
6447 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusMethid___replace_child, 3406};
6448 val_t variable0;
6449 val_t variable1;
6450 val_t variable2;
6451 trace.prev = tracehead; tracehead = &trace;
6452 variable0 = param0;
6453 variable1 = param1;
6454 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6455 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APlusMethid___replace_child, 3408); nit_exit(1);}
6456 variable2 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
6457 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TPlus::==*/)))));
6458 if (UNTAG_Bool(variable2)) { /*if*/
6459 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6460 if (UNTAG_Bool(variable2)) { /*if*/
6461 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6462 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
6463 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APlusMethid___replace_child, 3412); nit_exit(1);}
6464 ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ = variable1 /*new_child*/;
6465 } else { /*if*/
6466 ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ = NIT_NULL /*null*/;
6467 }
6468 goto return_label274;
6469 }
6470 return_label274: while(false);
6471 tracehead = trace.prev;
6472 return;
6473 }
6474 void parser_prod___APlusMethid___visit_all(val_t self, val_t param0) {
6475 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusMethid___visit_all, 3421};
6476 val_t variable0;
6477 val_t variable1;
6478 trace.prev = tracehead; tracehead = &trace;
6479 variable0 = param0;
6480 variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
6481 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TPlus::==*/)))))));
6482 if (UNTAG_Bool(variable1)) { /*if*/
6483 variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
6484 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6485 }
6486 tracehead = trace.prev;
6487 return;
6488 }
6489 void parser_prod___APlusMethid___visit_all_reverse(val_t self, val_t param0) {
6490 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusMethid___visit_all_reverse, 3428};
6491 val_t variable0;
6492 val_t variable1;
6493 trace.prev = tracehead; tracehead = &trace;
6494 variable0 = param0;
6495 variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
6496 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TPlus::==*/)))))));
6497 if (UNTAG_Bool(variable1)) { /*if*/
6498 variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
6499 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6500 }
6501 tracehead = trace.prev;
6502 return;
6503 }
6504 void parser_prod___AMinusMethid___n_minus__eq(val_t self, val_t param0) {
6505 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusMethid___n_minus__eq, 3436};
6506 val_t variable0;
6507 val_t variable1;
6508 trace.prev = tracehead; tracehead = &trace;
6509 variable0 = param0;
6510 ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ = variable0 /*n*/;
6511 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TMinus::==*/)))))));
6512 if (UNTAG_Bool(variable1)) { /*if*/
6513 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TMinus::parent=*/;
6514 }
6515 tracehead = trace.prev;
6516 return;
6517 }
6518 void parser_prod___AMinusMethid___empty_init(val_t self, int* init_table) {
6519 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusMethid___empty_init, 3444};
6520 trace.prev = tracehead; tracehead = &trace;
6521 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
6522 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
6523 tracehead = trace.prev;
6524 return;
6525 }
6526 void parser_prod___AMinusMethid___init_aminusmethid(val_t self, val_t param0, int* init_table) {
6527 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusMethid___init_aminusmethid, 3446};
6528 val_t variable0;
6529 val_t variable1;
6530 trace.prev = tracehead; tracehead = &trace;
6531 variable0 = param0;
6532 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
6533 ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ = variable0 /*n_minus*/;
6534 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_minus*/ == NIT_NULL /*null*/) || (( variable0 /*n_minus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_minus*/, NIT_NULL /*null*/) /*TMinus::==*/)))))));
6535 if (UNTAG_Bool(variable1)) { /*if*/
6536 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_minus*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_minus*/, self) /*TMinus::parent=*/;
6537 }
6538 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
6539 tracehead = trace.prev;
6540 return;
6541 }
6542 void parser_prod___AMinusMethid___replace_child(val_t self, val_t param0, val_t param1) {
6543 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusMethid___replace_child, 3456};
6544 val_t variable0;
6545 val_t variable1;
6546 val_t variable2;
6547 trace.prev = tracehead; tracehead = &trace;
6548 variable0 = param0;
6549 variable1 = param1;
6550 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6551 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMinusMethid___replace_child, 3458); nit_exit(1);}
6552 variable2 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
6553 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TMinus::==*/)))));
6554 if (UNTAG_Bool(variable2)) { /*if*/
6555 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6556 if (UNTAG_Bool(variable2)) { /*if*/
6557 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6558 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
6559 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMinusMethid___replace_child, 3462); nit_exit(1);}
6560 ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ = variable1 /*new_child*/;
6561 } else { /*if*/
6562 ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ = NIT_NULL /*null*/;
6563 }
6564 goto return_label280;
6565 }
6566 return_label280: while(false);
6567 tracehead = trace.prev;
6568 return;
6569 }
6570 void parser_prod___AMinusMethid___visit_all(val_t self, val_t param0) {
6571 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusMethid___visit_all, 3471};
6572 val_t variable0;
6573 val_t variable1;
6574 trace.prev = tracehead; tracehead = &trace;
6575 variable0 = param0;
6576 variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
6577 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMinus::==*/)))))));
6578 if (UNTAG_Bool(variable1)) { /*if*/
6579 variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
6580 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6581 }
6582 tracehead = trace.prev;
6583 return;
6584 }
6585 void parser_prod___AMinusMethid___visit_all_reverse(val_t self, val_t param0) {
6586 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusMethid___visit_all_reverse, 3478};
6587 val_t variable0;
6588 val_t variable1;
6589 trace.prev = tracehead; tracehead = &trace;
6590 variable0 = param0;
6591 variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
6592 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMinus::==*/)))))));
6593 if (UNTAG_Bool(variable1)) { /*if*/
6594 variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
6595 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6596 }
6597 tracehead = trace.prev;
6598 return;
6599 }
6600 void parser_prod___AStarMethid___n_star__eq(val_t self, val_t param0) {
6601 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarMethid___n_star__eq, 3486};
6602 val_t variable0;
6603 val_t variable1;
6604 trace.prev = tracehead; tracehead = &trace;
6605 variable0 = param0;
6606 ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ = variable0 /*n*/;
6607 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TStar::==*/)))))));
6608 if (UNTAG_Bool(variable1)) { /*if*/
6609 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TStar::parent=*/;
6610 }
6611 tracehead = trace.prev;
6612 return;
6613 }
6614 void parser_prod___AStarMethid___empty_init(val_t self, int* init_table) {
6615 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarMethid___empty_init, 3494};
6616 trace.prev = tracehead; tracehead = &trace;
6617 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i]) return;
6618 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
6619 tracehead = trace.prev;
6620 return;
6621 }
6622 void parser_prod___AStarMethid___init_astarmethid(val_t self, val_t param0, int* init_table) {
6623 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarMethid___init_astarmethid, 3496};
6624 val_t variable0;
6625 val_t variable1;
6626 trace.prev = tracehead; tracehead = &trace;
6627 variable0 = param0;
6628 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i]) return;
6629 ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ = variable0 /*n_star*/;
6630 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_star*/ == NIT_NULL /*null*/) || (( variable0 /*n_star*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_star*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_star*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_star*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_star*/, NIT_NULL /*null*/) /*TStar::==*/)))))));
6631 if (UNTAG_Bool(variable1)) { /*if*/
6632 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_star*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_star*/, self) /*TStar::parent=*/;
6633 }
6634 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
6635 tracehead = trace.prev;
6636 return;
6637 }
6638 void parser_prod___AStarMethid___replace_child(val_t self, val_t param0, val_t param1) {
6639 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarMethid___replace_child, 3506};
6640 val_t variable0;
6641 val_t variable1;
6642 val_t variable2;
6643 trace.prev = tracehead; tracehead = &trace;
6644 variable0 = param0;
6645 variable1 = param1;
6646 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6647 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarMethid___replace_child, 3508); nit_exit(1);}
6648 variable2 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
6649 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TStar::==*/)))));
6650 if (UNTAG_Bool(variable2)) { /*if*/
6651 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6652 if (UNTAG_Bool(variable2)) { /*if*/
6653 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6654 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TStar, ID_TStar)) /*cast TStar*/;
6655 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarMethid___replace_child, 3512); nit_exit(1);}
6656 ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ = variable1 /*new_child*/;
6657 } else { /*if*/
6658 ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ = NIT_NULL /*null*/;
6659 }
6660 goto return_label286;
6661 }
6662 return_label286: while(false);
6663 tracehead = trace.prev;
6664 return;
6665 }
6666 void parser_prod___AStarMethid___visit_all(val_t self, val_t param0) {
6667 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarMethid___visit_all, 3521};
6668 val_t variable0;
6669 val_t variable1;
6670 trace.prev = tracehead; tracehead = &trace;
6671 variable0 = param0;
6672 variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
6673 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TStar::==*/)))))));
6674 if (UNTAG_Bool(variable1)) { /*if*/
6675 variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
6676 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6677 }
6678 tracehead = trace.prev;
6679 return;
6680 }
6681 void parser_prod___AStarMethid___visit_all_reverse(val_t self, val_t param0) {
6682 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarMethid___visit_all_reverse, 3528};
6683 val_t variable0;
6684 val_t variable1;
6685 trace.prev = tracehead; tracehead = &trace;
6686 variable0 = param0;
6687 variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
6688 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TStar::==*/)))))));
6689 if (UNTAG_Bool(variable1)) { /*if*/
6690 variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
6691 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6692 }
6693 tracehead = trace.prev;
6694 return;
6695 }
6696 void parser_prod___ASlashMethid___n_slash__eq(val_t self, val_t param0) {
6697 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashMethid___n_slash__eq, 3536};
6698 val_t variable0;
6699 val_t variable1;
6700 trace.prev = tracehead; tracehead = &trace;
6701 variable0 = param0;
6702 ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ = variable0 /*n*/;
6703 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TSlash::==*/)))))));
6704 if (UNTAG_Bool(variable1)) { /*if*/
6705 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TSlash::parent=*/;
6706 }
6707 tracehead = trace.prev;
6708 return;
6709 }
6710 void parser_prod___ASlashMethid___empty_init(val_t self, int* init_table) {
6711 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashMethid___empty_init, 3544};
6712 trace.prev = tracehead; tracehead = &trace;
6713 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
6714 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
6715 tracehead = trace.prev;
6716 return;
6717 }
6718 void parser_prod___ASlashMethid___init_aslashmethid(val_t self, val_t param0, int* init_table) {
6719 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashMethid___init_aslashmethid, 3546};
6720 val_t variable0;
6721 val_t variable1;
6722 trace.prev = tracehead; tracehead = &trace;
6723 variable0 = param0;
6724 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
6725 ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ = variable0 /*n_slash*/;
6726 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_slash*/ == NIT_NULL /*null*/) || (( variable0 /*n_slash*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_slash*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_slash*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_slash*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_slash*/, NIT_NULL /*null*/) /*TSlash::==*/)))))));
6727 if (UNTAG_Bool(variable1)) { /*if*/
6728 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_slash*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_slash*/, self) /*TSlash::parent=*/;
6729 }
6730 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
6731 tracehead = trace.prev;
6732 return;
6733 }
6734 void parser_prod___ASlashMethid___replace_child(val_t self, val_t param0, val_t param1) {
6735 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashMethid___replace_child, 3556};
6736 val_t variable0;
6737 val_t variable1;
6738 val_t variable2;
6739 trace.prev = tracehead; tracehead = &trace;
6740 variable0 = param0;
6741 variable1 = param1;
6742 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6743 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASlashMethid___replace_child, 3558); nit_exit(1);}
6744 variable2 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
6745 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TSlash::==*/)))));
6746 if (UNTAG_Bool(variable2)) { /*if*/
6747 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6748 if (UNTAG_Bool(variable2)) { /*if*/
6749 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6750 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
6751 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASlashMethid___replace_child, 3562); nit_exit(1);}
6752 ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ = variable1 /*new_child*/;
6753 } else { /*if*/
6754 ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ = NIT_NULL /*null*/;
6755 }
6756 goto return_label292;
6757 }
6758 return_label292: while(false);
6759 tracehead = trace.prev;
6760 return;
6761 }
6762 void parser_prod___ASlashMethid___visit_all(val_t self, val_t param0) {
6763 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashMethid___visit_all, 3571};
6764 val_t variable0;
6765 val_t variable1;
6766 trace.prev = tracehead; tracehead = &trace;
6767 variable0 = param0;
6768 variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
6769 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TSlash::==*/)))))));
6770 if (UNTAG_Bool(variable1)) { /*if*/
6771 variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
6772 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6773 }
6774 tracehead = trace.prev;
6775 return;
6776 }
6777 void parser_prod___ASlashMethid___visit_all_reverse(val_t self, val_t param0) {
6778 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashMethid___visit_all_reverse, 3578};
6779 val_t variable0;
6780 val_t variable1;
6781 trace.prev = tracehead; tracehead = &trace;
6782 variable0 = param0;
6783 variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
6784 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TSlash::==*/)))))));
6785 if (UNTAG_Bool(variable1)) { /*if*/
6786 variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
6787 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6788 }
6789 tracehead = trace.prev;
6790 return;
6791 }
6792 void parser_prod___APercentMethid___n_percent__eq(val_t self, val_t param0) {
6793 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentMethid___n_percent__eq, 3586};
6794 val_t variable0;
6795 val_t variable1;
6796 trace.prev = tracehead; tracehead = &trace;
6797 variable0 = param0;
6798 ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ = variable0 /*n*/;
6799 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TPercent::==*/)))))));
6800 if (UNTAG_Bool(variable1)) { /*if*/
6801 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TPercent::parent=*/;
6802 }
6803 tracehead = trace.prev;
6804 return;
6805 }
6806 void parser_prod___APercentMethid___empty_init(val_t self, int* init_table) {
6807 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentMethid___empty_init, 3594};
6808 trace.prev = tracehead; tracehead = &trace;
6809 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i]) return;
6810 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
6811 tracehead = trace.prev;
6812 return;
6813 }
6814 void parser_prod___APercentMethid___init_apercentmethid(val_t self, val_t param0, int* init_table) {
6815 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentMethid___init_apercentmethid, 3596};
6816 val_t variable0;
6817 val_t variable1;
6818 trace.prev = tracehead; tracehead = &trace;
6819 variable0 = param0;
6820 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i]) return;
6821 ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ = variable0 /*n_percent*/;
6822 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_percent*/ == NIT_NULL /*null*/) || (( variable0 /*n_percent*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_percent*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_percent*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_percent*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_percent*/, NIT_NULL /*null*/) /*TPercent::==*/)))))));
6823 if (UNTAG_Bool(variable1)) { /*if*/
6824 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_percent*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_percent*/, self) /*TPercent::parent=*/;
6825 }
6826 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
6827 tracehead = trace.prev;
6828 return;
6829 }
6830 void parser_prod___APercentMethid___replace_child(val_t self, val_t param0, val_t param1) {
6831 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentMethid___replace_child, 3606};
6832 val_t variable0;
6833 val_t variable1;
6834 val_t variable2;
6835 trace.prev = tracehead; tracehead = &trace;
6836 variable0 = param0;
6837 variable1 = param1;
6838 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6839 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APercentMethid___replace_child, 3608); nit_exit(1);}
6840 variable2 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
6841 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TPercent::==*/)))));
6842 if (UNTAG_Bool(variable2)) { /*if*/
6843 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6844 if (UNTAG_Bool(variable2)) { /*if*/
6845 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6846 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
6847 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APercentMethid___replace_child, 3612); nit_exit(1);}
6848 ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ = variable1 /*new_child*/;
6849 } else { /*if*/
6850 ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ = NIT_NULL /*null*/;
6851 }
6852 goto return_label298;
6853 }
6854 return_label298: while(false);
6855 tracehead = trace.prev;
6856 return;
6857 }
6858 void parser_prod___APercentMethid___visit_all(val_t self, val_t param0) {
6859 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentMethid___visit_all, 3621};
6860 val_t variable0;
6861 val_t variable1;
6862 trace.prev = tracehead; tracehead = &trace;
6863 variable0 = param0;
6864 variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
6865 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TPercent::==*/)))))));
6866 if (UNTAG_Bool(variable1)) { /*if*/
6867 variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
6868 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6869 }
6870 tracehead = trace.prev;
6871 return;
6872 }
6873 void parser_prod___APercentMethid___visit_all_reverse(val_t self, val_t param0) {
6874 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentMethid___visit_all_reverse, 3628};
6875 val_t variable0;
6876 val_t variable1;
6877 trace.prev = tracehead; tracehead = &trace;
6878 variable0 = param0;
6879 variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
6880 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TPercent::==*/)))))));
6881 if (UNTAG_Bool(variable1)) { /*if*/
6882 variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
6883 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6884 }
6885 tracehead = trace.prev;
6886 return;
6887 }
6888 void parser_prod___AEqMethid___n_eq__eq(val_t self, val_t param0) {
6889 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqMethid___n_eq__eq, 3636};
6890 val_t variable0;
6891 val_t variable1;
6892 trace.prev = tracehead; tracehead = &trace;
6893 variable0 = param0;
6894 ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ = variable0 /*n*/;
6895 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TEq::==*/)))))));
6896 if (UNTAG_Bool(variable1)) { /*if*/
6897 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TEq::parent=*/;
6898 }
6899 tracehead = trace.prev;
6900 return;
6901 }
6902 void parser_prod___AEqMethid___empty_init(val_t self, int* init_table) {
6903 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqMethid___empty_init, 3644};
6904 trace.prev = tracehead; tracehead = &trace;
6905 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i]) return;
6906 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
6907 tracehead = trace.prev;
6908 return;
6909 }
6910 void parser_prod___AEqMethid___init_aeqmethid(val_t self, val_t param0, int* init_table) {
6911 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqMethid___init_aeqmethid, 3646};
6912 val_t variable0;
6913 val_t variable1;
6914 trace.prev = tracehead; tracehead = &trace;
6915 variable0 = param0;
6916 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i]) return;
6917 ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ = variable0 /*n_eq*/;
6918 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_eq*/ == NIT_NULL /*null*/) || (( variable0 /*n_eq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_eq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_eq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_eq*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_eq*/, NIT_NULL /*null*/) /*TEq::==*/)))))));
6919 if (UNTAG_Bool(variable1)) { /*if*/
6920 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_eq*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_eq*/, self) /*TEq::parent=*/;
6921 }
6922 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
6923 tracehead = trace.prev;
6924 return;
6925 }
6926 void parser_prod___AEqMethid___replace_child(val_t self, val_t param0, val_t param1) {
6927 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqMethid___replace_child, 3656};
6928 val_t variable0;
6929 val_t variable1;
6930 val_t variable2;
6931 trace.prev = tracehead; tracehead = &trace;
6932 variable0 = param0;
6933 variable1 = param1;
6934 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6935 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEqMethid___replace_child, 3658); nit_exit(1);}
6936 variable2 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
6937 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TEq::==*/)))));
6938 if (UNTAG_Bool(variable2)) { /*if*/
6939 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
6940 if (UNTAG_Bool(variable2)) { /*if*/
6941 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
6942 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TEq, ID_TEq)) /*cast TEq*/;
6943 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEqMethid___replace_child, 3662); nit_exit(1);}
6944 ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ = variable1 /*new_child*/;
6945 } else { /*if*/
6946 ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ = NIT_NULL /*null*/;
6947 }
6948 goto return_label304;
6949 }
6950 return_label304: while(false);
6951 tracehead = trace.prev;
6952 return;
6953 }
6954 void parser_prod___AEqMethid___visit_all(val_t self, val_t param0) {
6955 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqMethid___visit_all, 3671};
6956 val_t variable0;
6957 val_t variable1;
6958 trace.prev = tracehead; tracehead = &trace;
6959 variable0 = param0;
6960 variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
6961 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TEq::==*/)))))));
6962 if (UNTAG_Bool(variable1)) { /*if*/
6963 variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
6964 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6965 }
6966 tracehead = trace.prev;
6967 return;
6968 }
6969 void parser_prod___AEqMethid___visit_all_reverse(val_t self, val_t param0) {
6970 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqMethid___visit_all_reverse, 3678};
6971 val_t variable0;
6972 val_t variable1;
6973 trace.prev = tracehead; tracehead = &trace;
6974 variable0 = param0;
6975 variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
6976 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TEq::==*/)))))));
6977 if (UNTAG_Bool(variable1)) { /*if*/
6978 variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
6979 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
6980 }
6981 tracehead = trace.prev;
6982 return;
6983 }
6984 void parser_prod___ANeMethid___n_ne__eq(val_t self, val_t param0) {
6985 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeMethid___n_ne__eq, 3686};
6986 val_t variable0;
6987 val_t variable1;
6988 trace.prev = tracehead; tracehead = &trace;
6989 variable0 = param0;
6990 ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ = variable0 /*n*/;
6991 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TNe::==*/)))))));
6992 if (UNTAG_Bool(variable1)) { /*if*/
6993 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TNe::parent=*/;
6994 }
6995 tracehead = trace.prev;
6996 return;
6997 }
6998 void parser_prod___ANeMethid___empty_init(val_t self, int* init_table) {
6999 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeMethid___empty_init, 3694};
7000 trace.prev = tracehead; tracehead = &trace;
7001 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i]) return;
7002 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
7003 tracehead = trace.prev;
7004 return;
7005 }
7006 void parser_prod___ANeMethid___init_anemethid(val_t self, val_t param0, int* init_table) {
7007 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeMethid___init_anemethid, 3696};
7008 val_t variable0;
7009 val_t variable1;
7010 trace.prev = tracehead; tracehead = &trace;
7011 variable0 = param0;
7012 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i]) return;
7013 ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ = variable0 /*n_ne*/;
7014 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_ne*/ == NIT_NULL /*null*/) || (( variable0 /*n_ne*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_ne*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_ne*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_ne*/, NIT_NULL /*null*/) /*TNe::==*/)))))));
7015 if (UNTAG_Bool(variable1)) { /*if*/
7016 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_ne*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_ne*/, self) /*TNe::parent=*/;
7017 }
7018 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
7019 tracehead = trace.prev;
7020 return;
7021 }
7022 void parser_prod___ANeMethid___replace_child(val_t self, val_t param0, val_t param1) {
7023 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeMethid___replace_child, 3706};
7024 val_t variable0;
7025 val_t variable1;
7026 val_t variable2;
7027 trace.prev = tracehead; tracehead = &trace;
7028 variable0 = param0;
7029 variable1 = param1;
7030 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7031 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANeMethid___replace_child, 3708); nit_exit(1);}
7032 variable2 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
7033 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TNe::==*/)))));
7034 if (UNTAG_Bool(variable2)) { /*if*/
7035 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7036 if (UNTAG_Bool(variable2)) { /*if*/
7037 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7038 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TNe, ID_TNe)) /*cast TNe*/;
7039 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANeMethid___replace_child, 3712); nit_exit(1);}
7040 ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ = variable1 /*new_child*/;
7041 } else { /*if*/
7042 ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ = NIT_NULL /*null*/;
7043 }
7044 goto return_label310;
7045 }
7046 return_label310: while(false);
7047 tracehead = trace.prev;
7048 return;
7049 }
7050 void parser_prod___ANeMethid___visit_all(val_t self, val_t param0) {
7051 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeMethid___visit_all, 3721};
7052 val_t variable0;
7053 val_t variable1;
7054 trace.prev = tracehead; tracehead = &trace;
7055 variable0 = param0;
7056 variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
7057 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TNe::==*/)))))));
7058 if (UNTAG_Bool(variable1)) { /*if*/
7059 variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
7060 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7061 }
7062 tracehead = trace.prev;
7063 return;
7064 }
7065 void parser_prod___ANeMethid___visit_all_reverse(val_t self, val_t param0) {
7066 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeMethid___visit_all_reverse, 3728};
7067 val_t variable0;
7068 val_t variable1;
7069 trace.prev = tracehead; tracehead = &trace;
7070 variable0 = param0;
7071 variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
7072 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TNe::==*/)))))));
7073 if (UNTAG_Bool(variable1)) { /*if*/
7074 variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
7075 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7076 }
7077 tracehead = trace.prev;
7078 return;
7079 }
7080 void parser_prod___ALeMethid___n_le__eq(val_t self, val_t param0) {
7081 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeMethid___n_le__eq, 3736};
7082 val_t variable0;
7083 val_t variable1;
7084 trace.prev = tracehead; tracehead = &trace;
7085 variable0 = param0;
7086 ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ = variable0 /*n*/;
7087 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TLe::==*/)))))));
7088 if (UNTAG_Bool(variable1)) { /*if*/
7089 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TLe::parent=*/;
7090 }
7091 tracehead = trace.prev;
7092 return;
7093 }
7094 void parser_prod___ALeMethid___empty_init(val_t self, int* init_table) {
7095 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeMethid___empty_init, 3744};
7096 trace.prev = tracehead; tracehead = &trace;
7097 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i]) return;
7098 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
7099 tracehead = trace.prev;
7100 return;
7101 }
7102 void parser_prod___ALeMethid___init_alemethid(val_t self, val_t param0, int* init_table) {
7103 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeMethid___init_alemethid, 3746};
7104 val_t variable0;
7105 val_t variable1;
7106 trace.prev = tracehead; tracehead = &trace;
7107 variable0 = param0;
7108 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i]) return;
7109 ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ = variable0 /*n_le*/;
7110 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_le*/ == NIT_NULL /*null*/) || (( variable0 /*n_le*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_le*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_le*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_le*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_le*/, NIT_NULL /*null*/) /*TLe::==*/)))))));
7111 if (UNTAG_Bool(variable1)) { /*if*/
7112 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_le*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_le*/, self) /*TLe::parent=*/;
7113 }
7114 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
7115 tracehead = trace.prev;
7116 return;
7117 }
7118 void parser_prod___ALeMethid___replace_child(val_t self, val_t param0, val_t param1) {
7119 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeMethid___replace_child, 3756};
7120 val_t variable0;
7121 val_t variable1;
7122 val_t variable2;
7123 trace.prev = tracehead; tracehead = &trace;
7124 variable0 = param0;
7125 variable1 = param1;
7126 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7127 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALeMethid___replace_child, 3758); nit_exit(1);}
7128 variable2 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
7129 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TLe::==*/)))));
7130 if (UNTAG_Bool(variable2)) { /*if*/
7131 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7132 if (UNTAG_Bool(variable2)) { /*if*/
7133 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7134 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TLe, ID_TLe)) /*cast TLe*/;
7135 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALeMethid___replace_child, 3762); nit_exit(1);}
7136 ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ = variable1 /*new_child*/;
7137 } else { /*if*/
7138 ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ = NIT_NULL /*null*/;
7139 }
7140 goto return_label316;
7141 }
7142 return_label316: while(false);
7143 tracehead = trace.prev;
7144 return;
7145 }
7146 void parser_prod___ALeMethid___visit_all(val_t self, val_t param0) {
7147 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeMethid___visit_all, 3771};
7148 val_t variable0;
7149 val_t variable1;
7150 trace.prev = tracehead; tracehead = &trace;
7151 variable0 = param0;
7152 variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
7153 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TLe::==*/)))))));
7154 if (UNTAG_Bool(variable1)) { /*if*/
7155 variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
7156 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7157 }
7158 tracehead = trace.prev;
7159 return;
7160 }
7161 void parser_prod___ALeMethid___visit_all_reverse(val_t self, val_t param0) {
7162 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeMethid___visit_all_reverse, 3778};
7163 val_t variable0;
7164 val_t variable1;
7165 trace.prev = tracehead; tracehead = &trace;
7166 variable0 = param0;
7167 variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
7168 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TLe::==*/)))))));
7169 if (UNTAG_Bool(variable1)) { /*if*/
7170 variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
7171 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7172 }
7173 tracehead = trace.prev;
7174 return;
7175 }
7176 void parser_prod___AGeMethid___n_ge__eq(val_t self, val_t param0) {
7177 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeMethid___n_ge__eq, 3786};
7178 val_t variable0;
7179 val_t variable1;
7180 trace.prev = tracehead; tracehead = &trace;
7181 variable0 = param0;
7182 ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ = variable0 /*n*/;
7183 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TGe::==*/)))))));
7184 if (UNTAG_Bool(variable1)) { /*if*/
7185 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TGe::parent=*/;
7186 }
7187 tracehead = trace.prev;
7188 return;
7189 }
7190 void parser_prod___AGeMethid___empty_init(val_t self, int* init_table) {
7191 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeMethid___empty_init, 3794};
7192 trace.prev = tracehead; tracehead = &trace;
7193 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i]) return;
7194 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
7195 tracehead = trace.prev;
7196 return;
7197 }
7198 void parser_prod___AGeMethid___init_agemethid(val_t self, val_t param0, int* init_table) {
7199 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeMethid___init_agemethid, 3796};
7200 val_t variable0;
7201 val_t variable1;
7202 trace.prev = tracehead; tracehead = &trace;
7203 variable0 = param0;
7204 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i]) return;
7205 ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ = variable0 /*n_ge*/;
7206 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_ge*/ == NIT_NULL /*null*/) || (( variable0 /*n_ge*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_ge*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_ge*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_ge*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_ge*/, NIT_NULL /*null*/) /*TGe::==*/)))))));
7207 if (UNTAG_Bool(variable1)) { /*if*/
7208 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_ge*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_ge*/, self) /*TGe::parent=*/;
7209 }
7210 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
7211 tracehead = trace.prev;
7212 return;
7213 }
7214 void parser_prod___AGeMethid___replace_child(val_t self, val_t param0, val_t param1) {
7215 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeMethid___replace_child, 3806};
7216 val_t variable0;
7217 val_t variable1;
7218 val_t variable2;
7219 trace.prev = tracehead; tracehead = &trace;
7220 variable0 = param0;
7221 variable1 = param1;
7222 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7223 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGeMethid___replace_child, 3808); nit_exit(1);}
7224 variable2 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
7225 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TGe::==*/)))));
7226 if (UNTAG_Bool(variable2)) { /*if*/
7227 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7228 if (UNTAG_Bool(variable2)) { /*if*/
7229 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7230 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TGe, ID_TGe)) /*cast TGe*/;
7231 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGeMethid___replace_child, 3812); nit_exit(1);}
7232 ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ = variable1 /*new_child*/;
7233 } else { /*if*/
7234 ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ = NIT_NULL /*null*/;
7235 }
7236 goto return_label322;
7237 }
7238 return_label322: while(false);
7239 tracehead = trace.prev;
7240 return;
7241 }
7242 void parser_prod___AGeMethid___visit_all(val_t self, val_t param0) {
7243 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeMethid___visit_all, 3821};
7244 val_t variable0;
7245 val_t variable1;
7246 trace.prev = tracehead; tracehead = &trace;
7247 variable0 = param0;
7248 variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
7249 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TGe::==*/)))))));
7250 if (UNTAG_Bool(variable1)) { /*if*/
7251 variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
7252 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7253 }
7254 tracehead = trace.prev;
7255 return;
7256 }
7257 void parser_prod___AGeMethid___visit_all_reverse(val_t self, val_t param0) {
7258 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeMethid___visit_all_reverse, 3828};
7259 val_t variable0;
7260 val_t variable1;
7261 trace.prev = tracehead; tracehead = &trace;
7262 variable0 = param0;
7263 variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
7264 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TGe::==*/)))))));
7265 if (UNTAG_Bool(variable1)) { /*if*/
7266 variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
7267 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7268 }
7269 tracehead = trace.prev;
7270 return;
7271 }
7272 void parser_prod___ALtMethid___n_lt__eq(val_t self, val_t param0) {
7273 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtMethid___n_lt__eq, 3836};
7274 val_t variable0;
7275 val_t variable1;
7276 trace.prev = tracehead; tracehead = &trace;
7277 variable0 = param0;
7278 ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ = variable0 /*n*/;
7279 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TLt::==*/)))))));
7280 if (UNTAG_Bool(variable1)) { /*if*/
7281 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TLt::parent=*/;
7282 }
7283 tracehead = trace.prev;
7284 return;
7285 }
7286 void parser_prod___ALtMethid___empty_init(val_t self, int* init_table) {
7287 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtMethid___empty_init, 3844};
7288 trace.prev = tracehead; tracehead = &trace;
7289 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i]) return;
7290 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
7291 tracehead = trace.prev;
7292 return;
7293 }
7294 void parser_prod___ALtMethid___init_altmethid(val_t self, val_t param0, int* init_table) {
7295 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtMethid___init_altmethid, 3846};
7296 val_t variable0;
7297 val_t variable1;
7298 trace.prev = tracehead; tracehead = &trace;
7299 variable0 = param0;
7300 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i]) return;
7301 ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ = variable0 /*n_lt*/;
7302 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_lt*/ == NIT_NULL /*null*/) || (( variable0 /*n_lt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_lt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_lt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_lt*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_lt*/, NIT_NULL /*null*/) /*TLt::==*/)))))));
7303 if (UNTAG_Bool(variable1)) { /*if*/
7304 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_lt*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_lt*/, self) /*TLt::parent=*/;
7305 }
7306 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
7307 tracehead = trace.prev;
7308 return;
7309 }
7310 void parser_prod___ALtMethid___replace_child(val_t self, val_t param0, val_t param1) {
7311 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtMethid___replace_child, 3856};
7312 val_t variable0;
7313 val_t variable1;
7314 val_t variable2;
7315 trace.prev = tracehead; tracehead = &trace;
7316 variable0 = param0;
7317 variable1 = param1;
7318 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7319 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALtMethid___replace_child, 3858); nit_exit(1);}
7320 variable2 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
7321 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TLt::==*/)))));
7322 if (UNTAG_Bool(variable2)) { /*if*/
7323 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7324 if (UNTAG_Bool(variable2)) { /*if*/
7325 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7326 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TLt, ID_TLt)) /*cast TLt*/;
7327 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALtMethid___replace_child, 3862); nit_exit(1);}
7328 ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ = variable1 /*new_child*/;
7329 } else { /*if*/
7330 ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ = NIT_NULL /*null*/;
7331 }
7332 goto return_label328;
7333 }
7334 return_label328: while(false);
7335 tracehead = trace.prev;
7336 return;
7337 }
7338 void parser_prod___ALtMethid___visit_all(val_t self, val_t param0) {
7339 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtMethid___visit_all, 3871};
7340 val_t variable0;
7341 val_t variable1;
7342 trace.prev = tracehead; tracehead = &trace;
7343 variable0 = param0;
7344 variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
7345 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TLt::==*/)))))));
7346 if (UNTAG_Bool(variable1)) { /*if*/
7347 variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
7348 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7349 }
7350 tracehead = trace.prev;
7351 return;
7352 }
7353 void parser_prod___ALtMethid___visit_all_reverse(val_t self, val_t param0) {
7354 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtMethid___visit_all_reverse, 3878};
7355 val_t variable0;
7356 val_t variable1;
7357 trace.prev = tracehead; tracehead = &trace;
7358 variable0 = param0;
7359 variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
7360 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TLt::==*/)))))));
7361 if (UNTAG_Bool(variable1)) { /*if*/
7362 variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
7363 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7364 }
7365 tracehead = trace.prev;
7366 return;
7367 }
7368 void parser_prod___AGtMethid___n_gt__eq(val_t self, val_t param0) {
7369 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtMethid___n_gt__eq, 3886};
7370 val_t variable0;
7371 val_t variable1;
7372 trace.prev = tracehead; tracehead = &trace;
7373 variable0 = param0;
7374 ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ = variable0 /*n*/;
7375 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TGt::==*/)))))));
7376 if (UNTAG_Bool(variable1)) { /*if*/
7377 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TGt::parent=*/;
7378 }
7379 tracehead = trace.prev;
7380 return;
7381 }
7382 void parser_prod___AGtMethid___empty_init(val_t self, int* init_table) {
7383 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtMethid___empty_init, 3894};
7384 trace.prev = tracehead; tracehead = &trace;
7385 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i]) return;
7386 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
7387 tracehead = trace.prev;
7388 return;
7389 }
7390 void parser_prod___AGtMethid___init_agtmethid(val_t self, val_t param0, int* init_table) {
7391 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtMethid___init_agtmethid, 3896};
7392 val_t variable0;
7393 val_t variable1;
7394 trace.prev = tracehead; tracehead = &trace;
7395 variable0 = param0;
7396 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i]) return;
7397 ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ = variable0 /*n_gt*/;
7398 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_gt*/ == NIT_NULL /*null*/) || (( variable0 /*n_gt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_gt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_gt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_gt*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_gt*/, NIT_NULL /*null*/) /*TGt::==*/)))))));
7399 if (UNTAG_Bool(variable1)) { /*if*/
7400 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_gt*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_gt*/, self) /*TGt::parent=*/;
7401 }
7402 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
7403 tracehead = trace.prev;
7404 return;
7405 }
7406 void parser_prod___AGtMethid___replace_child(val_t self, val_t param0, val_t param1) {
7407 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtMethid___replace_child, 3906};
7408 val_t variable0;
7409 val_t variable1;
7410 val_t variable2;
7411 trace.prev = tracehead; tracehead = &trace;
7412 variable0 = param0;
7413 variable1 = param1;
7414 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7415 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGtMethid___replace_child, 3908); nit_exit(1);}
7416 variable2 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
7417 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TGt::==*/)))));
7418 if (UNTAG_Bool(variable2)) { /*if*/
7419 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7420 if (UNTAG_Bool(variable2)) { /*if*/
7421 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7422 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TGt, ID_TGt)) /*cast TGt*/;
7423 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGtMethid___replace_child, 3912); nit_exit(1);}
7424 ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ = variable1 /*new_child*/;
7425 } else { /*if*/
7426 ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ = NIT_NULL /*null*/;
7427 }
7428 goto return_label334;
7429 }
7430 return_label334: while(false);
7431 tracehead = trace.prev;
7432 return;
7433 }
7434 void parser_prod___AGtMethid___visit_all(val_t self, val_t param0) {
7435 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtMethid___visit_all, 3921};
7436 val_t variable0;
7437 val_t variable1;
7438 trace.prev = tracehead; tracehead = &trace;
7439 variable0 = param0;
7440 variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
7441 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TGt::==*/)))))));
7442 if (UNTAG_Bool(variable1)) { /*if*/
7443 variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
7444 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7445 }
7446 tracehead = trace.prev;
7447 return;
7448 }
7449 void parser_prod___AGtMethid___visit_all_reverse(val_t self, val_t param0) {
7450 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtMethid___visit_all_reverse, 3928};
7451 val_t variable0;
7452 val_t variable1;
7453 trace.prev = tracehead; tracehead = &trace;
7454 variable0 = param0;
7455 variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
7456 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TGt::==*/)))))));
7457 if (UNTAG_Bool(variable1)) { /*if*/
7458 variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
7459 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7460 }
7461 tracehead = trace.prev;
7462 return;
7463 }
7464 void parser_prod___ABraMethid___n_obra__eq(val_t self, val_t param0) {
7465 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraMethid___n_obra__eq, 3936};
7466 val_t variable0;
7467 val_t variable1;
7468 trace.prev = tracehead; tracehead = &trace;
7469 variable0 = param0;
7470 ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ = variable0 /*n*/;
7471 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TObra::==*/)))))));
7472 if (UNTAG_Bool(variable1)) { /*if*/
7473 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TObra::parent=*/;
7474 }
7475 tracehead = trace.prev;
7476 return;
7477 }
7478 void parser_prod___ABraMethid___n_cbra__eq(val_t self, val_t param0) {
7479 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraMethid___n_cbra__eq, 3943};
7480 val_t variable0;
7481 val_t variable1;
7482 trace.prev = tracehead; tracehead = &trace;
7483 variable0 = param0;
7484 ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ = variable0 /*n*/;
7485 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TCbra::==*/)))))));
7486 if (UNTAG_Bool(variable1)) { /*if*/
7487 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TCbra::parent=*/;
7488 }
7489 tracehead = trace.prev;
7490 return;
7491 }
7492 void parser_prod___ABraMethid___empty_init(val_t self, int* init_table) {
7493 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraMethid___empty_init, 3951};
7494 trace.prev = tracehead; tracehead = &trace;
7495 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i]) return;
7496 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
7497 tracehead = trace.prev;
7498 return;
7499 }
7500 void parser_prod___ABraMethid___init_abramethid(val_t self, val_t param0, val_t param1, int* init_table) {
7501 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraMethid___init_abramethid, 3953};
7502 val_t variable0;
7503 val_t variable1;
7504 val_t variable2;
7505 trace.prev = tracehead; tracehead = &trace;
7506 variable0 = param0;
7507 variable1 = param1;
7508 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i]) return;
7509 ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ = variable0 /*n_obra*/;
7510 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_obra*/ == NIT_NULL /*null*/) || (( variable0 /*n_obra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_obra*/, NIT_NULL /*null*/) /*TObra::==*/)))))));
7511 if (UNTAG_Bool(variable2)) { /*if*/
7512 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_obra*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_obra*/, self) /*TObra::parent=*/;
7513 }
7514 ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ = variable1 /*n_cbra*/;
7515 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_cbra*/ == NIT_NULL /*null*/) || (( variable1 /*n_cbra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_cbra*/, NIT_NULL /*null*/) /*TCbra::==*/)))))));
7516 if (UNTAG_Bool(variable2)) { /*if*/
7517 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_cbra*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_cbra*/, self) /*TCbra::parent=*/;
7518 }
7519 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
7520 tracehead = trace.prev;
7521 return;
7522 }
7523 void parser_prod___ABraMethid___replace_child(val_t self, val_t param0, val_t param1) {
7524 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraMethid___replace_child, 3968};
7525 val_t variable0;
7526 val_t variable1;
7527 val_t variable2;
7528 trace.prev = tracehead; tracehead = &trace;
7529 variable0 = param0;
7530 variable1 = param1;
7531 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7532 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraMethid___replace_child, 3970); nit_exit(1);}
7533 variable2 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
7534 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TObra::==*/)))));
7535 if (UNTAG_Bool(variable2)) { /*if*/
7536 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7537 if (UNTAG_Bool(variable2)) { /*if*/
7538 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7539 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
7540 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraMethid___replace_child, 3974); nit_exit(1);}
7541 ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ = variable1 /*new_child*/;
7542 } else { /*if*/
7543 ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ = NIT_NULL /*null*/;
7544 }
7545 goto return_label341;
7546 }
7547 variable2 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
7548 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TCbra::==*/)))));
7549 if (UNTAG_Bool(variable2)) { /*if*/
7550 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7551 if (UNTAG_Bool(variable2)) { /*if*/
7552 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7553 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
7554 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraMethid___replace_child, 3984); nit_exit(1);}
7555 ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ = variable1 /*new_child*/;
7556 } else { /*if*/
7557 ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ = NIT_NULL /*null*/;
7558 }
7559 goto return_label341;
7560 }
7561 return_label341: while(false);
7562 tracehead = trace.prev;
7563 return;
7564 }
7565 void parser_prod___ABraMethid___visit_all(val_t self, val_t param0) {
7566 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraMethid___visit_all, 3993};
7567 val_t variable0;
7568 val_t variable1;
7569 trace.prev = tracehead; tracehead = &trace;
7570 variable0 = param0;
7571 variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
7572 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TObra::==*/)))))));
7573 if (UNTAG_Bool(variable1)) { /*if*/
7574 variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
7575 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7576 }
7577 variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
7578 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TCbra::==*/)))))));
7579 if (UNTAG_Bool(variable1)) { /*if*/
7580 variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
7581 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7582 }
7583 tracehead = trace.prev;
7584 return;
7585 }
7586 void parser_prod___ABraMethid___visit_all_reverse(val_t self, val_t param0) {
7587 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraMethid___visit_all_reverse, 4003};
7588 val_t variable0;
7589 val_t variable1;
7590 trace.prev = tracehead; tracehead = &trace;
7591 variable0 = param0;
7592 variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
7593 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TObra::==*/)))))));
7594 if (UNTAG_Bool(variable1)) { /*if*/
7595 variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
7596 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7597 }
7598 variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
7599 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TCbra::==*/)))))));
7600 if (UNTAG_Bool(variable1)) { /*if*/
7601 variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
7602 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7603 }
7604 tracehead = trace.prev;
7605 return;
7606 }
7607 void parser_prod___AStarshipMethid___n_starship__eq(val_t self, val_t param0) {
7608 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipMethid___n_starship__eq, 4014};
7609 val_t variable0;
7610 val_t variable1;
7611 trace.prev = tracehead; tracehead = &trace;
7612 variable0 = param0;
7613 ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ = variable0 /*n*/;
7614 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TStarship::==*/)))))));
7615 if (UNTAG_Bool(variable1)) { /*if*/
7616 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TStarship::parent=*/;
7617 }
7618 tracehead = trace.prev;
7619 return;
7620 }
7621 void parser_prod___AStarshipMethid___empty_init(val_t self, int* init_table) {
7622 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipMethid___empty_init, 4022};
7623 trace.prev = tracehead; tracehead = &trace;
7624 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
7625 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
7626 tracehead = trace.prev;
7627 return;
7628 }
7629 void parser_prod___AStarshipMethid___init_astarshipmethid(val_t self, val_t param0, int* init_table) {
7630 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipMethid___init_astarshipmethid, 4024};
7631 val_t variable0;
7632 val_t variable1;
7633 trace.prev = tracehead; tracehead = &trace;
7634 variable0 = param0;
7635 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
7636 ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ = variable0 /*n_starship*/;
7637 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_starship*/ == NIT_NULL /*null*/) || (( variable0 /*n_starship*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_starship*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_starship*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_starship*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_starship*/, NIT_NULL /*null*/) /*TStarship::==*/)))))));
7638 if (UNTAG_Bool(variable1)) { /*if*/
7639 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_starship*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_starship*/, self) /*TStarship::parent=*/;
7640 }
7641 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
7642 tracehead = trace.prev;
7643 return;
7644 }
7645 void parser_prod___AStarshipMethid___replace_child(val_t self, val_t param0, val_t param1) {
7646 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipMethid___replace_child, 4034};
7647 val_t variable0;
7648 val_t variable1;
7649 val_t variable2;
7650 trace.prev = tracehead; tracehead = &trace;
7651 variable0 = param0;
7652 variable1 = param1;
7653 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7654 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarshipMethid___replace_child, 4036); nit_exit(1);}
7655 variable2 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
7656 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TStarship::==*/)))));
7657 if (UNTAG_Bool(variable2)) { /*if*/
7658 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7659 if (UNTAG_Bool(variable2)) { /*if*/
7660 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7661 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
7662 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarshipMethid___replace_child, 4040); nit_exit(1);}
7663 ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ = variable1 /*new_child*/;
7664 } else { /*if*/
7665 ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ = NIT_NULL /*null*/;
7666 }
7667 goto return_label347;
7668 }
7669 return_label347: while(false);
7670 tracehead = trace.prev;
7671 return;
7672 }
7673 void parser_prod___AStarshipMethid___visit_all(val_t self, val_t param0) {
7674 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipMethid___visit_all, 4049};
7675 val_t variable0;
7676 val_t variable1;
7677 trace.prev = tracehead; tracehead = &trace;
7678 variable0 = param0;
7679 variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
7680 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TStarship::==*/)))))));
7681 if (UNTAG_Bool(variable1)) { /*if*/
7682 variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
7683 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7684 }
7685 tracehead = trace.prev;
7686 return;
7687 }
7688 void parser_prod___AStarshipMethid___visit_all_reverse(val_t self, val_t param0) {
7689 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipMethid___visit_all_reverse, 4056};
7690 val_t variable0;
7691 val_t variable1;
7692 trace.prev = tracehead; tracehead = &trace;
7693 variable0 = param0;
7694 variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
7695 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TStarship::==*/)))))));
7696 if (UNTAG_Bool(variable1)) { /*if*/
7697 variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
7698 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7699 }
7700 tracehead = trace.prev;
7701 return;
7702 }
7703 void parser_prod___AAssignMethid___n_id__eq(val_t self, val_t param0) {
7704 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssignMethid___n_id__eq, 4064};
7705 val_t variable0;
7706 val_t variable1;
7707 trace.prev = tracehead; tracehead = &trace;
7708 variable0 = param0;
7709 ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ = variable0 /*n*/;
7710 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
7711 if (UNTAG_Bool(variable1)) { /*if*/
7712 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
7713 }
7714 tracehead = trace.prev;
7715 return;
7716 }
7717 void parser_prod___AAssignMethid___n_assign__eq(val_t self, val_t param0) {
7718 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssignMethid___n_assign__eq, 4071};
7719 val_t variable0;
7720 val_t variable1;
7721 trace.prev = tracehead; tracehead = &trace;
7722 variable0 = param0;
7723 ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ = variable0 /*n*/;
7724 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
7725 if (UNTAG_Bool(variable1)) { /*if*/
7726 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAssign::parent=*/;
7727 }
7728 tracehead = trace.prev;
7729 return;
7730 }
7731 void parser_prod___AAssignMethid___empty_init(val_t self, int* init_table) {
7732 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssignMethid___empty_init, 4079};
7733 trace.prev = tracehead; tracehead = &trace;
7734 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
7735 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
7736 tracehead = trace.prev;
7737 return;
7738 }
7739 void parser_prod___AAssignMethid___init_aassignmethid(val_t self, val_t param0, val_t param1, int* init_table) {
7740 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssignMethid___init_aassignmethid, 4081};
7741 val_t variable0;
7742 val_t variable1;
7743 val_t variable2;
7744 trace.prev = tracehead; tracehead = &trace;
7745 variable0 = param0;
7746 variable1 = param1;
7747 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
7748 ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ = variable0 /*n_id*/;
7749 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
7750 if (UNTAG_Bool(variable2)) { /*if*/
7751 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TId::parent=*/;
7752 }
7753 ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ = variable1 /*n_assign*/;
7754 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_assign*/ == NIT_NULL /*null*/) || (( variable1 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_assign*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
7755 if (UNTAG_Bool(variable2)) { /*if*/
7756 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_assign*/, self) /*TAssign::parent=*/;
7757 }
7758 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
7759 tracehead = trace.prev;
7760 return;
7761 }
7762 void parser_prod___AAssignMethid___replace_child(val_t self, val_t param0, val_t param1) {
7763 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssignMethid___replace_child, 4096};
7764 val_t variable0;
7765 val_t variable1;
7766 val_t variable2;
7767 trace.prev = tracehead; tracehead = &trace;
7768 variable0 = param0;
7769 variable1 = param1;
7770 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7771 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAssignMethid___replace_child, 4098); nit_exit(1);}
7772 variable2 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
7773 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
7774 if (UNTAG_Bool(variable2)) { /*if*/
7775 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7776 if (UNTAG_Bool(variable2)) { /*if*/
7777 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7778 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
7779 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAssignMethid___replace_child, 4102); nit_exit(1);}
7780 ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ = variable1 /*new_child*/;
7781 } else { /*if*/
7782 ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ = NIT_NULL /*null*/;
7783 }
7784 goto return_label354;
7785 }
7786 variable2 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
7787 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAssign::==*/)))));
7788 if (UNTAG_Bool(variable2)) { /*if*/
7789 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7790 if (UNTAG_Bool(variable2)) { /*if*/
7791 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7792 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
7793 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAssignMethid___replace_child, 4112); nit_exit(1);}
7794 ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ = variable1 /*new_child*/;
7795 } else { /*if*/
7796 ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ = NIT_NULL /*null*/;
7797 }
7798 goto return_label354;
7799 }
7800 return_label354: while(false);
7801 tracehead = trace.prev;
7802 return;
7803 }
7804 void parser_prod___AAssignMethid___visit_all(val_t self, val_t param0) {
7805 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssignMethid___visit_all, 4121};
7806 val_t variable0;
7807 val_t variable1;
7808 trace.prev = tracehead; tracehead = &trace;
7809 variable0 = param0;
7810 variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
7811 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
7812 if (UNTAG_Bool(variable1)) { /*if*/
7813 variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
7814 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7815 }
7816 variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
7817 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
7818 if (UNTAG_Bool(variable1)) { /*if*/
7819 variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
7820 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7821 }
7822 tracehead = trace.prev;
7823 return;
7824 }
7825 void parser_prod___AAssignMethid___visit_all_reverse(val_t self, val_t param0) {
7826 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssignMethid___visit_all_reverse, 4131};
7827 val_t variable0;
7828 val_t variable1;
7829 trace.prev = tracehead; tracehead = &trace;
7830 variable0 = param0;
7831 variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
7832 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
7833 if (UNTAG_Bool(variable1)) { /*if*/
7834 variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
7835 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7836 }
7837 variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
7838 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
7839 if (UNTAG_Bool(variable1)) { /*if*/
7840 variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
7841 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7842 }
7843 tracehead = trace.prev;
7844 return;
7845 }
7846 void parser_prod___ABraassignMethid___n_obra__eq(val_t self, val_t param0) {
7847 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___n_obra__eq, 4142};
7848 val_t variable0;
7849 val_t variable1;
7850 trace.prev = tracehead; tracehead = &trace;
7851 variable0 = param0;
7852 ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ = variable0 /*n*/;
7853 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TObra::==*/)))))));
7854 if (UNTAG_Bool(variable1)) { /*if*/
7855 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TObra::parent=*/;
7856 }
7857 tracehead = trace.prev;
7858 return;
7859 }
7860 void parser_prod___ABraassignMethid___n_cbra__eq(val_t self, val_t param0) {
7861 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___n_cbra__eq, 4149};
7862 val_t variable0;
7863 val_t variable1;
7864 trace.prev = tracehead; tracehead = &trace;
7865 variable0 = param0;
7866 ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ = variable0 /*n*/;
7867 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TCbra::==*/)))))));
7868 if (UNTAG_Bool(variable1)) { /*if*/
7869 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TCbra::parent=*/;
7870 }
7871 tracehead = trace.prev;
7872 return;
7873 }
7874 void parser_prod___ABraassignMethid___n_assign__eq(val_t self, val_t param0) {
7875 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___n_assign__eq, 4156};
7876 val_t variable0;
7877 val_t variable1;
7878 trace.prev = tracehead; tracehead = &trace;
7879 variable0 = param0;
7880 ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ = variable0 /*n*/;
7881 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
7882 if (UNTAG_Bool(variable1)) { /*if*/
7883 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAssign::parent=*/;
7884 }
7885 tracehead = trace.prev;
7886 return;
7887 }
7888 void parser_prod___ABraassignMethid___empty_init(val_t self, int* init_table) {
7889 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___empty_init, 4164};
7890 trace.prev = tracehead; tracehead = &trace;
7891 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
7892 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
7893 tracehead = trace.prev;
7894 return;
7895 }
7896 void parser_prod___ABraassignMethid___init_abraassignmethid(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
7897 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___init_abraassignmethid, 4166};
7898 val_t variable0;
7899 val_t variable1;
7900 val_t variable2;
7901 val_t variable3;
7902 trace.prev = tracehead; tracehead = &trace;
7903 variable0 = param0;
7904 variable1 = param1;
7905 variable2 = param2;
7906 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
7907 ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ = variable0 /*n_obra*/;
7908 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_obra*/ == NIT_NULL /*null*/) || (( variable0 /*n_obra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_obra*/, NIT_NULL /*null*/) /*TObra::==*/)))))));
7909 if (UNTAG_Bool(variable3)) { /*if*/
7910 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_obra*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_obra*/, self) /*TObra::parent=*/;
7911 }
7912 ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ = variable1 /*n_cbra*/;
7913 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_cbra*/ == NIT_NULL /*null*/) || (( variable1 /*n_cbra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_cbra*/, NIT_NULL /*null*/) /*TCbra::==*/)))))));
7914 if (UNTAG_Bool(variable3)) { /*if*/
7915 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_cbra*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_cbra*/, self) /*TCbra::parent=*/;
7916 }
7917 ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ = variable2 /*n_assign*/;
7918 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign*/ == NIT_NULL /*null*/) || (( variable2 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
7919 if (UNTAG_Bool(variable3)) { /*if*/
7920 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign*/, self) /*TAssign::parent=*/;
7921 }
7922 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
7923 tracehead = trace.prev;
7924 return;
7925 }
7926 void parser_prod___ABraassignMethid___replace_child(val_t self, val_t param0, val_t param1) {
7927 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___replace_child, 4186};
7928 val_t variable0;
7929 val_t variable1;
7930 val_t variable2;
7931 trace.prev = tracehead; tracehead = &trace;
7932 variable0 = param0;
7933 variable1 = param1;
7934 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7935 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraassignMethid___replace_child, 4188); nit_exit(1);}
7936 variable2 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
7937 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TObra::==*/)))));
7938 if (UNTAG_Bool(variable2)) { /*if*/
7939 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7940 if (UNTAG_Bool(variable2)) { /*if*/
7941 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7942 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
7943 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraassignMethid___replace_child, 4192); nit_exit(1);}
7944 ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ = variable1 /*new_child*/;
7945 } else { /*if*/
7946 ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ = NIT_NULL /*null*/;
7947 }
7948 goto return_label362;
7949 }
7950 variable2 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
7951 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TCbra::==*/)))));
7952 if (UNTAG_Bool(variable2)) { /*if*/
7953 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7954 if (UNTAG_Bool(variable2)) { /*if*/
7955 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7956 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
7957 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraassignMethid___replace_child, 4202); nit_exit(1);}
7958 ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ = variable1 /*new_child*/;
7959 } else { /*if*/
7960 ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ = NIT_NULL /*null*/;
7961 }
7962 goto return_label362;
7963 }
7964 variable2 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
7965 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAssign::==*/)))));
7966 if (UNTAG_Bool(variable2)) { /*if*/
7967 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
7968 if (UNTAG_Bool(variable2)) { /*if*/
7969 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
7970 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
7971 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraassignMethid___replace_child, 4212); nit_exit(1);}
7972 ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ = variable1 /*new_child*/;
7973 } else { /*if*/
7974 ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ = NIT_NULL /*null*/;
7975 }
7976 goto return_label362;
7977 }
7978 return_label362: while(false);
7979 tracehead = trace.prev;
7980 return;
7981 }
7982 void parser_prod___ABraassignMethid___visit_all(val_t self, val_t param0) {
7983 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___visit_all, 4221};
7984 val_t variable0;
7985 val_t variable1;
7986 trace.prev = tracehead; tracehead = &trace;
7987 variable0 = param0;
7988 variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
7989 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TObra::==*/)))))));
7990 if (UNTAG_Bool(variable1)) { /*if*/
7991 variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
7992 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7993 }
7994 variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
7995 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TCbra::==*/)))))));
7996 if (UNTAG_Bool(variable1)) { /*if*/
7997 variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
7998 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
7999 }
8000 variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
8001 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
8002 if (UNTAG_Bool(variable1)) { /*if*/
8003 variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
8004 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8005 }
8006 tracehead = trace.prev;
8007 return;
8008 }
8009 void parser_prod___ABraassignMethid___visit_all_reverse(val_t self, val_t param0) {
8010 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraassignMethid___visit_all_reverse, 4234};
8011 val_t variable0;
8012 val_t variable1;
8013 trace.prev = tracehead; tracehead = &trace;
8014 variable0 = param0;
8015 variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
8016 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TObra::==*/)))))));
8017 if (UNTAG_Bool(variable1)) { /*if*/
8018 variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
8019 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8020 }
8021 variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
8022 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TCbra::==*/)))))));
8023 if (UNTAG_Bool(variable1)) { /*if*/
8024 variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
8025 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8026 }
8027 variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
8028 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
8029 if (UNTAG_Bool(variable1)) { /*if*/
8030 variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
8031 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8032 }
8033 tracehead = trace.prev;
8034 return;
8035 }
8036 void parser_prod___ASignature___n_type__eq(val_t self, val_t param0) {
8037 struct trace_t trace = {NULL, LOCATE_parser_prod___ASignature___n_type__eq, 4248};
8038 val_t variable0;
8039 val_t variable1;
8040 trace.prev = tracehead; tracehead = &trace;
8041 variable0 = param0;
8042 ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ = variable0 /*n*/;
8043 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
8044 if (UNTAG_Bool(variable1)) { /*if*/
8045 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
8046 }
8047 tracehead = trace.prev;
8048 return;
8049 }
8050 void parser_prod___ASignature___empty_init(val_t self, int* init_table) {
8051 struct trace_t trace = {NULL, LOCATE_parser_prod___ASignature___empty_init, 4256};
8052 trace.prev = tracehead; tracehead = &trace;
8053 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i]) return;
8054 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i] = 1;
8055 tracehead = trace.prev;
8056 return;
8057 }
8058 void parser_prod___ASignature___init_asignature(val_t self, val_t param0, val_t param1, int* init_table) {
8059 struct trace_t trace = {NULL, LOCATE_parser_prod___ASignature___init_asignature, 4258};
8060 val_t variable0;
8061 val_t variable1;
8062 val_t variable2;
8063 val_t variable3;
8064 val_t variable4;
8065 trace.prev = tracehead; tracehead = &trace;
8066 variable0 = param0;
8067 variable1 = param1;
8068 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i]) return;
8069 variable2 = NEW_list___List___init(); /*new List[PParam]*/
8070 ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/ = variable2;
8071 variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_params*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_params*/) /*Array::iterator*/;
8072 while (true) { /*for*/
8073 variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
8074 if (!UNTAG_Bool(variable3)) break; /*for*/
8075 variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
8076 variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
8077 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASignature___init_asignature, 4265); nit_exit(1);}
8078 variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8079 ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable3 /*n*/) /*List::add*/;
8080 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/, self) /*PParam::parent=*/;
8081 continue_368: while(0);
8082 ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
8083 }
8084 break_368: while(0);
8085 ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ = variable1 /*n_type*/;
8086 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ == NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
8087 if (UNTAG_Bool(variable2)) { /*if*/
8088 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/, self) /*PType::parent=*/;
8089 }
8090 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i] = 1;
8091 tracehead = trace.prev;
8092 return;
8093 }
8094 void parser_prod___ASignature___replace_child(val_t self, val_t param0, val_t param1) {
8095 struct trace_t trace = {NULL, LOCATE_parser_prod___ASignature___replace_child, 4275};
8096 val_t variable0;
8097 val_t variable1;
8098 val_t variable2;
8099 val_t variable3;
8100 val_t variable4;
8101 trace.prev = tracehead; tracehead = &trace;
8102 variable0 = param0;
8103 variable1 = param1;
8104 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8105 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASignature___replace_child, 4277); nit_exit(1);}
8106 variable2 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8107 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
8108 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
8109 variable2 = variable3;
8110 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
8111 while (true) { /*for*/
8112 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
8113 if (!UNTAG_Bool(variable3)) break; /*for*/
8114 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
8115 variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8116 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
8117 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PParam::==*/)))));
8118 if (UNTAG_Bool(variable4)) { /*if*/
8119 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8120 if (UNTAG_Bool(variable4)) { /*if*/
8121 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
8122 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASignature___replace_child, 4281); nit_exit(1);}
8123 variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8124 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
8125 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PParam::parent=*/;
8126 } else { /*if*/
8127 variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8128 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
8129 }
8130 goto return_label369;
8131 }
8132 continue_370: while(0);
8133 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
8134 }
8135 break_370: while(0);
8136 variable2 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
8137 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
8138 if (UNTAG_Bool(variable2)) { /*if*/
8139 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8140 if (UNTAG_Bool(variable2)) { /*if*/
8141 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8142 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
8143 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASignature___replace_child, 4293); nit_exit(1);}
8144 ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ = variable1 /*new_child*/;
8145 } else { /*if*/
8146 ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ = NIT_NULL /*null*/;
8147 }
8148 goto return_label369;
8149 }
8150 return_label369: while(false);
8151 tracehead = trace.prev;
8152 return;
8153 }
8154 void parser_prod___ASignature___visit_all(val_t self, val_t param0) {
8155 struct trace_t trace = {NULL, LOCATE_parser_prod___ASignature___visit_all, 4302};
8156 val_t variable0;
8157 val_t variable1;
8158 val_t variable2;
8159 trace.prev = tracehead; tracehead = &trace;
8160 variable0 = param0;
8161 variable1 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8162 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
8163 while (true) { /*for*/
8164 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
8165 if (!UNTAG_Bool(variable2)) break; /*for*/
8166 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
8167 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
8168 continue_372: while(0);
8169 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
8170 }
8171 break_372: while(0);
8172 variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
8173 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
8174 if (UNTAG_Bool(variable1)) { /*if*/
8175 variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
8176 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8177 }
8178 tracehead = trace.prev;
8179 return;
8180 }
8181 void parser_prod___ASignature___visit_all_reverse(val_t self, val_t param0) {
8182 struct trace_t trace = {NULL, LOCATE_parser_prod___ASignature___visit_all_reverse, 4312};
8183 val_t variable0;
8184 val_t variable1;
8185 val_t variable2;
8186 trace.prev = tracehead; tracehead = &trace;
8187 variable0 = param0;
8188 variable2 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8189 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
8190 variable1 = variable2;
8191 while (true) { /*while*/
8192 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
8193 if (!UNTAG_Bool(variable2)) break; /* while*/
8194 variable2 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
8195 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
8196 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
8197 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
8198 variable1 = variable2 /*i=*/;
8199 continue_374: while(0);
8200 }
8201 break_374: while(0);
8202 variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
8203 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
8204 if (UNTAG_Bool(variable1)) { /*if*/
8205 variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
8206 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8207 }
8208 tracehead = trace.prev;
8209 return;
8210 }
8211 void parser_prod___AParam___n_id__eq(val_t self, val_t param0) {
8212 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___n_id__eq, 4327};
8213 val_t variable0;
8214 val_t variable1;
8215 trace.prev = tracehead; tracehead = &trace;
8216 variable0 = param0;
8217 ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ = variable0 /*n*/;
8218 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
8219 if (UNTAG_Bool(variable1)) { /*if*/
8220 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
8221 }
8222 tracehead = trace.prev;
8223 return;
8224 }
8225 void parser_prod___AParam___n_type__eq(val_t self, val_t param0) {
8226 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___n_type__eq, 4334};
8227 val_t variable0;
8228 val_t variable1;
8229 trace.prev = tracehead; tracehead = &trace;
8230 variable0 = param0;
8231 ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ = variable0 /*n*/;
8232 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
8233 if (UNTAG_Bool(variable1)) { /*if*/
8234 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
8235 }
8236 tracehead = trace.prev;
8237 return;
8238 }
8239 void parser_prod___AParam___n_dotdotdot__eq(val_t self, val_t param0) {
8240 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___n_dotdotdot__eq, 4341};
8241 val_t variable0;
8242 val_t variable1;
8243 trace.prev = tracehead; tracehead = &trace;
8244 variable0 = param0;
8245 ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ = variable0 /*n*/;
8246 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
8247 if (UNTAG_Bool(variable1)) { /*if*/
8248 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TDotdotdot::parent=*/;
8249 }
8250 tracehead = trace.prev;
8251 return;
8252 }
8253 void parser_prod___AParam___empty_init(val_t self, int* init_table) {
8254 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___empty_init, 4349};
8255 trace.prev = tracehead; tracehead = &trace;
8256 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i]) return;
8257 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i] = 1;
8258 tracehead = trace.prev;
8259 return;
8260 }
8261 void parser_prod___AParam___init_aparam(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
8262 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___init_aparam, 4351};
8263 val_t variable0;
8264 val_t variable1;
8265 val_t variable2;
8266 val_t variable3;
8267 trace.prev = tracehead; tracehead = &trace;
8268 variable0 = param0;
8269 variable1 = param1;
8270 variable2 = param2;
8271 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i]) return;
8272 ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ = variable0 /*n_id*/;
8273 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
8274 if (UNTAG_Bool(variable3)) { /*if*/
8275 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TId::parent=*/;
8276 }
8277 ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ = variable1 /*n_type*/;
8278 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ == NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
8279 if (UNTAG_Bool(variable3)) { /*if*/
8280 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/, self) /*PType::parent=*/;
8281 }
8282 ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ = variable2 /*n_dotdotdot*/;
8283 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_dotdotdot*/ == NIT_NULL /*null*/) || (( variable2 /*n_dotdotdot*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_dotdotdot*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_dotdotdot*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_dotdotdot*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_dotdotdot*/, NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
8284 if (UNTAG_Bool(variable3)) { /*if*/
8285 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_dotdotdot*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_dotdotdot*/, self) /*TDotdotdot::parent=*/;
8286 }
8287 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i] = 1;
8288 tracehead = trace.prev;
8289 return;
8290 }
8291 void parser_prod___AParam___replace_child(val_t self, val_t param0, val_t param1) {
8292 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___replace_child, 4371};
8293 val_t variable0;
8294 val_t variable1;
8295 val_t variable2;
8296 trace.prev = tracehead; tracehead = &trace;
8297 variable0 = param0;
8298 variable1 = param1;
8299 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8300 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AParam___replace_child, 4373); nit_exit(1);}
8301 variable2 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
8302 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
8303 if (UNTAG_Bool(variable2)) { /*if*/
8304 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8305 if (UNTAG_Bool(variable2)) { /*if*/
8306 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8307 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
8308 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AParam___replace_child, 4377); nit_exit(1);}
8309 ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ = variable1 /*new_child*/;
8310 } else { /*if*/
8311 ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ = NIT_NULL /*null*/;
8312 }
8313 goto return_label380;
8314 }
8315 variable2 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
8316 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
8317 if (UNTAG_Bool(variable2)) { /*if*/
8318 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8319 if (UNTAG_Bool(variable2)) { /*if*/
8320 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8321 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
8322 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AParam___replace_child, 4387); nit_exit(1);}
8323 ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ = variable1 /*new_child*/;
8324 } else { /*if*/
8325 ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ = NIT_NULL /*null*/;
8326 }
8327 goto return_label380;
8328 }
8329 variable2 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
8330 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TDotdotdot::==*/)))));
8331 if (UNTAG_Bool(variable2)) { /*if*/
8332 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8333 if (UNTAG_Bool(variable2)) { /*if*/
8334 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8335 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
8336 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AParam___replace_child, 4397); nit_exit(1);}
8337 ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ = variable1 /*new_child*/;
8338 } else { /*if*/
8339 ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ = NIT_NULL /*null*/;
8340 }
8341 goto return_label380;
8342 }
8343 return_label380: while(false);
8344 tracehead = trace.prev;
8345 return;
8346 }
8347 void parser_prod___AParam___visit_all(val_t self, val_t param0) {
8348 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___visit_all, 4406};
8349 val_t variable0;
8350 val_t variable1;
8351 trace.prev = tracehead; tracehead = &trace;
8352 variable0 = param0;
8353 variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
8354 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
8355 if (UNTAG_Bool(variable1)) { /*if*/
8356 variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
8357 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8358 }
8359 variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
8360 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
8361 if (UNTAG_Bool(variable1)) { /*if*/
8362 variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
8363 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8364 }
8365 variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
8366 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
8367 if (UNTAG_Bool(variable1)) { /*if*/
8368 variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
8369 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8370 }
8371 tracehead = trace.prev;
8372 return;
8373 }
8374 void parser_prod___AParam___visit_all_reverse(val_t self, val_t param0) {
8375 struct trace_t trace = {NULL, LOCATE_parser_prod___AParam___visit_all_reverse, 4419};
8376 val_t variable0;
8377 val_t variable1;
8378 trace.prev = tracehead; tracehead = &trace;
8379 variable0 = param0;
8380 variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
8381 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
8382 if (UNTAG_Bool(variable1)) { /*if*/
8383 variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
8384 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8385 }
8386 variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
8387 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
8388 if (UNTAG_Bool(variable1)) { /*if*/
8389 variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
8390 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8391 }
8392 variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
8393 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
8394 if (UNTAG_Bool(variable1)) { /*if*/
8395 variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
8396 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8397 }
8398 tracehead = trace.prev;
8399 return;
8400 }
8401 void parser_prod___AType___n_id__eq(val_t self, val_t param0) {
8402 struct trace_t trace = {NULL, LOCATE_parser_prod___AType___n_id__eq, 4433};
8403 val_t variable0;
8404 val_t variable1;
8405 trace.prev = tracehead; tracehead = &trace;
8406 variable0 = param0;
8407 ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ = variable0 /*n*/;
8408 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
8409 if (UNTAG_Bool(variable1)) { /*if*/
8410 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TClassid::parent=*/;
8411 }
8412 tracehead = trace.prev;
8413 return;
8414 }
8415 void parser_prod___AType___empty_init(val_t self, int* init_table) {
8416 struct trace_t trace = {NULL, LOCATE_parser_prod___AType___empty_init, 4441};
8417 trace.prev = tracehead; tracehead = &trace;
8418 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i]) return;
8419 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i] = 1;
8420 tracehead = trace.prev;
8421 return;
8422 }
8423 void parser_prod___AType___init_atype(val_t self, val_t param0, val_t param1, int* init_table) {
8424 struct trace_t trace = {NULL, LOCATE_parser_prod___AType___init_atype, 4443};
8425 val_t variable0;
8426 val_t variable1;
8427 val_t variable2;
8428 val_t variable3;
8429 val_t variable4;
8430 trace.prev = tracehead; tracehead = &trace;
8431 variable0 = param0;
8432 variable1 = param1;
8433 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i]) return;
8434 ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ = variable0 /*n_id*/;
8435 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
8436 if (UNTAG_Bool(variable2)) { /*if*/
8437 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TClassid::parent=*/;
8438 }
8439 variable2 = NEW_list___List___init(); /*new List[PType]*/
8440 ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/ = variable2;
8441 variable2 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_types*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_types*/) /*Array::iterator*/;
8442 while (true) { /*for*/
8443 variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
8444 if (!UNTAG_Bool(variable3)) break; /*for*/
8445 variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
8446 variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_PType, ID_PType)) /*cast PType*/;
8447 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AType___init_atype, 4454); nit_exit(1);}
8448 variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8449 ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable3 /*n*/) /*List::add*/;
8450 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/, self) /*PType::parent=*/;
8451 continue_386: while(0);
8452 ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
8453 }
8454 break_386: while(0);
8455 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i] = 1;
8456 tracehead = trace.prev;
8457 return;
8458 }
8459 void parser_prod___AType___replace_child(val_t self, val_t param0, val_t param1) {
8460 struct trace_t trace = {NULL, LOCATE_parser_prod___AType___replace_child, 4460};
8461 val_t variable0;
8462 val_t variable1;
8463 val_t variable2;
8464 val_t variable3;
8465 val_t variable4;
8466 trace.prev = tracehead; tracehead = &trace;
8467 variable0 = param0;
8468 variable1 = param1;
8469 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8470 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AType___replace_child, 4462); nit_exit(1);}
8471 variable2 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
8472 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TClassid::==*/)))));
8473 if (UNTAG_Bool(variable2)) { /*if*/
8474 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8475 if (UNTAG_Bool(variable2)) { /*if*/
8476 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8477 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
8478 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AType___replace_child, 4466); nit_exit(1);}
8479 ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ = variable1 /*new_child*/;
8480 } else { /*if*/
8481 ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ = NIT_NULL /*null*/;
8482 }
8483 goto return_label387;
8484 }
8485 variable2 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8486 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
8487 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
8488 variable2 = variable3;
8489 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
8490 while (true) { /*for*/
8491 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
8492 if (!UNTAG_Bool(variable3)) break; /*for*/
8493 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
8494 variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8495 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
8496 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PType::==*/)))));
8497 if (UNTAG_Bool(variable4)) { /*if*/
8498 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8499 if (UNTAG_Bool(variable4)) { /*if*/
8500 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
8501 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AType___replace_child, 4476); nit_exit(1);}
8502 variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8503 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
8504 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PType::parent=*/;
8505 } else { /*if*/
8506 variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8507 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
8508 }
8509 goto return_label387;
8510 }
8511 continue_388: while(0);
8512 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
8513 }
8514 break_388: while(0);
8515 return_label387: while(false);
8516 tracehead = trace.prev;
8517 return;
8518 }
8519 void parser_prod___AType___visit_all(val_t self, val_t param0) {
8520 struct trace_t trace = {NULL, LOCATE_parser_prod___AType___visit_all, 4487};
8521 val_t variable0;
8522 val_t variable1;
8523 val_t variable2;
8524 trace.prev = tracehead; tracehead = &trace;
8525 variable0 = param0;
8526 variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
8527 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
8528 if (UNTAG_Bool(variable1)) { /*if*/
8529 variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
8530 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8531 }
8532 variable1 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8533 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
8534 while (true) { /*for*/
8535 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
8536 if (!UNTAG_Bool(variable2)) break; /*for*/
8537 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
8538 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
8539 continue_390: while(0);
8540 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
8541 }
8542 break_390: while(0);
8543 tracehead = trace.prev;
8544 return;
8545 }
8546 void parser_prod___AType___visit_all_reverse(val_t self, val_t param0) {
8547 struct trace_t trace = {NULL, LOCATE_parser_prod___AType___visit_all_reverse, 4497};
8548 val_t variable0;
8549 val_t variable1;
8550 val_t variable2;
8551 trace.prev = tracehead; tracehead = &trace;
8552 variable0 = param0;
8553 variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
8554 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
8555 if (UNTAG_Bool(variable1)) { /*if*/
8556 variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
8557 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8558 }
8559 variable2 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8560 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
8561 variable1 = variable2;
8562 while (true) { /*while*/
8563 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
8564 if (!UNTAG_Bool(variable2)) break; /* while*/
8565 variable2 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
8566 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
8567 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
8568 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
8569 variable1 = variable2 /*i=*/;
8570 continue_392: while(0);
8571 }
8572 break_392: while(0);
8573 tracehead = trace.prev;
8574 return;
8575 }
8576 void parser_prod___ABlockExpr___empty_init(val_t self, int* init_table) {
8577 struct trace_t trace = {NULL, LOCATE_parser_prod___ABlockExpr___empty_init, 4513};
8578 trace.prev = tracehead; tracehead = &trace;
8579 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
8580 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
8581 tracehead = trace.prev;
8582 return;
8583 }
8584 void parser_prod___ABlockExpr___init_ablockexpr(val_t self, val_t param0, int* init_table) {
8585 struct trace_t trace = {NULL, LOCATE_parser_prod___ABlockExpr___init_ablockexpr, 4515};
8586 val_t variable0;
8587 val_t variable1;
8588 val_t variable2;
8589 val_t variable3;
8590 trace.prev = tracehead; tracehead = &trace;
8591 variable0 = param0;
8592 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
8593 variable1 = NEW_list___List___init(); /*new List[PExpr]*/
8594 ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/ = variable1;
8595 variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_expr*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_expr*/) /*Array::iterator*/;
8596 while (true) { /*for*/
8597 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
8598 if (!UNTAG_Bool(variable2)) break; /*for*/
8599 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
8600 variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
8601 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABlockExpr___init_ablockexpr, 4521); nit_exit(1);}
8602 variable3 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8603 ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable2 /*n*/) /*List::add*/;
8604 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/, self) /*PExpr::parent=*/;
8605 continue_395: while(0);
8606 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
8607 }
8608 break_395: while(0);
8609 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
8610 tracehead = trace.prev;
8611 return;
8612 }
8613 void parser_prod___ABlockExpr___replace_child(val_t self, val_t param0, val_t param1) {
8614 struct trace_t trace = {NULL, LOCATE_parser_prod___ABlockExpr___replace_child, 4527};
8615 val_t variable0;
8616 val_t variable1;
8617 val_t variable2;
8618 val_t variable3;
8619 val_t variable4;
8620 trace.prev = tracehead; tracehead = &trace;
8621 variable0 = param0;
8622 variable1 = param1;
8623 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8624 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABlockExpr___replace_child, 4529); nit_exit(1);}
8625 variable2 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8626 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
8627 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
8628 variable2 = variable3;
8629 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
8630 while (true) { /*for*/
8631 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
8632 if (!UNTAG_Bool(variable3)) break; /*for*/
8633 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
8634 variable4 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8635 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
8636 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
8637 if (UNTAG_Bool(variable4)) { /*if*/
8638 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8639 if (UNTAG_Bool(variable4)) { /*if*/
8640 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
8641 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABlockExpr___replace_child, 4533); nit_exit(1);}
8642 variable4 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8643 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
8644 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
8645 } else { /*if*/
8646 variable4 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8647 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
8648 }
8649 goto return_label396;
8650 }
8651 continue_397: while(0);
8652 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
8653 }
8654 break_397: while(0);
8655 return_label396: while(false);
8656 tracehead = trace.prev;
8657 return;
8658 }
8659 void parser_prod___ABlockExpr___visit_all(val_t self, val_t param0) {
8660 struct trace_t trace = {NULL, LOCATE_parser_prod___ABlockExpr___visit_all, 4544};
8661 val_t variable0;
8662 val_t variable1;
8663 val_t variable2;
8664 trace.prev = tracehead; tracehead = &trace;
8665 variable0 = param0;
8666 variable1 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8667 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
8668 while (true) { /*for*/
8669 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
8670 if (!UNTAG_Bool(variable2)) break; /*for*/
8671 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
8672 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
8673 continue_399: while(0);
8674 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
8675 }
8676 break_399: while(0);
8677 tracehead = trace.prev;
8678 return;
8679 }
8680 void parser_prod___ABlockExpr___visit_all_reverse(val_t self, val_t param0) {
8681 struct trace_t trace = {NULL, LOCATE_parser_prod___ABlockExpr___visit_all_reverse, 4551};
8682 val_t variable0;
8683 val_t variable1;
8684 val_t variable2;
8685 trace.prev = tracehead; tracehead = &trace;
8686 variable0 = param0;
8687 variable2 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8688 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
8689 variable1 = variable2;
8690 while (true) { /*while*/
8691 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
8692 if (!UNTAG_Bool(variable2)) break; /* while*/
8693 variable2 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
8694 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
8695 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
8696 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
8697 variable1 = variable2 /*i=*/;
8698 continue_401: while(0);
8699 }
8700 break_401: while(0);
8701 tracehead = trace.prev;
8702 return;
8703 }
8704 void parser_prod___AVardeclExpr___n_kwvar__eq(val_t self, val_t param0) {
8705 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___n_kwvar__eq, 4563};
8706 val_t variable0;
8707 val_t variable1;
8708 trace.prev = tracehead; tracehead = &trace;
8709 variable0 = param0;
8710 ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ = variable0 /*n*/;
8711 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwvar::==*/)))))));
8712 if (UNTAG_Bool(variable1)) { /*if*/
8713 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwvar::parent=*/;
8714 }
8715 tracehead = trace.prev;
8716 return;
8717 }
8718 void parser_prod___AVardeclExpr___n_id__eq(val_t self, val_t param0) {
8719 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___n_id__eq, 4570};
8720 val_t variable0;
8721 val_t variable1;
8722 trace.prev = tracehead; tracehead = &trace;
8723 variable0 = param0;
8724 ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ = variable0 /*n*/;
8725 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
8726 if (UNTAG_Bool(variable1)) { /*if*/
8727 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
8728 }
8729 tracehead = trace.prev;
8730 return;
8731 }
8732 void parser_prod___AVardeclExpr___n_type__eq(val_t self, val_t param0) {
8733 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___n_type__eq, 4577};
8734 val_t variable0;
8735 val_t variable1;
8736 trace.prev = tracehead; tracehead = &trace;
8737 variable0 = param0;
8738 ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ = variable0 /*n*/;
8739 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
8740 if (UNTAG_Bool(variable1)) { /*if*/
8741 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
8742 }
8743 tracehead = trace.prev;
8744 return;
8745 }
8746 void parser_prod___AVardeclExpr___n_assign__eq(val_t self, val_t param0) {
8747 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___n_assign__eq, 4584};
8748 val_t variable0;
8749 val_t variable1;
8750 trace.prev = tracehead; tracehead = &trace;
8751 variable0 = param0;
8752 ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ = variable0 /*n*/;
8753 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
8754 if (UNTAG_Bool(variable1)) { /*if*/
8755 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAssign::parent=*/;
8756 }
8757 tracehead = trace.prev;
8758 return;
8759 }
8760 void parser_prod___AVardeclExpr___n_expr__eq(val_t self, val_t param0) {
8761 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___n_expr__eq, 4591};
8762 val_t variable0;
8763 val_t variable1;
8764 trace.prev = tracehead; tracehead = &trace;
8765 variable0 = param0;
8766 ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ = variable0 /*n*/;
8767 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
8768 if (UNTAG_Bool(variable1)) { /*if*/
8769 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
8770 }
8771 tracehead = trace.prev;
8772 return;
8773 }
8774 void parser_prod___AVardeclExpr___empty_init(val_t self, int* init_table) {
8775 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___empty_init, 4599};
8776 trace.prev = tracehead; tracehead = &trace;
8777 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
8778 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
8779 tracehead = trace.prev;
8780 return;
8781 }
8782 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) {
8783 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___init_avardeclexpr, 4601};
8784 val_t variable0;
8785 val_t variable1;
8786 val_t variable2;
8787 val_t variable3;
8788 val_t variable4;
8789 val_t variable5;
8790 trace.prev = tracehead; tracehead = &trace;
8791 variable0 = param0;
8792 variable1 = param1;
8793 variable2 = param2;
8794 variable3 = param3;
8795 variable4 = param4;
8796 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
8797 ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ = variable0 /*n_kwvar*/;
8798 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwvar*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwvar*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwvar*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwvar*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwvar*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwvar*/, NIT_NULL /*null*/) /*TKwvar::==*/)))))));
8799 if (UNTAG_Bool(variable5)) { /*if*/
8800 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwvar*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwvar*/, self) /*TKwvar::parent=*/;
8801 }
8802 ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ = variable1 /*n_id*/;
8803 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
8804 if (UNTAG_Bool(variable5)) { /*if*/
8805 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TId::parent=*/;
8806 }
8807 ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ = variable2 /*n_type*/;
8808 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_type*/ == NIT_NULL /*null*/) || (( variable2 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
8809 if (UNTAG_Bool(variable5)) { /*if*/
8810 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_type*/, self) /*PType::parent=*/;
8811 }
8812 ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ = variable3 /*n_assign*/;
8813 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_assign*/ == NIT_NULL /*null*/) || (( variable3 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_assign*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
8814 if (UNTAG_Bool(variable5)) { /*if*/
8815 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_assign*/, self) /*TAssign::parent=*/;
8816 }
8817 ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ = variable4 /*n_expr*/;
8818 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_expr*/ == NIT_NULL /*null*/) || (( variable4 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
8819 if (UNTAG_Bool(variable5)) { /*if*/
8820 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_expr*/, self) /*PExpr::parent=*/;
8821 }
8822 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
8823 tracehead = trace.prev;
8824 return;
8825 }
8826 void parser_prod___AVardeclExpr___replace_child(val_t self, val_t param0, val_t param1) {
8827 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___replace_child, 4631};
8828 val_t variable0;
8829 val_t variable1;
8830 val_t variable2;
8831 trace.prev = tracehead; tracehead = &trace;
8832 variable0 = param0;
8833 variable1 = param1;
8834 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8835 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVardeclExpr___replace_child, 4633); nit_exit(1);}
8836 variable2 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
8837 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwvar::==*/)))));
8838 if (UNTAG_Bool(variable2)) { /*if*/
8839 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8840 if (UNTAG_Bool(variable2)) { /*if*/
8841 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8842 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
8843 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVardeclExpr___replace_child, 4637); nit_exit(1);}
8844 ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ = variable1 /*new_child*/;
8845 } else { /*if*/
8846 ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ = NIT_NULL /*null*/;
8847 }
8848 goto return_label409;
8849 }
8850 variable2 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
8851 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
8852 if (UNTAG_Bool(variable2)) { /*if*/
8853 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8854 if (UNTAG_Bool(variable2)) { /*if*/
8855 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8856 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
8857 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVardeclExpr___replace_child, 4647); nit_exit(1);}
8858 ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ = variable1 /*new_child*/;
8859 } else { /*if*/
8860 ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ = NIT_NULL /*null*/;
8861 }
8862 goto return_label409;
8863 }
8864 variable2 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
8865 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
8866 if (UNTAG_Bool(variable2)) { /*if*/
8867 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8868 if (UNTAG_Bool(variable2)) { /*if*/
8869 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8870 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
8871 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVardeclExpr___replace_child, 4657); nit_exit(1);}
8872 ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ = variable1 /*new_child*/;
8873 } else { /*if*/
8874 ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ = NIT_NULL /*null*/;
8875 }
8876 goto return_label409;
8877 }
8878 variable2 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
8879 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAssign::==*/)))));
8880 if (UNTAG_Bool(variable2)) { /*if*/
8881 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8882 if (UNTAG_Bool(variable2)) { /*if*/
8883 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8884 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
8885 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVardeclExpr___replace_child, 4667); nit_exit(1);}
8886 ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ = variable1 /*new_child*/;
8887 } else { /*if*/
8888 ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ = NIT_NULL /*null*/;
8889 }
8890 goto return_label409;
8891 }
8892 variable2 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
8893 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
8894 if (UNTAG_Bool(variable2)) { /*if*/
8895 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
8896 if (UNTAG_Bool(variable2)) { /*if*/
8897 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
8898 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
8899 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVardeclExpr___replace_child, 4677); nit_exit(1);}
8900 ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ = variable1 /*new_child*/;
8901 } else { /*if*/
8902 ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ = NIT_NULL /*null*/;
8903 }
8904 goto return_label409;
8905 }
8906 return_label409: while(false);
8907 tracehead = trace.prev;
8908 return;
8909 }
8910 void parser_prod___AVardeclExpr___visit_all(val_t self, val_t param0) {
8911 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___visit_all, 4686};
8912 val_t variable0;
8913 val_t variable1;
8914 trace.prev = tracehead; tracehead = &trace;
8915 variable0 = param0;
8916 variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
8917 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwvar::==*/)))))));
8918 if (UNTAG_Bool(variable1)) { /*if*/
8919 variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
8920 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8921 }
8922 variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
8923 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
8924 if (UNTAG_Bool(variable1)) { /*if*/
8925 variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
8926 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8927 }
8928 variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
8929 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
8930 if (UNTAG_Bool(variable1)) { /*if*/
8931 variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
8932 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8933 }
8934 variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
8935 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
8936 if (UNTAG_Bool(variable1)) { /*if*/
8937 variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
8938 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8939 }
8940 variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
8941 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
8942 if (UNTAG_Bool(variable1)) { /*if*/
8943 variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
8944 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8945 }
8946 tracehead = trace.prev;
8947 return;
8948 }
8949 void parser_prod___AVardeclExpr___visit_all_reverse(val_t self, val_t param0) {
8950 struct trace_t trace = {NULL, LOCATE_parser_prod___AVardeclExpr___visit_all_reverse, 4705};
8951 val_t variable0;
8952 val_t variable1;
8953 trace.prev = tracehead; tracehead = &trace;
8954 variable0 = param0;
8955 variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
8956 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwvar::==*/)))))));
8957 if (UNTAG_Bool(variable1)) { /*if*/
8958 variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
8959 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8960 }
8961 variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
8962 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
8963 if (UNTAG_Bool(variable1)) { /*if*/
8964 variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
8965 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8966 }
8967 variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
8968 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
8969 if (UNTAG_Bool(variable1)) { /*if*/
8970 variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
8971 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8972 }
8973 variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
8974 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
8975 if (UNTAG_Bool(variable1)) { /*if*/
8976 variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
8977 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8978 }
8979 variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
8980 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
8981 if (UNTAG_Bool(variable1)) { /*if*/
8982 variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
8983 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
8984 }
8985 tracehead = trace.prev;
8986 return;
8987 }
8988 void parser_prod___AReturnExpr___n_kwreturn__eq(val_t self, val_t param0) {
8989 struct trace_t trace = {NULL, LOCATE_parser_prod___AReturnExpr___n_kwreturn__eq, 4725};
8990 val_t variable0;
8991 val_t variable1;
8992 trace.prev = tracehead; tracehead = &trace;
8993 variable0 = param0;
8994 ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ = variable0 /*n*/;
8995 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
8996 if (UNTAG_Bool(variable1)) { /*if*/
8997 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwreturn::parent=*/;
8998 }
8999 tracehead = trace.prev;
9000 return;
9001 }
9002 void parser_prod___AReturnExpr___n_expr__eq(val_t self, val_t param0) {
9003 struct trace_t trace = {NULL, LOCATE_parser_prod___AReturnExpr___n_expr__eq, 4732};
9004 val_t variable0;
9005 val_t variable1;
9006 trace.prev = tracehead; tracehead = &trace;
9007 variable0 = param0;
9008 ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ = variable0 /*n*/;
9009 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9010 if (UNTAG_Bool(variable1)) { /*if*/
9011 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9012 }
9013 tracehead = trace.prev;
9014 return;
9015 }
9016 void parser_prod___AReturnExpr___empty_init(val_t self, int* init_table) {
9017 struct trace_t trace = {NULL, LOCATE_parser_prod___AReturnExpr___empty_init, 4740};
9018 trace.prev = tracehead; tracehead = &trace;
9019 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
9020 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
9021 tracehead = trace.prev;
9022 return;
9023 }
9024 void parser_prod___AReturnExpr___init_areturnexpr(val_t self, val_t param0, val_t param1, int* init_table) {
9025 struct trace_t trace = {NULL, LOCATE_parser_prod___AReturnExpr___init_areturnexpr, 4742};
9026 val_t variable0;
9027 val_t variable1;
9028 val_t variable2;
9029 trace.prev = tracehead; tracehead = &trace;
9030 variable0 = param0;
9031 variable1 = param1;
9032 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
9033 ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ = variable0 /*n_kwreturn*/;
9034 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwreturn*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwreturn*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwreturn*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwreturn*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwreturn*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwreturn*/, NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
9035 if (UNTAG_Bool(variable2)) { /*if*/
9036 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwreturn*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwreturn*/, self) /*TKwreturn::parent=*/;
9037 }
9038 ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ = variable1 /*n_expr*/;
9039 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9040 if (UNTAG_Bool(variable2)) { /*if*/
9041 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/, self) /*PExpr::parent=*/;
9042 }
9043 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
9044 tracehead = trace.prev;
9045 return;
9046 }
9047 void parser_prod___AReturnExpr___replace_child(val_t self, val_t param0, val_t param1) {
9048 struct trace_t trace = {NULL, LOCATE_parser_prod___AReturnExpr___replace_child, 4757};
9049 val_t variable0;
9050 val_t variable1;
9051 val_t variable2;
9052 trace.prev = tracehead; tracehead = &trace;
9053 variable0 = param0;
9054 variable1 = param1;
9055 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9056 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AReturnExpr___replace_child, 4759); nit_exit(1);}
9057 variable2 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
9058 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwreturn::==*/)))));
9059 if (UNTAG_Bool(variable2)) { /*if*/
9060 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9061 if (UNTAG_Bool(variable2)) { /*if*/
9062 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9063 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
9064 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AReturnExpr___replace_child, 4763); nit_exit(1);}
9065 ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ = variable1 /*new_child*/;
9066 } else { /*if*/
9067 ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ = NIT_NULL /*null*/;
9068 }
9069 goto return_label416;
9070 }
9071 variable2 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
9072 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
9073 if (UNTAG_Bool(variable2)) { /*if*/
9074 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9075 if (UNTAG_Bool(variable2)) { /*if*/
9076 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9077 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
9078 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AReturnExpr___replace_child, 4773); nit_exit(1);}
9079 ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ = variable1 /*new_child*/;
9080 } else { /*if*/
9081 ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ = NIT_NULL /*null*/;
9082 }
9083 goto return_label416;
9084 }
9085 return_label416: while(false);
9086 tracehead = trace.prev;
9087 return;
9088 }
9089 void parser_prod___AReturnExpr___visit_all(val_t self, val_t param0) {
9090 struct trace_t trace = {NULL, LOCATE_parser_prod___AReturnExpr___visit_all, 4782};
9091 val_t variable0;
9092 val_t variable1;
9093 trace.prev = tracehead; tracehead = &trace;
9094 variable0 = param0;
9095 variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
9096 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
9097 if (UNTAG_Bool(variable1)) { /*if*/
9098 variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
9099 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9100 }
9101 variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
9102 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9103 if (UNTAG_Bool(variable1)) { /*if*/
9104 variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
9105 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9106 }
9107 tracehead = trace.prev;
9108 return;
9109 }
9110 void parser_prod___AReturnExpr___visit_all_reverse(val_t self, val_t param0) {
9111 struct trace_t trace = {NULL, LOCATE_parser_prod___AReturnExpr___visit_all_reverse, 4792};
9112 val_t variable0;
9113 val_t variable1;
9114 trace.prev = tracehead; tracehead = &trace;
9115 variable0 = param0;
9116 variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
9117 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
9118 if (UNTAG_Bool(variable1)) { /*if*/
9119 variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
9120 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9121 }
9122 variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
9123 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9124 if (UNTAG_Bool(variable1)) { /*if*/
9125 variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
9126 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9127 }
9128 tracehead = trace.prev;
9129 return;
9130 }
9131 void parser_prod___ABreakExpr___n_kwbreak__eq(val_t self, val_t param0) {
9132 struct trace_t trace = {NULL, LOCATE_parser_prod___ABreakExpr___n_kwbreak__eq, 4803};
9133 val_t variable0;
9134 val_t variable1;
9135 trace.prev = tracehead; tracehead = &trace;
9136 variable0 = param0;
9137 ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ = variable0 /*n*/;
9138 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
9139 if (UNTAG_Bool(variable1)) { /*if*/
9140 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwbreak::parent=*/;
9141 }
9142 tracehead = trace.prev;
9143 return;
9144 }
9145 void parser_prod___ABreakExpr___empty_init(val_t self, int* init_table) {
9146 struct trace_t trace = {NULL, LOCATE_parser_prod___ABreakExpr___empty_init, 4811};
9147 trace.prev = tracehead; tracehead = &trace;
9148 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
9149 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
9150 tracehead = trace.prev;
9151 return;
9152 }
9153 void parser_prod___ABreakExpr___init_abreakexpr(val_t self, val_t param0, int* init_table) {
9154 struct trace_t trace = {NULL, LOCATE_parser_prod___ABreakExpr___init_abreakexpr, 4813};
9155 val_t variable0;
9156 val_t variable1;
9157 trace.prev = tracehead; tracehead = &trace;
9158 variable0 = param0;
9159 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
9160 ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ = variable0 /*n_kwbreak*/;
9161 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwbreak*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwbreak*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwbreak*/, NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
9162 if (UNTAG_Bool(variable1)) { /*if*/
9163 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwbreak*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwbreak*/, self) /*TKwbreak::parent=*/;
9164 }
9165 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
9166 tracehead = trace.prev;
9167 return;
9168 }
9169 void parser_prod___ABreakExpr___replace_child(val_t self, val_t param0, val_t param1) {
9170 struct trace_t trace = {NULL, LOCATE_parser_prod___ABreakExpr___replace_child, 4823};
9171 val_t variable0;
9172 val_t variable1;
9173 val_t variable2;
9174 trace.prev = tracehead; tracehead = &trace;
9175 variable0 = param0;
9176 variable1 = param1;
9177 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9178 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABreakExpr___replace_child, 4825); nit_exit(1);}
9179 variable2 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
9180 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwbreak::==*/)))));
9181 if (UNTAG_Bool(variable2)) { /*if*/
9182 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9183 if (UNTAG_Bool(variable2)) { /*if*/
9184 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9185 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
9186 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABreakExpr___replace_child, 4829); nit_exit(1);}
9187 ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ = variable1 /*new_child*/;
9188 } else { /*if*/
9189 ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ = NIT_NULL /*null*/;
9190 }
9191 goto return_label422;
9192 }
9193 return_label422: while(false);
9194 tracehead = trace.prev;
9195 return;
9196 }
9197 void parser_prod___ABreakExpr___visit_all(val_t self, val_t param0) {
9198 struct trace_t trace = {NULL, LOCATE_parser_prod___ABreakExpr___visit_all, 4838};
9199 val_t variable0;
9200 val_t variable1;
9201 trace.prev = tracehead; tracehead = &trace;
9202 variable0 = param0;
9203 variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
9204 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
9205 if (UNTAG_Bool(variable1)) { /*if*/
9206 variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
9207 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9208 }
9209 tracehead = trace.prev;
9210 return;
9211 }
9212 void parser_prod___ABreakExpr___visit_all_reverse(val_t self, val_t param0) {
9213 struct trace_t trace = {NULL, LOCATE_parser_prod___ABreakExpr___visit_all_reverse, 4845};
9214 val_t variable0;
9215 val_t variable1;
9216 trace.prev = tracehead; tracehead = &trace;
9217 variable0 = param0;
9218 variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
9219 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
9220 if (UNTAG_Bool(variable1)) { /*if*/
9221 variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
9222 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9223 }
9224 tracehead = trace.prev;
9225 return;
9226 }
9227 void parser_prod___AAbortExpr___n_kwabort__eq(val_t self, val_t param0) {
9228 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbortExpr___n_kwabort__eq, 4853};
9229 val_t variable0;
9230 val_t variable1;
9231 trace.prev = tracehead; tracehead = &trace;
9232 variable0 = param0;
9233 ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ = variable0 /*n*/;
9234 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwabort::==*/)))))));
9235 if (UNTAG_Bool(variable1)) { /*if*/
9236 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwabort::parent=*/;
9237 }
9238 tracehead = trace.prev;
9239 return;
9240 }
9241 void parser_prod___AAbortExpr___empty_init(val_t self, int* init_table) {
9242 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbortExpr___empty_init, 4861};
9243 trace.prev = tracehead; tracehead = &trace;
9244 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
9245 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
9246 tracehead = trace.prev;
9247 return;
9248 }
9249 void parser_prod___AAbortExpr___init_aabortexpr(val_t self, val_t param0, int* init_table) {
9250 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbortExpr___init_aabortexpr, 4863};
9251 val_t variable0;
9252 val_t variable1;
9253 trace.prev = tracehead; tracehead = &trace;
9254 variable0 = param0;
9255 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
9256 ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ = variable0 /*n_kwabort*/;
9257 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwabort*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwabort*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabort*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwabort*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabort*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwabort*/, NIT_NULL /*null*/) /*TKwabort::==*/)))))));
9258 if (UNTAG_Bool(variable1)) { /*if*/
9259 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwabort*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwabort*/, self) /*TKwabort::parent=*/;
9260 }
9261 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
9262 tracehead = trace.prev;
9263 return;
9264 }
9265 void parser_prod___AAbortExpr___replace_child(val_t self, val_t param0, val_t param1) {
9266 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbortExpr___replace_child, 4873};
9267 val_t variable0;
9268 val_t variable1;
9269 val_t variable2;
9270 trace.prev = tracehead; tracehead = &trace;
9271 variable0 = param0;
9272 variable1 = param1;
9273 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9274 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAbortExpr___replace_child, 4875); nit_exit(1);}
9275 variable2 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
9276 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwabort::==*/)))));
9277 if (UNTAG_Bool(variable2)) { /*if*/
9278 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9279 if (UNTAG_Bool(variable2)) { /*if*/
9280 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9281 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
9282 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAbortExpr___replace_child, 4879); nit_exit(1);}
9283 ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ = variable1 /*new_child*/;
9284 } else { /*if*/
9285 ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ = NIT_NULL /*null*/;
9286 }
9287 goto return_label428;
9288 }
9289 return_label428: while(false);
9290 tracehead = trace.prev;
9291 return;
9292 }
9293 void parser_prod___AAbortExpr___visit_all(val_t self, val_t param0) {
9294 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbortExpr___visit_all, 4888};
9295 val_t variable0;
9296 val_t variable1;
9297 trace.prev = tracehead; tracehead = &trace;
9298 variable0 = param0;
9299 variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
9300 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwabort::==*/)))))));
9301 if (UNTAG_Bool(variable1)) { /*if*/
9302 variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
9303 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9304 }
9305 tracehead = trace.prev;
9306 return;
9307 }
9308 void parser_prod___AAbortExpr___visit_all_reverse(val_t self, val_t param0) {
9309 struct trace_t trace = {NULL, LOCATE_parser_prod___AAbortExpr___visit_all_reverse, 4895};
9310 val_t variable0;
9311 val_t variable1;
9312 trace.prev = tracehead; tracehead = &trace;
9313 variable0 = param0;
9314 variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
9315 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwabort::==*/)))))));
9316 if (UNTAG_Bool(variable1)) { /*if*/
9317 variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
9318 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9319 }
9320 tracehead = trace.prev;
9321 return;
9322 }
9323 void parser_prod___AContinueExpr___n_kwcontinue__eq(val_t self, val_t param0) {
9324 struct trace_t trace = {NULL, LOCATE_parser_prod___AContinueExpr___n_kwcontinue__eq, 4903};
9325 val_t variable0;
9326 val_t variable1;
9327 trace.prev = tracehead; tracehead = &trace;
9328 variable0 = param0;
9329 ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ = variable0 /*n*/;
9330 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
9331 if (UNTAG_Bool(variable1)) { /*if*/
9332 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwcontinue::parent=*/;
9333 }
9334 tracehead = trace.prev;
9335 return;
9336 }
9337 void parser_prod___AContinueExpr___empty_init(val_t self, int* init_table) {
9338 struct trace_t trace = {NULL, LOCATE_parser_prod___AContinueExpr___empty_init, 4911};
9339 trace.prev = tracehead; tracehead = &trace;
9340 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
9341 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
9342 tracehead = trace.prev;
9343 return;
9344 }
9345 void parser_prod___AContinueExpr___init_acontinueexpr(val_t self, val_t param0, int* init_table) {
9346 struct trace_t trace = {NULL, LOCATE_parser_prod___AContinueExpr___init_acontinueexpr, 4913};
9347 val_t variable0;
9348 val_t variable1;
9349 trace.prev = tracehead; tracehead = &trace;
9350 variable0 = param0;
9351 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
9352 ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ = variable0 /*n_kwcontinue*/;
9353 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwcontinue*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwcontinue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwcontinue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwcontinue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwcontinue*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwcontinue*/, NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
9354 if (UNTAG_Bool(variable1)) { /*if*/
9355 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwcontinue*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwcontinue*/, self) /*TKwcontinue::parent=*/;
9356 }
9357 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
9358 tracehead = trace.prev;
9359 return;
9360 }
9361 void parser_prod___AContinueExpr___replace_child(val_t self, val_t param0, val_t param1) {
9362 struct trace_t trace = {NULL, LOCATE_parser_prod___AContinueExpr___replace_child, 4923};
9363 val_t variable0;
9364 val_t variable1;
9365 val_t variable2;
9366 trace.prev = tracehead; tracehead = &trace;
9367 variable0 = param0;
9368 variable1 = param1;
9369 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9370 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AContinueExpr___replace_child, 4925); nit_exit(1);}
9371 variable2 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
9372 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwcontinue::==*/)))));
9373 if (UNTAG_Bool(variable2)) { /*if*/
9374 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9375 if (UNTAG_Bool(variable2)) { /*if*/
9376 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9377 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
9378 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AContinueExpr___replace_child, 4929); nit_exit(1);}
9379 ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ = variable1 /*new_child*/;
9380 } else { /*if*/
9381 ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ = NIT_NULL /*null*/;
9382 }
9383 goto return_label434;
9384 }
9385 return_label434: while(false);
9386 tracehead = trace.prev;
9387 return;
9388 }
9389 void parser_prod___AContinueExpr___visit_all(val_t self, val_t param0) {
9390 struct trace_t trace = {NULL, LOCATE_parser_prod___AContinueExpr___visit_all, 4938};
9391 val_t variable0;
9392 val_t variable1;
9393 trace.prev = tracehead; tracehead = &trace;
9394 variable0 = param0;
9395 variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
9396 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
9397 if (UNTAG_Bool(variable1)) { /*if*/
9398 variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
9399 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9400 }
9401 tracehead = trace.prev;
9402 return;
9403 }
9404 void parser_prod___AContinueExpr___visit_all_reverse(val_t self, val_t param0) {
9405 struct trace_t trace = {NULL, LOCATE_parser_prod___AContinueExpr___visit_all_reverse, 4945};
9406 val_t variable0;
9407 val_t variable1;
9408 trace.prev = tracehead; tracehead = &trace;
9409 variable0 = param0;
9410 variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
9411 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
9412 if (UNTAG_Bool(variable1)) { /*if*/
9413 variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
9414 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9415 }
9416 tracehead = trace.prev;
9417 return;
9418 }
9419 void parser_prod___ADoExpr___n_kwdo__eq(val_t self, val_t param0) {
9420 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoExpr___n_kwdo__eq, 4953};
9421 val_t variable0;
9422 val_t variable1;
9423 trace.prev = tracehead; tracehead = &trace;
9424 variable0 = param0;
9425 ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ = variable0 /*n*/;
9426 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
9427 if (UNTAG_Bool(variable1)) { /*if*/
9428 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwdo::parent=*/;
9429 }
9430 tracehead = trace.prev;
9431 return;
9432 }
9433 void parser_prod___ADoExpr___n_block__eq(val_t self, val_t param0) {
9434 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoExpr___n_block__eq, 4960};
9435 val_t variable0;
9436 val_t variable1;
9437 trace.prev = tracehead; tracehead = &trace;
9438 variable0 = param0;
9439 ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ = variable0 /*n*/;
9440 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9441 if (UNTAG_Bool(variable1)) { /*if*/
9442 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9443 }
9444 tracehead = trace.prev;
9445 return;
9446 }
9447 void parser_prod___ADoExpr___empty_init(val_t self, int* init_table) {
9448 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoExpr___empty_init, 4968};
9449 trace.prev = tracehead; tracehead = &trace;
9450 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i]) return;
9451 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
9452 tracehead = trace.prev;
9453 return;
9454 }
9455 void parser_prod___ADoExpr___init_adoexpr(val_t self, val_t param0, val_t param1, int* init_table) {
9456 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoExpr___init_adoexpr, 4970};
9457 val_t variable0;
9458 val_t variable1;
9459 val_t variable2;
9460 trace.prev = tracehead; tracehead = &trace;
9461 variable0 = param0;
9462 variable1 = param1;
9463 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i]) return;
9464 ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ = variable0 /*n_kwdo*/;
9465 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwdo*/, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
9466 if (UNTAG_Bool(variable2)) { /*if*/
9467 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwdo*/, self) /*TKwdo::parent=*/;
9468 }
9469 ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ = variable1 /*n_block*/;
9470 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_block*/ == NIT_NULL /*null*/) || (( variable1 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_block*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9471 if (UNTAG_Bool(variable2)) { /*if*/
9472 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_block*/, self) /*PExpr::parent=*/;
9473 }
9474 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
9475 tracehead = trace.prev;
9476 return;
9477 }
9478 void parser_prod___ADoExpr___replace_child(val_t self, val_t param0, val_t param1) {
9479 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoExpr___replace_child, 4985};
9480 val_t variable0;
9481 val_t variable1;
9482 val_t variable2;
9483 trace.prev = tracehead; tracehead = &trace;
9484 variable0 = param0;
9485 variable1 = param1;
9486 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9487 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADoExpr___replace_child, 4987); nit_exit(1);}
9488 variable2 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
9489 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwdo::==*/)))));
9490 if (UNTAG_Bool(variable2)) { /*if*/
9491 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9492 if (UNTAG_Bool(variable2)) { /*if*/
9493 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9494 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
9495 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADoExpr___replace_child, 4991); nit_exit(1);}
9496 ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ = variable1 /*new_child*/;
9497 } else { /*if*/
9498 ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ = NIT_NULL /*null*/;
9499 }
9500 goto return_label441;
9501 }
9502 variable2 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
9503 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
9504 if (UNTAG_Bool(variable2)) { /*if*/
9505 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9506 if (UNTAG_Bool(variable2)) { /*if*/
9507 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9508 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
9509 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADoExpr___replace_child, 5001); nit_exit(1);}
9510 ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ = variable1 /*new_child*/;
9511 } else { /*if*/
9512 ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ = NIT_NULL /*null*/;
9513 }
9514 goto return_label441;
9515 }
9516 return_label441: while(false);
9517 tracehead = trace.prev;
9518 return;
9519 }
9520 void parser_prod___ADoExpr___visit_all(val_t self, val_t param0) {
9521 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoExpr___visit_all, 5010};
9522 val_t variable0;
9523 val_t variable1;
9524 trace.prev = tracehead; tracehead = &trace;
9525 variable0 = param0;
9526 variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
9527 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
9528 if (UNTAG_Bool(variable1)) { /*if*/
9529 variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
9530 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9531 }
9532 variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
9533 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9534 if (UNTAG_Bool(variable1)) { /*if*/
9535 variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
9536 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9537 }
9538 tracehead = trace.prev;
9539 return;
9540 }
9541 void parser_prod___ADoExpr___visit_all_reverse(val_t self, val_t param0) {
9542 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoExpr___visit_all_reverse, 5020};
9543 val_t variable0;
9544 val_t variable1;
9545 trace.prev = tracehead; tracehead = &trace;
9546 variable0 = param0;
9547 variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
9548 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
9549 if (UNTAG_Bool(variable1)) { /*if*/
9550 variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
9551 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9552 }
9553 variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
9554 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9555 if (UNTAG_Bool(variable1)) { /*if*/
9556 variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
9557 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9558 }
9559 tracehead = trace.prev;
9560 return;
9561 }
9562 void parser_prod___AIfExpr___n_kwif__eq(val_t self, val_t param0) {
9563 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___n_kwif__eq, 5031};
9564 val_t variable0;
9565 val_t variable1;
9566 trace.prev = tracehead; tracehead = &trace;
9567 variable0 = param0;
9568 ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ = variable0 /*n*/;
9569 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwif::==*/)))))));
9570 if (UNTAG_Bool(variable1)) { /*if*/
9571 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwif::parent=*/;
9572 }
9573 tracehead = trace.prev;
9574 return;
9575 }
9576 void parser_prod___AIfExpr___n_expr__eq(val_t self, val_t param0) {
9577 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___n_expr__eq, 5038};
9578 val_t variable0;
9579 val_t variable1;
9580 trace.prev = tracehead; tracehead = &trace;
9581 variable0 = param0;
9582 ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ = variable0 /*n*/;
9583 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9584 if (UNTAG_Bool(variable1)) { /*if*/
9585 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9586 }
9587 tracehead = trace.prev;
9588 return;
9589 }
9590 void parser_prod___AIfExpr___n_then__eq(val_t self, val_t param0) {
9591 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___n_then__eq, 5045};
9592 val_t variable0;
9593 val_t variable1;
9594 trace.prev = tracehead; tracehead = &trace;
9595 variable0 = param0;
9596 ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ = variable0 /*n*/;
9597 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9598 if (UNTAG_Bool(variable1)) { /*if*/
9599 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9600 }
9601 tracehead = trace.prev;
9602 return;
9603 }
9604 void parser_prod___AIfExpr___n_else__eq(val_t self, val_t param0) {
9605 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___n_else__eq, 5052};
9606 val_t variable0;
9607 val_t variable1;
9608 trace.prev = tracehead; tracehead = &trace;
9609 variable0 = param0;
9610 ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ = variable0 /*n*/;
9611 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9612 if (UNTAG_Bool(variable1)) { /*if*/
9613 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9614 }
9615 tracehead = trace.prev;
9616 return;
9617 }
9618 void parser_prod___AIfExpr___empty_init(val_t self, int* init_table) {
9619 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___empty_init, 5060};
9620 trace.prev = tracehead; tracehead = &trace;
9621 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i]) return;
9622 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
9623 tracehead = trace.prev;
9624 return;
9625 }
9626 void parser_prod___AIfExpr___init_aifexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
9627 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___init_aifexpr, 5062};
9628 val_t variable0;
9629 val_t variable1;
9630 val_t variable2;
9631 val_t variable3;
9632 val_t variable4;
9633 trace.prev = tracehead; tracehead = &trace;
9634 variable0 = param0;
9635 variable1 = param1;
9636 variable2 = param2;
9637 variable3 = param3;
9638 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i]) return;
9639 ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ = variable0 /*n_kwif*/;
9640 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwif*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwif*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwif*/, NIT_NULL /*null*/) /*TKwif::==*/)))))));
9641 if (UNTAG_Bool(variable4)) { /*if*/
9642 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwif*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwif*/, self) /*TKwif::parent=*/;
9643 }
9644 ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ = variable1 /*n_expr*/;
9645 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9646 if (UNTAG_Bool(variable4)) { /*if*/
9647 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/, self) /*PExpr::parent=*/;
9648 }
9649 ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ = variable2 /*n_then*/;
9650 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_then*/ == NIT_NULL /*null*/) || (( variable2 /*n_then*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_then*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_then*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_then*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9651 if (UNTAG_Bool(variable4)) { /*if*/
9652 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_then*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_then*/, self) /*PExpr::parent=*/;
9653 }
9654 ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ = variable3 /*n_else*/;
9655 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_else*/ == NIT_NULL /*null*/) || (( variable3 /*n_else*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_else*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_else*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_else*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9656 if (UNTAG_Bool(variable4)) { /*if*/
9657 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_else*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_else*/, self) /*PExpr::parent=*/;
9658 }
9659 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
9660 tracehead = trace.prev;
9661 return;
9662 }
9663 void parser_prod___AIfExpr___replace_child(val_t self, val_t param0, val_t param1) {
9664 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___replace_child, 5087};
9665 val_t variable0;
9666 val_t variable1;
9667 val_t variable2;
9668 trace.prev = tracehead; tracehead = &trace;
9669 variable0 = param0;
9670 variable1 = param1;
9671 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9672 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfExpr___replace_child, 5089); nit_exit(1);}
9673 variable2 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
9674 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwif::==*/)))));
9675 if (UNTAG_Bool(variable2)) { /*if*/
9676 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9677 if (UNTAG_Bool(variable2)) { /*if*/
9678 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9679 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
9680 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfExpr___replace_child, 5093); nit_exit(1);}
9681 ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ = variable1 /*new_child*/;
9682 } else { /*if*/
9683 ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ = NIT_NULL /*null*/;
9684 }
9685 goto return_label450;
9686 }
9687 variable2 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
9688 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
9689 if (UNTAG_Bool(variable2)) { /*if*/
9690 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9691 if (UNTAG_Bool(variable2)) { /*if*/
9692 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9693 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
9694 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfExpr___replace_child, 5103); nit_exit(1);}
9695 ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ = variable1 /*new_child*/;
9696 } else { /*if*/
9697 ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ = NIT_NULL /*null*/;
9698 }
9699 goto return_label450;
9700 }
9701 variable2 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
9702 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
9703 if (UNTAG_Bool(variable2)) { /*if*/
9704 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9705 if (UNTAG_Bool(variable2)) { /*if*/
9706 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9707 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
9708 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfExpr___replace_child, 5113); nit_exit(1);}
9709 ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ = variable1 /*new_child*/;
9710 } else { /*if*/
9711 ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ = NIT_NULL /*null*/;
9712 }
9713 goto return_label450;
9714 }
9715 variable2 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
9716 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
9717 if (UNTAG_Bool(variable2)) { /*if*/
9718 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9719 if (UNTAG_Bool(variable2)) { /*if*/
9720 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9721 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
9722 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfExpr___replace_child, 5123); nit_exit(1);}
9723 ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ = variable1 /*new_child*/;
9724 } else { /*if*/
9725 ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ = NIT_NULL /*null*/;
9726 }
9727 goto return_label450;
9728 }
9729 return_label450: while(false);
9730 tracehead = trace.prev;
9731 return;
9732 }
9733 void parser_prod___AIfExpr___visit_all(val_t self, val_t param0) {
9734 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___visit_all, 5132};
9735 val_t variable0;
9736 val_t variable1;
9737 trace.prev = tracehead; tracehead = &trace;
9738 variable0 = param0;
9739 variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
9740 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwif::==*/)))))));
9741 if (UNTAG_Bool(variable1)) { /*if*/
9742 variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
9743 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9744 }
9745 variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
9746 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9747 if (UNTAG_Bool(variable1)) { /*if*/
9748 variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
9749 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9750 }
9751 variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
9752 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9753 if (UNTAG_Bool(variable1)) { /*if*/
9754 variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
9755 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9756 }
9757 variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
9758 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9759 if (UNTAG_Bool(variable1)) { /*if*/
9760 variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
9761 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9762 }
9763 tracehead = trace.prev;
9764 return;
9765 }
9766 void parser_prod___AIfExpr___visit_all_reverse(val_t self, val_t param0) {
9767 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfExpr___visit_all_reverse, 5148};
9768 val_t variable0;
9769 val_t variable1;
9770 trace.prev = tracehead; tracehead = &trace;
9771 variable0 = param0;
9772 variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
9773 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwif::==*/)))))));
9774 if (UNTAG_Bool(variable1)) { /*if*/
9775 variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
9776 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9777 }
9778 variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
9779 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9780 if (UNTAG_Bool(variable1)) { /*if*/
9781 variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
9782 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9783 }
9784 variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
9785 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9786 if (UNTAG_Bool(variable1)) { /*if*/
9787 variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
9788 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9789 }
9790 variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
9791 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9792 if (UNTAG_Bool(variable1)) { /*if*/
9793 variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
9794 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
9795 }
9796 tracehead = trace.prev;
9797 return;
9798 }
9799 void parser_prod___AIfexprExpr___n_kwif__eq(val_t self, val_t param0) {
9800 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___n_kwif__eq, 5165};
9801 val_t variable0;
9802 val_t variable1;
9803 trace.prev = tracehead; tracehead = &trace;
9804 variable0 = param0;
9805 ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ = variable0 /*n*/;
9806 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwif::==*/)))))));
9807 if (UNTAG_Bool(variable1)) { /*if*/
9808 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwif::parent=*/;
9809 }
9810 tracehead = trace.prev;
9811 return;
9812 }
9813 void parser_prod___AIfexprExpr___n_expr__eq(val_t self, val_t param0) {
9814 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___n_expr__eq, 5172};
9815 val_t variable0;
9816 val_t variable1;
9817 trace.prev = tracehead; tracehead = &trace;
9818 variable0 = param0;
9819 ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ = variable0 /*n*/;
9820 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9821 if (UNTAG_Bool(variable1)) { /*if*/
9822 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9823 }
9824 tracehead = trace.prev;
9825 return;
9826 }
9827 void parser_prod___AIfexprExpr___n_kwthen__eq(val_t self, val_t param0) {
9828 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___n_kwthen__eq, 5179};
9829 val_t variable0;
9830 val_t variable1;
9831 trace.prev = tracehead; tracehead = &trace;
9832 variable0 = param0;
9833 ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ = variable0 /*n*/;
9834 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwthen::==*/)))))));
9835 if (UNTAG_Bool(variable1)) { /*if*/
9836 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwthen::parent=*/;
9837 }
9838 tracehead = trace.prev;
9839 return;
9840 }
9841 void parser_prod___AIfexprExpr___n_then__eq(val_t self, val_t param0) {
9842 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___n_then__eq, 5186};
9843 val_t variable0;
9844 val_t variable1;
9845 trace.prev = tracehead; tracehead = &trace;
9846 variable0 = param0;
9847 ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ = variable0 /*n*/;
9848 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9849 if (UNTAG_Bool(variable1)) { /*if*/
9850 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9851 }
9852 tracehead = trace.prev;
9853 return;
9854 }
9855 void parser_prod___AIfexprExpr___n_kwelse__eq(val_t self, val_t param0) {
9856 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___n_kwelse__eq, 5193};
9857 val_t variable0;
9858 val_t variable1;
9859 trace.prev = tracehead; tracehead = &trace;
9860 variable0 = param0;
9861 ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ = variable0 /*n*/;
9862 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwelse::==*/)))))));
9863 if (UNTAG_Bool(variable1)) { /*if*/
9864 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwelse::parent=*/;
9865 }
9866 tracehead = trace.prev;
9867 return;
9868 }
9869 void parser_prod___AIfexprExpr___n_else__eq(val_t self, val_t param0) {
9870 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___n_else__eq, 5200};
9871 val_t variable0;
9872 val_t variable1;
9873 trace.prev = tracehead; tracehead = &trace;
9874 variable0 = param0;
9875 ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ = variable0 /*n*/;
9876 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9877 if (UNTAG_Bool(variable1)) { /*if*/
9878 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
9879 }
9880 tracehead = trace.prev;
9881 return;
9882 }
9883 void parser_prod___AIfexprExpr___empty_init(val_t self, int* init_table) {
9884 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___empty_init, 5208};
9885 trace.prev = tracehead; tracehead = &trace;
9886 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
9887 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
9888 tracehead = trace.prev;
9889 return;
9890 }
9891 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) {
9892 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___init_aifexprexpr, 5210};
9893 val_t variable0;
9894 val_t variable1;
9895 val_t variable2;
9896 val_t variable3;
9897 val_t variable4;
9898 val_t variable5;
9899 val_t variable6;
9900 trace.prev = tracehead; tracehead = &trace;
9901 variable0 = param0;
9902 variable1 = param1;
9903 variable2 = param2;
9904 variable3 = param3;
9905 variable4 = param4;
9906 variable5 = param5;
9907 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
9908 ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ = variable0 /*n_kwif*/;
9909 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwif*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwif*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwif*/, NIT_NULL /*null*/) /*TKwif::==*/)))))));
9910 if (UNTAG_Bool(variable6)) { /*if*/
9911 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwif*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwif*/, self) /*TKwif::parent=*/;
9912 }
9913 ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ = variable1 /*n_expr*/;
9914 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9915 if (UNTAG_Bool(variable6)) { /*if*/
9916 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/, self) /*PExpr::parent=*/;
9917 }
9918 ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ = variable2 /*n_kwthen*/;
9919 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_kwthen*/ == NIT_NULL /*null*/) || (( variable2 /*n_kwthen*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwthen*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_kwthen*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwthen*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_kwthen*/, NIT_NULL /*null*/) /*TKwthen::==*/)))))));
9920 if (UNTAG_Bool(variable6)) { /*if*/
9921 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_kwthen*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_kwthen*/, self) /*TKwthen::parent=*/;
9922 }
9923 ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ = variable3 /*n_then*/;
9924 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_then*/ == NIT_NULL /*null*/) || (( variable3 /*n_then*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_then*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_then*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_then*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9925 if (UNTAG_Bool(variable6)) { /*if*/
9926 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_then*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_then*/, self) /*PExpr::parent=*/;
9927 }
9928 ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ = variable4 /*n_kwelse*/;
9929 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_kwelse*/ == NIT_NULL /*null*/) || (( variable4 /*n_kwelse*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_kwelse*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_kwelse*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_kwelse*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_kwelse*/, NIT_NULL /*null*/) /*TKwelse::==*/)))))));
9930 if (UNTAG_Bool(variable6)) { /*if*/
9931 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_kwelse*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_kwelse*/, self) /*TKwelse::parent=*/;
9932 }
9933 ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ = variable5 /*n_else*/;
9934 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_else*/ == NIT_NULL /*null*/) || (( variable5 /*n_else*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_else*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_else*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_else*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
9935 if (UNTAG_Bool(variable6)) { /*if*/
9936 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_else*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_else*/, self) /*PExpr::parent=*/;
9937 }
9938 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
9939 tracehead = trace.prev;
9940 return;
9941 }
9942 void parser_prod___AIfexprExpr___replace_child(val_t self, val_t param0, val_t param1) {
9943 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___replace_child, 5245};
9944 val_t variable0;
9945 val_t variable1;
9946 val_t variable2;
9947 trace.prev = tracehead; tracehead = &trace;
9948 variable0 = param0;
9949 variable1 = param1;
9950 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9951 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfexprExpr___replace_child, 5247); nit_exit(1);}
9952 variable2 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
9953 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwif::==*/)))));
9954 if (UNTAG_Bool(variable2)) { /*if*/
9955 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9956 if (UNTAG_Bool(variable2)) { /*if*/
9957 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9958 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
9959 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfexprExpr___replace_child, 5251); nit_exit(1);}
9960 ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ = variable1 /*new_child*/;
9961 } else { /*if*/
9962 ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ = NIT_NULL /*null*/;
9963 }
9964 goto return_label461;
9965 }
9966 variable2 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
9967 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
9968 if (UNTAG_Bool(variable2)) { /*if*/
9969 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9970 if (UNTAG_Bool(variable2)) { /*if*/
9971 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9972 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
9973 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfexprExpr___replace_child, 5261); nit_exit(1);}
9974 ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ = variable1 /*new_child*/;
9975 } else { /*if*/
9976 ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ = NIT_NULL /*null*/;
9977 }
9978 goto return_label461;
9979 }
9980 variable2 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
9981 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwthen::==*/)))));
9982 if (UNTAG_Bool(variable2)) { /*if*/
9983 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9984 if (UNTAG_Bool(variable2)) { /*if*/
9985 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
9986 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
9987 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfexprExpr___replace_child, 5271); nit_exit(1);}
9988 ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ = variable1 /*new_child*/;
9989 } else { /*if*/
9990 ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ = NIT_NULL /*null*/;
9991 }
9992 goto return_label461;
9993 }
9994 variable2 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
9995 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
9996 if (UNTAG_Bool(variable2)) { /*if*/
9997 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
9998 if (UNTAG_Bool(variable2)) { /*if*/
9999 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10000 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10001 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfexprExpr___replace_child, 5281); nit_exit(1);}
10002 ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ = variable1 /*new_child*/;
10003 } else { /*if*/
10004 ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ = NIT_NULL /*null*/;
10005 }
10006 goto return_label461;
10007 }
10008 variable2 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
10009 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwelse::==*/)))));
10010 if (UNTAG_Bool(variable2)) { /*if*/
10011 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10012 if (UNTAG_Bool(variable2)) { /*if*/
10013 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10014 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
10015 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfexprExpr___replace_child, 5291); nit_exit(1);}
10016 ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ = variable1 /*new_child*/;
10017 } else { /*if*/
10018 ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ = NIT_NULL /*null*/;
10019 }
10020 goto return_label461;
10021 }
10022 variable2 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
10023 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
10024 if (UNTAG_Bool(variable2)) { /*if*/
10025 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10026 if (UNTAG_Bool(variable2)) { /*if*/
10027 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10028 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10029 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIfexprExpr___replace_child, 5301); nit_exit(1);}
10030 ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ = variable1 /*new_child*/;
10031 } else { /*if*/
10032 ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ = NIT_NULL /*null*/;
10033 }
10034 goto return_label461;
10035 }
10036 return_label461: while(false);
10037 tracehead = trace.prev;
10038 return;
10039 }
10040 void parser_prod___AIfexprExpr___visit_all(val_t self, val_t param0) {
10041 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___visit_all, 5310};
10042 val_t variable0;
10043 val_t variable1;
10044 trace.prev = tracehead; tracehead = &trace;
10045 variable0 = param0;
10046 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
10047 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwif::==*/)))))));
10048 if (UNTAG_Bool(variable1)) { /*if*/
10049 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
10050 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10051 }
10052 variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
10053 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10054 if (UNTAG_Bool(variable1)) { /*if*/
10055 variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
10056 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10057 }
10058 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
10059 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwthen::==*/)))))));
10060 if (UNTAG_Bool(variable1)) { /*if*/
10061 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
10062 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10063 }
10064 variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
10065 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10066 if (UNTAG_Bool(variable1)) { /*if*/
10067 variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
10068 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10069 }
10070 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
10071 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwelse::==*/)))))));
10072 if (UNTAG_Bool(variable1)) { /*if*/
10073 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
10074 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10075 }
10076 variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
10077 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10078 if (UNTAG_Bool(variable1)) { /*if*/
10079 variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
10080 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10081 }
10082 tracehead = trace.prev;
10083 return;
10084 }
10085 void parser_prod___AIfexprExpr___visit_all_reverse(val_t self, val_t param0) {
10086 struct trace_t trace = {NULL, LOCATE_parser_prod___AIfexprExpr___visit_all_reverse, 5332};
10087 val_t variable0;
10088 val_t variable1;
10089 trace.prev = tracehead; tracehead = &trace;
10090 variable0 = param0;
10091 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
10092 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwif::==*/)))))));
10093 if (UNTAG_Bool(variable1)) { /*if*/
10094 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
10095 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10096 }
10097 variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
10098 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10099 if (UNTAG_Bool(variable1)) { /*if*/
10100 variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
10101 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10102 }
10103 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
10104 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwthen::==*/)))))));
10105 if (UNTAG_Bool(variable1)) { /*if*/
10106 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
10107 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10108 }
10109 variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
10110 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10111 if (UNTAG_Bool(variable1)) { /*if*/
10112 variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
10113 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10114 }
10115 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
10116 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwelse::==*/)))))));
10117 if (UNTAG_Bool(variable1)) { /*if*/
10118 variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
10119 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10120 }
10121 variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
10122 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10123 if (UNTAG_Bool(variable1)) { /*if*/
10124 variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
10125 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10126 }
10127 tracehead = trace.prev;
10128 return;
10129 }
10130 void parser_prod___AWhileExpr___n_kwwhile__eq(val_t self, val_t param0) {
10131 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___n_kwwhile__eq, 5355};
10132 val_t variable0;
10133 val_t variable1;
10134 trace.prev = tracehead; tracehead = &trace;
10135 variable0 = param0;
10136 ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ = variable0 /*n*/;
10137 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
10138 if (UNTAG_Bool(variable1)) { /*if*/
10139 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwwhile::parent=*/;
10140 }
10141 tracehead = trace.prev;
10142 return;
10143 }
10144 void parser_prod___AWhileExpr___n_expr__eq(val_t self, val_t param0) {
10145 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___n_expr__eq, 5362};
10146 val_t variable0;
10147 val_t variable1;
10148 trace.prev = tracehead; tracehead = &trace;
10149 variable0 = param0;
10150 ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ = variable0 /*n*/;
10151 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10152 if (UNTAG_Bool(variable1)) { /*if*/
10153 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
10154 }
10155 tracehead = trace.prev;
10156 return;
10157 }
10158 void parser_prod___AWhileExpr___n_kwdo__eq(val_t self, val_t param0) {
10159 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___n_kwdo__eq, 5369};
10160 val_t variable0;
10161 val_t variable1;
10162 trace.prev = tracehead; tracehead = &trace;
10163 variable0 = param0;
10164 ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ = variable0 /*n*/;
10165 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10166 if (UNTAG_Bool(variable1)) { /*if*/
10167 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwdo::parent=*/;
10168 }
10169 tracehead = trace.prev;
10170 return;
10171 }
10172 void parser_prod___AWhileExpr___n_block__eq(val_t self, val_t param0) {
10173 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___n_block__eq, 5376};
10174 val_t variable0;
10175 val_t variable1;
10176 trace.prev = tracehead; tracehead = &trace;
10177 variable0 = param0;
10178 ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ = variable0 /*n*/;
10179 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10180 if (UNTAG_Bool(variable1)) { /*if*/
10181 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
10182 }
10183 tracehead = trace.prev;
10184 return;
10185 }
10186 void parser_prod___AWhileExpr___empty_init(val_t self, int* init_table) {
10187 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___empty_init, 5384};
10188 trace.prev = tracehead; tracehead = &trace;
10189 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
10190 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
10191 tracehead = trace.prev;
10192 return;
10193 }
10194 void parser_prod___AWhileExpr___init_awhileexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
10195 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___init_awhileexpr, 5386};
10196 val_t variable0;
10197 val_t variable1;
10198 val_t variable2;
10199 val_t variable3;
10200 val_t variable4;
10201 trace.prev = tracehead; tracehead = &trace;
10202 variable0 = param0;
10203 variable1 = param1;
10204 variable2 = param2;
10205 variable3 = param3;
10206 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
10207 ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ = variable0 /*n_kwwhile*/;
10208 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwwhile*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwwhile*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwwhile*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwwhile*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwwhile*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwwhile*/, NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
10209 if (UNTAG_Bool(variable4)) { /*if*/
10210 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwwhile*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwwhile*/, self) /*TKwwhile::parent=*/;
10211 }
10212 ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ = variable1 /*n_expr*/;
10213 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10214 if (UNTAG_Bool(variable4)) { /*if*/
10215 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/, self) /*PExpr::parent=*/;
10216 }
10217 ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ = variable2 /*n_kwdo*/;
10218 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable2 /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_kwdo*/, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10219 if (UNTAG_Bool(variable4)) { /*if*/
10220 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_kwdo*/, self) /*TKwdo::parent=*/;
10221 }
10222 ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ = variable3 /*n_block*/;
10223 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_block*/ == NIT_NULL /*null*/) || (( variable3 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_block*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10224 if (UNTAG_Bool(variable4)) { /*if*/
10225 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_block*/, self) /*PExpr::parent=*/;
10226 }
10227 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
10228 tracehead = trace.prev;
10229 return;
10230 }
10231 void parser_prod___AWhileExpr___replace_child(val_t self, val_t param0, val_t param1) {
10232 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___replace_child, 5411};
10233 val_t variable0;
10234 val_t variable1;
10235 val_t variable2;
10236 trace.prev = tracehead; tracehead = &trace;
10237 variable0 = param0;
10238 variable1 = param1;
10239 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10240 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWhileExpr___replace_child, 5413); nit_exit(1);}
10241 variable2 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
10242 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwwhile::==*/)))));
10243 if (UNTAG_Bool(variable2)) { /*if*/
10244 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10245 if (UNTAG_Bool(variable2)) { /*if*/
10246 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10247 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
10248 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWhileExpr___replace_child, 5417); nit_exit(1);}
10249 ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ = variable1 /*new_child*/;
10250 } else { /*if*/
10251 ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ = NIT_NULL /*null*/;
10252 }
10253 goto return_label470;
10254 }
10255 variable2 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
10256 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
10257 if (UNTAG_Bool(variable2)) { /*if*/
10258 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10259 if (UNTAG_Bool(variable2)) { /*if*/
10260 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10261 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10262 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWhileExpr___replace_child, 5427); nit_exit(1);}
10263 ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ = variable1 /*new_child*/;
10264 } else { /*if*/
10265 ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ = NIT_NULL /*null*/;
10266 }
10267 goto return_label470;
10268 }
10269 variable2 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
10270 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwdo::==*/)))));
10271 if (UNTAG_Bool(variable2)) { /*if*/
10272 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10273 if (UNTAG_Bool(variable2)) { /*if*/
10274 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10275 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
10276 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWhileExpr___replace_child, 5437); nit_exit(1);}
10277 ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ = variable1 /*new_child*/;
10278 } else { /*if*/
10279 ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ = NIT_NULL /*null*/;
10280 }
10281 goto return_label470;
10282 }
10283 variable2 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
10284 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
10285 if (UNTAG_Bool(variable2)) { /*if*/
10286 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10287 if (UNTAG_Bool(variable2)) { /*if*/
10288 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10289 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10290 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AWhileExpr___replace_child, 5447); nit_exit(1);}
10291 ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ = variable1 /*new_child*/;
10292 } else { /*if*/
10293 ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ = NIT_NULL /*null*/;
10294 }
10295 goto return_label470;
10296 }
10297 return_label470: while(false);
10298 tracehead = trace.prev;
10299 return;
10300 }
10301 void parser_prod___AWhileExpr___visit_all(val_t self, val_t param0) {
10302 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___visit_all, 5456};
10303 val_t variable0;
10304 val_t variable1;
10305 trace.prev = tracehead; tracehead = &trace;
10306 variable0 = param0;
10307 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
10308 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
10309 if (UNTAG_Bool(variable1)) { /*if*/
10310 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
10311 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10312 }
10313 variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
10314 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10315 if (UNTAG_Bool(variable1)) { /*if*/
10316 variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
10317 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10318 }
10319 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
10320 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10321 if (UNTAG_Bool(variable1)) { /*if*/
10322 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
10323 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10324 }
10325 variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
10326 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10327 if (UNTAG_Bool(variable1)) { /*if*/
10328 variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
10329 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10330 }
10331 tracehead = trace.prev;
10332 return;
10333 }
10334 void parser_prod___AWhileExpr___visit_all_reverse(val_t self, val_t param0) {
10335 struct trace_t trace = {NULL, LOCATE_parser_prod___AWhileExpr___visit_all_reverse, 5472};
10336 val_t variable0;
10337 val_t variable1;
10338 trace.prev = tracehead; tracehead = &trace;
10339 variable0 = param0;
10340 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
10341 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
10342 if (UNTAG_Bool(variable1)) { /*if*/
10343 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
10344 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10345 }
10346 variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
10347 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10348 if (UNTAG_Bool(variable1)) { /*if*/
10349 variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
10350 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10351 }
10352 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
10353 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10354 if (UNTAG_Bool(variable1)) { /*if*/
10355 variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
10356 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10357 }
10358 variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
10359 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10360 if (UNTAG_Bool(variable1)) { /*if*/
10361 variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
10362 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10363 }
10364 tracehead = trace.prev;
10365 return;
10366 }
10367 void parser_prod___AForExpr___n_vardecl__eq(val_t self, val_t param0) {
10368 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___n_vardecl__eq, 5489};
10369 val_t variable0;
10370 val_t variable1;
10371 trace.prev = tracehead; tracehead = &trace;
10372 variable0 = param0;
10373 ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ = variable0 /*n*/;
10374 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10375 if (UNTAG_Bool(variable1)) { /*if*/
10376 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
10377 }
10378 tracehead = trace.prev;
10379 return;
10380 }
10381 void parser_prod___AForExpr___n_kwdo__eq(val_t self, val_t param0) {
10382 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___n_kwdo__eq, 5496};
10383 val_t variable0;
10384 val_t variable1;
10385 trace.prev = tracehead; tracehead = &trace;
10386 variable0 = param0;
10387 ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ = variable0 /*n*/;
10388 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10389 if (UNTAG_Bool(variable1)) { /*if*/
10390 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwdo::parent=*/;
10391 }
10392 tracehead = trace.prev;
10393 return;
10394 }
10395 void parser_prod___AForExpr___n_block__eq(val_t self, val_t param0) {
10396 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___n_block__eq, 5503};
10397 val_t variable0;
10398 val_t variable1;
10399 trace.prev = tracehead; tracehead = &trace;
10400 variable0 = param0;
10401 ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ = variable0 /*n*/;
10402 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10403 if (UNTAG_Bool(variable1)) { /*if*/
10404 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
10405 }
10406 tracehead = trace.prev;
10407 return;
10408 }
10409 void parser_prod___AForExpr___empty_init(val_t self, int* init_table) {
10410 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___empty_init, 5511};
10411 trace.prev = tracehead; tracehead = &trace;
10412 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i]) return;
10413 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i] = 1;
10414 tracehead = trace.prev;
10415 return;
10416 }
10417 void parser_prod___AForExpr___init_aforexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
10418 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___init_aforexpr, 5513};
10419 val_t variable0;
10420 val_t variable1;
10421 val_t variable2;
10422 val_t variable3;
10423 trace.prev = tracehead; tracehead = &trace;
10424 variable0 = param0;
10425 variable1 = param1;
10426 variable2 = param2;
10427 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i]) return;
10428 ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ = variable0 /*n_vardecl*/;
10429 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_vardecl*/ == NIT_NULL /*null*/) || (( variable0 /*n_vardecl*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_vardecl*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_vardecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_vardecl*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_vardecl*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10430 if (UNTAG_Bool(variable3)) { /*if*/
10431 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_vardecl*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_vardecl*/, self) /*PExpr::parent=*/;
10432 }
10433 ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ = variable1 /*n_kwdo*/;
10434 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwdo*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwdo*/, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10435 if (UNTAG_Bool(variable3)) { /*if*/
10436 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwdo*/, self) /*TKwdo::parent=*/;
10437 }
10438 ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ = variable2 /*n_block*/;
10439 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_block*/ == NIT_NULL /*null*/) || (( variable2 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_block*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10440 if (UNTAG_Bool(variable3)) { /*if*/
10441 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_block*/, self) /*PExpr::parent=*/;
10442 }
10443 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i] = 1;
10444 tracehead = trace.prev;
10445 return;
10446 }
10447 void parser_prod___AForExpr___replace_child(val_t self, val_t param0, val_t param1) {
10448 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___replace_child, 5533};
10449 val_t variable0;
10450 val_t variable1;
10451 val_t variable2;
10452 trace.prev = tracehead; tracehead = &trace;
10453 variable0 = param0;
10454 variable1 = param1;
10455 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10456 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForExpr___replace_child, 5535); nit_exit(1);}
10457 variable2 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
10458 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
10459 if (UNTAG_Bool(variable2)) { /*if*/
10460 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10461 if (UNTAG_Bool(variable2)) { /*if*/
10462 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10463 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10464 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForExpr___replace_child, 5539); nit_exit(1);}
10465 ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ = variable1 /*new_child*/;
10466 } else { /*if*/
10467 ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ = NIT_NULL /*null*/;
10468 }
10469 goto return_label478;
10470 }
10471 variable2 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
10472 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwdo::==*/)))));
10473 if (UNTAG_Bool(variable2)) { /*if*/
10474 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10475 if (UNTAG_Bool(variable2)) { /*if*/
10476 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10477 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
10478 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForExpr___replace_child, 5549); nit_exit(1);}
10479 ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ = variable1 /*new_child*/;
10480 } else { /*if*/
10481 ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ = NIT_NULL /*null*/;
10482 }
10483 goto return_label478;
10484 }
10485 variable2 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
10486 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
10487 if (UNTAG_Bool(variable2)) { /*if*/
10488 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10489 if (UNTAG_Bool(variable2)) { /*if*/
10490 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10491 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10492 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForExpr___replace_child, 5559); nit_exit(1);}
10493 ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ = variable1 /*new_child*/;
10494 } else { /*if*/
10495 ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ = NIT_NULL /*null*/;
10496 }
10497 goto return_label478;
10498 }
10499 return_label478: while(false);
10500 tracehead = trace.prev;
10501 return;
10502 }
10503 void parser_prod___AForExpr___visit_all(val_t self, val_t param0) {
10504 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___visit_all, 5568};
10505 val_t variable0;
10506 val_t variable1;
10507 trace.prev = tracehead; tracehead = &trace;
10508 variable0 = param0;
10509 variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
10510 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10511 if (UNTAG_Bool(variable1)) { /*if*/
10512 variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
10513 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10514 }
10515 variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
10516 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10517 if (UNTAG_Bool(variable1)) { /*if*/
10518 variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
10519 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10520 }
10521 variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
10522 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10523 if (UNTAG_Bool(variable1)) { /*if*/
10524 variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
10525 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10526 }
10527 tracehead = trace.prev;
10528 return;
10529 }
10530 void parser_prod___AForExpr___visit_all_reverse(val_t self, val_t param0) {
10531 struct trace_t trace = {NULL, LOCATE_parser_prod___AForExpr___visit_all_reverse, 5581};
10532 val_t variable0;
10533 val_t variable1;
10534 trace.prev = tracehead; tracehead = &trace;
10535 variable0 = param0;
10536 variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
10537 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10538 if (UNTAG_Bool(variable1)) { /*if*/
10539 variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
10540 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10541 }
10542 variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
10543 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwdo::==*/)))))));
10544 if (UNTAG_Bool(variable1)) { /*if*/
10545 variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
10546 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10547 }
10548 variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
10549 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10550 if (UNTAG_Bool(variable1)) { /*if*/
10551 variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
10552 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10553 }
10554 tracehead = trace.prev;
10555 return;
10556 }
10557 void parser_prod___AForVardeclExpr___n_kwfor__eq(val_t self, val_t param0) {
10558 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___n_kwfor__eq, 5595};
10559 val_t variable0;
10560 val_t variable1;
10561 trace.prev = tracehead; tracehead = &trace;
10562 variable0 = param0;
10563 ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ = variable0 /*n*/;
10564 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwfor::==*/)))))));
10565 if (UNTAG_Bool(variable1)) { /*if*/
10566 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwfor::parent=*/;
10567 }
10568 tracehead = trace.prev;
10569 return;
10570 }
10571 void parser_prod___AForVardeclExpr___n_id__eq(val_t self, val_t param0) {
10572 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___n_id__eq, 5602};
10573 val_t variable0;
10574 val_t variable1;
10575 trace.prev = tracehead; tracehead = &trace;
10576 variable0 = param0;
10577 ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ = variable0 /*n*/;
10578 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
10579 if (UNTAG_Bool(variable1)) { /*if*/
10580 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
10581 }
10582 tracehead = trace.prev;
10583 return;
10584 }
10585 void parser_prod___AForVardeclExpr___n_expr__eq(val_t self, val_t param0) {
10586 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___n_expr__eq, 5609};
10587 val_t variable0;
10588 val_t variable1;
10589 trace.prev = tracehead; tracehead = &trace;
10590 variable0 = param0;
10591 ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ = variable0 /*n*/;
10592 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10593 if (UNTAG_Bool(variable1)) { /*if*/
10594 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
10595 }
10596 tracehead = trace.prev;
10597 return;
10598 }
10599 void parser_prod___AForVardeclExpr___empty_init(val_t self, int* init_table) {
10600 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___empty_init, 5617};
10601 trace.prev = tracehead; tracehead = &trace;
10602 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i]) return;
10603 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i] = 1;
10604 tracehead = trace.prev;
10605 return;
10606 }
10607 void parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
10608 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___init_aforvardeclexpr, 5619};
10609 val_t variable0;
10610 val_t variable1;
10611 val_t variable2;
10612 val_t variable3;
10613 trace.prev = tracehead; tracehead = &trace;
10614 variable0 = param0;
10615 variable1 = param1;
10616 variable2 = param2;
10617 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i]) return;
10618 ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ = variable0 /*n_kwfor*/;
10619 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwfor*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwfor*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfor*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwfor*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfor*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwfor*/, NIT_NULL /*null*/) /*TKwfor::==*/)))))));
10620 if (UNTAG_Bool(variable3)) { /*if*/
10621 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwfor*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwfor*/, self) /*TKwfor::parent=*/;
10622 }
10623 ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ = variable1 /*n_id*/;
10624 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
10625 if (UNTAG_Bool(variable3)) { /*if*/
10626 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TId::parent=*/;
10627 }
10628 ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ = variable2 /*n_expr*/;
10629 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_expr*/ == NIT_NULL /*null*/) || (( variable2 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10630 if (UNTAG_Bool(variable3)) { /*if*/
10631 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_expr*/, self) /*PExpr::parent=*/;
10632 }
10633 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i] = 1;
10634 tracehead = trace.prev;
10635 return;
10636 }
10637 void parser_prod___AForVardeclExpr___replace_child(val_t self, val_t param0, val_t param1) {
10638 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___replace_child, 5639};
10639 val_t variable0;
10640 val_t variable1;
10641 val_t variable2;
10642 trace.prev = tracehead; tracehead = &trace;
10643 variable0 = param0;
10644 variable1 = param1;
10645 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10646 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForVardeclExpr___replace_child, 5641); nit_exit(1);}
10647 variable2 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
10648 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwfor::==*/)))));
10649 if (UNTAG_Bool(variable2)) { /*if*/
10650 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10651 if (UNTAG_Bool(variable2)) { /*if*/
10652 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10653 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
10654 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForVardeclExpr___replace_child, 5645); nit_exit(1);}
10655 ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ = variable1 /*new_child*/;
10656 } else { /*if*/
10657 ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ = NIT_NULL /*null*/;
10658 }
10659 goto return_label486;
10660 }
10661 variable2 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
10662 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
10663 if (UNTAG_Bool(variable2)) { /*if*/
10664 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10665 if (UNTAG_Bool(variable2)) { /*if*/
10666 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10667 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
10668 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForVardeclExpr___replace_child, 5655); nit_exit(1);}
10669 ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ = variable1 /*new_child*/;
10670 } else { /*if*/
10671 ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ = NIT_NULL /*null*/;
10672 }
10673 goto return_label486;
10674 }
10675 variable2 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
10676 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
10677 if (UNTAG_Bool(variable2)) { /*if*/
10678 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10679 if (UNTAG_Bool(variable2)) { /*if*/
10680 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10681 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10682 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AForVardeclExpr___replace_child, 5665); nit_exit(1);}
10683 ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ = variable1 /*new_child*/;
10684 } else { /*if*/
10685 ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ = NIT_NULL /*null*/;
10686 }
10687 goto return_label486;
10688 }
10689 return_label486: while(false);
10690 tracehead = trace.prev;
10691 return;
10692 }
10693 void parser_prod___AForVardeclExpr___visit_all(val_t self, val_t param0) {
10694 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___visit_all, 5674};
10695 val_t variable0;
10696 val_t variable1;
10697 trace.prev = tracehead; tracehead = &trace;
10698 variable0 = param0;
10699 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
10700 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwfor::==*/)))))));
10701 if (UNTAG_Bool(variable1)) { /*if*/
10702 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
10703 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10704 }
10705 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
10706 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
10707 if (UNTAG_Bool(variable1)) { /*if*/
10708 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
10709 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10710 }
10711 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
10712 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10713 if (UNTAG_Bool(variable1)) { /*if*/
10714 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
10715 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10716 }
10717 tracehead = trace.prev;
10718 return;
10719 }
10720 void parser_prod___AForVardeclExpr___visit_all_reverse(val_t self, val_t param0) {
10721 struct trace_t trace = {NULL, LOCATE_parser_prod___AForVardeclExpr___visit_all_reverse, 5687};
10722 val_t variable0;
10723 val_t variable1;
10724 trace.prev = tracehead; tracehead = &trace;
10725 variable0 = param0;
10726 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
10727 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwfor::==*/)))))));
10728 if (UNTAG_Bool(variable1)) { /*if*/
10729 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
10730 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10731 }
10732 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
10733 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
10734 if (UNTAG_Bool(variable1)) { /*if*/
10735 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
10736 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10737 }
10738 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
10739 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10740 if (UNTAG_Bool(variable1)) { /*if*/
10741 variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
10742 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10743 }
10744 tracehead = trace.prev;
10745 return;
10746 }
10747 void parser_prod___AAssertExpr___n_kwassert__eq(val_t self, val_t param0) {
10748 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___n_kwassert__eq, 5701};
10749 val_t variable0;
10750 val_t variable1;
10751 trace.prev = tracehead; tracehead = &trace;
10752 variable0 = param0;
10753 ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ = variable0 /*n*/;
10754 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwassert::==*/)))))));
10755 if (UNTAG_Bool(variable1)) { /*if*/
10756 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwassert::parent=*/;
10757 }
10758 tracehead = trace.prev;
10759 return;
10760 }
10761 void parser_prod___AAssertExpr___n_id__eq(val_t self, val_t param0) {
10762 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___n_id__eq, 5708};
10763 val_t variable0;
10764 val_t variable1;
10765 trace.prev = tracehead; tracehead = &trace;
10766 variable0 = param0;
10767 ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ = variable0 /*n*/;
10768 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
10769 if (UNTAG_Bool(variable1)) { /*if*/
10770 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
10771 }
10772 tracehead = trace.prev;
10773 return;
10774 }
10775 void parser_prod___AAssertExpr___n_expr__eq(val_t self, val_t param0) {
10776 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___n_expr__eq, 5715};
10777 val_t variable0;
10778 val_t variable1;
10779 trace.prev = tracehead; tracehead = &trace;
10780 variable0 = param0;
10781 ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ = variable0 /*n*/;
10782 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10783 if (UNTAG_Bool(variable1)) { /*if*/
10784 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
10785 }
10786 tracehead = trace.prev;
10787 return;
10788 }
10789 void parser_prod___AAssertExpr___empty_init(val_t self, int* init_table) {
10790 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___empty_init, 5723};
10791 trace.prev = tracehead; tracehead = &trace;
10792 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
10793 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
10794 tracehead = trace.prev;
10795 return;
10796 }
10797 void parser_prod___AAssertExpr___init_aassertexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
10798 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___init_aassertexpr, 5725};
10799 val_t variable0;
10800 val_t variable1;
10801 val_t variable2;
10802 val_t variable3;
10803 trace.prev = tracehead; tracehead = &trace;
10804 variable0 = param0;
10805 variable1 = param1;
10806 variable2 = param2;
10807 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
10808 ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ = variable0 /*n_kwassert*/;
10809 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwassert*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwassert*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwassert*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwassert*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwassert*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwassert*/, NIT_NULL /*null*/) /*TKwassert::==*/)))))));
10810 if (UNTAG_Bool(variable3)) { /*if*/
10811 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwassert*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwassert*/, self) /*TKwassert::parent=*/;
10812 }
10813 ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ = variable1 /*n_id*/;
10814 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
10815 if (UNTAG_Bool(variable3)) { /*if*/
10816 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TId::parent=*/;
10817 }
10818 ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ = variable2 /*n_expr*/;
10819 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_expr*/ == NIT_NULL /*null*/) || (( variable2 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10820 if (UNTAG_Bool(variable3)) { /*if*/
10821 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_expr*/, self) /*PExpr::parent=*/;
10822 }
10823 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
10824 tracehead = trace.prev;
10825 return;
10826 }
10827 void parser_prod___AAssertExpr___replace_child(val_t self, val_t param0, val_t param1) {
10828 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___replace_child, 5745};
10829 val_t variable0;
10830 val_t variable1;
10831 val_t variable2;
10832 trace.prev = tracehead; tracehead = &trace;
10833 variable0 = param0;
10834 variable1 = param1;
10835 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10836 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAssertExpr___replace_child, 5747); nit_exit(1);}
10837 variable2 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
10838 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwassert::==*/)))));
10839 if (UNTAG_Bool(variable2)) { /*if*/
10840 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10841 if (UNTAG_Bool(variable2)) { /*if*/
10842 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10843 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
10844 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAssertExpr___replace_child, 5751); nit_exit(1);}
10845 ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ = variable1 /*new_child*/;
10846 } else { /*if*/
10847 ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ = NIT_NULL /*null*/;
10848 }
10849 goto return_label494;
10850 }
10851 variable2 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
10852 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
10853 if (UNTAG_Bool(variable2)) { /*if*/
10854 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10855 if (UNTAG_Bool(variable2)) { /*if*/
10856 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10857 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
10858 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAssertExpr___replace_child, 5761); nit_exit(1);}
10859 ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ = variable1 /*new_child*/;
10860 } else { /*if*/
10861 ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ = NIT_NULL /*null*/;
10862 }
10863 goto return_label494;
10864 }
10865 variable2 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
10866 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
10867 if (UNTAG_Bool(variable2)) { /*if*/
10868 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
10869 if (UNTAG_Bool(variable2)) { /*if*/
10870 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
10871 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
10872 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAssertExpr___replace_child, 5771); nit_exit(1);}
10873 ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ = variable1 /*new_child*/;
10874 } else { /*if*/
10875 ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ = NIT_NULL /*null*/;
10876 }
10877 goto return_label494;
10878 }
10879 return_label494: while(false);
10880 tracehead = trace.prev;
10881 return;
10882 }
10883 void parser_prod___AAssertExpr___visit_all(val_t self, val_t param0) {
10884 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___visit_all, 5780};
10885 val_t variable0;
10886 val_t variable1;
10887 trace.prev = tracehead; tracehead = &trace;
10888 variable0 = param0;
10889 variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
10890 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwassert::==*/)))))));
10891 if (UNTAG_Bool(variable1)) { /*if*/
10892 variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
10893 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10894 }
10895 variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
10896 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
10897 if (UNTAG_Bool(variable1)) { /*if*/
10898 variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
10899 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10900 }
10901 variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
10902 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10903 if (UNTAG_Bool(variable1)) { /*if*/
10904 variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
10905 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10906 }
10907 tracehead = trace.prev;
10908 return;
10909 }
10910 void parser_prod___AAssertExpr___visit_all_reverse(val_t self, val_t param0) {
10911 struct trace_t trace = {NULL, LOCATE_parser_prod___AAssertExpr___visit_all_reverse, 5793};
10912 val_t variable0;
10913 val_t variable1;
10914 trace.prev = tracehead; tracehead = &trace;
10915 variable0 = param0;
10916 variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
10917 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwassert::==*/)))))));
10918 if (UNTAG_Bool(variable1)) { /*if*/
10919 variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
10920 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10921 }
10922 variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
10923 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
10924 if (UNTAG_Bool(variable1)) { /*if*/
10925 variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
10926 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10927 }
10928 variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
10929 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10930 if (UNTAG_Bool(variable1)) { /*if*/
10931 variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
10932 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
10933 }
10934 tracehead = trace.prev;
10935 return;
10936 }
10937 void parser_prod___AOnceExpr___n_kwonce__eq(val_t self, val_t param0) {
10938 struct trace_t trace = {NULL, LOCATE_parser_prod___AOnceExpr___n_kwonce__eq, 5807};
10939 val_t variable0;
10940 val_t variable1;
10941 trace.prev = tracehead; tracehead = &trace;
10942 variable0 = param0;
10943 ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ = variable0 /*n*/;
10944 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwonce::==*/)))))));
10945 if (UNTAG_Bool(variable1)) { /*if*/
10946 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwonce::parent=*/;
10947 }
10948 tracehead = trace.prev;
10949 return;
10950 }
10951 void parser_prod___AOnceExpr___n_expr__eq(val_t self, val_t param0) {
10952 struct trace_t trace = {NULL, LOCATE_parser_prod___AOnceExpr___n_expr__eq, 5814};
10953 val_t variable0;
10954 val_t variable1;
10955 trace.prev = tracehead; tracehead = &trace;
10956 variable0 = param0;
10957 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ = variable0 /*n*/;
10958 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10959 if (UNTAG_Bool(variable1)) { /*if*/
10960 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
10961 }
10962 tracehead = trace.prev;
10963 return;
10964 }
10965 void parser_prod___AOnceExpr___empty_init(val_t self, int* init_table) {
10966 struct trace_t trace = {NULL, LOCATE_parser_prod___AOnceExpr___empty_init, 5822};
10967 trace.prev = tracehead; tracehead = &trace;
10968 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
10969 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
10970 tracehead = trace.prev;
10971 return;
10972 }
10973 void parser_prod___AOnceExpr___init_aonceexpr(val_t self, val_t param0, val_t param1, int* init_table) {
10974 struct trace_t trace = {NULL, LOCATE_parser_prod___AOnceExpr___init_aonceexpr, 5824};
10975 val_t variable0;
10976 val_t variable1;
10977 val_t variable2;
10978 trace.prev = tracehead; tracehead = &trace;
10979 variable0 = param0;
10980 variable1 = param1;
10981 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
10982 ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ = variable0 /*n_kwonce*/;
10983 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwonce*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwonce*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwonce*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwonce*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwonce*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwonce*/, NIT_NULL /*null*/) /*TKwonce::==*/)))))));
10984 if (UNTAG_Bool(variable2)) { /*if*/
10985 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwonce*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwonce*/, self) /*TKwonce::parent=*/;
10986 }
10987 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ = variable1 /*n_expr*/;
10988 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
10989 if (UNTAG_Bool(variable2)) { /*if*/
10990 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/, self) /*PExpr::parent=*/;
10991 }
10992 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
10993 tracehead = trace.prev;
10994 return;
10995 }
10996 void parser_prod___AOnceExpr___replace_child(val_t self, val_t param0, val_t param1) {
10997 struct trace_t trace = {NULL, LOCATE_parser_prod___AOnceExpr___replace_child, 5839};
10998 val_t variable0;
10999 val_t variable1;
11000 val_t variable2;
11001 trace.prev = tracehead; tracehead = &trace;
11002 variable0 = param0;
11003 variable1 = param1;
11004 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11005 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOnceExpr___replace_child, 5841); nit_exit(1);}
11006 variable2 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
11007 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwonce::==*/)))));
11008 if (UNTAG_Bool(variable2)) { /*if*/
11009 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11010 if (UNTAG_Bool(variable2)) { /*if*/
11011 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11012 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
11013 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOnceExpr___replace_child, 5845); nit_exit(1);}
11014 ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ = variable1 /*new_child*/;
11015 } else { /*if*/
11016 ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ = NIT_NULL /*null*/;
11017 }
11018 goto return_label501;
11019 }
11020 variable2 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
11021 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11022 if (UNTAG_Bool(variable2)) { /*if*/
11023 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11024 if (UNTAG_Bool(variable2)) { /*if*/
11025 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11026 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11027 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOnceExpr___replace_child, 5855); nit_exit(1);}
11028 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ = variable1 /*new_child*/;
11029 } else { /*if*/
11030 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ = NIT_NULL /*null*/;
11031 }
11032 goto return_label501;
11033 }
11034 return_label501: while(false);
11035 tracehead = trace.prev;
11036 return;
11037 }
11038 void parser_prod___AOnceExpr___visit_all(val_t self, val_t param0) {
11039 struct trace_t trace = {NULL, LOCATE_parser_prod___AOnceExpr___visit_all, 5864};
11040 val_t variable0;
11041 val_t variable1;
11042 trace.prev = tracehead; tracehead = &trace;
11043 variable0 = param0;
11044 variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
11045 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwonce::==*/)))))));
11046 if (UNTAG_Bool(variable1)) { /*if*/
11047 variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
11048 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11049 }
11050 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
11051 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11052 if (UNTAG_Bool(variable1)) { /*if*/
11053 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
11054 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11055 }
11056 tracehead = trace.prev;
11057 return;
11058 }
11059 void parser_prod___AOnceExpr___visit_all_reverse(val_t self, val_t param0) {
11060 struct trace_t trace = {NULL, LOCATE_parser_prod___AOnceExpr___visit_all_reverse, 5874};
11061 val_t variable0;
11062 val_t variable1;
11063 trace.prev = tracehead; tracehead = &trace;
11064 variable0 = param0;
11065 variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
11066 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwonce::==*/)))))));
11067 if (UNTAG_Bool(variable1)) { /*if*/
11068 variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
11069 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11070 }
11071 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
11072 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11073 if (UNTAG_Bool(variable1)) { /*if*/
11074 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
11075 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11076 }
11077 tracehead = trace.prev;
11078 return;
11079 }
11080 void parser_prod___ASendExpr___n_expr__eq(val_t self, val_t param0) {
11081 struct trace_t trace = {NULL, LOCATE_parser_prod___ASendExpr___n_expr__eq, 5885};
11082 val_t variable0;
11083 val_t variable1;
11084 trace.prev = tracehead; tracehead = &trace;
11085 variable0 = param0;
11086 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ = variable0 /*n*/;
11087 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11088 if (UNTAG_Bool(variable1)) { /*if*/
11089 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11090 }
11091 tracehead = trace.prev;
11092 return;
11093 }
11094 void parser_prod___ASendExpr___empty_init(val_t self, int* init_table) {
11095 struct trace_t trace = {NULL, LOCATE_parser_prod___ASendExpr___empty_init, 5893};
11096 trace.prev = tracehead; tracehead = &trace;
11097 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i]) return;
11098 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
11099 tracehead = trace.prev;
11100 return;
11101 }
11102 void parser_prod___ASendExpr___init_asendexpr(val_t self, val_t param0, int* init_table) {
11103 struct trace_t trace = {NULL, LOCATE_parser_prod___ASendExpr___init_asendexpr, 5895};
11104 val_t variable0;
11105 val_t variable1;
11106 trace.prev = tracehead; tracehead = &trace;
11107 variable0 = param0;
11108 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i]) return;
11109 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ = variable0 /*n_expr*/;
11110 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11111 if (UNTAG_Bool(variable1)) { /*if*/
11112 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
11113 }
11114 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
11115 tracehead = trace.prev;
11116 return;
11117 }
11118 void parser_prod___ASendExpr___replace_child(val_t self, val_t param0, val_t param1) {
11119 struct trace_t trace = {NULL, LOCATE_parser_prod___ASendExpr___replace_child, 5905};
11120 val_t variable0;
11121 val_t variable1;
11122 val_t variable2;
11123 trace.prev = tracehead; tracehead = &trace;
11124 variable0 = param0;
11125 variable1 = param1;
11126 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11127 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASendExpr___replace_child, 5907); nit_exit(1);}
11128 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
11129 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11130 if (UNTAG_Bool(variable2)) { /*if*/
11131 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11132 if (UNTAG_Bool(variable2)) { /*if*/
11133 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11134 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11135 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASendExpr___replace_child, 5911); nit_exit(1);}
11136 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ = variable1 /*new_child*/;
11137 } else { /*if*/
11138 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ = NIT_NULL /*null*/;
11139 }
11140 goto return_label507;
11141 }
11142 return_label507: while(false);
11143 tracehead = trace.prev;
11144 return;
11145 }
11146 void parser_prod___ASendExpr___visit_all(val_t self, val_t param0) {
11147 struct trace_t trace = {NULL, LOCATE_parser_prod___ASendExpr___visit_all, 5920};
11148 val_t variable0;
11149 val_t variable1;
11150 trace.prev = tracehead; tracehead = &trace;
11151 variable0 = param0;
11152 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
11153 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11154 if (UNTAG_Bool(variable1)) { /*if*/
11155 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
11156 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11157 }
11158 tracehead = trace.prev;
11159 return;
11160 }
11161 void parser_prod___ASendExpr___visit_all_reverse(val_t self, val_t param0) {
11162 struct trace_t trace = {NULL, LOCATE_parser_prod___ASendExpr___visit_all_reverse, 5927};
11163 val_t variable0;
11164 val_t variable1;
11165 trace.prev = tracehead; tracehead = &trace;
11166 variable0 = param0;
11167 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
11168 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11169 if (UNTAG_Bool(variable1)) { /*if*/
11170 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
11171 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11172 }
11173 tracehead = trace.prev;
11174 return;
11175 }
11176 void parser_prod___ABinopExpr___n_expr__eq(val_t self, val_t param0) {
11177 struct trace_t trace = {NULL, LOCATE_parser_prod___ABinopExpr___n_expr__eq, 5935};
11178 val_t variable0;
11179 val_t variable1;
11180 trace.prev = tracehead; tracehead = &trace;
11181 variable0 = param0;
11182 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ = variable0 /*n*/;
11183 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11184 if (UNTAG_Bool(variable1)) { /*if*/
11185 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11186 }
11187 tracehead = trace.prev;
11188 return;
11189 }
11190 void parser_prod___ABinopExpr___n_expr2__eq(val_t self, val_t param0) {
11191 struct trace_t trace = {NULL, LOCATE_parser_prod___ABinopExpr___n_expr2__eq, 5942};
11192 val_t variable0;
11193 val_t variable1;
11194 trace.prev = tracehead; tracehead = &trace;
11195 variable0 = param0;
11196 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ = variable0 /*n*/;
11197 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11198 if (UNTAG_Bool(variable1)) { /*if*/
11199 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11200 }
11201 tracehead = trace.prev;
11202 return;
11203 }
11204 void parser_prod___ABinopExpr___empty_init(val_t self, int* init_table) {
11205 struct trace_t trace = {NULL, LOCATE_parser_prod___ABinopExpr___empty_init, 5950};
11206 trace.prev = tracehead; tracehead = &trace;
11207 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
11208 ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
11209 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
11210 tracehead = trace.prev;
11211 return;
11212 }
11213 void parser_prod___ABinopExpr___init_abinopexpr(val_t self, val_t param0, val_t param1, int* init_table) {
11214 struct trace_t trace = {NULL, LOCATE_parser_prod___ABinopExpr___init_abinopexpr, 5952};
11215 val_t variable0;
11216 val_t variable1;
11217 val_t variable2;
11218 trace.prev = tracehead; tracehead = &trace;
11219 variable0 = param0;
11220 variable1 = param1;
11221 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
11222 ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
11223 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ = variable0 /*n_expr*/;
11224 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11225 if (UNTAG_Bool(variable2)) { /*if*/
11226 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
11227 }
11228 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ = variable1 /*n_expr2*/;
11229 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11230 if (UNTAG_Bool(variable2)) { /*if*/
11231 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
11232 }
11233 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
11234 tracehead = trace.prev;
11235 return;
11236 }
11237 void parser_prod___ABinopExpr___replace_child(val_t self, val_t param0, val_t param1) {
11238 struct trace_t trace = {NULL, LOCATE_parser_prod___ABinopExpr___replace_child, 5967};
11239 val_t variable0;
11240 val_t variable1;
11241 val_t variable2;
11242 trace.prev = tracehead; tracehead = &trace;
11243 variable0 = param0;
11244 variable1 = param1;
11245 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11246 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABinopExpr___replace_child, 5969); nit_exit(1);}
11247 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
11248 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11249 if (UNTAG_Bool(variable2)) { /*if*/
11250 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11251 if (UNTAG_Bool(variable2)) { /*if*/
11252 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11253 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11254 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABinopExpr___replace_child, 5973); nit_exit(1);}
11255 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ = variable1 /*new_child*/;
11256 } else { /*if*/
11257 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ = NIT_NULL /*null*/;
11258 }
11259 goto return_label514;
11260 }
11261 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
11262 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11263 if (UNTAG_Bool(variable2)) { /*if*/
11264 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11265 if (UNTAG_Bool(variable2)) { /*if*/
11266 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11267 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11268 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABinopExpr___replace_child, 5983); nit_exit(1);}
11269 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ = variable1 /*new_child*/;
11270 } else { /*if*/
11271 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ = NIT_NULL /*null*/;
11272 }
11273 goto return_label514;
11274 }
11275 return_label514: while(false);
11276 tracehead = trace.prev;
11277 return;
11278 }
11279 void parser_prod___ABinopExpr___visit_all(val_t self, val_t param0) {
11280 struct trace_t trace = {NULL, LOCATE_parser_prod___ABinopExpr___visit_all, 5992};
11281 val_t variable0;
11282 val_t variable1;
11283 trace.prev = tracehead; tracehead = &trace;
11284 variable0 = param0;
11285 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
11286 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11287 if (UNTAG_Bool(variable1)) { /*if*/
11288 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
11289 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11290 }
11291 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
11292 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11293 if (UNTAG_Bool(variable1)) { /*if*/
11294 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
11295 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11296 }
11297 tracehead = trace.prev;
11298 return;
11299 }
11300 void parser_prod___ABinopExpr___visit_all_reverse(val_t self, val_t param0) {
11301 struct trace_t trace = {NULL, LOCATE_parser_prod___ABinopExpr___visit_all_reverse, 6002};
11302 val_t variable0;
11303 val_t variable1;
11304 trace.prev = tracehead; tracehead = &trace;
11305 variable0 = param0;
11306 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
11307 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11308 if (UNTAG_Bool(variable1)) { /*if*/
11309 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
11310 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11311 }
11312 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
11313 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11314 if (UNTAG_Bool(variable1)) { /*if*/
11315 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
11316 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11317 }
11318 tracehead = trace.prev;
11319 return;
11320 }
11321 void parser_prod___AOrExpr___n_expr__eq(val_t self, val_t param0) {
11322 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrExpr___n_expr__eq, 6013};
11323 val_t variable0;
11324 val_t variable1;
11325 trace.prev = tracehead; tracehead = &trace;
11326 variable0 = param0;
11327 ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ = variable0 /*n*/;
11328 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11329 if (UNTAG_Bool(variable1)) { /*if*/
11330 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11331 }
11332 tracehead = trace.prev;
11333 return;
11334 }
11335 void parser_prod___AOrExpr___n_expr2__eq(val_t self, val_t param0) {
11336 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrExpr___n_expr2__eq, 6020};
11337 val_t variable0;
11338 val_t variable1;
11339 trace.prev = tracehead; tracehead = &trace;
11340 variable0 = param0;
11341 ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ = variable0 /*n*/;
11342 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11343 if (UNTAG_Bool(variable1)) { /*if*/
11344 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11345 }
11346 tracehead = trace.prev;
11347 return;
11348 }
11349 void parser_prod___AOrExpr___empty_init(val_t self, int* init_table) {
11350 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrExpr___empty_init, 6028};
11351 trace.prev = tracehead; tracehead = &trace;
11352 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i]) return;
11353 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
11354 tracehead = trace.prev;
11355 return;
11356 }
11357 void parser_prod___AOrExpr___init_aorexpr(val_t self, val_t param0, val_t param1, int* init_table) {
11358 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrExpr___init_aorexpr, 6030};
11359 val_t variable0;
11360 val_t variable1;
11361 val_t variable2;
11362 trace.prev = tracehead; tracehead = &trace;
11363 variable0 = param0;
11364 variable1 = param1;
11365 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i]) return;
11366 ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ = variable0 /*n_expr*/;
11367 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11368 if (UNTAG_Bool(variable2)) { /*if*/
11369 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
11370 }
11371 ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ = variable1 /*n_expr2*/;
11372 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11373 if (UNTAG_Bool(variable2)) { /*if*/
11374 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
11375 }
11376 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
11377 tracehead = trace.prev;
11378 return;
11379 }
11380 void parser_prod___AOrExpr___replace_child(val_t self, val_t param0, val_t param1) {
11381 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrExpr___replace_child, 6045};
11382 val_t variable0;
11383 val_t variable1;
11384 val_t variable2;
11385 trace.prev = tracehead; tracehead = &trace;
11386 variable0 = param0;
11387 variable1 = param1;
11388 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11389 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOrExpr___replace_child, 6047); nit_exit(1);}
11390 variable2 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
11391 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11392 if (UNTAG_Bool(variable2)) { /*if*/
11393 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11394 if (UNTAG_Bool(variable2)) { /*if*/
11395 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11396 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11397 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOrExpr___replace_child, 6051); nit_exit(1);}
11398 ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ = variable1 /*new_child*/;
11399 } else { /*if*/
11400 ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ = NIT_NULL /*null*/;
11401 }
11402 goto return_label521;
11403 }
11404 variable2 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
11405 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11406 if (UNTAG_Bool(variable2)) { /*if*/
11407 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11408 if (UNTAG_Bool(variable2)) { /*if*/
11409 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11410 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11411 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOrExpr___replace_child, 6061); nit_exit(1);}
11412 ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ = variable1 /*new_child*/;
11413 } else { /*if*/
11414 ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ = NIT_NULL /*null*/;
11415 }
11416 goto return_label521;
11417 }
11418 return_label521: while(false);
11419 tracehead = trace.prev;
11420 return;
11421 }
11422 void parser_prod___AOrExpr___visit_all(val_t self, val_t param0) {
11423 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrExpr___visit_all, 6070};
11424 val_t variable0;
11425 val_t variable1;
11426 trace.prev = tracehead; tracehead = &trace;
11427 variable0 = param0;
11428 variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
11429 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11430 if (UNTAG_Bool(variable1)) { /*if*/
11431 variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
11432 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11433 }
11434 variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
11435 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11436 if (UNTAG_Bool(variable1)) { /*if*/
11437 variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
11438 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11439 }
11440 tracehead = trace.prev;
11441 return;
11442 }
11443 void parser_prod___AOrExpr___visit_all_reverse(val_t self, val_t param0) {
11444 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrExpr___visit_all_reverse, 6080};
11445 val_t variable0;
11446 val_t variable1;
11447 trace.prev = tracehead; tracehead = &trace;
11448 variable0 = param0;
11449 variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
11450 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11451 if (UNTAG_Bool(variable1)) { /*if*/
11452 variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
11453 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11454 }
11455 variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
11456 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11457 if (UNTAG_Bool(variable1)) { /*if*/
11458 variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
11459 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11460 }
11461 tracehead = trace.prev;
11462 return;
11463 }
11464 void parser_prod___AAndExpr___n_expr__eq(val_t self, val_t param0) {
11465 struct trace_t trace = {NULL, LOCATE_parser_prod___AAndExpr___n_expr__eq, 6091};
11466 val_t variable0;
11467 val_t variable1;
11468 trace.prev = tracehead; tracehead = &trace;
11469 variable0 = param0;
11470 ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ = variable0 /*n*/;
11471 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11472 if (UNTAG_Bool(variable1)) { /*if*/
11473 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11474 }
11475 tracehead = trace.prev;
11476 return;
11477 }
11478 void parser_prod___AAndExpr___n_expr2__eq(val_t self, val_t param0) {
11479 struct trace_t trace = {NULL, LOCATE_parser_prod___AAndExpr___n_expr2__eq, 6098};
11480 val_t variable0;
11481 val_t variable1;
11482 trace.prev = tracehead; tracehead = &trace;
11483 variable0 = param0;
11484 ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ = variable0 /*n*/;
11485 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11486 if (UNTAG_Bool(variable1)) { /*if*/
11487 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11488 }
11489 tracehead = trace.prev;
11490 return;
11491 }
11492 void parser_prod___AAndExpr___empty_init(val_t self, int* init_table) {
11493 struct trace_t trace = {NULL, LOCATE_parser_prod___AAndExpr___empty_init, 6106};
11494 trace.prev = tracehead; tracehead = &trace;
11495 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i]) return;
11496 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
11497 tracehead = trace.prev;
11498 return;
11499 }
11500 void parser_prod___AAndExpr___init_aandexpr(val_t self, val_t param0, val_t param1, int* init_table) {
11501 struct trace_t trace = {NULL, LOCATE_parser_prod___AAndExpr___init_aandexpr, 6108};
11502 val_t variable0;
11503 val_t variable1;
11504 val_t variable2;
11505 trace.prev = tracehead; tracehead = &trace;
11506 variable0 = param0;
11507 variable1 = param1;
11508 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i]) return;
11509 ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ = variable0 /*n_expr*/;
11510 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11511 if (UNTAG_Bool(variable2)) { /*if*/
11512 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
11513 }
11514 ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ = variable1 /*n_expr2*/;
11515 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11516 if (UNTAG_Bool(variable2)) { /*if*/
11517 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
11518 }
11519 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
11520 tracehead = trace.prev;
11521 return;
11522 }
11523 void parser_prod___AAndExpr___replace_child(val_t self, val_t param0, val_t param1) {
11524 struct trace_t trace = {NULL, LOCATE_parser_prod___AAndExpr___replace_child, 6123};
11525 val_t variable0;
11526 val_t variable1;
11527 val_t variable2;
11528 trace.prev = tracehead; tracehead = &trace;
11529 variable0 = param0;
11530 variable1 = param1;
11531 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11532 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAndExpr___replace_child, 6125); nit_exit(1);}
11533 variable2 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
11534 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11535 if (UNTAG_Bool(variable2)) { /*if*/
11536 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11537 if (UNTAG_Bool(variable2)) { /*if*/
11538 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11539 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11540 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAndExpr___replace_child, 6129); nit_exit(1);}
11541 ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ = variable1 /*new_child*/;
11542 } else { /*if*/
11543 ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ = NIT_NULL /*null*/;
11544 }
11545 goto return_label528;
11546 }
11547 variable2 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
11548 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11549 if (UNTAG_Bool(variable2)) { /*if*/
11550 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11551 if (UNTAG_Bool(variable2)) { /*if*/
11552 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11553 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11554 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAndExpr___replace_child, 6139); nit_exit(1);}
11555 ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ = variable1 /*new_child*/;
11556 } else { /*if*/
11557 ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ = NIT_NULL /*null*/;
11558 }
11559 goto return_label528;
11560 }
11561 return_label528: while(false);
11562 tracehead = trace.prev;
11563 return;
11564 }
11565 void parser_prod___AAndExpr___visit_all(val_t self, val_t param0) {
11566 struct trace_t trace = {NULL, LOCATE_parser_prod___AAndExpr___visit_all, 6148};
11567 val_t variable0;
11568 val_t variable1;
11569 trace.prev = tracehead; tracehead = &trace;
11570 variable0 = param0;
11571 variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
11572 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11573 if (UNTAG_Bool(variable1)) { /*if*/
11574 variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
11575 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11576 }
11577 variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
11578 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11579 if (UNTAG_Bool(variable1)) { /*if*/
11580 variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
11581 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11582 }
11583 tracehead = trace.prev;
11584 return;
11585 }
11586 void parser_prod___AAndExpr___visit_all_reverse(val_t self, val_t param0) {
11587 struct trace_t trace = {NULL, LOCATE_parser_prod___AAndExpr___visit_all_reverse, 6158};
11588 val_t variable0;
11589 val_t variable1;
11590 trace.prev = tracehead; tracehead = &trace;
11591 variable0 = param0;
11592 variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
11593 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11594 if (UNTAG_Bool(variable1)) { /*if*/
11595 variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
11596 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11597 }
11598 variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
11599 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11600 if (UNTAG_Bool(variable1)) { /*if*/
11601 variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
11602 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11603 }
11604 tracehead = trace.prev;
11605 return;
11606 }
11607 void parser_prod___ANotExpr___n_kwnot__eq(val_t self, val_t param0) {
11608 struct trace_t trace = {NULL, LOCATE_parser_prod___ANotExpr___n_kwnot__eq, 6169};
11609 val_t variable0;
11610 val_t variable1;
11611 trace.prev = tracehead; tracehead = &trace;
11612 variable0 = param0;
11613 ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ = variable0 /*n*/;
11614 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwnot::==*/)))))));
11615 if (UNTAG_Bool(variable1)) { /*if*/
11616 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwnot::parent=*/;
11617 }
11618 tracehead = trace.prev;
11619 return;
11620 }
11621 void parser_prod___ANotExpr___n_expr__eq(val_t self, val_t param0) {
11622 struct trace_t trace = {NULL, LOCATE_parser_prod___ANotExpr___n_expr__eq, 6176};
11623 val_t variable0;
11624 val_t variable1;
11625 trace.prev = tracehead; tracehead = &trace;
11626 variable0 = param0;
11627 ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ = variable0 /*n*/;
11628 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11629 if (UNTAG_Bool(variable1)) { /*if*/
11630 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11631 }
11632 tracehead = trace.prev;
11633 return;
11634 }
11635 void parser_prod___ANotExpr___empty_init(val_t self, int* init_table) {
11636 struct trace_t trace = {NULL, LOCATE_parser_prod___ANotExpr___empty_init, 6184};
11637 trace.prev = tracehead; tracehead = &trace;
11638 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i]) return;
11639 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
11640 tracehead = trace.prev;
11641 return;
11642 }
11643 void parser_prod___ANotExpr___init_anotexpr(val_t self, val_t param0, val_t param1, int* init_table) {
11644 struct trace_t trace = {NULL, LOCATE_parser_prod___ANotExpr___init_anotexpr, 6186};
11645 val_t variable0;
11646 val_t variable1;
11647 val_t variable2;
11648 trace.prev = tracehead; tracehead = &trace;
11649 variable0 = param0;
11650 variable1 = param1;
11651 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i]) return;
11652 ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ = variable0 /*n_kwnot*/;
11653 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwnot*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwnot*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnot*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwnot*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnot*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwnot*/, NIT_NULL /*null*/) /*TKwnot::==*/)))))));
11654 if (UNTAG_Bool(variable2)) { /*if*/
11655 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwnot*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwnot*/, self) /*TKwnot::parent=*/;
11656 }
11657 ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ = variable1 /*n_expr*/;
11658 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11659 if (UNTAG_Bool(variable2)) { /*if*/
11660 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/, self) /*PExpr::parent=*/;
11661 }
11662 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
11663 tracehead = trace.prev;
11664 return;
11665 }
11666 void parser_prod___ANotExpr___replace_child(val_t self, val_t param0, val_t param1) {
11667 struct trace_t trace = {NULL, LOCATE_parser_prod___ANotExpr___replace_child, 6201};
11668 val_t variable0;
11669 val_t variable1;
11670 val_t variable2;
11671 trace.prev = tracehead; tracehead = &trace;
11672 variable0 = param0;
11673 variable1 = param1;
11674 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11675 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANotExpr___replace_child, 6203); nit_exit(1);}
11676 variable2 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
11677 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwnot::==*/)))));
11678 if (UNTAG_Bool(variable2)) { /*if*/
11679 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11680 if (UNTAG_Bool(variable2)) { /*if*/
11681 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11682 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
11683 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANotExpr___replace_child, 6207); nit_exit(1);}
11684 ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ = variable1 /*new_child*/;
11685 } else { /*if*/
11686 ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ = NIT_NULL /*null*/;
11687 }
11688 goto return_label535;
11689 }
11690 variable2 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
11691 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11692 if (UNTAG_Bool(variable2)) { /*if*/
11693 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11694 if (UNTAG_Bool(variable2)) { /*if*/
11695 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11696 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11697 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANotExpr___replace_child, 6217); nit_exit(1);}
11698 ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ = variable1 /*new_child*/;
11699 } else { /*if*/
11700 ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ = NIT_NULL /*null*/;
11701 }
11702 goto return_label535;
11703 }
11704 return_label535: while(false);
11705 tracehead = trace.prev;
11706 return;
11707 }
11708 void parser_prod___ANotExpr___visit_all(val_t self, val_t param0) {
11709 struct trace_t trace = {NULL, LOCATE_parser_prod___ANotExpr___visit_all, 6226};
11710 val_t variable0;
11711 val_t variable1;
11712 trace.prev = tracehead; tracehead = &trace;
11713 variable0 = param0;
11714 variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
11715 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwnot::==*/)))))));
11716 if (UNTAG_Bool(variable1)) { /*if*/
11717 variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
11718 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11719 }
11720 variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
11721 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11722 if (UNTAG_Bool(variable1)) { /*if*/
11723 variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
11724 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11725 }
11726 tracehead = trace.prev;
11727 return;
11728 }
11729 void parser_prod___ANotExpr___visit_all_reverse(val_t self, val_t param0) {
11730 struct trace_t trace = {NULL, LOCATE_parser_prod___ANotExpr___visit_all_reverse, 6236};
11731 val_t variable0;
11732 val_t variable1;
11733 trace.prev = tracehead; tracehead = &trace;
11734 variable0 = param0;
11735 variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
11736 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwnot::==*/)))))));
11737 if (UNTAG_Bool(variable1)) { /*if*/
11738 variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
11739 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11740 }
11741 variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
11742 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11743 if (UNTAG_Bool(variable1)) { /*if*/
11744 variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
11745 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11746 }
11747 tracehead = trace.prev;
11748 return;
11749 }
11750 void parser_prod___AEqExpr___n_expr__eq(val_t self, val_t param0) {
11751 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqExpr___n_expr__eq, 6247};
11752 val_t variable0;
11753 val_t variable1;
11754 trace.prev = tracehead; tracehead = &trace;
11755 variable0 = param0;
11756 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ = variable0 /*n*/;
11757 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11758 if (UNTAG_Bool(variable1)) { /*if*/
11759 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11760 }
11761 tracehead = trace.prev;
11762 return;
11763 }
11764 void parser_prod___AEqExpr___n_expr2__eq(val_t self, val_t param0) {
11765 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqExpr___n_expr2__eq, 6254};
11766 val_t variable0;
11767 val_t variable1;
11768 trace.prev = tracehead; tracehead = &trace;
11769 variable0 = param0;
11770 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ = variable0 /*n*/;
11771 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11772 if (UNTAG_Bool(variable1)) { /*if*/
11773 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11774 }
11775 tracehead = trace.prev;
11776 return;
11777 }
11778 void parser_prod___AEqExpr___empty_init(val_t self, int* init_table) {
11779 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqExpr___empty_init, 6262};
11780 trace.prev = tracehead; tracehead = &trace;
11781 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i]) return;
11782 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
11783 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
11784 tracehead = trace.prev;
11785 return;
11786 }
11787 void parser_prod___AEqExpr___init_aeqexpr(val_t self, val_t param0, val_t param1, int* init_table) {
11788 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqExpr___init_aeqexpr, 6264};
11789 val_t variable0;
11790 val_t variable1;
11791 val_t variable2;
11792 trace.prev = tracehead; tracehead = &trace;
11793 variable0 = param0;
11794 variable1 = param1;
11795 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i]) return;
11796 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
11797 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ = variable0 /*n_expr*/;
11798 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11799 if (UNTAG_Bool(variable2)) { /*if*/
11800 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
11801 }
11802 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ = variable1 /*n_expr2*/;
11803 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11804 if (UNTAG_Bool(variable2)) { /*if*/
11805 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
11806 }
11807 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
11808 tracehead = trace.prev;
11809 return;
11810 }
11811 void parser_prod___AEqExpr___replace_child(val_t self, val_t param0, val_t param1) {
11812 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqExpr___replace_child, 6279};
11813 val_t variable0;
11814 val_t variable1;
11815 val_t variable2;
11816 trace.prev = tracehead; tracehead = &trace;
11817 variable0 = param0;
11818 variable1 = param1;
11819 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11820 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEqExpr___replace_child, 6281); nit_exit(1);}
11821 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
11822 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11823 if (UNTAG_Bool(variable2)) { /*if*/
11824 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11825 if (UNTAG_Bool(variable2)) { /*if*/
11826 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11827 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11828 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEqExpr___replace_child, 6285); nit_exit(1);}
11829 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ = variable1 /*new_child*/;
11830 } else { /*if*/
11831 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ = NIT_NULL /*null*/;
11832 }
11833 goto return_label542;
11834 }
11835 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
11836 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11837 if (UNTAG_Bool(variable2)) { /*if*/
11838 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11839 if (UNTAG_Bool(variable2)) { /*if*/
11840 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11841 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11842 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEqExpr___replace_child, 6295); nit_exit(1);}
11843 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ = variable1 /*new_child*/;
11844 } else { /*if*/
11845 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ = NIT_NULL /*null*/;
11846 }
11847 goto return_label542;
11848 }
11849 return_label542: while(false);
11850 tracehead = trace.prev;
11851 return;
11852 }
11853 void parser_prod___AEqExpr___visit_all(val_t self, val_t param0) {
11854 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqExpr___visit_all, 6304};
11855 val_t variable0;
11856 val_t variable1;
11857 trace.prev = tracehead; tracehead = &trace;
11858 variable0 = param0;
11859 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
11860 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11861 if (UNTAG_Bool(variable1)) { /*if*/
11862 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
11863 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11864 }
11865 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
11866 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11867 if (UNTAG_Bool(variable1)) { /*if*/
11868 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
11869 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11870 }
11871 tracehead = trace.prev;
11872 return;
11873 }
11874 void parser_prod___AEqExpr___visit_all_reverse(val_t self, val_t param0) {
11875 struct trace_t trace = {NULL, LOCATE_parser_prod___AEqExpr___visit_all_reverse, 6314};
11876 val_t variable0;
11877 val_t variable1;
11878 trace.prev = tracehead; tracehead = &trace;
11879 variable0 = param0;
11880 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
11881 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11882 if (UNTAG_Bool(variable1)) { /*if*/
11883 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
11884 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11885 }
11886 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
11887 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11888 if (UNTAG_Bool(variable1)) { /*if*/
11889 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
11890 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
11891 }
11892 tracehead = trace.prev;
11893 return;
11894 }
11895 void parser_prod___AEeExpr___n_expr__eq(val_t self, val_t param0) {
11896 struct trace_t trace = {NULL, LOCATE_parser_prod___AEeExpr___n_expr__eq, 6325};
11897 val_t variable0;
11898 val_t variable1;
11899 trace.prev = tracehead; tracehead = &trace;
11900 variable0 = param0;
11901 ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ = variable0 /*n*/;
11902 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11903 if (UNTAG_Bool(variable1)) { /*if*/
11904 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11905 }
11906 tracehead = trace.prev;
11907 return;
11908 }
11909 void parser_prod___AEeExpr___n_expr2__eq(val_t self, val_t param0) {
11910 struct trace_t trace = {NULL, LOCATE_parser_prod___AEeExpr___n_expr2__eq, 6332};
11911 val_t variable0;
11912 val_t variable1;
11913 trace.prev = tracehead; tracehead = &trace;
11914 variable0 = param0;
11915 ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ = variable0 /*n*/;
11916 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11917 if (UNTAG_Bool(variable1)) { /*if*/
11918 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
11919 }
11920 tracehead = trace.prev;
11921 return;
11922 }
11923 void parser_prod___AEeExpr___empty_init(val_t self, int* init_table) {
11924 struct trace_t trace = {NULL, LOCATE_parser_prod___AEeExpr___empty_init, 6340};
11925 trace.prev = tracehead; tracehead = &trace;
11926 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i]) return;
11927 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
11928 tracehead = trace.prev;
11929 return;
11930 }
11931 void parser_prod___AEeExpr___init_aeeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
11932 struct trace_t trace = {NULL, LOCATE_parser_prod___AEeExpr___init_aeeexpr, 6342};
11933 val_t variable0;
11934 val_t variable1;
11935 val_t variable2;
11936 trace.prev = tracehead; tracehead = &trace;
11937 variable0 = param0;
11938 variable1 = param1;
11939 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i]) return;
11940 ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ = variable0 /*n_expr*/;
11941 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11942 if (UNTAG_Bool(variable2)) { /*if*/
11943 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
11944 }
11945 ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ = variable1 /*n_expr2*/;
11946 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
11947 if (UNTAG_Bool(variable2)) { /*if*/
11948 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
11949 }
11950 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
11951 tracehead = trace.prev;
11952 return;
11953 }
11954 void parser_prod___AEeExpr___replace_child(val_t self, val_t param0, val_t param1) {
11955 struct trace_t trace = {NULL, LOCATE_parser_prod___AEeExpr___replace_child, 6357};
11956 val_t variable0;
11957 val_t variable1;
11958 val_t variable2;
11959 trace.prev = tracehead; tracehead = &trace;
11960 variable0 = param0;
11961 variable1 = param1;
11962 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11963 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEeExpr___replace_child, 6359); nit_exit(1);}
11964 variable2 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
11965 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11966 if (UNTAG_Bool(variable2)) { /*if*/
11967 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11968 if (UNTAG_Bool(variable2)) { /*if*/
11969 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11970 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11971 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEeExpr___replace_child, 6363); nit_exit(1);}
11972 ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ = variable1 /*new_child*/;
11973 } else { /*if*/
11974 ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ = NIT_NULL /*null*/;
11975 }
11976 goto return_label549;
11977 }
11978 variable2 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
11979 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
11980 if (UNTAG_Bool(variable2)) { /*if*/
11981 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
11982 if (UNTAG_Bool(variable2)) { /*if*/
11983 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
11984 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
11985 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEeExpr___replace_child, 6373); nit_exit(1);}
11986 ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ = variable1 /*new_child*/;
11987 } else { /*if*/
11988 ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ = NIT_NULL /*null*/;
11989 }
11990 goto return_label549;
11991 }
11992 return_label549: while(false);
11993 tracehead = trace.prev;
11994 return;
11995 }
11996 void parser_prod___AEeExpr___visit_all(val_t self, val_t param0) {
11997 struct trace_t trace = {NULL, LOCATE_parser_prod___AEeExpr___visit_all, 6382};
11998 val_t variable0;
11999 val_t variable1;
12000 trace.prev = tracehead; tracehead = &trace;
12001 variable0 = param0;
12002 variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
12003 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12004 if (UNTAG_Bool(variable1)) { /*if*/
12005 variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
12006 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12007 }
12008 variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
12009 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12010 if (UNTAG_Bool(variable1)) { /*if*/
12011 variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
12012 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12013 }
12014 tracehead = trace.prev;
12015 return;
12016 }
12017 void parser_prod___AEeExpr___visit_all_reverse(val_t self, val_t param0) {
12018 struct trace_t trace = {NULL, LOCATE_parser_prod___AEeExpr___visit_all_reverse, 6392};
12019 val_t variable0;
12020 val_t variable1;
12021 trace.prev = tracehead; tracehead = &trace;
12022 variable0 = param0;
12023 variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
12024 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12025 if (UNTAG_Bool(variable1)) { /*if*/
12026 variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
12027 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12028 }
12029 variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
12030 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12031 if (UNTAG_Bool(variable1)) { /*if*/
12032 variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
12033 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12034 }
12035 tracehead = trace.prev;
12036 return;
12037 }
12038 void parser_prod___ANeExpr___n_expr__eq(val_t self, val_t param0) {
12039 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeExpr___n_expr__eq, 6403};
12040 val_t variable0;
12041 val_t variable1;
12042 trace.prev = tracehead; tracehead = &trace;
12043 variable0 = param0;
12044 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ = variable0 /*n*/;
12045 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12046 if (UNTAG_Bool(variable1)) { /*if*/
12047 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12048 }
12049 tracehead = trace.prev;
12050 return;
12051 }
12052 void parser_prod___ANeExpr___n_expr2__eq(val_t self, val_t param0) {
12053 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeExpr___n_expr2__eq, 6410};
12054 val_t variable0;
12055 val_t variable1;
12056 trace.prev = tracehead; tracehead = &trace;
12057 variable0 = param0;
12058 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ = variable0 /*n*/;
12059 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12060 if (UNTAG_Bool(variable1)) { /*if*/
12061 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12062 }
12063 tracehead = trace.prev;
12064 return;
12065 }
12066 void parser_prod___ANeExpr___empty_init(val_t self, int* init_table) {
12067 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeExpr___empty_init, 6418};
12068 trace.prev = tracehead; tracehead = &trace;
12069 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i]) return;
12070 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12071 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
12072 tracehead = trace.prev;
12073 return;
12074 }
12075 void parser_prod___ANeExpr___init_aneexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12076 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeExpr___init_aneexpr, 6420};
12077 val_t variable0;
12078 val_t variable1;
12079 val_t variable2;
12080 trace.prev = tracehead; tracehead = &trace;
12081 variable0 = param0;
12082 variable1 = param1;
12083 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i]) return;
12084 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12085 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ = variable0 /*n_expr*/;
12086 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12087 if (UNTAG_Bool(variable2)) { /*if*/
12088 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
12089 }
12090 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ = variable1 /*n_expr2*/;
12091 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12092 if (UNTAG_Bool(variable2)) { /*if*/
12093 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
12094 }
12095 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
12096 tracehead = trace.prev;
12097 return;
12098 }
12099 void parser_prod___ANeExpr___replace_child(val_t self, val_t param0, val_t param1) {
12100 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeExpr___replace_child, 6435};
12101 val_t variable0;
12102 val_t variable1;
12103 val_t variable2;
12104 trace.prev = tracehead; tracehead = &trace;
12105 variable0 = param0;
12106 variable1 = param1;
12107 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12108 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANeExpr___replace_child, 6437); nit_exit(1);}
12109 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
12110 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12111 if (UNTAG_Bool(variable2)) { /*if*/
12112 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12113 if (UNTAG_Bool(variable2)) { /*if*/
12114 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12115 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12116 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANeExpr___replace_child, 6441); nit_exit(1);}
12117 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ = variable1 /*new_child*/;
12118 } else { /*if*/
12119 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ = NIT_NULL /*null*/;
12120 }
12121 goto return_label556;
12122 }
12123 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
12124 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12125 if (UNTAG_Bool(variable2)) { /*if*/
12126 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12127 if (UNTAG_Bool(variable2)) { /*if*/
12128 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12129 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12130 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANeExpr___replace_child, 6451); nit_exit(1);}
12131 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ = variable1 /*new_child*/;
12132 } else { /*if*/
12133 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ = NIT_NULL /*null*/;
12134 }
12135 goto return_label556;
12136 }
12137 return_label556: while(false);
12138 tracehead = trace.prev;
12139 return;
12140 }
12141 void parser_prod___ANeExpr___visit_all(val_t self, val_t param0) {
12142 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeExpr___visit_all, 6460};
12143 val_t variable0;
12144 val_t variable1;
12145 trace.prev = tracehead; tracehead = &trace;
12146 variable0 = param0;
12147 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
12148 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12149 if (UNTAG_Bool(variable1)) { /*if*/
12150 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
12151 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12152 }
12153 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
12154 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12155 if (UNTAG_Bool(variable1)) { /*if*/
12156 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
12157 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12158 }
12159 tracehead = trace.prev;
12160 return;
12161 }
12162 void parser_prod___ANeExpr___visit_all_reverse(val_t self, val_t param0) {
12163 struct trace_t trace = {NULL, LOCATE_parser_prod___ANeExpr___visit_all_reverse, 6470};
12164 val_t variable0;
12165 val_t variable1;
12166 trace.prev = tracehead; tracehead = &trace;
12167 variable0 = param0;
12168 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
12169 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12170 if (UNTAG_Bool(variable1)) { /*if*/
12171 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
12172 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12173 }
12174 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
12175 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12176 if (UNTAG_Bool(variable1)) { /*if*/
12177 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
12178 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12179 }
12180 tracehead = trace.prev;
12181 return;
12182 }
12183 void parser_prod___ALtExpr___n_expr__eq(val_t self, val_t param0) {
12184 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtExpr___n_expr__eq, 6481};
12185 val_t variable0;
12186 val_t variable1;
12187 trace.prev = tracehead; tracehead = &trace;
12188 variable0 = param0;
12189 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ = variable0 /*n*/;
12190 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12191 if (UNTAG_Bool(variable1)) { /*if*/
12192 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12193 }
12194 tracehead = trace.prev;
12195 return;
12196 }
12197 void parser_prod___ALtExpr___n_expr2__eq(val_t self, val_t param0) {
12198 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtExpr___n_expr2__eq, 6488};
12199 val_t variable0;
12200 val_t variable1;
12201 trace.prev = tracehead; tracehead = &trace;
12202 variable0 = param0;
12203 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ = variable0 /*n*/;
12204 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12205 if (UNTAG_Bool(variable1)) { /*if*/
12206 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12207 }
12208 tracehead = trace.prev;
12209 return;
12210 }
12211 void parser_prod___ALtExpr___empty_init(val_t self, int* init_table) {
12212 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtExpr___empty_init, 6496};
12213 trace.prev = tracehead; tracehead = &trace;
12214 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i]) return;
12215 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12216 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
12217 tracehead = trace.prev;
12218 return;
12219 }
12220 void parser_prod___ALtExpr___init_altexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12221 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtExpr___init_altexpr, 6498};
12222 val_t variable0;
12223 val_t variable1;
12224 val_t variable2;
12225 trace.prev = tracehead; tracehead = &trace;
12226 variable0 = param0;
12227 variable1 = param1;
12228 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i]) return;
12229 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12230 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ = variable0 /*n_expr*/;
12231 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12232 if (UNTAG_Bool(variable2)) { /*if*/
12233 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
12234 }
12235 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ = variable1 /*n_expr2*/;
12236 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12237 if (UNTAG_Bool(variable2)) { /*if*/
12238 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
12239 }
12240 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
12241 tracehead = trace.prev;
12242 return;
12243 }
12244 void parser_prod___ALtExpr___replace_child(val_t self, val_t param0, val_t param1) {
12245 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtExpr___replace_child, 6513};
12246 val_t variable0;
12247 val_t variable1;
12248 val_t variable2;
12249 trace.prev = tracehead; tracehead = &trace;
12250 variable0 = param0;
12251 variable1 = param1;
12252 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12253 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALtExpr___replace_child, 6515); nit_exit(1);}
12254 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
12255 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12256 if (UNTAG_Bool(variable2)) { /*if*/
12257 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12258 if (UNTAG_Bool(variable2)) { /*if*/
12259 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12260 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12261 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALtExpr___replace_child, 6519); nit_exit(1);}
12262 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ = variable1 /*new_child*/;
12263 } else { /*if*/
12264 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ = NIT_NULL /*null*/;
12265 }
12266 goto return_label563;
12267 }
12268 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
12269 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12270 if (UNTAG_Bool(variable2)) { /*if*/
12271 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12272 if (UNTAG_Bool(variable2)) { /*if*/
12273 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12274 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12275 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALtExpr___replace_child, 6529); nit_exit(1);}
12276 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ = variable1 /*new_child*/;
12277 } else { /*if*/
12278 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ = NIT_NULL /*null*/;
12279 }
12280 goto return_label563;
12281 }
12282 return_label563: while(false);
12283 tracehead = trace.prev;
12284 return;
12285 }
12286 void parser_prod___ALtExpr___visit_all(val_t self, val_t param0) {
12287 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtExpr___visit_all, 6538};
12288 val_t variable0;
12289 val_t variable1;
12290 trace.prev = tracehead; tracehead = &trace;
12291 variable0 = param0;
12292 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
12293 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12294 if (UNTAG_Bool(variable1)) { /*if*/
12295 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
12296 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12297 }
12298 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
12299 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12300 if (UNTAG_Bool(variable1)) { /*if*/
12301 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
12302 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12303 }
12304 tracehead = trace.prev;
12305 return;
12306 }
12307 void parser_prod___ALtExpr___visit_all_reverse(val_t self, val_t param0) {
12308 struct trace_t trace = {NULL, LOCATE_parser_prod___ALtExpr___visit_all_reverse, 6548};
12309 val_t variable0;
12310 val_t variable1;
12311 trace.prev = tracehead; tracehead = &trace;
12312 variable0 = param0;
12313 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
12314 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12315 if (UNTAG_Bool(variable1)) { /*if*/
12316 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
12317 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12318 }
12319 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
12320 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12321 if (UNTAG_Bool(variable1)) { /*if*/
12322 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
12323 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12324 }
12325 tracehead = trace.prev;
12326 return;
12327 }
12328 void parser_prod___ALeExpr___n_expr__eq(val_t self, val_t param0) {
12329 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeExpr___n_expr__eq, 6559};
12330 val_t variable0;
12331 val_t variable1;
12332 trace.prev = tracehead; tracehead = &trace;
12333 variable0 = param0;
12334 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ = variable0 /*n*/;
12335 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12336 if (UNTAG_Bool(variable1)) { /*if*/
12337 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12338 }
12339 tracehead = trace.prev;
12340 return;
12341 }
12342 void parser_prod___ALeExpr___n_expr2__eq(val_t self, val_t param0) {
12343 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeExpr___n_expr2__eq, 6566};
12344 val_t variable0;
12345 val_t variable1;
12346 trace.prev = tracehead; tracehead = &trace;
12347 variable0 = param0;
12348 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ = variable0 /*n*/;
12349 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12350 if (UNTAG_Bool(variable1)) { /*if*/
12351 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12352 }
12353 tracehead = trace.prev;
12354 return;
12355 }
12356 void parser_prod___ALeExpr___empty_init(val_t self, int* init_table) {
12357 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeExpr___empty_init, 6574};
12358 trace.prev = tracehead; tracehead = &trace;
12359 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i]) return;
12360 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12361 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
12362 tracehead = trace.prev;
12363 return;
12364 }
12365 void parser_prod___ALeExpr___init_aleexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12366 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeExpr___init_aleexpr, 6576};
12367 val_t variable0;
12368 val_t variable1;
12369 val_t variable2;
12370 trace.prev = tracehead; tracehead = &trace;
12371 variable0 = param0;
12372 variable1 = param1;
12373 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i]) return;
12374 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12375 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ = variable0 /*n_expr*/;
12376 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12377 if (UNTAG_Bool(variable2)) { /*if*/
12378 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
12379 }
12380 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ = variable1 /*n_expr2*/;
12381 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12382 if (UNTAG_Bool(variable2)) { /*if*/
12383 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
12384 }
12385 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
12386 tracehead = trace.prev;
12387 return;
12388 }
12389 void parser_prod___ALeExpr___replace_child(val_t self, val_t param0, val_t param1) {
12390 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeExpr___replace_child, 6591};
12391 val_t variable0;
12392 val_t variable1;
12393 val_t variable2;
12394 trace.prev = tracehead; tracehead = &trace;
12395 variable0 = param0;
12396 variable1 = param1;
12397 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12398 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALeExpr___replace_child, 6593); nit_exit(1);}
12399 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
12400 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12401 if (UNTAG_Bool(variable2)) { /*if*/
12402 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12403 if (UNTAG_Bool(variable2)) { /*if*/
12404 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12405 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12406 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALeExpr___replace_child, 6597); nit_exit(1);}
12407 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ = variable1 /*new_child*/;
12408 } else { /*if*/
12409 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ = NIT_NULL /*null*/;
12410 }
12411 goto return_label570;
12412 }
12413 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
12414 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12415 if (UNTAG_Bool(variable2)) { /*if*/
12416 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12417 if (UNTAG_Bool(variable2)) { /*if*/
12418 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12419 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12420 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ALeExpr___replace_child, 6607); nit_exit(1);}
12421 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ = variable1 /*new_child*/;
12422 } else { /*if*/
12423 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ = NIT_NULL /*null*/;
12424 }
12425 goto return_label570;
12426 }
12427 return_label570: while(false);
12428 tracehead = trace.prev;
12429 return;
12430 }
12431 void parser_prod___ALeExpr___visit_all(val_t self, val_t param0) {
12432 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeExpr___visit_all, 6616};
12433 val_t variable0;
12434 val_t variable1;
12435 trace.prev = tracehead; tracehead = &trace;
12436 variable0 = param0;
12437 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
12438 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12439 if (UNTAG_Bool(variable1)) { /*if*/
12440 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
12441 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12442 }
12443 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
12444 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12445 if (UNTAG_Bool(variable1)) { /*if*/
12446 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
12447 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12448 }
12449 tracehead = trace.prev;
12450 return;
12451 }
12452 void parser_prod___ALeExpr___visit_all_reverse(val_t self, val_t param0) {
12453 struct trace_t trace = {NULL, LOCATE_parser_prod___ALeExpr___visit_all_reverse, 6626};
12454 val_t variable0;
12455 val_t variable1;
12456 trace.prev = tracehead; tracehead = &trace;
12457 variable0 = param0;
12458 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
12459 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12460 if (UNTAG_Bool(variable1)) { /*if*/
12461 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
12462 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12463 }
12464 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
12465 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12466 if (UNTAG_Bool(variable1)) { /*if*/
12467 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
12468 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12469 }
12470 tracehead = trace.prev;
12471 return;
12472 }
12473 void parser_prod___AGtExpr___n_expr__eq(val_t self, val_t param0) {
12474 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtExpr___n_expr__eq, 6637};
12475 val_t variable0;
12476 val_t variable1;
12477 trace.prev = tracehead; tracehead = &trace;
12478 variable0 = param0;
12479 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ = variable0 /*n*/;
12480 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12481 if (UNTAG_Bool(variable1)) { /*if*/
12482 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12483 }
12484 tracehead = trace.prev;
12485 return;
12486 }
12487 void parser_prod___AGtExpr___n_expr2__eq(val_t self, val_t param0) {
12488 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtExpr___n_expr2__eq, 6644};
12489 val_t variable0;
12490 val_t variable1;
12491 trace.prev = tracehead; tracehead = &trace;
12492 variable0 = param0;
12493 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ = variable0 /*n*/;
12494 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12495 if (UNTAG_Bool(variable1)) { /*if*/
12496 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12497 }
12498 tracehead = trace.prev;
12499 return;
12500 }
12501 void parser_prod___AGtExpr___empty_init(val_t self, int* init_table) {
12502 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtExpr___empty_init, 6652};
12503 trace.prev = tracehead; tracehead = &trace;
12504 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i]) return;
12505 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12506 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
12507 tracehead = trace.prev;
12508 return;
12509 }
12510 void parser_prod___AGtExpr___init_agtexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12511 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtExpr___init_agtexpr, 6654};
12512 val_t variable0;
12513 val_t variable1;
12514 val_t variable2;
12515 trace.prev = tracehead; tracehead = &trace;
12516 variable0 = param0;
12517 variable1 = param1;
12518 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i]) return;
12519 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12520 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ = variable0 /*n_expr*/;
12521 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12522 if (UNTAG_Bool(variable2)) { /*if*/
12523 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
12524 }
12525 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ = variable1 /*n_expr2*/;
12526 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12527 if (UNTAG_Bool(variable2)) { /*if*/
12528 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
12529 }
12530 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
12531 tracehead = trace.prev;
12532 return;
12533 }
12534 void parser_prod___AGtExpr___replace_child(val_t self, val_t param0, val_t param1) {
12535 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtExpr___replace_child, 6669};
12536 val_t variable0;
12537 val_t variable1;
12538 val_t variable2;
12539 trace.prev = tracehead; tracehead = &trace;
12540 variable0 = param0;
12541 variable1 = param1;
12542 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12543 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGtExpr___replace_child, 6671); nit_exit(1);}
12544 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
12545 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12546 if (UNTAG_Bool(variable2)) { /*if*/
12547 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12548 if (UNTAG_Bool(variable2)) { /*if*/
12549 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12550 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12551 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGtExpr___replace_child, 6675); nit_exit(1);}
12552 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ = variable1 /*new_child*/;
12553 } else { /*if*/
12554 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ = NIT_NULL /*null*/;
12555 }
12556 goto return_label577;
12557 }
12558 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
12559 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12560 if (UNTAG_Bool(variable2)) { /*if*/
12561 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12562 if (UNTAG_Bool(variable2)) { /*if*/
12563 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12564 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12565 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGtExpr___replace_child, 6685); nit_exit(1);}
12566 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ = variable1 /*new_child*/;
12567 } else { /*if*/
12568 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ = NIT_NULL /*null*/;
12569 }
12570 goto return_label577;
12571 }
12572 return_label577: while(false);
12573 tracehead = trace.prev;
12574 return;
12575 }
12576 void parser_prod___AGtExpr___visit_all(val_t self, val_t param0) {
12577 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtExpr___visit_all, 6694};
12578 val_t variable0;
12579 val_t variable1;
12580 trace.prev = tracehead; tracehead = &trace;
12581 variable0 = param0;
12582 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
12583 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12584 if (UNTAG_Bool(variable1)) { /*if*/
12585 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
12586 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12587 }
12588 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
12589 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12590 if (UNTAG_Bool(variable1)) { /*if*/
12591 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
12592 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12593 }
12594 tracehead = trace.prev;
12595 return;
12596 }
12597 void parser_prod___AGtExpr___visit_all_reverse(val_t self, val_t param0) {
12598 struct trace_t trace = {NULL, LOCATE_parser_prod___AGtExpr___visit_all_reverse, 6704};
12599 val_t variable0;
12600 val_t variable1;
12601 trace.prev = tracehead; tracehead = &trace;
12602 variable0 = param0;
12603 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
12604 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12605 if (UNTAG_Bool(variable1)) { /*if*/
12606 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
12607 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12608 }
12609 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
12610 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12611 if (UNTAG_Bool(variable1)) { /*if*/
12612 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
12613 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12614 }
12615 tracehead = trace.prev;
12616 return;
12617 }
12618 void parser_prod___AGeExpr___n_expr__eq(val_t self, val_t param0) {
12619 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeExpr___n_expr__eq, 6715};
12620 val_t variable0;
12621 val_t variable1;
12622 trace.prev = tracehead; tracehead = &trace;
12623 variable0 = param0;
12624 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ = variable0 /*n*/;
12625 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12626 if (UNTAG_Bool(variable1)) { /*if*/
12627 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12628 }
12629 tracehead = trace.prev;
12630 return;
12631 }
12632 void parser_prod___AGeExpr___n_expr2__eq(val_t self, val_t param0) {
12633 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeExpr___n_expr2__eq, 6722};
12634 val_t variable0;
12635 val_t variable1;
12636 trace.prev = tracehead; tracehead = &trace;
12637 variable0 = param0;
12638 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ = variable0 /*n*/;
12639 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12640 if (UNTAG_Bool(variable1)) { /*if*/
12641 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12642 }
12643 tracehead = trace.prev;
12644 return;
12645 }
12646 void parser_prod___AGeExpr___empty_init(val_t self, int* init_table) {
12647 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeExpr___empty_init, 6730};
12648 trace.prev = tracehead; tracehead = &trace;
12649 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i]) return;
12650 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12651 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
12652 tracehead = trace.prev;
12653 return;
12654 }
12655 void parser_prod___AGeExpr___init_ageexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12656 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeExpr___init_ageexpr, 6732};
12657 val_t variable0;
12658 val_t variable1;
12659 val_t variable2;
12660 trace.prev = tracehead; tracehead = &trace;
12661 variable0 = param0;
12662 variable1 = param1;
12663 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i]) return;
12664 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12665 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ = variable0 /*n_expr*/;
12666 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12667 if (UNTAG_Bool(variable2)) { /*if*/
12668 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
12669 }
12670 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ = variable1 /*n_expr2*/;
12671 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12672 if (UNTAG_Bool(variable2)) { /*if*/
12673 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
12674 }
12675 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
12676 tracehead = trace.prev;
12677 return;
12678 }
12679 void parser_prod___AGeExpr___replace_child(val_t self, val_t param0, val_t param1) {
12680 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeExpr___replace_child, 6747};
12681 val_t variable0;
12682 val_t variable1;
12683 val_t variable2;
12684 trace.prev = tracehead; tracehead = &trace;
12685 variable0 = param0;
12686 variable1 = param1;
12687 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12688 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGeExpr___replace_child, 6749); nit_exit(1);}
12689 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
12690 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12691 if (UNTAG_Bool(variable2)) { /*if*/
12692 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12693 if (UNTAG_Bool(variable2)) { /*if*/
12694 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12695 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12696 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGeExpr___replace_child, 6753); nit_exit(1);}
12697 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ = variable1 /*new_child*/;
12698 } else { /*if*/
12699 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ = NIT_NULL /*null*/;
12700 }
12701 goto return_label584;
12702 }
12703 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
12704 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12705 if (UNTAG_Bool(variable2)) { /*if*/
12706 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12707 if (UNTAG_Bool(variable2)) { /*if*/
12708 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12709 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12710 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AGeExpr___replace_child, 6763); nit_exit(1);}
12711 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ = variable1 /*new_child*/;
12712 } else { /*if*/
12713 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ = NIT_NULL /*null*/;
12714 }
12715 goto return_label584;
12716 }
12717 return_label584: while(false);
12718 tracehead = trace.prev;
12719 return;
12720 }
12721 void parser_prod___AGeExpr___visit_all(val_t self, val_t param0) {
12722 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeExpr___visit_all, 6772};
12723 val_t variable0;
12724 val_t variable1;
12725 trace.prev = tracehead; tracehead = &trace;
12726 variable0 = param0;
12727 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
12728 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12729 if (UNTAG_Bool(variable1)) { /*if*/
12730 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
12731 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12732 }
12733 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
12734 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12735 if (UNTAG_Bool(variable1)) { /*if*/
12736 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
12737 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12738 }
12739 tracehead = trace.prev;
12740 return;
12741 }
12742 void parser_prod___AGeExpr___visit_all_reverse(val_t self, val_t param0) {
12743 struct trace_t trace = {NULL, LOCATE_parser_prod___AGeExpr___visit_all_reverse, 6782};
12744 val_t variable0;
12745 val_t variable1;
12746 trace.prev = tracehead; tracehead = &trace;
12747 variable0 = param0;
12748 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
12749 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12750 if (UNTAG_Bool(variable1)) { /*if*/
12751 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
12752 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12753 }
12754 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
12755 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12756 if (UNTAG_Bool(variable1)) { /*if*/
12757 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
12758 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12759 }
12760 tracehead = trace.prev;
12761 return;
12762 }
12763 void parser_prod___AIsaExpr___n_expr__eq(val_t self, val_t param0) {
12764 struct trace_t trace = {NULL, LOCATE_parser_prod___AIsaExpr___n_expr__eq, 6793};
12765 val_t variable0;
12766 val_t variable1;
12767 trace.prev = tracehead; tracehead = &trace;
12768 variable0 = param0;
12769 ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ = variable0 /*n*/;
12770 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12771 if (UNTAG_Bool(variable1)) { /*if*/
12772 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12773 }
12774 tracehead = trace.prev;
12775 return;
12776 }
12777 void parser_prod___AIsaExpr___n_type__eq(val_t self, val_t param0) {
12778 struct trace_t trace = {NULL, LOCATE_parser_prod___AIsaExpr___n_type__eq, 6800};
12779 val_t variable0;
12780 val_t variable1;
12781 trace.prev = tracehead; tracehead = &trace;
12782 variable0 = param0;
12783 ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ = variable0 /*n*/;
12784 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
12785 if (UNTAG_Bool(variable1)) { /*if*/
12786 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
12787 }
12788 tracehead = trace.prev;
12789 return;
12790 }
12791 void parser_prod___AIsaExpr___empty_init(val_t self, int* init_table) {
12792 struct trace_t trace = {NULL, LOCATE_parser_prod___AIsaExpr___empty_init, 6808};
12793 trace.prev = tracehead; tracehead = &trace;
12794 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
12795 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
12796 tracehead = trace.prev;
12797 return;
12798 }
12799 void parser_prod___AIsaExpr___init_aisaexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12800 struct trace_t trace = {NULL, LOCATE_parser_prod___AIsaExpr___init_aisaexpr, 6810};
12801 val_t variable0;
12802 val_t variable1;
12803 val_t variable2;
12804 trace.prev = tracehead; tracehead = &trace;
12805 variable0 = param0;
12806 variable1 = param1;
12807 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
12808 ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ = variable0 /*n_expr*/;
12809 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12810 if (UNTAG_Bool(variable2)) { /*if*/
12811 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
12812 }
12813 ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ = variable1 /*n_type*/;
12814 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ == NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
12815 if (UNTAG_Bool(variable2)) { /*if*/
12816 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/, self) /*PType::parent=*/;
12817 }
12818 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
12819 tracehead = trace.prev;
12820 return;
12821 }
12822 void parser_prod___AIsaExpr___replace_child(val_t self, val_t param0, val_t param1) {
12823 struct trace_t trace = {NULL, LOCATE_parser_prod___AIsaExpr___replace_child, 6825};
12824 val_t variable0;
12825 val_t variable1;
12826 val_t variable2;
12827 trace.prev = tracehead; tracehead = &trace;
12828 variable0 = param0;
12829 variable1 = param1;
12830 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12831 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIsaExpr___replace_child, 6827); nit_exit(1);}
12832 variable2 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
12833 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12834 if (UNTAG_Bool(variable2)) { /*if*/
12835 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12836 if (UNTAG_Bool(variable2)) { /*if*/
12837 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12838 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12839 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIsaExpr___replace_child, 6831); nit_exit(1);}
12840 ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ = variable1 /*new_child*/;
12841 } else { /*if*/
12842 ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ = NIT_NULL /*null*/;
12843 }
12844 goto return_label591;
12845 }
12846 variable2 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
12847 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
12848 if (UNTAG_Bool(variable2)) { /*if*/
12849 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12850 if (UNTAG_Bool(variable2)) { /*if*/
12851 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12852 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
12853 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIsaExpr___replace_child, 6841); nit_exit(1);}
12854 ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ = variable1 /*new_child*/;
12855 } else { /*if*/
12856 ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ = NIT_NULL /*null*/;
12857 }
12858 goto return_label591;
12859 }
12860 return_label591: while(false);
12861 tracehead = trace.prev;
12862 return;
12863 }
12864 void parser_prod___AIsaExpr___visit_all(val_t self, val_t param0) {
12865 struct trace_t trace = {NULL, LOCATE_parser_prod___AIsaExpr___visit_all, 6850};
12866 val_t variable0;
12867 val_t variable1;
12868 trace.prev = tracehead; tracehead = &trace;
12869 variable0 = param0;
12870 variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
12871 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12872 if (UNTAG_Bool(variable1)) { /*if*/
12873 variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
12874 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12875 }
12876 variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
12877 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
12878 if (UNTAG_Bool(variable1)) { /*if*/
12879 variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
12880 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12881 }
12882 tracehead = trace.prev;
12883 return;
12884 }
12885 void parser_prod___AIsaExpr___visit_all_reverse(val_t self, val_t param0) {
12886 struct trace_t trace = {NULL, LOCATE_parser_prod___AIsaExpr___visit_all_reverse, 6860};
12887 val_t variable0;
12888 val_t variable1;
12889 trace.prev = tracehead; tracehead = &trace;
12890 variable0 = param0;
12891 variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
12892 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12893 if (UNTAG_Bool(variable1)) { /*if*/
12894 variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
12895 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12896 }
12897 variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
12898 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
12899 if (UNTAG_Bool(variable1)) { /*if*/
12900 variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
12901 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
12902 }
12903 tracehead = trace.prev;
12904 return;
12905 }
12906 void parser_prod___APlusExpr___n_expr__eq(val_t self, val_t param0) {
12907 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusExpr___n_expr__eq, 6871};
12908 val_t variable0;
12909 val_t variable1;
12910 trace.prev = tracehead; tracehead = &trace;
12911 variable0 = param0;
12912 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ = variable0 /*n*/;
12913 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12914 if (UNTAG_Bool(variable1)) { /*if*/
12915 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12916 }
12917 tracehead = trace.prev;
12918 return;
12919 }
12920 void parser_prod___APlusExpr___n_expr2__eq(val_t self, val_t param0) {
12921 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusExpr___n_expr2__eq, 6878};
12922 val_t variable0;
12923 val_t variable1;
12924 trace.prev = tracehead; tracehead = &trace;
12925 variable0 = param0;
12926 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ = variable0 /*n*/;
12927 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12928 if (UNTAG_Bool(variable1)) { /*if*/
12929 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
12930 }
12931 tracehead = trace.prev;
12932 return;
12933 }
12934 void parser_prod___APlusExpr___empty_init(val_t self, int* init_table) {
12935 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusExpr___empty_init, 6886};
12936 trace.prev = tracehead; tracehead = &trace;
12937 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i]) return;
12938 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12939 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
12940 tracehead = trace.prev;
12941 return;
12942 }
12943 void parser_prod___APlusExpr___init_aplusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
12944 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusExpr___init_aplusexpr, 6888};
12945 val_t variable0;
12946 val_t variable1;
12947 val_t variable2;
12948 trace.prev = tracehead; tracehead = &trace;
12949 variable0 = param0;
12950 variable1 = param1;
12951 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i]) return;
12952 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
12953 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ = variable0 /*n_expr*/;
12954 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12955 if (UNTAG_Bool(variable2)) { /*if*/
12956 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
12957 }
12958 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ = variable1 /*n_expr2*/;
12959 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
12960 if (UNTAG_Bool(variable2)) { /*if*/
12961 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
12962 }
12963 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
12964 tracehead = trace.prev;
12965 return;
12966 }
12967 void parser_prod___APlusExpr___replace_child(val_t self, val_t param0, val_t param1) {
12968 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusExpr___replace_child, 6903};
12969 val_t variable0;
12970 val_t variable1;
12971 val_t variable2;
12972 trace.prev = tracehead; tracehead = &trace;
12973 variable0 = param0;
12974 variable1 = param1;
12975 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12976 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APlusExpr___replace_child, 6905); nit_exit(1);}
12977 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
12978 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12979 if (UNTAG_Bool(variable2)) { /*if*/
12980 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12981 if (UNTAG_Bool(variable2)) { /*if*/
12982 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12983 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12984 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APlusExpr___replace_child, 6909); nit_exit(1);}
12985 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ = variable1 /*new_child*/;
12986 } else { /*if*/
12987 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ = NIT_NULL /*null*/;
12988 }
12989 goto return_label598;
12990 }
12991 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
12992 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
12993 if (UNTAG_Bool(variable2)) { /*if*/
12994 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
12995 if (UNTAG_Bool(variable2)) { /*if*/
12996 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
12997 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
12998 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APlusExpr___replace_child, 6919); nit_exit(1);}
12999 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ = variable1 /*new_child*/;
13000 } else { /*if*/
13001 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ = NIT_NULL /*null*/;
13002 }
13003 goto return_label598;
13004 }
13005 return_label598: while(false);
13006 tracehead = trace.prev;
13007 return;
13008 }
13009 void parser_prod___APlusExpr___visit_all(val_t self, val_t param0) {
13010 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusExpr___visit_all, 6928};
13011 val_t variable0;
13012 val_t variable1;
13013 trace.prev = tracehead; tracehead = &trace;
13014 variable0 = param0;
13015 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
13016 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13017 if (UNTAG_Bool(variable1)) { /*if*/
13018 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
13019 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13020 }
13021 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
13022 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13023 if (UNTAG_Bool(variable1)) { /*if*/
13024 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
13025 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13026 }
13027 tracehead = trace.prev;
13028 return;
13029 }
13030 void parser_prod___APlusExpr___visit_all_reverse(val_t self, val_t param0) {
13031 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusExpr___visit_all_reverse, 6938};
13032 val_t variable0;
13033 val_t variable1;
13034 trace.prev = tracehead; tracehead = &trace;
13035 variable0 = param0;
13036 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
13037 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13038 if (UNTAG_Bool(variable1)) { /*if*/
13039 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
13040 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13041 }
13042 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
13043 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13044 if (UNTAG_Bool(variable1)) { /*if*/
13045 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
13046 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13047 }
13048 tracehead = trace.prev;
13049 return;
13050 }
13051 void parser_prod___AMinusExpr___n_expr__eq(val_t self, val_t param0) {
13052 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusExpr___n_expr__eq, 6949};
13053 val_t variable0;
13054 val_t variable1;
13055 trace.prev = tracehead; tracehead = &trace;
13056 variable0 = param0;
13057 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ = variable0 /*n*/;
13058 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13059 if (UNTAG_Bool(variable1)) { /*if*/
13060 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13061 }
13062 tracehead = trace.prev;
13063 return;
13064 }
13065 void parser_prod___AMinusExpr___n_expr2__eq(val_t self, val_t param0) {
13066 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusExpr___n_expr2__eq, 6956};
13067 val_t variable0;
13068 val_t variable1;
13069 trace.prev = tracehead; tracehead = &trace;
13070 variable0 = param0;
13071 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ = variable0 /*n*/;
13072 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13073 if (UNTAG_Bool(variable1)) { /*if*/
13074 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13075 }
13076 tracehead = trace.prev;
13077 return;
13078 }
13079 void parser_prod___AMinusExpr___empty_init(val_t self, int* init_table) {
13080 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusExpr___empty_init, 6964};
13081 trace.prev = tracehead; tracehead = &trace;
13082 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
13083 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13084 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
13085 tracehead = trace.prev;
13086 return;
13087 }
13088 void parser_prod___AMinusExpr___init_aminusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
13089 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusExpr___init_aminusexpr, 6966};
13090 val_t variable0;
13091 val_t variable1;
13092 val_t variable2;
13093 trace.prev = tracehead; tracehead = &trace;
13094 variable0 = param0;
13095 variable1 = param1;
13096 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
13097 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13098 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ = variable0 /*n_expr*/;
13099 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13100 if (UNTAG_Bool(variable2)) { /*if*/
13101 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
13102 }
13103 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ = variable1 /*n_expr2*/;
13104 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13105 if (UNTAG_Bool(variable2)) { /*if*/
13106 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
13107 }
13108 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
13109 tracehead = trace.prev;
13110 return;
13111 }
13112 void parser_prod___AMinusExpr___replace_child(val_t self, val_t param0, val_t param1) {
13113 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusExpr___replace_child, 6981};
13114 val_t variable0;
13115 val_t variable1;
13116 val_t variable2;
13117 trace.prev = tracehead; tracehead = &trace;
13118 variable0 = param0;
13119 variable1 = param1;
13120 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13121 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMinusExpr___replace_child, 6983); nit_exit(1);}
13122 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
13123 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13124 if (UNTAG_Bool(variable2)) { /*if*/
13125 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13126 if (UNTAG_Bool(variable2)) { /*if*/
13127 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13128 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13129 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMinusExpr___replace_child, 6987); nit_exit(1);}
13130 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ = variable1 /*new_child*/;
13131 } else { /*if*/
13132 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ = NIT_NULL /*null*/;
13133 }
13134 goto return_label605;
13135 }
13136 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
13137 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13138 if (UNTAG_Bool(variable2)) { /*if*/
13139 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13140 if (UNTAG_Bool(variable2)) { /*if*/
13141 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13142 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13143 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMinusExpr___replace_child, 6997); nit_exit(1);}
13144 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ = variable1 /*new_child*/;
13145 } else { /*if*/
13146 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ = NIT_NULL /*null*/;
13147 }
13148 goto return_label605;
13149 }
13150 return_label605: while(false);
13151 tracehead = trace.prev;
13152 return;
13153 }
13154 void parser_prod___AMinusExpr___visit_all(val_t self, val_t param0) {
13155 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusExpr___visit_all, 7006};
13156 val_t variable0;
13157 val_t variable1;
13158 trace.prev = tracehead; tracehead = &trace;
13159 variable0 = param0;
13160 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
13161 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13162 if (UNTAG_Bool(variable1)) { /*if*/
13163 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
13164 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13165 }
13166 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
13167 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13168 if (UNTAG_Bool(variable1)) { /*if*/
13169 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
13170 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13171 }
13172 tracehead = trace.prev;
13173 return;
13174 }
13175 void parser_prod___AMinusExpr___visit_all_reverse(val_t self, val_t param0) {
13176 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusExpr___visit_all_reverse, 7016};
13177 val_t variable0;
13178 val_t variable1;
13179 trace.prev = tracehead; tracehead = &trace;
13180 variable0 = param0;
13181 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
13182 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13183 if (UNTAG_Bool(variable1)) { /*if*/
13184 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
13185 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13186 }
13187 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
13188 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13189 if (UNTAG_Bool(variable1)) { /*if*/
13190 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
13191 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13192 }
13193 tracehead = trace.prev;
13194 return;
13195 }
13196 void parser_prod___AStarshipExpr___n_expr__eq(val_t self, val_t param0) {
13197 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipExpr___n_expr__eq, 7027};
13198 val_t variable0;
13199 val_t variable1;
13200 trace.prev = tracehead; tracehead = &trace;
13201 variable0 = param0;
13202 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ = variable0 /*n*/;
13203 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13204 if (UNTAG_Bool(variable1)) { /*if*/
13205 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13206 }
13207 tracehead = trace.prev;
13208 return;
13209 }
13210 void parser_prod___AStarshipExpr___n_expr2__eq(val_t self, val_t param0) {
13211 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipExpr___n_expr2__eq, 7034};
13212 val_t variable0;
13213 val_t variable1;
13214 trace.prev = tracehead; tracehead = &trace;
13215 variable0 = param0;
13216 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ = variable0 /*n*/;
13217 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13218 if (UNTAG_Bool(variable1)) { /*if*/
13219 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13220 }
13221 tracehead = trace.prev;
13222 return;
13223 }
13224 void parser_prod___AStarshipExpr___empty_init(val_t self, int* init_table) {
13225 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipExpr___empty_init, 7042};
13226 trace.prev = tracehead; tracehead = &trace;
13227 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
13228 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13229 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
13230 tracehead = trace.prev;
13231 return;
13232 }
13233 void parser_prod___AStarshipExpr___init_astarshipexpr(val_t self, val_t param0, val_t param1, int* init_table) {
13234 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipExpr___init_astarshipexpr, 7044};
13235 val_t variable0;
13236 val_t variable1;
13237 val_t variable2;
13238 trace.prev = tracehead; tracehead = &trace;
13239 variable0 = param0;
13240 variable1 = param1;
13241 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
13242 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13243 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ = variable0 /*n_expr*/;
13244 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13245 if (UNTAG_Bool(variable2)) { /*if*/
13246 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
13247 }
13248 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ = variable1 /*n_expr2*/;
13249 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13250 if (UNTAG_Bool(variable2)) { /*if*/
13251 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
13252 }
13253 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
13254 tracehead = trace.prev;
13255 return;
13256 }
13257 void parser_prod___AStarshipExpr___replace_child(val_t self, val_t param0, val_t param1) {
13258 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipExpr___replace_child, 7059};
13259 val_t variable0;
13260 val_t variable1;
13261 val_t variable2;
13262 trace.prev = tracehead; tracehead = &trace;
13263 variable0 = param0;
13264 variable1 = param1;
13265 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13266 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarshipExpr___replace_child, 7061); nit_exit(1);}
13267 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
13268 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13269 if (UNTAG_Bool(variable2)) { /*if*/
13270 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13271 if (UNTAG_Bool(variable2)) { /*if*/
13272 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13273 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13274 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarshipExpr___replace_child, 7065); nit_exit(1);}
13275 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ = variable1 /*new_child*/;
13276 } else { /*if*/
13277 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ = NIT_NULL /*null*/;
13278 }
13279 goto return_label612;
13280 }
13281 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
13282 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13283 if (UNTAG_Bool(variable2)) { /*if*/
13284 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13285 if (UNTAG_Bool(variable2)) { /*if*/
13286 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13287 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13288 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarshipExpr___replace_child, 7075); nit_exit(1);}
13289 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ = variable1 /*new_child*/;
13290 } else { /*if*/
13291 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ = NIT_NULL /*null*/;
13292 }
13293 goto return_label612;
13294 }
13295 return_label612: while(false);
13296 tracehead = trace.prev;
13297 return;
13298 }
13299 void parser_prod___AStarshipExpr___visit_all(val_t self, val_t param0) {
13300 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipExpr___visit_all, 7084};
13301 val_t variable0;
13302 val_t variable1;
13303 trace.prev = tracehead; tracehead = &trace;
13304 variable0 = param0;
13305 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
13306 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13307 if (UNTAG_Bool(variable1)) { /*if*/
13308 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
13309 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13310 }
13311 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
13312 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13313 if (UNTAG_Bool(variable1)) { /*if*/
13314 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
13315 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13316 }
13317 tracehead = trace.prev;
13318 return;
13319 }
13320 void parser_prod___AStarshipExpr___visit_all_reverse(val_t self, val_t param0) {
13321 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarshipExpr___visit_all_reverse, 7094};
13322 val_t variable0;
13323 val_t variable1;
13324 trace.prev = tracehead; tracehead = &trace;
13325 variable0 = param0;
13326 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
13327 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13328 if (UNTAG_Bool(variable1)) { /*if*/
13329 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
13330 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13331 }
13332 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
13333 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13334 if (UNTAG_Bool(variable1)) { /*if*/
13335 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
13336 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13337 }
13338 tracehead = trace.prev;
13339 return;
13340 }
13341 void parser_prod___AStarExpr___n_expr__eq(val_t self, val_t param0) {
13342 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarExpr___n_expr__eq, 7105};
13343 val_t variable0;
13344 val_t variable1;
13345 trace.prev = tracehead; tracehead = &trace;
13346 variable0 = param0;
13347 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ = variable0 /*n*/;
13348 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13349 if (UNTAG_Bool(variable1)) { /*if*/
13350 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13351 }
13352 tracehead = trace.prev;
13353 return;
13354 }
13355 void parser_prod___AStarExpr___n_expr2__eq(val_t self, val_t param0) {
13356 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarExpr___n_expr2__eq, 7112};
13357 val_t variable0;
13358 val_t variable1;
13359 trace.prev = tracehead; tracehead = &trace;
13360 variable0 = param0;
13361 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ = variable0 /*n*/;
13362 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13363 if (UNTAG_Bool(variable1)) { /*if*/
13364 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13365 }
13366 tracehead = trace.prev;
13367 return;
13368 }
13369 void parser_prod___AStarExpr___empty_init(val_t self, int* init_table) {
13370 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarExpr___empty_init, 7120};
13371 trace.prev = tracehead; tracehead = &trace;
13372 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i]) return;
13373 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13374 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
13375 tracehead = trace.prev;
13376 return;
13377 }
13378 void parser_prod___AStarExpr___init_astarexpr(val_t self, val_t param0, val_t param1, int* init_table) {
13379 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarExpr___init_astarexpr, 7122};
13380 val_t variable0;
13381 val_t variable1;
13382 val_t variable2;
13383 trace.prev = tracehead; tracehead = &trace;
13384 variable0 = param0;
13385 variable1 = param1;
13386 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i]) return;
13387 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13388 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ = variable0 /*n_expr*/;
13389 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13390 if (UNTAG_Bool(variable2)) { /*if*/
13391 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
13392 }
13393 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ = variable1 /*n_expr2*/;
13394 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13395 if (UNTAG_Bool(variable2)) { /*if*/
13396 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
13397 }
13398 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
13399 tracehead = trace.prev;
13400 return;
13401 }
13402 void parser_prod___AStarExpr___replace_child(val_t self, val_t param0, val_t param1) {
13403 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarExpr___replace_child, 7137};
13404 val_t variable0;
13405 val_t variable1;
13406 val_t variable2;
13407 trace.prev = tracehead; tracehead = &trace;
13408 variable0 = param0;
13409 variable1 = param1;
13410 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13411 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarExpr___replace_child, 7139); nit_exit(1);}
13412 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
13413 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13414 if (UNTAG_Bool(variable2)) { /*if*/
13415 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13416 if (UNTAG_Bool(variable2)) { /*if*/
13417 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13418 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13419 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarExpr___replace_child, 7143); nit_exit(1);}
13420 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ = variable1 /*new_child*/;
13421 } else { /*if*/
13422 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ = NIT_NULL /*null*/;
13423 }
13424 goto return_label619;
13425 }
13426 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
13427 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13428 if (UNTAG_Bool(variable2)) { /*if*/
13429 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13430 if (UNTAG_Bool(variable2)) { /*if*/
13431 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13432 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13433 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStarExpr___replace_child, 7153); nit_exit(1);}
13434 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ = variable1 /*new_child*/;
13435 } else { /*if*/
13436 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ = NIT_NULL /*null*/;
13437 }
13438 goto return_label619;
13439 }
13440 return_label619: while(false);
13441 tracehead = trace.prev;
13442 return;
13443 }
13444 void parser_prod___AStarExpr___visit_all(val_t self, val_t param0) {
13445 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarExpr___visit_all, 7162};
13446 val_t variable0;
13447 val_t variable1;
13448 trace.prev = tracehead; tracehead = &trace;
13449 variable0 = param0;
13450 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
13451 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13452 if (UNTAG_Bool(variable1)) { /*if*/
13453 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
13454 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13455 }
13456 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
13457 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13458 if (UNTAG_Bool(variable1)) { /*if*/
13459 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
13460 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13461 }
13462 tracehead = trace.prev;
13463 return;
13464 }
13465 void parser_prod___AStarExpr___visit_all_reverse(val_t self, val_t param0) {
13466 struct trace_t trace = {NULL, LOCATE_parser_prod___AStarExpr___visit_all_reverse, 7172};
13467 val_t variable0;
13468 val_t variable1;
13469 trace.prev = tracehead; tracehead = &trace;
13470 variable0 = param0;
13471 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
13472 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13473 if (UNTAG_Bool(variable1)) { /*if*/
13474 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
13475 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13476 }
13477 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
13478 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13479 if (UNTAG_Bool(variable1)) { /*if*/
13480 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
13481 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13482 }
13483 tracehead = trace.prev;
13484 return;
13485 }
13486 void parser_prod___ASlashExpr___n_expr__eq(val_t self, val_t param0) {
13487 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashExpr___n_expr__eq, 7183};
13488 val_t variable0;
13489 val_t variable1;
13490 trace.prev = tracehead; tracehead = &trace;
13491 variable0 = param0;
13492 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ = variable0 /*n*/;
13493 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13494 if (UNTAG_Bool(variable1)) { /*if*/
13495 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13496 }
13497 tracehead = trace.prev;
13498 return;
13499 }
13500 void parser_prod___ASlashExpr___n_expr2__eq(val_t self, val_t param0) {
13501 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashExpr___n_expr2__eq, 7190};
13502 val_t variable0;
13503 val_t variable1;
13504 trace.prev = tracehead; tracehead = &trace;
13505 variable0 = param0;
13506 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ = variable0 /*n*/;
13507 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13508 if (UNTAG_Bool(variable1)) { /*if*/
13509 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13510 }
13511 tracehead = trace.prev;
13512 return;
13513 }
13514 void parser_prod___ASlashExpr___empty_init(val_t self, int* init_table) {
13515 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashExpr___empty_init, 7198};
13516 trace.prev = tracehead; tracehead = &trace;
13517 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
13518 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13519 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
13520 tracehead = trace.prev;
13521 return;
13522 }
13523 void parser_prod___ASlashExpr___init_aslashexpr(val_t self, val_t param0, val_t param1, int* init_table) {
13524 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashExpr___init_aslashexpr, 7200};
13525 val_t variable0;
13526 val_t variable1;
13527 val_t variable2;
13528 trace.prev = tracehead; tracehead = &trace;
13529 variable0 = param0;
13530 variable1 = param1;
13531 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
13532 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13533 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ = variable0 /*n_expr*/;
13534 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13535 if (UNTAG_Bool(variable2)) { /*if*/
13536 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
13537 }
13538 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ = variable1 /*n_expr2*/;
13539 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13540 if (UNTAG_Bool(variable2)) { /*if*/
13541 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
13542 }
13543 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
13544 tracehead = trace.prev;
13545 return;
13546 }
13547 void parser_prod___ASlashExpr___replace_child(val_t self, val_t param0, val_t param1) {
13548 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashExpr___replace_child, 7215};
13549 val_t variable0;
13550 val_t variable1;
13551 val_t variable2;
13552 trace.prev = tracehead; tracehead = &trace;
13553 variable0 = param0;
13554 variable1 = param1;
13555 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13556 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASlashExpr___replace_child, 7217); nit_exit(1);}
13557 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
13558 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13559 if (UNTAG_Bool(variable2)) { /*if*/
13560 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13561 if (UNTAG_Bool(variable2)) { /*if*/
13562 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13563 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13564 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASlashExpr___replace_child, 7221); nit_exit(1);}
13565 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ = variable1 /*new_child*/;
13566 } else { /*if*/
13567 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ = NIT_NULL /*null*/;
13568 }
13569 goto return_label626;
13570 }
13571 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
13572 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13573 if (UNTAG_Bool(variable2)) { /*if*/
13574 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13575 if (UNTAG_Bool(variable2)) { /*if*/
13576 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13577 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13578 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASlashExpr___replace_child, 7231); nit_exit(1);}
13579 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ = variable1 /*new_child*/;
13580 } else { /*if*/
13581 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ = NIT_NULL /*null*/;
13582 }
13583 goto return_label626;
13584 }
13585 return_label626: while(false);
13586 tracehead = trace.prev;
13587 return;
13588 }
13589 void parser_prod___ASlashExpr___visit_all(val_t self, val_t param0) {
13590 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashExpr___visit_all, 7240};
13591 val_t variable0;
13592 val_t variable1;
13593 trace.prev = tracehead; tracehead = &trace;
13594 variable0 = param0;
13595 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
13596 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13597 if (UNTAG_Bool(variable1)) { /*if*/
13598 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
13599 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13600 }
13601 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
13602 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13603 if (UNTAG_Bool(variable1)) { /*if*/
13604 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
13605 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13606 }
13607 tracehead = trace.prev;
13608 return;
13609 }
13610 void parser_prod___ASlashExpr___visit_all_reverse(val_t self, val_t param0) {
13611 struct trace_t trace = {NULL, LOCATE_parser_prod___ASlashExpr___visit_all_reverse, 7250};
13612 val_t variable0;
13613 val_t variable1;
13614 trace.prev = tracehead; tracehead = &trace;
13615 variable0 = param0;
13616 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
13617 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13618 if (UNTAG_Bool(variable1)) { /*if*/
13619 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
13620 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13621 }
13622 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
13623 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13624 if (UNTAG_Bool(variable1)) { /*if*/
13625 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
13626 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13627 }
13628 tracehead = trace.prev;
13629 return;
13630 }
13631 void parser_prod___APercentExpr___n_expr__eq(val_t self, val_t param0) {
13632 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentExpr___n_expr__eq, 7261};
13633 val_t variable0;
13634 val_t variable1;
13635 trace.prev = tracehead; tracehead = &trace;
13636 variable0 = param0;
13637 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ = variable0 /*n*/;
13638 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13639 if (UNTAG_Bool(variable1)) { /*if*/
13640 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13641 }
13642 tracehead = trace.prev;
13643 return;
13644 }
13645 void parser_prod___APercentExpr___n_expr2__eq(val_t self, val_t param0) {
13646 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentExpr___n_expr2__eq, 7268};
13647 val_t variable0;
13648 val_t variable1;
13649 trace.prev = tracehead; tracehead = &trace;
13650 variable0 = param0;
13651 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ = variable0 /*n*/;
13652 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13653 if (UNTAG_Bool(variable1)) { /*if*/
13654 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13655 }
13656 tracehead = trace.prev;
13657 return;
13658 }
13659 void parser_prod___APercentExpr___empty_init(val_t self, int* init_table) {
13660 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentExpr___empty_init, 7276};
13661 trace.prev = tracehead; tracehead = &trace;
13662 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i]) return;
13663 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13664 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
13665 tracehead = trace.prev;
13666 return;
13667 }
13668 void parser_prod___APercentExpr___init_apercentexpr(val_t self, val_t param0, val_t param1, int* init_table) {
13669 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentExpr___init_apercentexpr, 7278};
13670 val_t variable0;
13671 val_t variable1;
13672 val_t variable2;
13673 trace.prev = tracehead; tracehead = &trace;
13674 variable0 = param0;
13675 variable1 = param1;
13676 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i]) return;
13677 ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
13678 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ = variable0 /*n_expr*/;
13679 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13680 if (UNTAG_Bool(variable2)) { /*if*/
13681 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
13682 }
13683 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ = variable1 /*n_expr2*/;
13684 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13685 if (UNTAG_Bool(variable2)) { /*if*/
13686 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
13687 }
13688 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
13689 tracehead = trace.prev;
13690 return;
13691 }
13692 void parser_prod___APercentExpr___replace_child(val_t self, val_t param0, val_t param1) {
13693 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentExpr___replace_child, 7293};
13694 val_t variable0;
13695 val_t variable1;
13696 val_t variable2;
13697 trace.prev = tracehead; tracehead = &trace;
13698 variable0 = param0;
13699 variable1 = param1;
13700 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13701 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APercentExpr___replace_child, 7295); nit_exit(1);}
13702 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
13703 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13704 if (UNTAG_Bool(variable2)) { /*if*/
13705 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13706 if (UNTAG_Bool(variable2)) { /*if*/
13707 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13708 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13709 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APercentExpr___replace_child, 7299); nit_exit(1);}
13710 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ = variable1 /*new_child*/;
13711 } else { /*if*/
13712 ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ = NIT_NULL /*null*/;
13713 }
13714 goto return_label633;
13715 }
13716 variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
13717 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13718 if (UNTAG_Bool(variable2)) { /*if*/
13719 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13720 if (UNTAG_Bool(variable2)) { /*if*/
13721 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13722 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13723 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APercentExpr___replace_child, 7309); nit_exit(1);}
13724 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ = variable1 /*new_child*/;
13725 } else { /*if*/
13726 ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ = NIT_NULL /*null*/;
13727 }
13728 goto return_label633;
13729 }
13730 return_label633: while(false);
13731 tracehead = trace.prev;
13732 return;
13733 }
13734 void parser_prod___APercentExpr___visit_all(val_t self, val_t param0) {
13735 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentExpr___visit_all, 7318};
13736 val_t variable0;
13737 val_t variable1;
13738 trace.prev = tracehead; tracehead = &trace;
13739 variable0 = param0;
13740 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
13741 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13742 if (UNTAG_Bool(variable1)) { /*if*/
13743 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
13744 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13745 }
13746 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
13747 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13748 if (UNTAG_Bool(variable1)) { /*if*/
13749 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
13750 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13751 }
13752 tracehead = trace.prev;
13753 return;
13754 }
13755 void parser_prod___APercentExpr___visit_all_reverse(val_t self, val_t param0) {
13756 struct trace_t trace = {NULL, LOCATE_parser_prod___APercentExpr___visit_all_reverse, 7328};
13757 val_t variable0;
13758 val_t variable1;
13759 trace.prev = tracehead; tracehead = &trace;
13760 variable0 = param0;
13761 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
13762 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13763 if (UNTAG_Bool(variable1)) { /*if*/
13764 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
13765 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13766 }
13767 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
13768 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13769 if (UNTAG_Bool(variable1)) { /*if*/
13770 variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
13771 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13772 }
13773 tracehead = trace.prev;
13774 return;
13775 }
13776 void parser_prod___AUminusExpr___n_minus__eq(val_t self, val_t param0) {
13777 struct trace_t trace = {NULL, LOCATE_parser_prod___AUminusExpr___n_minus__eq, 7339};
13778 val_t variable0;
13779 val_t variable1;
13780 trace.prev = tracehead; tracehead = &trace;
13781 variable0 = param0;
13782 ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ = variable0 /*n*/;
13783 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TMinus::==*/)))))));
13784 if (UNTAG_Bool(variable1)) { /*if*/
13785 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TMinus::parent=*/;
13786 }
13787 tracehead = trace.prev;
13788 return;
13789 }
13790 void parser_prod___AUminusExpr___n_expr__eq(val_t self, val_t param0) {
13791 struct trace_t trace = {NULL, LOCATE_parser_prod___AUminusExpr___n_expr__eq, 7346};
13792 val_t variable0;
13793 val_t variable1;
13794 trace.prev = tracehead; tracehead = &trace;
13795 variable0 = param0;
13796 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ = variable0 /*n*/;
13797 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13798 if (UNTAG_Bool(variable1)) { /*if*/
13799 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
13800 }
13801 tracehead = trace.prev;
13802 return;
13803 }
13804 void parser_prod___AUminusExpr___empty_init(val_t self, int* init_table) {
13805 struct trace_t trace = {NULL, LOCATE_parser_prod___AUminusExpr___empty_init, 7354};
13806 trace.prev = tracehead; tracehead = &trace;
13807 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
13808 ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
13809 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
13810 tracehead = trace.prev;
13811 return;
13812 }
13813 void parser_prod___AUminusExpr___init_auminusexpr(val_t self, val_t param0, val_t param1, int* init_table) {
13814 struct trace_t trace = {NULL, LOCATE_parser_prod___AUminusExpr___init_auminusexpr, 7356};
13815 val_t variable0;
13816 val_t variable1;
13817 val_t variable2;
13818 trace.prev = tracehead; tracehead = &trace;
13819 variable0 = param0;
13820 variable1 = param1;
13821 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
13822 ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
13823 ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ = variable0 /*n_minus*/;
13824 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_minus*/ == NIT_NULL /*null*/) || (( variable0 /*n_minus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_minus*/, NIT_NULL /*null*/) /*TMinus::==*/)))))));
13825 if (UNTAG_Bool(variable2)) { /*if*/
13826 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_minus*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_minus*/, self) /*TMinus::parent=*/;
13827 }
13828 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ = variable1 /*n_expr*/;
13829 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13830 if (UNTAG_Bool(variable2)) { /*if*/
13831 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/, self) /*PExpr::parent=*/;
13832 }
13833 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
13834 tracehead = trace.prev;
13835 return;
13836 }
13837 void parser_prod___AUminusExpr___replace_child(val_t self, val_t param0, val_t param1) {
13838 struct trace_t trace = {NULL, LOCATE_parser_prod___AUminusExpr___replace_child, 7371};
13839 val_t variable0;
13840 val_t variable1;
13841 val_t variable2;
13842 trace.prev = tracehead; tracehead = &trace;
13843 variable0 = param0;
13844 variable1 = param1;
13845 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13846 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AUminusExpr___replace_child, 7373); nit_exit(1);}
13847 variable2 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
13848 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TMinus::==*/)))));
13849 if (UNTAG_Bool(variable2)) { /*if*/
13850 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13851 if (UNTAG_Bool(variable2)) { /*if*/
13852 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13853 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
13854 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AUminusExpr___replace_child, 7377); nit_exit(1);}
13855 ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ = variable1 /*new_child*/;
13856 } else { /*if*/
13857 ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ = NIT_NULL /*null*/;
13858 }
13859 goto return_label640;
13860 }
13861 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
13862 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
13863 if (UNTAG_Bool(variable2)) { /*if*/
13864 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
13865 if (UNTAG_Bool(variable2)) { /*if*/
13866 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
13867 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
13868 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AUminusExpr___replace_child, 7387); nit_exit(1);}
13869 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ = variable1 /*new_child*/;
13870 } else { /*if*/
13871 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ = NIT_NULL /*null*/;
13872 }
13873 goto return_label640;
13874 }
13875 return_label640: while(false);
13876 tracehead = trace.prev;
13877 return;
13878 }
13879 void parser_prod___AUminusExpr___visit_all(val_t self, val_t param0) {
13880 struct trace_t trace = {NULL, LOCATE_parser_prod___AUminusExpr___visit_all, 7396};
13881 val_t variable0;
13882 val_t variable1;
13883 trace.prev = tracehead; tracehead = &trace;
13884 variable0 = param0;
13885 variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
13886 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMinus::==*/)))))));
13887 if (UNTAG_Bool(variable1)) { /*if*/
13888 variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
13889 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13890 }
13891 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
13892 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13893 if (UNTAG_Bool(variable1)) { /*if*/
13894 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
13895 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13896 }
13897 tracehead = trace.prev;
13898 return;
13899 }
13900 void parser_prod___AUminusExpr___visit_all_reverse(val_t self, val_t param0) {
13901 struct trace_t trace = {NULL, LOCATE_parser_prod___AUminusExpr___visit_all_reverse, 7406};
13902 val_t variable0;
13903 val_t variable1;
13904 trace.prev = tracehead; tracehead = &trace;
13905 variable0 = param0;
13906 variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
13907 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMinus::==*/)))))));
13908 if (UNTAG_Bool(variable1)) { /*if*/
13909 variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
13910 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13911 }
13912 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
13913 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
13914 if (UNTAG_Bool(variable1)) { /*if*/
13915 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
13916 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
13917 }
13918 tracehead = trace.prev;
13919 return;
13920 }
13921 void parser_prod___ANewExpr___n_kwnew__eq(val_t self, val_t param0) {
13922 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___n_kwnew__eq, 7417};
13923 val_t variable0;
13924 val_t variable1;
13925 trace.prev = tracehead; tracehead = &trace;
13926 variable0 = param0;
13927 ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ = variable0 /*n*/;
13928 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwnew::==*/)))))));
13929 if (UNTAG_Bool(variable1)) { /*if*/
13930 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwnew::parent=*/;
13931 }
13932 tracehead = trace.prev;
13933 return;
13934 }
13935 void parser_prod___ANewExpr___n_type__eq(val_t self, val_t param0) {
13936 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___n_type__eq, 7424};
13937 val_t variable0;
13938 val_t variable1;
13939 trace.prev = tracehead; tracehead = &trace;
13940 variable0 = param0;
13941 ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ = variable0 /*n*/;
13942 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PType::==*/)))))));
13943 if (UNTAG_Bool(variable1)) { /*if*/
13944 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PType::parent=*/;
13945 }
13946 tracehead = trace.prev;
13947 return;
13948 }
13949 void parser_prod___ANewExpr___n_id__eq(val_t self, val_t param0) {
13950 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___n_id__eq, 7431};
13951 val_t variable0;
13952 val_t variable1;
13953 trace.prev = tracehead; tracehead = &trace;
13954 variable0 = param0;
13955 ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ = variable0 /*n*/;
13956 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
13957 if (UNTAG_Bool(variable1)) { /*if*/
13958 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
13959 }
13960 tracehead = trace.prev;
13961 return;
13962 }
13963 void parser_prod___ANewExpr___empty_init(val_t self, int* init_table) {
13964 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___empty_init, 7439};
13965 trace.prev = tracehead; tracehead = &trace;
13966 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i]) return;
13967 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
13968 tracehead = trace.prev;
13969 return;
13970 }
13971 void parser_prod___ANewExpr___init_anewexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
13972 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___init_anewexpr, 7441};
13973 val_t variable0;
13974 val_t variable1;
13975 val_t variable2;
13976 val_t variable3;
13977 val_t variable4;
13978 val_t variable5;
13979 val_t variable6;
13980 trace.prev = tracehead; tracehead = &trace;
13981 variable0 = param0;
13982 variable1 = param1;
13983 variable2 = param2;
13984 variable3 = param3;
13985 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i]) return;
13986 ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ = variable0 /*n_kwnew*/;
13987 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwnew*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwnew*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnew*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwnew*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnew*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwnew*/, NIT_NULL /*null*/) /*TKwnew::==*/)))))));
13988 if (UNTAG_Bool(variable4)) { /*if*/
13989 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwnew*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwnew*/, self) /*TKwnew::parent=*/;
13990 }
13991 ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ = variable1 /*n_type*/;
13992 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ == NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/, NIT_NULL /*null*/) /*PType::==*/)))))));
13993 if (UNTAG_Bool(variable4)) { /*if*/
13994 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/, self) /*PType::parent=*/;
13995 }
13996 ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ = variable2 /*n_id*/;
13997 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_id*/ == NIT_NULL /*null*/) || (( variable2 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
13998 if (UNTAG_Bool(variable4)) { /*if*/
13999 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_id*/, self) /*TId::parent=*/;
14000 }
14001 variable4 = NEW_list___List___init(); /*new List[PExpr]*/
14002 ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/ = variable4;
14003 variable4 = ((array___AbstractArray___iterator_t)CALL( variable3 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable3 /*n_args*/) /*Array::iterator*/;
14004 while (true) { /*for*/
14005 variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
14006 if (!UNTAG_Bool(variable5)) break; /*for*/
14007 variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
14008 variable6 = TAG_Bool(( variable5 /*n*/==NIT_NULL) || VAL_ISA( variable5 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14009 if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANewExpr___init_anewexpr, 7462); nit_exit(1);}
14010 variable6 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14011 ((abstract_collection___IndexedCollection___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6, variable5 /*n*/) /*List::add*/;
14012 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n*/, self) /*PExpr::parent=*/;
14013 continue_648: while(0);
14014 ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
14015 }
14016 break_648: while(0);
14017 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
14018 tracehead = trace.prev;
14019 return;
14020 }
14021 void parser_prod___ANewExpr___replace_child(val_t self, val_t param0, val_t param1) {
14022 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___replace_child, 7468};
14023 val_t variable0;
14024 val_t variable1;
14025 val_t variable2;
14026 val_t variable3;
14027 val_t variable4;
14028 trace.prev = tracehead; tracehead = &trace;
14029 variable0 = param0;
14030 variable1 = param1;
14031 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14032 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANewExpr___replace_child, 7470); nit_exit(1);}
14033 variable2 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
14034 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwnew::==*/)))));
14035 if (UNTAG_Bool(variable2)) { /*if*/
14036 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14037 if (UNTAG_Bool(variable2)) { /*if*/
14038 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14039 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
14040 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANewExpr___replace_child, 7474); nit_exit(1);}
14041 ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ = variable1 /*new_child*/;
14042 } else { /*if*/
14043 ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ = NIT_NULL /*null*/;
14044 }
14045 goto return_label649;
14046 }
14047 variable2 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
14048 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PType::==*/)))));
14049 if (UNTAG_Bool(variable2)) { /*if*/
14050 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14051 if (UNTAG_Bool(variable2)) { /*if*/
14052 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14053 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
14054 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANewExpr___replace_child, 7484); nit_exit(1);}
14055 ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ = variable1 /*new_child*/;
14056 } else { /*if*/
14057 ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ = NIT_NULL /*null*/;
14058 }
14059 goto return_label649;
14060 }
14061 variable2 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
14062 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
14063 if (UNTAG_Bool(variable2)) { /*if*/
14064 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14065 if (UNTAG_Bool(variable2)) { /*if*/
14066 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14067 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
14068 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANewExpr___replace_child, 7494); nit_exit(1);}
14069 ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ = variable1 /*new_child*/;
14070 } else { /*if*/
14071 ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ = NIT_NULL /*null*/;
14072 }
14073 goto return_label649;
14074 }
14075 variable2 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14076 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
14077 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
14078 variable2 = variable3;
14079 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
14080 while (true) { /*for*/
14081 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
14082 if (!UNTAG_Bool(variable3)) break; /*for*/
14083 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
14084 variable4 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14085 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
14086 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
14087 if (UNTAG_Bool(variable4)) { /*if*/
14088 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14089 if (UNTAG_Bool(variable4)) { /*if*/
14090 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14091 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANewExpr___replace_child, 7504); nit_exit(1);}
14092 variable4 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14093 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
14094 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
14095 } else { /*if*/
14096 variable4 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14097 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
14098 }
14099 goto return_label649;
14100 }
14101 continue_650: while(0);
14102 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
14103 }
14104 break_650: while(0);
14105 return_label649: while(false);
14106 tracehead = trace.prev;
14107 return;
14108 }
14109 void parser_prod___ANewExpr___visit_all(val_t self, val_t param0) {
14110 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___visit_all, 7515};
14111 val_t variable0;
14112 val_t variable1;
14113 val_t variable2;
14114 trace.prev = tracehead; tracehead = &trace;
14115 variable0 = param0;
14116 variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
14117 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwnew::==*/)))))));
14118 if (UNTAG_Bool(variable1)) { /*if*/
14119 variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
14120 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14121 }
14122 variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
14123 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
14124 if (UNTAG_Bool(variable1)) { /*if*/
14125 variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
14126 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14127 }
14128 variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
14129 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
14130 if (UNTAG_Bool(variable1)) { /*if*/
14131 variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
14132 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14133 }
14134 variable1 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14135 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
14136 while (true) { /*for*/
14137 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
14138 if (!UNTAG_Bool(variable2)) break; /*for*/
14139 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
14140 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
14141 continue_652: while(0);
14142 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
14143 }
14144 break_652: while(0);
14145 tracehead = trace.prev;
14146 return;
14147 }
14148 void parser_prod___ANewExpr___visit_all_reverse(val_t self, val_t param0) {
14149 struct trace_t trace = {NULL, LOCATE_parser_prod___ANewExpr___visit_all_reverse, 7531};
14150 val_t variable0;
14151 val_t variable1;
14152 val_t variable2;
14153 trace.prev = tracehead; tracehead = &trace;
14154 variable0 = param0;
14155 variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
14156 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwnew::==*/)))))));
14157 if (UNTAG_Bool(variable1)) { /*if*/
14158 variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
14159 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14160 }
14161 variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
14162 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PType::==*/)))))));
14163 if (UNTAG_Bool(variable1)) { /*if*/
14164 variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
14165 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14166 }
14167 variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
14168 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
14169 if (UNTAG_Bool(variable1)) { /*if*/
14170 variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
14171 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14172 }
14173 variable2 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14174 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
14175 variable1 = variable2;
14176 while (true) { /*while*/
14177 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
14178 if (!UNTAG_Bool(variable2)) break; /* while*/
14179 variable2 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
14180 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
14181 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
14182 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
14183 variable1 = variable2 /*i=*/;
14184 continue_654: while(0);
14185 }
14186 break_654: while(0);
14187 tracehead = trace.prev;
14188 return;
14189 }
14190 void parser_prod___AAttrExpr___n_expr__eq(val_t self, val_t param0) {
14191 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrExpr___n_expr__eq, 7552};
14192 val_t variable0;
14193 val_t variable1;
14194 trace.prev = tracehead; tracehead = &trace;
14195 variable0 = param0;
14196 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ = variable0 /*n*/;
14197 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14198 if (UNTAG_Bool(variable1)) { /*if*/
14199 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
14200 }
14201 tracehead = trace.prev;
14202 return;
14203 }
14204 void parser_prod___AAttrExpr___n_id__eq(val_t self, val_t param0) {
14205 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrExpr___n_id__eq, 7559};
14206 val_t variable0;
14207 val_t variable1;
14208 trace.prev = tracehead; tracehead = &trace;
14209 variable0 = param0;
14210 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ = variable0 /*n*/;
14211 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14212 if (UNTAG_Bool(variable1)) { /*if*/
14213 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAttrid::parent=*/;
14214 }
14215 tracehead = trace.prev;
14216 return;
14217 }
14218 void parser_prod___AAttrExpr___empty_init(val_t self, int* init_table) {
14219 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrExpr___empty_init, 7567};
14220 trace.prev = tracehead; tracehead = &trace;
14221 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
14222 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
14223 tracehead = trace.prev;
14224 return;
14225 }
14226 void parser_prod___AAttrExpr___init_aattrexpr(val_t self, val_t param0, val_t param1, int* init_table) {
14227 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrExpr___init_aattrexpr, 7569};
14228 val_t variable0;
14229 val_t variable1;
14230 val_t variable2;
14231 trace.prev = tracehead; tracehead = &trace;
14232 variable0 = param0;
14233 variable1 = param1;
14234 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
14235 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ = variable0 /*n_expr*/;
14236 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14237 if (UNTAG_Bool(variable2)) { /*if*/
14238 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
14239 }
14240 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ = variable1 /*n_id*/;
14241 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14242 if (UNTAG_Bool(variable2)) { /*if*/
14243 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TAttrid::parent=*/;
14244 }
14245 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
14246 tracehead = trace.prev;
14247 return;
14248 }
14249 void parser_prod___AAttrExpr___replace_child(val_t self, val_t param0, val_t param1) {
14250 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrExpr___replace_child, 7584};
14251 val_t variable0;
14252 val_t variable1;
14253 val_t variable2;
14254 trace.prev = tracehead; tracehead = &trace;
14255 variable0 = param0;
14256 variable1 = param1;
14257 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14258 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrExpr___replace_child, 7586); nit_exit(1);}
14259 variable2 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
14260 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
14261 if (UNTAG_Bool(variable2)) { /*if*/
14262 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14263 if (UNTAG_Bool(variable2)) { /*if*/
14264 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14265 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14266 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrExpr___replace_child, 7590); nit_exit(1);}
14267 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ = variable1 /*new_child*/;
14268 } else { /*if*/
14269 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ = NIT_NULL /*null*/;
14270 }
14271 goto return_label659;
14272 }
14273 variable2 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
14274 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAttrid::==*/)))));
14275 if (UNTAG_Bool(variable2)) { /*if*/
14276 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14277 if (UNTAG_Bool(variable2)) { /*if*/
14278 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14279 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
14280 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrExpr___replace_child, 7600); nit_exit(1);}
14281 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ = variable1 /*new_child*/;
14282 } else { /*if*/
14283 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ = NIT_NULL /*null*/;
14284 }
14285 goto return_label659;
14286 }
14287 return_label659: while(false);
14288 tracehead = trace.prev;
14289 return;
14290 }
14291 void parser_prod___AAttrExpr___visit_all(val_t self, val_t param0) {
14292 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrExpr___visit_all, 7609};
14293 val_t variable0;
14294 val_t variable1;
14295 trace.prev = tracehead; tracehead = &trace;
14296 variable0 = param0;
14297 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
14298 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14299 if (UNTAG_Bool(variable1)) { /*if*/
14300 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
14301 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14302 }
14303 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
14304 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14305 if (UNTAG_Bool(variable1)) { /*if*/
14306 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
14307 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14308 }
14309 tracehead = trace.prev;
14310 return;
14311 }
14312 void parser_prod___AAttrExpr___visit_all_reverse(val_t self, val_t param0) {
14313 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrExpr___visit_all_reverse, 7619};
14314 val_t variable0;
14315 val_t variable1;
14316 trace.prev = tracehead; tracehead = &trace;
14317 variable0 = param0;
14318 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
14319 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14320 if (UNTAG_Bool(variable1)) { /*if*/
14321 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
14322 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14323 }
14324 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
14325 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14326 if (UNTAG_Bool(variable1)) { /*if*/
14327 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
14328 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14329 }
14330 tracehead = trace.prev;
14331 return;
14332 }
14333 void parser_prod___AAttrAssignExpr___n_expr__eq(val_t self, val_t param0) {
14334 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___n_expr__eq, 7630};
14335 val_t variable0;
14336 val_t variable1;
14337 trace.prev = tracehead; tracehead = &trace;
14338 variable0 = param0;
14339 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ = variable0 /*n*/;
14340 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14341 if (UNTAG_Bool(variable1)) { /*if*/
14342 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
14343 }
14344 tracehead = trace.prev;
14345 return;
14346 }
14347 void parser_prod___AAttrAssignExpr___n_id__eq(val_t self, val_t param0) {
14348 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___n_id__eq, 7637};
14349 val_t variable0;
14350 val_t variable1;
14351 trace.prev = tracehead; tracehead = &trace;
14352 variable0 = param0;
14353 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ = variable0 /*n*/;
14354 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14355 if (UNTAG_Bool(variable1)) { /*if*/
14356 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAttrid::parent=*/;
14357 }
14358 tracehead = trace.prev;
14359 return;
14360 }
14361 void parser_prod___AAttrAssignExpr___n_assign__eq(val_t self, val_t param0) {
14362 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___n_assign__eq, 7644};
14363 val_t variable0;
14364 val_t variable1;
14365 trace.prev = tracehead; tracehead = &trace;
14366 variable0 = param0;
14367 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ = variable0 /*n*/;
14368 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
14369 if (UNTAG_Bool(variable1)) { /*if*/
14370 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAssign::parent=*/;
14371 }
14372 tracehead = trace.prev;
14373 return;
14374 }
14375 void parser_prod___AAttrAssignExpr___n_value__eq(val_t self, val_t param0) {
14376 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___n_value__eq, 7651};
14377 val_t variable0;
14378 val_t variable1;
14379 trace.prev = tracehead; tracehead = &trace;
14380 variable0 = param0;
14381 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ = variable0 /*n*/;
14382 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14383 if (UNTAG_Bool(variable1)) { /*if*/
14384 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
14385 }
14386 tracehead = trace.prev;
14387 return;
14388 }
14389 void parser_prod___AAttrAssignExpr___empty_init(val_t self, int* init_table) {
14390 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___empty_init, 7659};
14391 trace.prev = tracehead; tracehead = &trace;
14392 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
14393 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
14394 tracehead = trace.prev;
14395 return;
14396 }
14397 void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
14398 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___init_aattrassignexpr, 7661};
14399 val_t variable0;
14400 val_t variable1;
14401 val_t variable2;
14402 val_t variable3;
14403 val_t variable4;
14404 trace.prev = tracehead; tracehead = &trace;
14405 variable0 = param0;
14406 variable1 = param1;
14407 variable2 = param2;
14408 variable3 = param3;
14409 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
14410 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ = variable0 /*n_expr*/;
14411 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14412 if (UNTAG_Bool(variable4)) { /*if*/
14413 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
14414 }
14415 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ = variable1 /*n_id*/;
14416 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14417 if (UNTAG_Bool(variable4)) { /*if*/
14418 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TAttrid::parent=*/;
14419 }
14420 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ = variable2 /*n_assign*/;
14421 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign*/ == NIT_NULL /*null*/) || (( variable2 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
14422 if (UNTAG_Bool(variable4)) { /*if*/
14423 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign*/, self) /*TAssign::parent=*/;
14424 }
14425 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ = variable3 /*n_value*/;
14426 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ == NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14427 if (UNTAG_Bool(variable4)) { /*if*/
14428 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/, self) /*PExpr::parent=*/;
14429 }
14430 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
14431 tracehead = trace.prev;
14432 return;
14433 }
14434 void parser_prod___AAttrAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
14435 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___replace_child, 7686};
14436 val_t variable0;
14437 val_t variable1;
14438 val_t variable2;
14439 trace.prev = tracehead; tracehead = &trace;
14440 variable0 = param0;
14441 variable1 = param1;
14442 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14443 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrAssignExpr___replace_child, 7688); nit_exit(1);}
14444 variable2 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
14445 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
14446 if (UNTAG_Bool(variable2)) { /*if*/
14447 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14448 if (UNTAG_Bool(variable2)) { /*if*/
14449 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14450 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14451 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrAssignExpr___replace_child, 7692); nit_exit(1);}
14452 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ = variable1 /*new_child*/;
14453 } else { /*if*/
14454 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ = NIT_NULL /*null*/;
14455 }
14456 goto return_label668;
14457 }
14458 variable2 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
14459 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAttrid::==*/)))));
14460 if (UNTAG_Bool(variable2)) { /*if*/
14461 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14462 if (UNTAG_Bool(variable2)) { /*if*/
14463 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14464 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
14465 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrAssignExpr___replace_child, 7702); nit_exit(1);}
14466 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ = variable1 /*new_child*/;
14467 } else { /*if*/
14468 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ = NIT_NULL /*null*/;
14469 }
14470 goto return_label668;
14471 }
14472 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
14473 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAssign::==*/)))));
14474 if (UNTAG_Bool(variable2)) { /*if*/
14475 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14476 if (UNTAG_Bool(variable2)) { /*if*/
14477 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14478 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
14479 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrAssignExpr___replace_child, 7712); nit_exit(1);}
14480 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ = variable1 /*new_child*/;
14481 } else { /*if*/
14482 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ = NIT_NULL /*null*/;
14483 }
14484 goto return_label668;
14485 }
14486 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
14487 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
14488 if (UNTAG_Bool(variable2)) { /*if*/
14489 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14490 if (UNTAG_Bool(variable2)) { /*if*/
14491 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14492 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14493 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrAssignExpr___replace_child, 7722); nit_exit(1);}
14494 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ = variable1 /*new_child*/;
14495 } else { /*if*/
14496 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ = NIT_NULL /*null*/;
14497 }
14498 goto return_label668;
14499 }
14500 return_label668: while(false);
14501 tracehead = trace.prev;
14502 return;
14503 }
14504 void parser_prod___AAttrAssignExpr___visit_all(val_t self, val_t param0) {
14505 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___visit_all, 7731};
14506 val_t variable0;
14507 val_t variable1;
14508 trace.prev = tracehead; tracehead = &trace;
14509 variable0 = param0;
14510 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
14511 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14512 if (UNTAG_Bool(variable1)) { /*if*/
14513 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
14514 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14515 }
14516 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
14517 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14518 if (UNTAG_Bool(variable1)) { /*if*/
14519 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
14520 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14521 }
14522 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
14523 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
14524 if (UNTAG_Bool(variable1)) { /*if*/
14525 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
14526 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14527 }
14528 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
14529 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14530 if (UNTAG_Bool(variable1)) { /*if*/
14531 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
14532 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14533 }
14534 tracehead = trace.prev;
14535 return;
14536 }
14537 void parser_prod___AAttrAssignExpr___visit_all_reverse(val_t self, val_t param0) {
14538 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrAssignExpr___visit_all_reverse, 7747};
14539 val_t variable0;
14540 val_t variable1;
14541 trace.prev = tracehead; tracehead = &trace;
14542 variable0 = param0;
14543 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
14544 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14545 if (UNTAG_Bool(variable1)) { /*if*/
14546 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
14547 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14548 }
14549 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
14550 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14551 if (UNTAG_Bool(variable1)) { /*if*/
14552 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
14553 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14554 }
14555 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
14556 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
14557 if (UNTAG_Bool(variable1)) { /*if*/
14558 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
14559 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14560 }
14561 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
14562 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14563 if (UNTAG_Bool(variable1)) { /*if*/
14564 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
14565 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14566 }
14567 tracehead = trace.prev;
14568 return;
14569 }
14570 void parser_prod___AAttrReassignExpr___n_expr__eq(val_t self, val_t param0) {
14571 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___n_expr__eq, 7764};
14572 val_t variable0;
14573 val_t variable1;
14574 trace.prev = tracehead; tracehead = &trace;
14575 variable0 = param0;
14576 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ = variable0 /*n*/;
14577 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14578 if (UNTAG_Bool(variable1)) { /*if*/
14579 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
14580 }
14581 tracehead = trace.prev;
14582 return;
14583 }
14584 void parser_prod___AAttrReassignExpr___n_id__eq(val_t self, val_t param0) {
14585 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___n_id__eq, 7771};
14586 val_t variable0;
14587 val_t variable1;
14588 trace.prev = tracehead; tracehead = &trace;
14589 variable0 = param0;
14590 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ = variable0 /*n*/;
14591 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14592 if (UNTAG_Bool(variable1)) { /*if*/
14593 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAttrid::parent=*/;
14594 }
14595 tracehead = trace.prev;
14596 return;
14597 }
14598 void parser_prod___AAttrReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
14599 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___n_assign_op__eq, 7778};
14600 val_t variable0;
14601 val_t variable1;
14602 trace.prev = tracehead; tracehead = &trace;
14603 variable0 = param0;
14604 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ = variable0 /*n*/;
14605 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
14606 if (UNTAG_Bool(variable1)) { /*if*/
14607 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PAssignOp::parent=*/;
14608 }
14609 tracehead = trace.prev;
14610 return;
14611 }
14612 void parser_prod___AAttrReassignExpr___n_value__eq(val_t self, val_t param0) {
14613 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___n_value__eq, 7785};
14614 val_t variable0;
14615 val_t variable1;
14616 trace.prev = tracehead; tracehead = &trace;
14617 variable0 = param0;
14618 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ = variable0 /*n*/;
14619 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14620 if (UNTAG_Bool(variable1)) { /*if*/
14621 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
14622 }
14623 tracehead = trace.prev;
14624 return;
14625 }
14626 void parser_prod___AAttrReassignExpr___empty_init(val_t self, int* init_table) {
14627 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___empty_init, 7793};
14628 trace.prev = tracehead; tracehead = &trace;
14629 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
14630 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
14631 tracehead = trace.prev;
14632 return;
14633 }
14634 void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
14635 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___init_aattrreassignexpr, 7795};
14636 val_t variable0;
14637 val_t variable1;
14638 val_t variable2;
14639 val_t variable3;
14640 val_t variable4;
14641 trace.prev = tracehead; tracehead = &trace;
14642 variable0 = param0;
14643 variable1 = param1;
14644 variable2 = param2;
14645 variable3 = param3;
14646 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
14647 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ = variable0 /*n_expr*/;
14648 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14649 if (UNTAG_Bool(variable4)) { /*if*/
14650 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
14651 }
14652 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ = variable1 /*n_id*/;
14653 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14654 if (UNTAG_Bool(variable4)) { /*if*/
14655 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TAttrid::parent=*/;
14656 }
14657 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ = variable2 /*n_assign_op*/;
14658 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable2 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign_op*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
14659 if (UNTAG_Bool(variable4)) { /*if*/
14660 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign_op*/, self) /*PAssignOp::parent=*/;
14661 }
14662 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ = variable3 /*n_value*/;
14663 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ == NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14664 if (UNTAG_Bool(variable4)) { /*if*/
14665 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/, self) /*PExpr::parent=*/;
14666 }
14667 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
14668 tracehead = trace.prev;
14669 return;
14670 }
14671 void parser_prod___AAttrReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
14672 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___replace_child, 7820};
14673 val_t variable0;
14674 val_t variable1;
14675 val_t variable2;
14676 trace.prev = tracehead; tracehead = &trace;
14677 variable0 = param0;
14678 variable1 = param1;
14679 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14680 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrReassignExpr___replace_child, 7822); nit_exit(1);}
14681 variable2 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
14682 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
14683 if (UNTAG_Bool(variable2)) { /*if*/
14684 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14685 if (UNTAG_Bool(variable2)) { /*if*/
14686 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14687 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14688 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrReassignExpr___replace_child, 7826); nit_exit(1);}
14689 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ = variable1 /*new_child*/;
14690 } else { /*if*/
14691 ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ = NIT_NULL /*null*/;
14692 }
14693 goto return_label677;
14694 }
14695 variable2 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
14696 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAttrid::==*/)))));
14697 if (UNTAG_Bool(variable2)) { /*if*/
14698 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14699 if (UNTAG_Bool(variable2)) { /*if*/
14700 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14701 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
14702 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrReassignExpr___replace_child, 7836); nit_exit(1);}
14703 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ = variable1 /*new_child*/;
14704 } else { /*if*/
14705 ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ = NIT_NULL /*null*/;
14706 }
14707 goto return_label677;
14708 }
14709 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
14710 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PAssignOp::==*/)))));
14711 if (UNTAG_Bool(variable2)) { /*if*/
14712 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14713 if (UNTAG_Bool(variable2)) { /*if*/
14714 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14715 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
14716 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrReassignExpr___replace_child, 7846); nit_exit(1);}
14717 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ = variable1 /*new_child*/;
14718 } else { /*if*/
14719 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ = NIT_NULL /*null*/;
14720 }
14721 goto return_label677;
14722 }
14723 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
14724 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
14725 if (UNTAG_Bool(variable2)) { /*if*/
14726 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14727 if (UNTAG_Bool(variable2)) { /*if*/
14728 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14729 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14730 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AAttrReassignExpr___replace_child, 7856); nit_exit(1);}
14731 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ = variable1 /*new_child*/;
14732 } else { /*if*/
14733 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ = NIT_NULL /*null*/;
14734 }
14735 goto return_label677;
14736 }
14737 return_label677: while(false);
14738 tracehead = trace.prev;
14739 return;
14740 }
14741 void parser_prod___AAttrReassignExpr___visit_all(val_t self, val_t param0) {
14742 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___visit_all, 7865};
14743 val_t variable0;
14744 val_t variable1;
14745 trace.prev = tracehead; tracehead = &trace;
14746 variable0 = param0;
14747 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
14748 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14749 if (UNTAG_Bool(variable1)) { /*if*/
14750 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
14751 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14752 }
14753 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
14754 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14755 if (UNTAG_Bool(variable1)) { /*if*/
14756 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
14757 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14758 }
14759 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
14760 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
14761 if (UNTAG_Bool(variable1)) { /*if*/
14762 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
14763 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14764 }
14765 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
14766 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14767 if (UNTAG_Bool(variable1)) { /*if*/
14768 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
14769 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14770 }
14771 tracehead = trace.prev;
14772 return;
14773 }
14774 void parser_prod___AAttrReassignExpr___visit_all_reverse(val_t self, val_t param0) {
14775 struct trace_t trace = {NULL, LOCATE_parser_prod___AAttrReassignExpr___visit_all_reverse, 7881};
14776 val_t variable0;
14777 val_t variable1;
14778 trace.prev = tracehead; tracehead = &trace;
14779 variable0 = param0;
14780 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
14781 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14782 if (UNTAG_Bool(variable1)) { /*if*/
14783 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
14784 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14785 }
14786 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
14787 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAttrid::==*/)))))));
14788 if (UNTAG_Bool(variable1)) { /*if*/
14789 variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
14790 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14791 }
14792 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
14793 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
14794 if (UNTAG_Bool(variable1)) { /*if*/
14795 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
14796 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14797 }
14798 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
14799 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14800 if (UNTAG_Bool(variable1)) { /*if*/
14801 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
14802 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14803 }
14804 tracehead = trace.prev;
14805 return;
14806 }
14807 void parser_prod___ACallExpr___n_expr__eq(val_t self, val_t param0) {
14808 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallExpr___n_expr__eq, 7898};
14809 val_t variable0;
14810 val_t variable1;
14811 trace.prev = tracehead; tracehead = &trace;
14812 variable0 = param0;
14813 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ = variable0 /*n*/;
14814 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14815 if (UNTAG_Bool(variable1)) { /*if*/
14816 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
14817 }
14818 tracehead = trace.prev;
14819 return;
14820 }
14821 void parser_prod___ACallExpr___n_id__eq(val_t self, val_t param0) {
14822 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallExpr___n_id__eq, 7905};
14823 val_t variable0;
14824 val_t variable1;
14825 trace.prev = tracehead; tracehead = &trace;
14826 variable0 = param0;
14827 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ = variable0 /*n*/;
14828 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
14829 if (UNTAG_Bool(variable1)) { /*if*/
14830 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
14831 }
14832 tracehead = trace.prev;
14833 return;
14834 }
14835 void parser_prod___ACallExpr___empty_init(val_t self, int* init_table) {
14836 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallExpr___empty_init, 7913};
14837 trace.prev = tracehead; tracehead = &trace;
14838 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i]) return;
14839 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
14840 tracehead = trace.prev;
14841 return;
14842 }
14843 void parser_prod___ACallExpr___init_acallexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
14844 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallExpr___init_acallexpr, 7915};
14845 val_t variable0;
14846 val_t variable1;
14847 val_t variable2;
14848 val_t variable3;
14849 val_t variable4;
14850 val_t variable5;
14851 trace.prev = tracehead; tracehead = &trace;
14852 variable0 = param0;
14853 variable1 = param1;
14854 variable2 = param2;
14855 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i]) return;
14856 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ = variable0 /*n_expr*/;
14857 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14858 if (UNTAG_Bool(variable3)) { /*if*/
14859 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
14860 }
14861 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ = variable1 /*n_id*/;
14862 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
14863 if (UNTAG_Bool(variable3)) { /*if*/
14864 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TId::parent=*/;
14865 }
14866 variable3 = NEW_list___List___init(); /*new List[PExpr]*/
14867 ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/ = variable3;
14868 variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
14869 while (true) { /*for*/
14870 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
14871 if (!UNTAG_Bool(variable4)) break; /*for*/
14872 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
14873 variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14874 if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallExpr___init_acallexpr, 7931); nit_exit(1);}
14875 variable5 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
14876 ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable4 /*n*/) /*List::add*/;
14877 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/, self) /*PExpr::parent=*/;
14878 continue_684: while(0);
14879 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
14880 }
14881 break_684: while(0);
14882 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
14883 tracehead = trace.prev;
14884 return;
14885 }
14886 void parser_prod___ACallExpr___replace_child(val_t self, val_t param0, val_t param1) {
14887 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallExpr___replace_child, 7937};
14888 val_t variable0;
14889 val_t variable1;
14890 val_t variable2;
14891 val_t variable3;
14892 val_t variable4;
14893 trace.prev = tracehead; tracehead = &trace;
14894 variable0 = param0;
14895 variable1 = param1;
14896 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14897 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallExpr___replace_child, 7939); nit_exit(1);}
14898 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
14899 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
14900 if (UNTAG_Bool(variable2)) { /*if*/
14901 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14902 if (UNTAG_Bool(variable2)) { /*if*/
14903 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14904 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14905 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallExpr___replace_child, 7943); nit_exit(1);}
14906 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ = variable1 /*new_child*/;
14907 } else { /*if*/
14908 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ = NIT_NULL /*null*/;
14909 }
14910 goto return_label685;
14911 }
14912 variable2 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
14913 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
14914 if (UNTAG_Bool(variable2)) { /*if*/
14915 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14916 if (UNTAG_Bool(variable2)) { /*if*/
14917 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
14918 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
14919 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallExpr___replace_child, 7953); nit_exit(1);}
14920 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ = variable1 /*new_child*/;
14921 } else { /*if*/
14922 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ = NIT_NULL /*null*/;
14923 }
14924 goto return_label685;
14925 }
14926 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
14927 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
14928 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
14929 variable2 = variable3;
14930 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
14931 while (true) { /*for*/
14932 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
14933 if (!UNTAG_Bool(variable3)) break; /*for*/
14934 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
14935 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
14936 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
14937 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
14938 if (UNTAG_Bool(variable4)) { /*if*/
14939 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
14940 if (UNTAG_Bool(variable4)) { /*if*/
14941 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
14942 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallExpr___replace_child, 7963); nit_exit(1);}
14943 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
14944 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
14945 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
14946 } else { /*if*/
14947 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
14948 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
14949 }
14950 goto return_label685;
14951 }
14952 continue_686: while(0);
14953 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
14954 }
14955 break_686: while(0);
14956 return_label685: while(false);
14957 tracehead = trace.prev;
14958 return;
14959 }
14960 void parser_prod___ACallExpr___visit_all(val_t self, val_t param0) {
14961 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallExpr___visit_all, 7974};
14962 val_t variable0;
14963 val_t variable1;
14964 val_t variable2;
14965 trace.prev = tracehead; tracehead = &trace;
14966 variable0 = param0;
14967 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
14968 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
14969 if (UNTAG_Bool(variable1)) { /*if*/
14970 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
14971 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14972 }
14973 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
14974 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
14975 if (UNTAG_Bool(variable1)) { /*if*/
14976 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
14977 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
14978 }
14979 variable1 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
14980 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
14981 while (true) { /*for*/
14982 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
14983 if (!UNTAG_Bool(variable2)) break; /*for*/
14984 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
14985 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
14986 continue_688: while(0);
14987 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
14988 }
14989 break_688: while(0);
14990 tracehead = trace.prev;
14991 return;
14992 }
14993 void parser_prod___ACallExpr___visit_all_reverse(val_t self, val_t param0) {
14994 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallExpr___visit_all_reverse, 7987};
14995 val_t variable0;
14996 val_t variable1;
14997 val_t variable2;
14998 trace.prev = tracehead; tracehead = &trace;
14999 variable0 = param0;
15000 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
15001 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15002 if (UNTAG_Bool(variable1)) { /*if*/
15003 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
15004 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15005 }
15006 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
15007 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
15008 if (UNTAG_Bool(variable1)) { /*if*/
15009 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
15010 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15011 }
15012 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
15013 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
15014 variable1 = variable2;
15015 while (true) { /*while*/
15016 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
15017 if (!UNTAG_Bool(variable2)) break; /* while*/
15018 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
15019 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
15020 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
15021 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
15022 variable1 = variable2 /*i=*/;
15023 continue_690: while(0);
15024 }
15025 break_690: while(0);
15026 tracehead = trace.prev;
15027 return;
15028 }
15029 void parser_prod___ACallAssignExpr___n_expr__eq(val_t self, val_t param0) {
15030 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___n_expr__eq, 8005};
15031 val_t variable0;
15032 val_t variable1;
15033 trace.prev = tracehead; tracehead = &trace;
15034 variable0 = param0;
15035 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ = variable0 /*n*/;
15036 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15037 if (UNTAG_Bool(variable1)) { /*if*/
15038 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
15039 }
15040 tracehead = trace.prev;
15041 return;
15042 }
15043 void parser_prod___ACallAssignExpr___n_id__eq(val_t self, val_t param0) {
15044 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___n_id__eq, 8012};
15045 val_t variable0;
15046 val_t variable1;
15047 trace.prev = tracehead; tracehead = &trace;
15048 variable0 = param0;
15049 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ = variable0 /*n*/;
15050 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
15051 if (UNTAG_Bool(variable1)) { /*if*/
15052 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
15053 }
15054 tracehead = trace.prev;
15055 return;
15056 }
15057 void parser_prod___ACallAssignExpr___n_assign__eq(val_t self, val_t param0) {
15058 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___n_assign__eq, 8019};
15059 val_t variable0;
15060 val_t variable1;
15061 trace.prev = tracehead; tracehead = &trace;
15062 variable0 = param0;
15063 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ = variable0 /*n*/;
15064 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
15065 if (UNTAG_Bool(variable1)) { /*if*/
15066 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAssign::parent=*/;
15067 }
15068 tracehead = trace.prev;
15069 return;
15070 }
15071 void parser_prod___ACallAssignExpr___n_value__eq(val_t self, val_t param0) {
15072 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___n_value__eq, 8026};
15073 val_t variable0;
15074 val_t variable1;
15075 trace.prev = tracehead; tracehead = &trace;
15076 variable0 = param0;
15077 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ = variable0 /*n*/;
15078 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15079 if (UNTAG_Bool(variable1)) { /*if*/
15080 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
15081 }
15082 tracehead = trace.prev;
15083 return;
15084 }
15085 void parser_prod___ACallAssignExpr___empty_init(val_t self, int* init_table) {
15086 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___empty_init, 8034};
15087 trace.prev = tracehead; tracehead = &trace;
15088 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
15089 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
15090 tracehead = trace.prev;
15091 return;
15092 }
15093 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) {
15094 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr, 8036};
15095 val_t variable0;
15096 val_t variable1;
15097 val_t variable2;
15098 val_t variable3;
15099 val_t variable4;
15100 val_t variable5;
15101 val_t variable6;
15102 val_t variable7;
15103 trace.prev = tracehead; tracehead = &trace;
15104 variable0 = param0;
15105 variable1 = param1;
15106 variable2 = param2;
15107 variable3 = param3;
15108 variable4 = param4;
15109 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
15110 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ = variable0 /*n_expr*/;
15111 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15112 if (UNTAG_Bool(variable5)) { /*if*/
15113 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
15114 }
15115 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ = variable1 /*n_id*/;
15116 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
15117 if (UNTAG_Bool(variable5)) { /*if*/
15118 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TId::parent=*/;
15119 }
15120 variable5 = NEW_list___List___init(); /*new List[PExpr]*/
15121 ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/ = variable5;
15122 variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
15123 while (true) { /*for*/
15124 variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
15125 if (!UNTAG_Bool(variable6)) break; /*for*/
15126 variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
15127 variable7 = TAG_Bool(( variable6 /*n*/==NIT_NULL) || VAL_ISA( variable6 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15128 if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr, 8054); nit_exit(1);}
15129 variable7 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15130 ((abstract_collection___IndexedCollection___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable6 /*n*/) /*List::add*/;
15131 ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n*/, self) /*PExpr::parent=*/;
15132 continue_697: while(0);
15133 ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
15134 }
15135 break_697: while(0);
15136 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ = variable3 /*n_assign*/;
15137 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_assign*/ == NIT_NULL /*null*/) || (( variable3 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_assign*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
15138 if (UNTAG_Bool(variable5)) { /*if*/
15139 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_assign*/, self) /*TAssign::parent=*/;
15140 }
15141 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ = variable4 /*n_value*/;
15142 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_value*/ == NIT_NULL /*null*/) || (( variable4 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15143 if (UNTAG_Bool(variable5)) { /*if*/
15144 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_value*/, self) /*PExpr::parent=*/;
15145 }
15146 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
15147 tracehead = trace.prev;
15148 return;
15149 }
15150 void parser_prod___ACallAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
15151 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___replace_child, 8068};
15152 val_t variable0;
15153 val_t variable1;
15154 val_t variable2;
15155 val_t variable3;
15156 val_t variable4;
15157 trace.prev = tracehead; tracehead = &trace;
15158 variable0 = param0;
15159 variable1 = param1;
15160 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15161 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallAssignExpr___replace_child, 8070); nit_exit(1);}
15162 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
15163 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
15164 if (UNTAG_Bool(variable2)) { /*if*/
15165 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15166 if (UNTAG_Bool(variable2)) { /*if*/
15167 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15168 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15169 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallAssignExpr___replace_child, 8074); nit_exit(1);}
15170 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ = variable1 /*new_child*/;
15171 } else { /*if*/
15172 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ = NIT_NULL /*null*/;
15173 }
15174 goto return_label698;
15175 }
15176 variable2 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
15177 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
15178 if (UNTAG_Bool(variable2)) { /*if*/
15179 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15180 if (UNTAG_Bool(variable2)) { /*if*/
15181 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15182 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
15183 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallAssignExpr___replace_child, 8084); nit_exit(1);}
15184 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ = variable1 /*new_child*/;
15185 } else { /*if*/
15186 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ = NIT_NULL /*null*/;
15187 }
15188 goto return_label698;
15189 }
15190 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15191 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
15192 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
15193 variable2 = variable3;
15194 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
15195 while (true) { /*for*/
15196 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
15197 if (!UNTAG_Bool(variable3)) break; /*for*/
15198 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
15199 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15200 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
15201 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
15202 if (UNTAG_Bool(variable4)) { /*if*/
15203 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15204 if (UNTAG_Bool(variable4)) { /*if*/
15205 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15206 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallAssignExpr___replace_child, 8094); nit_exit(1);}
15207 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15208 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
15209 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
15210 } else { /*if*/
15211 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15212 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
15213 }
15214 goto return_label698;
15215 }
15216 continue_699: while(0);
15217 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
15218 }
15219 break_699: while(0);
15220 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
15221 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAssign::==*/)))));
15222 if (UNTAG_Bool(variable2)) { /*if*/
15223 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15224 if (UNTAG_Bool(variable2)) { /*if*/
15225 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15226 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
15227 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallAssignExpr___replace_child, 8106); nit_exit(1);}
15228 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ = variable1 /*new_child*/;
15229 } else { /*if*/
15230 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ = NIT_NULL /*null*/;
15231 }
15232 goto return_label698;
15233 }
15234 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
15235 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
15236 if (UNTAG_Bool(variable2)) { /*if*/
15237 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15238 if (UNTAG_Bool(variable2)) { /*if*/
15239 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15240 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15241 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallAssignExpr___replace_child, 8116); nit_exit(1);}
15242 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ = variable1 /*new_child*/;
15243 } else { /*if*/
15244 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ = NIT_NULL /*null*/;
15245 }
15246 goto return_label698;
15247 }
15248 return_label698: while(false);
15249 tracehead = trace.prev;
15250 return;
15251 }
15252 void parser_prod___ACallAssignExpr___visit_all(val_t self, val_t param0) {
15253 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___visit_all, 8125};
15254 val_t variable0;
15255 val_t variable1;
15256 val_t variable2;
15257 trace.prev = tracehead; tracehead = &trace;
15258 variable0 = param0;
15259 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
15260 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15261 if (UNTAG_Bool(variable1)) { /*if*/
15262 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
15263 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15264 }
15265 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
15266 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
15267 if (UNTAG_Bool(variable1)) { /*if*/
15268 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
15269 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15270 }
15271 variable1 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15272 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
15273 while (true) { /*for*/
15274 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
15275 if (!UNTAG_Bool(variable2)) break; /*for*/
15276 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
15277 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
15278 continue_701: while(0);
15279 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
15280 }
15281 break_701: while(0);
15282 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
15283 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
15284 if (UNTAG_Bool(variable1)) { /*if*/
15285 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
15286 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15287 }
15288 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
15289 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15290 if (UNTAG_Bool(variable1)) { /*if*/
15291 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
15292 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15293 }
15294 tracehead = trace.prev;
15295 return;
15296 }
15297 void parser_prod___ACallAssignExpr___visit_all_reverse(val_t self, val_t param0) {
15298 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallAssignExpr___visit_all_reverse, 8144};
15299 val_t variable0;
15300 val_t variable1;
15301 val_t variable2;
15302 trace.prev = tracehead; tracehead = &trace;
15303 variable0 = param0;
15304 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
15305 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15306 if (UNTAG_Bool(variable1)) { /*if*/
15307 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
15308 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15309 }
15310 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
15311 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
15312 if (UNTAG_Bool(variable1)) { /*if*/
15313 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
15314 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15315 }
15316 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15317 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
15318 variable1 = variable2;
15319 while (true) { /*while*/
15320 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
15321 if (!UNTAG_Bool(variable2)) break; /* while*/
15322 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
15323 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
15324 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
15325 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
15326 variable1 = variable2 /*i=*/;
15327 continue_703: while(0);
15328 }
15329 break_703: while(0);
15330 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
15331 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
15332 if (UNTAG_Bool(variable1)) { /*if*/
15333 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
15334 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15335 }
15336 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
15337 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15338 if (UNTAG_Bool(variable1)) { /*if*/
15339 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
15340 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15341 }
15342 tracehead = trace.prev;
15343 return;
15344 }
15345 void parser_prod___ACallReassignExpr___n_expr__eq(val_t self, val_t param0) {
15346 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___n_expr__eq, 8168};
15347 val_t variable0;
15348 val_t variable1;
15349 trace.prev = tracehead; tracehead = &trace;
15350 variable0 = param0;
15351 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ = variable0 /*n*/;
15352 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15353 if (UNTAG_Bool(variable1)) { /*if*/
15354 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
15355 }
15356 tracehead = trace.prev;
15357 return;
15358 }
15359 void parser_prod___ACallReassignExpr___n_id__eq(val_t self, val_t param0) {
15360 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___n_id__eq, 8175};
15361 val_t variable0;
15362 val_t variable1;
15363 trace.prev = tracehead; tracehead = &trace;
15364 variable0 = param0;
15365 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ = variable0 /*n*/;
15366 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
15367 if (UNTAG_Bool(variable1)) { /*if*/
15368 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
15369 }
15370 tracehead = trace.prev;
15371 return;
15372 }
15373 void parser_prod___ACallReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
15374 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___n_assign_op__eq, 8182};
15375 val_t variable0;
15376 val_t variable1;
15377 trace.prev = tracehead; tracehead = &trace;
15378 variable0 = param0;
15379 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ = variable0 /*n*/;
15380 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
15381 if (UNTAG_Bool(variable1)) { /*if*/
15382 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PAssignOp::parent=*/;
15383 }
15384 tracehead = trace.prev;
15385 return;
15386 }
15387 void parser_prod___ACallReassignExpr___n_value__eq(val_t self, val_t param0) {
15388 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___n_value__eq, 8189};
15389 val_t variable0;
15390 val_t variable1;
15391 trace.prev = tracehead; tracehead = &trace;
15392 variable0 = param0;
15393 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ = variable0 /*n*/;
15394 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15395 if (UNTAG_Bool(variable1)) { /*if*/
15396 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
15397 }
15398 tracehead = trace.prev;
15399 return;
15400 }
15401 void parser_prod___ACallReassignExpr___empty_init(val_t self, int* init_table) {
15402 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___empty_init, 8197};
15403 trace.prev = tracehead; tracehead = &trace;
15404 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
15405 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
15406 tracehead = trace.prev;
15407 return;
15408 }
15409 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) {
15410 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr, 8199};
15411 val_t variable0;
15412 val_t variable1;
15413 val_t variable2;
15414 val_t variable3;
15415 val_t variable4;
15416 val_t variable5;
15417 val_t variable6;
15418 val_t variable7;
15419 trace.prev = tracehead; tracehead = &trace;
15420 variable0 = param0;
15421 variable1 = param1;
15422 variable2 = param2;
15423 variable3 = param3;
15424 variable4 = param4;
15425 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
15426 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ = variable0 /*n_expr*/;
15427 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15428 if (UNTAG_Bool(variable5)) { /*if*/
15429 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
15430 }
15431 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ = variable1 /*n_id*/;
15432 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ == NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
15433 if (UNTAG_Bool(variable5)) { /*if*/
15434 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/, self) /*TId::parent=*/;
15435 }
15436 variable5 = NEW_list___List___init(); /*new List[PExpr]*/
15437 ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/ = variable5;
15438 variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
15439 while (true) { /*for*/
15440 variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
15441 if (!UNTAG_Bool(variable6)) break; /*for*/
15442 variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
15443 variable7 = TAG_Bool(( variable6 /*n*/==NIT_NULL) || VAL_ISA( variable6 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15444 if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr, 8217); nit_exit(1);}
15445 variable7 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15446 ((abstract_collection___IndexedCollection___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable6 /*n*/) /*List::add*/;
15447 ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n*/, self) /*PExpr::parent=*/;
15448 continue_710: while(0);
15449 ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
15450 }
15451 break_710: while(0);
15452 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ = variable3 /*n_assign_op*/;
15453 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable3 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_assign_op*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
15454 if (UNTAG_Bool(variable5)) { /*if*/
15455 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_assign_op*/, self) /*PAssignOp::parent=*/;
15456 }
15457 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ = variable4 /*n_value*/;
15458 variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_value*/ == NIT_NULL /*null*/) || (( variable4 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15459 if (UNTAG_Bool(variable5)) { /*if*/
15460 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_value*/, self) /*PExpr::parent=*/;
15461 }
15462 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
15463 tracehead = trace.prev;
15464 return;
15465 }
15466 void parser_prod___ACallReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
15467 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___replace_child, 8231};
15468 val_t variable0;
15469 val_t variable1;
15470 val_t variable2;
15471 val_t variable3;
15472 val_t variable4;
15473 trace.prev = tracehead; tracehead = &trace;
15474 variable0 = param0;
15475 variable1 = param1;
15476 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15477 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallReassignExpr___replace_child, 8233); nit_exit(1);}
15478 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
15479 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
15480 if (UNTAG_Bool(variable2)) { /*if*/
15481 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15482 if (UNTAG_Bool(variable2)) { /*if*/
15483 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15484 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15485 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallReassignExpr___replace_child, 8237); nit_exit(1);}
15486 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ = variable1 /*new_child*/;
15487 } else { /*if*/
15488 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ = NIT_NULL /*null*/;
15489 }
15490 goto return_label711;
15491 }
15492 variable2 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
15493 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
15494 if (UNTAG_Bool(variable2)) { /*if*/
15495 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15496 if (UNTAG_Bool(variable2)) { /*if*/
15497 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15498 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
15499 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallReassignExpr___replace_child, 8247); nit_exit(1);}
15500 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ = variable1 /*new_child*/;
15501 } else { /*if*/
15502 ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ = NIT_NULL /*null*/;
15503 }
15504 goto return_label711;
15505 }
15506 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15507 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
15508 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
15509 variable2 = variable3;
15510 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
15511 while (true) { /*for*/
15512 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
15513 if (!UNTAG_Bool(variable3)) break; /*for*/
15514 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
15515 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15516 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
15517 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
15518 if (UNTAG_Bool(variable4)) { /*if*/
15519 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15520 if (UNTAG_Bool(variable4)) { /*if*/
15521 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15522 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallReassignExpr___replace_child, 8257); nit_exit(1);}
15523 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15524 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
15525 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
15526 } else { /*if*/
15527 variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15528 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
15529 }
15530 goto return_label711;
15531 }
15532 continue_712: while(0);
15533 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
15534 }
15535 break_712: while(0);
15536 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
15537 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PAssignOp::==*/)))));
15538 if (UNTAG_Bool(variable2)) { /*if*/
15539 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15540 if (UNTAG_Bool(variable2)) { /*if*/
15541 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15542 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
15543 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallReassignExpr___replace_child, 8269); nit_exit(1);}
15544 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ = variable1 /*new_child*/;
15545 } else { /*if*/
15546 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ = NIT_NULL /*null*/;
15547 }
15548 goto return_label711;
15549 }
15550 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
15551 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
15552 if (UNTAG_Bool(variable2)) { /*if*/
15553 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15554 if (UNTAG_Bool(variable2)) { /*if*/
15555 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15556 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15557 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACallReassignExpr___replace_child, 8279); nit_exit(1);}
15558 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ = variable1 /*new_child*/;
15559 } else { /*if*/
15560 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ = NIT_NULL /*null*/;
15561 }
15562 goto return_label711;
15563 }
15564 return_label711: while(false);
15565 tracehead = trace.prev;
15566 return;
15567 }
15568 void parser_prod___ACallReassignExpr___visit_all(val_t self, val_t param0) {
15569 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___visit_all, 8288};
15570 val_t variable0;
15571 val_t variable1;
15572 val_t variable2;
15573 trace.prev = tracehead; tracehead = &trace;
15574 variable0 = param0;
15575 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
15576 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15577 if (UNTAG_Bool(variable1)) { /*if*/
15578 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
15579 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15580 }
15581 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
15582 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
15583 if (UNTAG_Bool(variable1)) { /*if*/
15584 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
15585 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15586 }
15587 variable1 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15588 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
15589 while (true) { /*for*/
15590 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
15591 if (!UNTAG_Bool(variable2)) break; /*for*/
15592 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
15593 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
15594 continue_714: while(0);
15595 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
15596 }
15597 break_714: while(0);
15598 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
15599 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
15600 if (UNTAG_Bool(variable1)) { /*if*/
15601 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
15602 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15603 }
15604 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
15605 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15606 if (UNTAG_Bool(variable1)) { /*if*/
15607 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
15608 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15609 }
15610 tracehead = trace.prev;
15611 return;
15612 }
15613 void parser_prod___ACallReassignExpr___visit_all_reverse(val_t self, val_t param0) {
15614 struct trace_t trace = {NULL, LOCATE_parser_prod___ACallReassignExpr___visit_all_reverse, 8307};
15615 val_t variable0;
15616 val_t variable1;
15617 val_t variable2;
15618 trace.prev = tracehead; tracehead = &trace;
15619 variable0 = param0;
15620 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
15621 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15622 if (UNTAG_Bool(variable1)) { /*if*/
15623 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
15624 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15625 }
15626 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
15627 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
15628 if (UNTAG_Bool(variable1)) { /*if*/
15629 variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
15630 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15631 }
15632 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15633 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
15634 variable1 = variable2;
15635 while (true) { /*while*/
15636 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
15637 if (!UNTAG_Bool(variable2)) break; /* while*/
15638 variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
15639 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
15640 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
15641 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
15642 variable1 = variable2 /*i=*/;
15643 continue_716: while(0);
15644 }
15645 break_716: while(0);
15646 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
15647 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
15648 if (UNTAG_Bool(variable1)) { /*if*/
15649 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
15650 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15651 }
15652 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
15653 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15654 if (UNTAG_Bool(variable1)) { /*if*/
15655 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
15656 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15657 }
15658 tracehead = trace.prev;
15659 return;
15660 }
15661 void parser_prod___ASuperExpr___n_qualified__eq(val_t self, val_t param0) {
15662 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperExpr___n_qualified__eq, 8331};
15663 val_t variable0;
15664 val_t variable1;
15665 trace.prev = tracehead; tracehead = &trace;
15666 variable0 = param0;
15667 ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ = variable0 /*n*/;
15668 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PQualified::==*/)))))));
15669 if (UNTAG_Bool(variable1)) { /*if*/
15670 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PQualified::parent=*/;
15671 }
15672 tracehead = trace.prev;
15673 return;
15674 }
15675 void parser_prod___ASuperExpr___n_kwsuper__eq(val_t self, val_t param0) {
15676 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperExpr___n_kwsuper__eq, 8338};
15677 val_t variable0;
15678 val_t variable1;
15679 trace.prev = tracehead; tracehead = &trace;
15680 variable0 = param0;
15681 ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ = variable0 /*n*/;
15682 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
15683 if (UNTAG_Bool(variable1)) { /*if*/
15684 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwsuper::parent=*/;
15685 }
15686 tracehead = trace.prev;
15687 return;
15688 }
15689 void parser_prod___ASuperExpr___empty_init(val_t self, int* init_table) {
15690 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperExpr___empty_init, 8346};
15691 trace.prev = tracehead; tracehead = &trace;
15692 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
15693 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
15694 tracehead = trace.prev;
15695 return;
15696 }
15697 void parser_prod___ASuperExpr___init_asuperexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
15698 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperExpr___init_asuperexpr, 8348};
15699 val_t variable0;
15700 val_t variable1;
15701 val_t variable2;
15702 val_t variable3;
15703 val_t variable4;
15704 val_t variable5;
15705 trace.prev = tracehead; tracehead = &trace;
15706 variable0 = param0;
15707 variable1 = param1;
15708 variable2 = param2;
15709 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
15710 ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ = variable0 /*n_qualified*/;
15711 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_qualified*/ == NIT_NULL /*null*/) || (( variable0 /*n_qualified*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_qualified*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_qualified*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_qualified*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_qualified*/, NIT_NULL /*null*/) /*PQualified::==*/)))))));
15712 if (UNTAG_Bool(variable3)) { /*if*/
15713 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_qualified*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_qualified*/, self) /*PQualified::parent=*/;
15714 }
15715 ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ = variable1 /*n_kwsuper*/;
15716 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwsuper*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwsuper*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwsuper*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwsuper*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwsuper*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwsuper*/, NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
15717 if (UNTAG_Bool(variable3)) { /*if*/
15718 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwsuper*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwsuper*/, self) /*TKwsuper::parent=*/;
15719 }
15720 variable3 = NEW_list___List___init(); /*new List[PExpr]*/
15721 ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/ = variable3;
15722 variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
15723 while (true) { /*for*/
15724 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
15725 if (!UNTAG_Bool(variable4)) break; /*for*/
15726 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
15727 variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15728 if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperExpr___init_asuperexpr, 8364); nit_exit(1);}
15729 variable5 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15730 ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable4 /*n*/) /*List::add*/;
15731 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/, self) /*PExpr::parent=*/;
15732 continue_721: while(0);
15733 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
15734 }
15735 break_721: while(0);
15736 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
15737 tracehead = trace.prev;
15738 return;
15739 }
15740 void parser_prod___ASuperExpr___replace_child(val_t self, val_t param0, val_t param1) {
15741 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperExpr___replace_child, 8370};
15742 val_t variable0;
15743 val_t variable1;
15744 val_t variable2;
15745 val_t variable3;
15746 val_t variable4;
15747 trace.prev = tracehead; tracehead = &trace;
15748 variable0 = param0;
15749 variable1 = param1;
15750 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15751 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperExpr___replace_child, 8372); nit_exit(1);}
15752 variable2 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
15753 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PQualified::==*/)))));
15754 if (UNTAG_Bool(variable2)) { /*if*/
15755 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15756 if (UNTAG_Bool(variable2)) { /*if*/
15757 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15758 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
15759 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperExpr___replace_child, 8376); nit_exit(1);}
15760 ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ = variable1 /*new_child*/;
15761 } else { /*if*/
15762 ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ = NIT_NULL /*null*/;
15763 }
15764 goto return_label722;
15765 }
15766 variable2 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
15767 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwsuper::==*/)))));
15768 if (UNTAG_Bool(variable2)) { /*if*/
15769 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15770 if (UNTAG_Bool(variable2)) { /*if*/
15771 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15772 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
15773 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperExpr___replace_child, 8386); nit_exit(1);}
15774 ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ = variable1 /*new_child*/;
15775 } else { /*if*/
15776 ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ = NIT_NULL /*null*/;
15777 }
15778 goto return_label722;
15779 }
15780 variable2 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15781 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
15782 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
15783 variable2 = variable3;
15784 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
15785 while (true) { /*for*/
15786 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
15787 if (!UNTAG_Bool(variable3)) break; /*for*/
15788 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
15789 variable4 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15790 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
15791 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
15792 if (UNTAG_Bool(variable4)) { /*if*/
15793 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15794 if (UNTAG_Bool(variable4)) { /*if*/
15795 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15796 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperExpr___replace_child, 8396); nit_exit(1);}
15797 variable4 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15798 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
15799 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
15800 } else { /*if*/
15801 variable4 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15802 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
15803 }
15804 goto return_label722;
15805 }
15806 continue_723: while(0);
15807 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
15808 }
15809 break_723: while(0);
15810 return_label722: while(false);
15811 tracehead = trace.prev;
15812 return;
15813 }
15814 void parser_prod___ASuperExpr___visit_all(val_t self, val_t param0) {
15815 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperExpr___visit_all, 8407};
15816 val_t variable0;
15817 val_t variable1;
15818 val_t variable2;
15819 trace.prev = tracehead; tracehead = &trace;
15820 variable0 = param0;
15821 variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
15822 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PQualified::==*/)))))));
15823 if (UNTAG_Bool(variable1)) { /*if*/
15824 variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
15825 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15826 }
15827 variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
15828 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
15829 if (UNTAG_Bool(variable1)) { /*if*/
15830 variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
15831 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15832 }
15833 variable1 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15834 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
15835 while (true) { /*for*/
15836 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
15837 if (!UNTAG_Bool(variable2)) break; /*for*/
15838 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
15839 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
15840 continue_725: while(0);
15841 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
15842 }
15843 break_725: while(0);
15844 tracehead = trace.prev;
15845 return;
15846 }
15847 void parser_prod___ASuperExpr___visit_all_reverse(val_t self, val_t param0) {
15848 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperExpr___visit_all_reverse, 8420};
15849 val_t variable0;
15850 val_t variable1;
15851 val_t variable2;
15852 trace.prev = tracehead; tracehead = &trace;
15853 variable0 = param0;
15854 variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
15855 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PQualified::==*/)))))));
15856 if (UNTAG_Bool(variable1)) { /*if*/
15857 variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
15858 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15859 }
15860 variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
15861 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
15862 if (UNTAG_Bool(variable1)) { /*if*/
15863 variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
15864 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
15865 }
15866 variable2 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15867 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
15868 variable1 = variable2;
15869 while (true) { /*while*/
15870 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
15871 if (!UNTAG_Bool(variable2)) break; /* while*/
15872 variable2 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
15873 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
15874 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
15875 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
15876 variable1 = variable2 /*i=*/;
15877 continue_727: while(0);
15878 }
15879 break_727: while(0);
15880 tracehead = trace.prev;
15881 return;
15882 }
15883 void parser_prod___AInitExpr___n_expr__eq(val_t self, val_t param0) {
15884 struct trace_t trace = {NULL, LOCATE_parser_prod___AInitExpr___n_expr__eq, 8438};
15885 val_t variable0;
15886 val_t variable1;
15887 trace.prev = tracehead; tracehead = &trace;
15888 variable0 = param0;
15889 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ = variable0 /*n*/;
15890 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15891 if (UNTAG_Bool(variable1)) { /*if*/
15892 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
15893 }
15894 tracehead = trace.prev;
15895 return;
15896 }
15897 void parser_prod___AInitExpr___n_kwinit__eq(val_t self, val_t param0) {
15898 struct trace_t trace = {NULL, LOCATE_parser_prod___AInitExpr___n_kwinit__eq, 8445};
15899 val_t variable0;
15900 val_t variable1;
15901 trace.prev = tracehead; tracehead = &trace;
15902 variable0 = param0;
15903 ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ = variable0 /*n*/;
15904 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
15905 if (UNTAG_Bool(variable1)) { /*if*/
15906 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwinit::parent=*/;
15907 }
15908 tracehead = trace.prev;
15909 return;
15910 }
15911 void parser_prod___AInitExpr___empty_init(val_t self, int* init_table) {
15912 struct trace_t trace = {NULL, LOCATE_parser_prod___AInitExpr___empty_init, 8453};
15913 trace.prev = tracehead; tracehead = &trace;
15914 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i]) return;
15915 ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
15916 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
15917 tracehead = trace.prev;
15918 return;
15919 }
15920 void parser_prod___AInitExpr___init_ainitexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
15921 struct trace_t trace = {NULL, LOCATE_parser_prod___AInitExpr___init_ainitexpr, 8455};
15922 val_t variable0;
15923 val_t variable1;
15924 val_t variable2;
15925 val_t variable3;
15926 val_t variable4;
15927 val_t variable5;
15928 trace.prev = tracehead; tracehead = &trace;
15929 variable0 = param0;
15930 variable1 = param1;
15931 variable2 = param2;
15932 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i]) return;
15933 ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
15934 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ = variable0 /*n_expr*/;
15935 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
15936 if (UNTAG_Bool(variable3)) { /*if*/
15937 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
15938 }
15939 ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ = variable1 /*n_kwinit*/;
15940 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwinit*/ == NIT_NULL /*null*/) || (( variable1 /*n_kwinit*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwinit*/, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
15941 if (UNTAG_Bool(variable3)) { /*if*/
15942 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwinit*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwinit*/, self) /*TKwinit::parent=*/;
15943 }
15944 variable3 = NEW_list___List___init(); /*new List[PExpr]*/
15945 ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/ = variable3;
15946 variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
15947 while (true) { /*for*/
15948 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
15949 if (!UNTAG_Bool(variable4)) break; /*for*/
15950 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
15951 variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15952 if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInitExpr___init_ainitexpr, 8471); nit_exit(1);}
15953 variable5 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
15954 ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable4 /*n*/) /*List::add*/;
15955 ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/, self) /*PExpr::parent=*/;
15956 continue_732: while(0);
15957 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
15958 }
15959 break_732: while(0);
15960 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
15961 tracehead = trace.prev;
15962 return;
15963 }
15964 void parser_prod___AInitExpr___replace_child(val_t self, val_t param0, val_t param1) {
15965 struct trace_t trace = {NULL, LOCATE_parser_prod___AInitExpr___replace_child, 8477};
15966 val_t variable0;
15967 val_t variable1;
15968 val_t variable2;
15969 val_t variable3;
15970 val_t variable4;
15971 trace.prev = tracehead; tracehead = &trace;
15972 variable0 = param0;
15973 variable1 = param1;
15974 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15975 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInitExpr___replace_child, 8479); nit_exit(1);}
15976 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
15977 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
15978 if (UNTAG_Bool(variable2)) { /*if*/
15979 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15980 if (UNTAG_Bool(variable2)) { /*if*/
15981 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15982 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
15983 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInitExpr___replace_child, 8483); nit_exit(1);}
15984 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ = variable1 /*new_child*/;
15985 } else { /*if*/
15986 ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ = NIT_NULL /*null*/;
15987 }
15988 goto return_label733;
15989 }
15990 variable2 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
15991 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwinit::==*/)))));
15992 if (UNTAG_Bool(variable2)) { /*if*/
15993 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
15994 if (UNTAG_Bool(variable2)) { /*if*/
15995 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
15996 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
15997 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInitExpr___replace_child, 8493); nit_exit(1);}
15998 ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ = variable1 /*new_child*/;
15999 } else { /*if*/
16000 ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ = NIT_NULL /*null*/;
16001 }
16002 goto return_label733;
16003 }
16004 variable2 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
16005 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16006 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
16007 variable2 = variable3;
16008 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
16009 while (true) { /*for*/
16010 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
16011 if (!UNTAG_Bool(variable3)) break; /*for*/
16012 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
16013 variable4 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
16014 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
16015 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
16016 if (UNTAG_Bool(variable4)) { /*if*/
16017 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16018 if (UNTAG_Bool(variable4)) { /*if*/
16019 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16020 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AInitExpr___replace_child, 8503); nit_exit(1);}
16021 variable4 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
16022 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
16023 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
16024 } else { /*if*/
16025 variable4 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
16026 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
16027 }
16028 goto return_label733;
16029 }
16030 continue_734: while(0);
16031 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
16032 }
16033 break_734: while(0);
16034 return_label733: while(false);
16035 tracehead = trace.prev;
16036 return;
16037 }
16038 void parser_prod___AInitExpr___visit_all(val_t self, val_t param0) {
16039 struct trace_t trace = {NULL, LOCATE_parser_prod___AInitExpr___visit_all, 8514};
16040 val_t variable0;
16041 val_t variable1;
16042 val_t variable2;
16043 trace.prev = tracehead; tracehead = &trace;
16044 variable0 = param0;
16045 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
16046 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16047 if (UNTAG_Bool(variable1)) { /*if*/
16048 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
16049 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16050 }
16051 variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
16052 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
16053 if (UNTAG_Bool(variable1)) { /*if*/
16054 variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
16055 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16056 }
16057 variable1 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
16058 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
16059 while (true) { /*for*/
16060 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
16061 if (!UNTAG_Bool(variable2)) break; /*for*/
16062 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
16063 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
16064 continue_736: while(0);
16065 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
16066 }
16067 break_736: while(0);
16068 tracehead = trace.prev;
16069 return;
16070 }
16071 void parser_prod___AInitExpr___visit_all_reverse(val_t self, val_t param0) {
16072 struct trace_t trace = {NULL, LOCATE_parser_prod___AInitExpr___visit_all_reverse, 8527};
16073 val_t variable0;
16074 val_t variable1;
16075 val_t variable2;
16076 trace.prev = tracehead; tracehead = &trace;
16077 variable0 = param0;
16078 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
16079 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16080 if (UNTAG_Bool(variable1)) { /*if*/
16081 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
16082 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16083 }
16084 variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
16085 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwinit::==*/)))))));
16086 if (UNTAG_Bool(variable1)) { /*if*/
16087 variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
16088 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16089 }
16090 variable2 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
16091 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16092 variable1 = variable2;
16093 while (true) { /*while*/
16094 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
16095 if (!UNTAG_Bool(variable2)) break; /* while*/
16096 variable2 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
16097 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
16098 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
16099 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
16100 variable1 = variable2 /*i=*/;
16101 continue_738: while(0);
16102 }
16103 break_738: while(0);
16104 tracehead = trace.prev;
16105 return;
16106 }
16107 void parser_prod___ABraExpr___n_expr__eq(val_t self, val_t param0) {
16108 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraExpr___n_expr__eq, 8545};
16109 val_t variable0;
16110 val_t variable1;
16111 trace.prev = tracehead; tracehead = &trace;
16112 variable0 = param0;
16113 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ = variable0 /*n*/;
16114 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16115 if (UNTAG_Bool(variable1)) { /*if*/
16116 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
16117 }
16118 tracehead = trace.prev;
16119 return;
16120 }
16121 void parser_prod___ABraExpr___empty_init(val_t self, int* init_table) {
16122 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraExpr___empty_init, 8553};
16123 trace.prev = tracehead; tracehead = &trace;
16124 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i]) return;
16125 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
16126 tracehead = trace.prev;
16127 return;
16128 }
16129 void parser_prod___ABraExpr___init_abraexpr(val_t self, val_t param0, val_t param1, int* init_table) {
16130 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraExpr___init_abraexpr, 8555};
16131 val_t variable0;
16132 val_t variable1;
16133 val_t variable2;
16134 val_t variable3;
16135 val_t variable4;
16136 trace.prev = tracehead; tracehead = &trace;
16137 variable0 = param0;
16138 variable1 = param1;
16139 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i]) return;
16140 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ = variable0 /*n_expr*/;
16141 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16142 if (UNTAG_Bool(variable2)) { /*if*/
16143 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
16144 }
16145 variable2 = NEW_list___List___init(); /*new List[PExpr]*/
16146 ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/ = variable2;
16147 variable2 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_args*/) /*Array::iterator*/;
16148 while (true) { /*for*/
16149 variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
16150 if (!UNTAG_Bool(variable3)) break; /*for*/
16151 variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
16152 variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16153 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraExpr___init_abraexpr, 8566); nit_exit(1);}
16154 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16155 ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable3 /*n*/) /*List::add*/;
16156 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/, self) /*PExpr::parent=*/;
16157 continue_742: while(0);
16158 ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
16159 }
16160 break_742: while(0);
16161 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
16162 tracehead = trace.prev;
16163 return;
16164 }
16165 void parser_prod___ABraExpr___replace_child(val_t self, val_t param0, val_t param1) {
16166 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraExpr___replace_child, 8572};
16167 val_t variable0;
16168 val_t variable1;
16169 val_t variable2;
16170 val_t variable3;
16171 val_t variable4;
16172 trace.prev = tracehead; tracehead = &trace;
16173 variable0 = param0;
16174 variable1 = param1;
16175 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16176 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraExpr___replace_child, 8574); nit_exit(1);}
16177 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
16178 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
16179 if (UNTAG_Bool(variable2)) { /*if*/
16180 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16181 if (UNTAG_Bool(variable2)) { /*if*/
16182 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16183 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16184 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraExpr___replace_child, 8578); nit_exit(1);}
16185 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ = variable1 /*new_child*/;
16186 } else { /*if*/
16187 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ = NIT_NULL /*null*/;
16188 }
16189 goto return_label743;
16190 }
16191 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16192 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16193 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
16194 variable2 = variable3;
16195 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
16196 while (true) { /*for*/
16197 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
16198 if (!UNTAG_Bool(variable3)) break; /*for*/
16199 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
16200 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16201 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
16202 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
16203 if (UNTAG_Bool(variable4)) { /*if*/
16204 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16205 if (UNTAG_Bool(variable4)) { /*if*/
16206 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16207 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraExpr___replace_child, 8588); nit_exit(1);}
16208 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16209 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
16210 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
16211 } else { /*if*/
16212 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16213 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
16214 }
16215 goto return_label743;
16216 }
16217 continue_744: while(0);
16218 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
16219 }
16220 break_744: while(0);
16221 return_label743: while(false);
16222 tracehead = trace.prev;
16223 return;
16224 }
16225 void parser_prod___ABraExpr___visit_all(val_t self, val_t param0) {
16226 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraExpr___visit_all, 8599};
16227 val_t variable0;
16228 val_t variable1;
16229 val_t variable2;
16230 trace.prev = tracehead; tracehead = &trace;
16231 variable0 = param0;
16232 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
16233 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16234 if (UNTAG_Bool(variable1)) { /*if*/
16235 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
16236 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16237 }
16238 variable1 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16239 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
16240 while (true) { /*for*/
16241 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
16242 if (!UNTAG_Bool(variable2)) break; /*for*/
16243 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
16244 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
16245 continue_746: while(0);
16246 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
16247 }
16248 break_746: while(0);
16249 tracehead = trace.prev;
16250 return;
16251 }
16252 void parser_prod___ABraExpr___visit_all_reverse(val_t self, val_t param0) {
16253 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraExpr___visit_all_reverse, 8609};
16254 val_t variable0;
16255 val_t variable1;
16256 val_t variable2;
16257 trace.prev = tracehead; tracehead = &trace;
16258 variable0 = param0;
16259 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
16260 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16261 if (UNTAG_Bool(variable1)) { /*if*/
16262 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
16263 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16264 }
16265 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16266 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16267 variable1 = variable2;
16268 while (true) { /*while*/
16269 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
16270 if (!UNTAG_Bool(variable2)) break; /* while*/
16271 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
16272 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
16273 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
16274 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
16275 variable1 = variable2 /*i=*/;
16276 continue_748: while(0);
16277 }
16278 break_748: while(0);
16279 tracehead = trace.prev;
16280 return;
16281 }
16282 void parser_prod___ABraAssignExpr___n_expr__eq(val_t self, val_t param0) {
16283 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___n_expr__eq, 8624};
16284 val_t variable0;
16285 val_t variable1;
16286 trace.prev = tracehead; tracehead = &trace;
16287 variable0 = param0;
16288 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ = variable0 /*n*/;
16289 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16290 if (UNTAG_Bool(variable1)) { /*if*/
16291 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
16292 }
16293 tracehead = trace.prev;
16294 return;
16295 }
16296 void parser_prod___ABraAssignExpr___n_assign__eq(val_t self, val_t param0) {
16297 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___n_assign__eq, 8631};
16298 val_t variable0;
16299 val_t variable1;
16300 trace.prev = tracehead; tracehead = &trace;
16301 variable0 = param0;
16302 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ = variable0 /*n*/;
16303 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
16304 if (UNTAG_Bool(variable1)) { /*if*/
16305 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAssign::parent=*/;
16306 }
16307 tracehead = trace.prev;
16308 return;
16309 }
16310 void parser_prod___ABraAssignExpr___n_value__eq(val_t self, val_t param0) {
16311 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___n_value__eq, 8638};
16312 val_t variable0;
16313 val_t variable1;
16314 trace.prev = tracehead; tracehead = &trace;
16315 variable0 = param0;
16316 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ = variable0 /*n*/;
16317 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16318 if (UNTAG_Bool(variable1)) { /*if*/
16319 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
16320 }
16321 tracehead = trace.prev;
16322 return;
16323 }
16324 void parser_prod___ABraAssignExpr___empty_init(val_t self, int* init_table) {
16325 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___empty_init, 8646};
16326 trace.prev = tracehead; tracehead = &trace;
16327 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
16328 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
16329 tracehead = trace.prev;
16330 return;
16331 }
16332 void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
16333 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr, 8648};
16334 val_t variable0;
16335 val_t variable1;
16336 val_t variable2;
16337 val_t variable3;
16338 val_t variable4;
16339 val_t variable5;
16340 val_t variable6;
16341 trace.prev = tracehead; tracehead = &trace;
16342 variable0 = param0;
16343 variable1 = param1;
16344 variable2 = param2;
16345 variable3 = param3;
16346 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
16347 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ = variable0 /*n_expr*/;
16348 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16349 if (UNTAG_Bool(variable4)) { /*if*/
16350 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
16351 }
16352 variable4 = NEW_list___List___init(); /*new List[PExpr]*/
16353 ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/ = variable4;
16354 variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_args*/) /*Array::iterator*/;
16355 while (true) { /*for*/
16356 variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
16357 if (!UNTAG_Bool(variable5)) break; /*for*/
16358 variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
16359 variable6 = TAG_Bool(( variable5 /*n*/==NIT_NULL) || VAL_ISA( variable5 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16360 if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr, 8661); nit_exit(1);}
16361 variable6 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16362 ((abstract_collection___IndexedCollection___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6, variable5 /*n*/) /*List::add*/;
16363 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n*/, self) /*PExpr::parent=*/;
16364 continue_754: while(0);
16365 ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
16366 }
16367 break_754: while(0);
16368 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ = variable2 /*n_assign*/;
16369 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign*/ == NIT_NULL /*null*/) || (( variable2 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
16370 if (UNTAG_Bool(variable4)) { /*if*/
16371 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign*/, self) /*TAssign::parent=*/;
16372 }
16373 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ = variable3 /*n_value*/;
16374 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ == NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16375 if (UNTAG_Bool(variable4)) { /*if*/
16376 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/, self) /*PExpr::parent=*/;
16377 }
16378 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
16379 tracehead = trace.prev;
16380 return;
16381 }
16382 void parser_prod___ABraAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
16383 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___replace_child, 8675};
16384 val_t variable0;
16385 val_t variable1;
16386 val_t variable2;
16387 val_t variable3;
16388 val_t variable4;
16389 trace.prev = tracehead; tracehead = &trace;
16390 variable0 = param0;
16391 variable1 = param1;
16392 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16393 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraAssignExpr___replace_child, 8677); nit_exit(1);}
16394 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
16395 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
16396 if (UNTAG_Bool(variable2)) { /*if*/
16397 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16398 if (UNTAG_Bool(variable2)) { /*if*/
16399 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16400 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16401 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraAssignExpr___replace_child, 8681); nit_exit(1);}
16402 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ = variable1 /*new_child*/;
16403 } else { /*if*/
16404 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ = NIT_NULL /*null*/;
16405 }
16406 goto return_label755;
16407 }
16408 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16409 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16410 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
16411 variable2 = variable3;
16412 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
16413 while (true) { /*for*/
16414 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
16415 if (!UNTAG_Bool(variable3)) break; /*for*/
16416 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
16417 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16418 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
16419 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
16420 if (UNTAG_Bool(variable4)) { /*if*/
16421 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16422 if (UNTAG_Bool(variable4)) { /*if*/
16423 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16424 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraAssignExpr___replace_child, 8691); nit_exit(1);}
16425 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16426 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
16427 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
16428 } else { /*if*/
16429 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16430 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
16431 }
16432 goto return_label755;
16433 }
16434 continue_756: while(0);
16435 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
16436 }
16437 break_756: while(0);
16438 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
16439 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAssign::==*/)))));
16440 if (UNTAG_Bool(variable2)) { /*if*/
16441 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16442 if (UNTAG_Bool(variable2)) { /*if*/
16443 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16444 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
16445 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraAssignExpr___replace_child, 8703); nit_exit(1);}
16446 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ = variable1 /*new_child*/;
16447 } else { /*if*/
16448 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ = NIT_NULL /*null*/;
16449 }
16450 goto return_label755;
16451 }
16452 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
16453 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
16454 if (UNTAG_Bool(variable2)) { /*if*/
16455 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16456 if (UNTAG_Bool(variable2)) { /*if*/
16457 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16458 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16459 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraAssignExpr___replace_child, 8713); nit_exit(1);}
16460 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ = variable1 /*new_child*/;
16461 } else { /*if*/
16462 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ = NIT_NULL /*null*/;
16463 }
16464 goto return_label755;
16465 }
16466 return_label755: while(false);
16467 tracehead = trace.prev;
16468 return;
16469 }
16470 void parser_prod___ABraAssignExpr___visit_all(val_t self, val_t param0) {
16471 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___visit_all, 8722};
16472 val_t variable0;
16473 val_t variable1;
16474 val_t variable2;
16475 trace.prev = tracehead; tracehead = &trace;
16476 variable0 = param0;
16477 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
16478 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16479 if (UNTAG_Bool(variable1)) { /*if*/
16480 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
16481 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16482 }
16483 variable1 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16484 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
16485 while (true) { /*for*/
16486 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
16487 if (!UNTAG_Bool(variable2)) break; /*for*/
16488 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
16489 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
16490 continue_758: while(0);
16491 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
16492 }
16493 break_758: while(0);
16494 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
16495 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
16496 if (UNTAG_Bool(variable1)) { /*if*/
16497 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
16498 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16499 }
16500 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
16501 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16502 if (UNTAG_Bool(variable1)) { /*if*/
16503 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
16504 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16505 }
16506 tracehead = trace.prev;
16507 return;
16508 }
16509 void parser_prod___ABraAssignExpr___visit_all_reverse(val_t self, val_t param0) {
16510 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraAssignExpr___visit_all_reverse, 8738};
16511 val_t variable0;
16512 val_t variable1;
16513 val_t variable2;
16514 trace.prev = tracehead; tracehead = &trace;
16515 variable0 = param0;
16516 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
16517 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16518 if (UNTAG_Bool(variable1)) { /*if*/
16519 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
16520 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16521 }
16522 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16523 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16524 variable1 = variable2;
16525 while (true) { /*while*/
16526 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
16527 if (!UNTAG_Bool(variable2)) break; /* while*/
16528 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
16529 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
16530 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
16531 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
16532 variable1 = variable2 /*i=*/;
16533 continue_760: while(0);
16534 }
16535 break_760: while(0);
16536 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
16537 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
16538 if (UNTAG_Bool(variable1)) { /*if*/
16539 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
16540 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16541 }
16542 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
16543 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16544 if (UNTAG_Bool(variable1)) { /*if*/
16545 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
16546 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16547 }
16548 tracehead = trace.prev;
16549 return;
16550 }
16551 void parser_prod___ABraReassignExpr___n_expr__eq(val_t self, val_t param0) {
16552 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___n_expr__eq, 8759};
16553 val_t variable0;
16554 val_t variable1;
16555 trace.prev = tracehead; tracehead = &trace;
16556 variable0 = param0;
16557 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ = variable0 /*n*/;
16558 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16559 if (UNTAG_Bool(variable1)) { /*if*/
16560 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
16561 }
16562 tracehead = trace.prev;
16563 return;
16564 }
16565 void parser_prod___ABraReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
16566 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___n_assign_op__eq, 8766};
16567 val_t variable0;
16568 val_t variable1;
16569 trace.prev = tracehead; tracehead = &trace;
16570 variable0 = param0;
16571 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ = variable0 /*n*/;
16572 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
16573 if (UNTAG_Bool(variable1)) { /*if*/
16574 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PAssignOp::parent=*/;
16575 }
16576 tracehead = trace.prev;
16577 return;
16578 }
16579 void parser_prod___ABraReassignExpr___n_value__eq(val_t self, val_t param0) {
16580 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___n_value__eq, 8773};
16581 val_t variable0;
16582 val_t variable1;
16583 trace.prev = tracehead; tracehead = &trace;
16584 variable0 = param0;
16585 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ = variable0 /*n*/;
16586 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16587 if (UNTAG_Bool(variable1)) { /*if*/
16588 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
16589 }
16590 tracehead = trace.prev;
16591 return;
16592 }
16593 void parser_prod___ABraReassignExpr___empty_init(val_t self, int* init_table) {
16594 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___empty_init, 8781};
16595 trace.prev = tracehead; tracehead = &trace;
16596 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
16597 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
16598 tracehead = trace.prev;
16599 return;
16600 }
16601 void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
16602 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr, 8783};
16603 val_t variable0;
16604 val_t variable1;
16605 val_t variable2;
16606 val_t variable3;
16607 val_t variable4;
16608 val_t variable5;
16609 val_t variable6;
16610 trace.prev = tracehead; tracehead = &trace;
16611 variable0 = param0;
16612 variable1 = param1;
16613 variable2 = param2;
16614 variable3 = param3;
16615 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
16616 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ = variable0 /*n_expr*/;
16617 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16618 if (UNTAG_Bool(variable4)) { /*if*/
16619 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
16620 }
16621 variable4 = NEW_list___List___init(); /*new List[PExpr]*/
16622 ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/ = variable4;
16623 variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_args*/) /*Array::iterator*/;
16624 while (true) { /*for*/
16625 variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
16626 if (!UNTAG_Bool(variable5)) break; /*for*/
16627 variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
16628 variable6 = TAG_Bool(( variable5 /*n*/==NIT_NULL) || VAL_ISA( variable5 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16629 if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr, 8796); nit_exit(1);}
16630 variable6 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16631 ((abstract_collection___IndexedCollection___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6, variable5 /*n*/) /*List::add*/;
16632 ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n*/, self) /*PExpr::parent=*/;
16633 continue_766: while(0);
16634 ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
16635 }
16636 break_766: while(0);
16637 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ = variable2 /*n_assign_op*/;
16638 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable2 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign_op*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
16639 if (UNTAG_Bool(variable4)) { /*if*/
16640 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign_op*/, self) /*PAssignOp::parent=*/;
16641 }
16642 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ = variable3 /*n_value*/;
16643 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ == NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16644 if (UNTAG_Bool(variable4)) { /*if*/
16645 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/, self) /*PExpr::parent=*/;
16646 }
16647 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
16648 tracehead = trace.prev;
16649 return;
16650 }
16651 void parser_prod___ABraReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
16652 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___replace_child, 8810};
16653 val_t variable0;
16654 val_t variable1;
16655 val_t variable2;
16656 val_t variable3;
16657 val_t variable4;
16658 trace.prev = tracehead; tracehead = &trace;
16659 variable0 = param0;
16660 variable1 = param1;
16661 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16662 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraReassignExpr___replace_child, 8812); nit_exit(1);}
16663 variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
16664 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
16665 if (UNTAG_Bool(variable2)) { /*if*/
16666 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16667 if (UNTAG_Bool(variable2)) { /*if*/
16668 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16669 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16670 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraReassignExpr___replace_child, 8816); nit_exit(1);}
16671 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ = variable1 /*new_child*/;
16672 } else { /*if*/
16673 ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ = NIT_NULL /*null*/;
16674 }
16675 goto return_label767;
16676 }
16677 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16678 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16679 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
16680 variable2 = variable3;
16681 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
16682 while (true) { /*for*/
16683 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
16684 if (!UNTAG_Bool(variable3)) break; /*for*/
16685 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
16686 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16687 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
16688 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
16689 if (UNTAG_Bool(variable4)) { /*if*/
16690 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16691 if (UNTAG_Bool(variable4)) { /*if*/
16692 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16693 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraReassignExpr___replace_child, 8826); nit_exit(1);}
16694 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16695 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
16696 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
16697 } else { /*if*/
16698 variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16699 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
16700 }
16701 goto return_label767;
16702 }
16703 continue_768: while(0);
16704 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
16705 }
16706 break_768: while(0);
16707 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
16708 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PAssignOp::==*/)))));
16709 if (UNTAG_Bool(variable2)) { /*if*/
16710 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16711 if (UNTAG_Bool(variable2)) { /*if*/
16712 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16713 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
16714 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraReassignExpr___replace_child, 8838); nit_exit(1);}
16715 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ = variable1 /*new_child*/;
16716 } else { /*if*/
16717 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ = NIT_NULL /*null*/;
16718 }
16719 goto return_label767;
16720 }
16721 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
16722 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
16723 if (UNTAG_Bool(variable2)) { /*if*/
16724 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16725 if (UNTAG_Bool(variable2)) { /*if*/
16726 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16727 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
16728 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ABraReassignExpr___replace_child, 8848); nit_exit(1);}
16729 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ = variable1 /*new_child*/;
16730 } else { /*if*/
16731 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ = NIT_NULL /*null*/;
16732 }
16733 goto return_label767;
16734 }
16735 return_label767: while(false);
16736 tracehead = trace.prev;
16737 return;
16738 }
16739 void parser_prod___ABraReassignExpr___visit_all(val_t self, val_t param0) {
16740 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___visit_all, 8857};
16741 val_t variable0;
16742 val_t variable1;
16743 val_t variable2;
16744 trace.prev = tracehead; tracehead = &trace;
16745 variable0 = param0;
16746 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
16747 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16748 if (UNTAG_Bool(variable1)) { /*if*/
16749 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
16750 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16751 }
16752 variable1 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16753 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
16754 while (true) { /*for*/
16755 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
16756 if (!UNTAG_Bool(variable2)) break; /*for*/
16757 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
16758 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
16759 continue_770: while(0);
16760 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
16761 }
16762 break_770: while(0);
16763 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
16764 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
16765 if (UNTAG_Bool(variable1)) { /*if*/
16766 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
16767 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16768 }
16769 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
16770 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16771 if (UNTAG_Bool(variable1)) { /*if*/
16772 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
16773 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16774 }
16775 tracehead = trace.prev;
16776 return;
16777 }
16778 void parser_prod___ABraReassignExpr___visit_all_reverse(val_t self, val_t param0) {
16779 struct trace_t trace = {NULL, LOCATE_parser_prod___ABraReassignExpr___visit_all_reverse, 8873};
16780 val_t variable0;
16781 val_t variable1;
16782 val_t variable2;
16783 trace.prev = tracehead; tracehead = &trace;
16784 variable0 = param0;
16785 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
16786 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16787 if (UNTAG_Bool(variable1)) { /*if*/
16788 variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
16789 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16790 }
16791 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16792 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
16793 variable1 = variable2;
16794 while (true) { /*while*/
16795 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
16796 if (!UNTAG_Bool(variable2)) break; /* while*/
16797 variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
16798 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
16799 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
16800 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
16801 variable1 = variable2 /*i=*/;
16802 continue_772: while(0);
16803 }
16804 break_772: while(0);
16805 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
16806 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
16807 if (UNTAG_Bool(variable1)) { /*if*/
16808 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
16809 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16810 }
16811 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
16812 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16813 if (UNTAG_Bool(variable1)) { /*if*/
16814 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
16815 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16816 }
16817 tracehead = trace.prev;
16818 return;
16819 }
16820 void parser_prod___AVarExpr___n_id__eq(val_t self, val_t param0) {
16821 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarExpr___n_id__eq, 8894};
16822 val_t variable0;
16823 val_t variable1;
16824 trace.prev = tracehead; tracehead = &trace;
16825 variable0 = param0;
16826 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ = variable0 /*n*/;
16827 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
16828 if (UNTAG_Bool(variable1)) { /*if*/
16829 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
16830 }
16831 tracehead = trace.prev;
16832 return;
16833 }
16834 void parser_prod___AVarExpr___empty_init(val_t self, int* init_table) {
16835 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarExpr___empty_init, 8902};
16836 trace.prev = tracehead; tracehead = &trace;
16837 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i]) return;
16838 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
16839 tracehead = trace.prev;
16840 return;
16841 }
16842 void parser_prod___AVarExpr___init_avarexpr(val_t self, val_t param0, int* init_table) {
16843 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarExpr___init_avarexpr, 8904};
16844 val_t variable0;
16845 val_t variable1;
16846 trace.prev = tracehead; tracehead = &trace;
16847 variable0 = param0;
16848 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i]) return;
16849 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ = variable0 /*n_id*/;
16850 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
16851 if (UNTAG_Bool(variable1)) { /*if*/
16852 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TId::parent=*/;
16853 }
16854 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
16855 tracehead = trace.prev;
16856 return;
16857 }
16858 void parser_prod___AVarExpr___replace_child(val_t self, val_t param0, val_t param1) {
16859 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarExpr___replace_child, 8914};
16860 val_t variable0;
16861 val_t variable1;
16862 val_t variable2;
16863 trace.prev = tracehead; tracehead = &trace;
16864 variable0 = param0;
16865 variable1 = param1;
16866 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16867 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarExpr___replace_child, 8916); nit_exit(1);}
16868 variable2 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
16869 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
16870 if (UNTAG_Bool(variable2)) { /*if*/
16871 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
16872 if (UNTAG_Bool(variable2)) { /*if*/
16873 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
16874 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
16875 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarExpr___replace_child, 8920); nit_exit(1);}
16876 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ = variable1 /*new_child*/;
16877 } else { /*if*/
16878 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ = NIT_NULL /*null*/;
16879 }
16880 goto return_label776;
16881 }
16882 return_label776: while(false);
16883 tracehead = trace.prev;
16884 return;
16885 }
16886 void parser_prod___AVarExpr___visit_all(val_t self, val_t param0) {
16887 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarExpr___visit_all, 8929};
16888 val_t variable0;
16889 val_t variable1;
16890 trace.prev = tracehead; tracehead = &trace;
16891 variable0 = param0;
16892 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
16893 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
16894 if (UNTAG_Bool(variable1)) { /*if*/
16895 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
16896 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16897 }
16898 tracehead = trace.prev;
16899 return;
16900 }
16901 void parser_prod___AVarExpr___visit_all_reverse(val_t self, val_t param0) {
16902 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarExpr___visit_all_reverse, 8936};
16903 val_t variable0;
16904 val_t variable1;
16905 trace.prev = tracehead; tracehead = &trace;
16906 variable0 = param0;
16907 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
16908 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
16909 if (UNTAG_Bool(variable1)) { /*if*/
16910 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
16911 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
16912 }
16913 tracehead = trace.prev;
16914 return;
16915 }
16916 void parser_prod___AVarAssignExpr___n_id__eq(val_t self, val_t param0) {
16917 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___n_id__eq, 8944};
16918 val_t variable0;
16919 val_t variable1;
16920 trace.prev = tracehead; tracehead = &trace;
16921 variable0 = param0;
16922 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ = variable0 /*n*/;
16923 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
16924 if (UNTAG_Bool(variable1)) { /*if*/
16925 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
16926 }
16927 tracehead = trace.prev;
16928 return;
16929 }
16930 void parser_prod___AVarAssignExpr___n_assign__eq(val_t self, val_t param0) {
16931 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___n_assign__eq, 8951};
16932 val_t variable0;
16933 val_t variable1;
16934 trace.prev = tracehead; tracehead = &trace;
16935 variable0 = param0;
16936 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ = variable0 /*n*/;
16937 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
16938 if (UNTAG_Bool(variable1)) { /*if*/
16939 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TAssign::parent=*/;
16940 }
16941 tracehead = trace.prev;
16942 return;
16943 }
16944 void parser_prod___AVarAssignExpr___n_value__eq(val_t self, val_t param0) {
16945 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___n_value__eq, 8958};
16946 val_t variable0;
16947 val_t variable1;
16948 trace.prev = tracehead; tracehead = &trace;
16949 variable0 = param0;
16950 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ = variable0 /*n*/;
16951 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16952 if (UNTAG_Bool(variable1)) { /*if*/
16953 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
16954 }
16955 tracehead = trace.prev;
16956 return;
16957 }
16958 void parser_prod___AVarAssignExpr___empty_init(val_t self, int* init_table) {
16959 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___empty_init, 8966};
16960 trace.prev = tracehead; tracehead = &trace;
16961 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
16962 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
16963 tracehead = trace.prev;
16964 return;
16965 }
16966 void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
16967 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___init_avarassignexpr, 8968};
16968 val_t variable0;
16969 val_t variable1;
16970 val_t variable2;
16971 val_t variable3;
16972 trace.prev = tracehead; tracehead = &trace;
16973 variable0 = param0;
16974 variable1 = param1;
16975 variable2 = param2;
16976 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
16977 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ = variable0 /*n_id*/;
16978 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
16979 if (UNTAG_Bool(variable3)) { /*if*/
16980 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TId::parent=*/;
16981 }
16982 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ = variable1 /*n_assign*/;
16983 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_assign*/ == NIT_NULL /*null*/) || (( variable1 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_assign*/, NIT_NULL /*null*/) /*TAssign::==*/)))))));
16984 if (UNTAG_Bool(variable3)) { /*if*/
16985 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_assign*/, self) /*TAssign::parent=*/;
16986 }
16987 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ = variable2 /*n_value*/;
16988 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_value*/ == NIT_NULL /*null*/) || (( variable2 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
16989 if (UNTAG_Bool(variable3)) { /*if*/
16990 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_value*/, self) /*PExpr::parent=*/;
16991 }
16992 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
16993 tracehead = trace.prev;
16994 return;
16995 }
16996 void parser_prod___AVarAssignExpr___replace_child(val_t self, val_t param0, val_t param1) {
16997 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___replace_child, 8988};
16998 val_t variable0;
16999 val_t variable1;
17000 val_t variable2;
17001 trace.prev = tracehead; tracehead = &trace;
17002 variable0 = param0;
17003 variable1 = param1;
17004 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17005 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarAssignExpr___replace_child, 8990); nit_exit(1);}
17006 variable2 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
17007 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
17008 if (UNTAG_Bool(variable2)) { /*if*/
17009 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17010 if (UNTAG_Bool(variable2)) { /*if*/
17011 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17012 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
17013 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarAssignExpr___replace_child, 8994); nit_exit(1);}
17014 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ = variable1 /*new_child*/;
17015 } else { /*if*/
17016 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ = NIT_NULL /*null*/;
17017 }
17018 goto return_label784;
17019 }
17020 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
17021 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TAssign::==*/)))));
17022 if (UNTAG_Bool(variable2)) { /*if*/
17023 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17024 if (UNTAG_Bool(variable2)) { /*if*/
17025 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17026 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
17027 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarAssignExpr___replace_child, 9004); nit_exit(1);}
17028 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ = variable1 /*new_child*/;
17029 } else { /*if*/
17030 ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ = NIT_NULL /*null*/;
17031 }
17032 goto return_label784;
17033 }
17034 variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
17035 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17036 if (UNTAG_Bool(variable2)) { /*if*/
17037 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17038 if (UNTAG_Bool(variable2)) { /*if*/
17039 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17040 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17041 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarAssignExpr___replace_child, 9014); nit_exit(1);}
17042 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ = variable1 /*new_child*/;
17043 } else { /*if*/
17044 ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ = NIT_NULL /*null*/;
17045 }
17046 goto return_label784;
17047 }
17048 return_label784: while(false);
17049 tracehead = trace.prev;
17050 return;
17051 }
17052 void parser_prod___AVarAssignExpr___visit_all(val_t self, val_t param0) {
17053 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___visit_all, 9023};
17054 val_t variable0;
17055 val_t variable1;
17056 trace.prev = tracehead; tracehead = &trace;
17057 variable0 = param0;
17058 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
17059 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
17060 if (UNTAG_Bool(variable1)) { /*if*/
17061 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
17062 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17063 }
17064 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
17065 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
17066 if (UNTAG_Bool(variable1)) { /*if*/
17067 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
17068 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17069 }
17070 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
17071 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17072 if (UNTAG_Bool(variable1)) { /*if*/
17073 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
17074 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17075 }
17076 tracehead = trace.prev;
17077 return;
17078 }
17079 void parser_prod___AVarAssignExpr___visit_all_reverse(val_t self, val_t param0) {
17080 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarAssignExpr___visit_all_reverse, 9036};
17081 val_t variable0;
17082 val_t variable1;
17083 trace.prev = tracehead; tracehead = &trace;
17084 variable0 = param0;
17085 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
17086 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
17087 if (UNTAG_Bool(variable1)) { /*if*/
17088 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
17089 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17090 }
17091 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
17092 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TAssign::==*/)))))));
17093 if (UNTAG_Bool(variable1)) { /*if*/
17094 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
17095 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17096 }
17097 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
17098 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17099 if (UNTAG_Bool(variable1)) { /*if*/
17100 variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
17101 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17102 }
17103 tracehead = trace.prev;
17104 return;
17105 }
17106 void parser_prod___AVarReassignExpr___n_id__eq(val_t self, val_t param0) {
17107 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___n_id__eq, 9050};
17108 val_t variable0;
17109 val_t variable1;
17110 trace.prev = tracehead; tracehead = &trace;
17111 variable0 = param0;
17112 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ = variable0 /*n*/;
17113 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TId::==*/)))))));
17114 if (UNTAG_Bool(variable1)) { /*if*/
17115 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TId::parent=*/;
17116 }
17117 tracehead = trace.prev;
17118 return;
17119 }
17120 void parser_prod___AVarReassignExpr___n_assign_op__eq(val_t self, val_t param0) {
17121 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___n_assign_op__eq, 9057};
17122 val_t variable0;
17123 val_t variable1;
17124 trace.prev = tracehead; tracehead = &trace;
17125 variable0 = param0;
17126 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ = variable0 /*n*/;
17127 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
17128 if (UNTAG_Bool(variable1)) { /*if*/
17129 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PAssignOp::parent=*/;
17130 }
17131 tracehead = trace.prev;
17132 return;
17133 }
17134 void parser_prod___AVarReassignExpr___n_value__eq(val_t self, val_t param0) {
17135 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___n_value__eq, 9064};
17136 val_t variable0;
17137 val_t variable1;
17138 trace.prev = tracehead; tracehead = &trace;
17139 variable0 = param0;
17140 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ = variable0 /*n*/;
17141 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17142 if (UNTAG_Bool(variable1)) { /*if*/
17143 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
17144 }
17145 tracehead = trace.prev;
17146 return;
17147 }
17148 void parser_prod___AVarReassignExpr___empty_init(val_t self, int* init_table) {
17149 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___empty_init, 9072};
17150 trace.prev = tracehead; tracehead = &trace;
17151 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
17152 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
17153 tracehead = trace.prev;
17154 return;
17155 }
17156 void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
17157 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___init_avarreassignexpr, 9074};
17158 val_t variable0;
17159 val_t variable1;
17160 val_t variable2;
17161 val_t variable3;
17162 trace.prev = tracehead; tracehead = &trace;
17163 variable0 = param0;
17164 variable1 = param1;
17165 variable2 = param2;
17166 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
17167 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ = variable0 /*n_id*/;
17168 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ == NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/, NIT_NULL /*null*/) /*TId::==*/)))))));
17169 if (UNTAG_Bool(variable3)) { /*if*/
17170 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/, self) /*TId::parent=*/;
17171 }
17172 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ = variable1 /*n_assign_op*/;
17173 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_assign_op*/ == NIT_NULL /*null*/) || (( variable1 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_assign_op*/, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
17174 if (UNTAG_Bool(variable3)) { /*if*/
17175 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_assign_op*/, self) /*PAssignOp::parent=*/;
17176 }
17177 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ = variable2 /*n_value*/;
17178 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_value*/ == NIT_NULL /*null*/) || (( variable2 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_value*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17179 if (UNTAG_Bool(variable3)) { /*if*/
17180 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_value*/, self) /*PExpr::parent=*/;
17181 }
17182 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
17183 tracehead = trace.prev;
17184 return;
17185 }
17186 void parser_prod___AVarReassignExpr___replace_child(val_t self, val_t param0, val_t param1) {
17187 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___replace_child, 9094};
17188 val_t variable0;
17189 val_t variable1;
17190 val_t variable2;
17191 trace.prev = tracehead; tracehead = &trace;
17192 variable0 = param0;
17193 variable1 = param1;
17194 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17195 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarReassignExpr___replace_child, 9096); nit_exit(1);}
17196 variable2 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
17197 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TId::==*/)))));
17198 if (UNTAG_Bool(variable2)) { /*if*/
17199 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17200 if (UNTAG_Bool(variable2)) { /*if*/
17201 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17202 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
17203 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarReassignExpr___replace_child, 9100); nit_exit(1);}
17204 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ = variable1 /*new_child*/;
17205 } else { /*if*/
17206 ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ = NIT_NULL /*null*/;
17207 }
17208 goto return_label792;
17209 }
17210 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
17211 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PAssignOp::==*/)))));
17212 if (UNTAG_Bool(variable2)) { /*if*/
17213 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17214 if (UNTAG_Bool(variable2)) { /*if*/
17215 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17216 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
17217 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarReassignExpr___replace_child, 9110); nit_exit(1);}
17218 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ = variable1 /*new_child*/;
17219 } else { /*if*/
17220 ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ = NIT_NULL /*null*/;
17221 }
17222 goto return_label792;
17223 }
17224 variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
17225 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17226 if (UNTAG_Bool(variable2)) { /*if*/
17227 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17228 if (UNTAG_Bool(variable2)) { /*if*/
17229 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17230 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17231 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AVarReassignExpr___replace_child, 9120); nit_exit(1);}
17232 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ = variable1 /*new_child*/;
17233 } else { /*if*/
17234 ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ = NIT_NULL /*null*/;
17235 }
17236 goto return_label792;
17237 }
17238 return_label792: while(false);
17239 tracehead = trace.prev;
17240 return;
17241 }
17242 void parser_prod___AVarReassignExpr___visit_all(val_t self, val_t param0) {
17243 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___visit_all, 9129};
17244 val_t variable0;
17245 val_t variable1;
17246 trace.prev = tracehead; tracehead = &trace;
17247 variable0 = param0;
17248 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
17249 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
17250 if (UNTAG_Bool(variable1)) { /*if*/
17251 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
17252 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17253 }
17254 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
17255 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
17256 if (UNTAG_Bool(variable1)) { /*if*/
17257 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
17258 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17259 }
17260 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
17261 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17262 if (UNTAG_Bool(variable1)) { /*if*/
17263 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
17264 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17265 }
17266 tracehead = trace.prev;
17267 return;
17268 }
17269 void parser_prod___AVarReassignExpr___visit_all_reverse(val_t self, val_t param0) {
17270 struct trace_t trace = {NULL, LOCATE_parser_prod___AVarReassignExpr___visit_all_reverse, 9142};
17271 val_t variable0;
17272 val_t variable1;
17273 trace.prev = tracehead; tracehead = &trace;
17274 variable0 = param0;
17275 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
17276 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TId::==*/)))))));
17277 if (UNTAG_Bool(variable1)) { /*if*/
17278 variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
17279 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17280 }
17281 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
17282 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
17283 if (UNTAG_Bool(variable1)) { /*if*/
17284 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
17285 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17286 }
17287 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
17288 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17289 if (UNTAG_Bool(variable1)) { /*if*/
17290 variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
17291 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17292 }
17293 tracehead = trace.prev;
17294 return;
17295 }
17296 void parser_prod___ARangeExpr___n_expr__eq(val_t self, val_t param0) {
17297 struct trace_t trace = {NULL, LOCATE_parser_prod___ARangeExpr___n_expr__eq, 9156};
17298 val_t variable0;
17299 val_t variable1;
17300 trace.prev = tracehead; tracehead = &trace;
17301 variable0 = param0;
17302 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ = variable0 /*n*/;
17303 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17304 if (UNTAG_Bool(variable1)) { /*if*/
17305 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
17306 }
17307 tracehead = trace.prev;
17308 return;
17309 }
17310 void parser_prod___ARangeExpr___n_expr2__eq(val_t self, val_t param0) {
17311 struct trace_t trace = {NULL, LOCATE_parser_prod___ARangeExpr___n_expr2__eq, 9163};
17312 val_t variable0;
17313 val_t variable1;
17314 trace.prev = tracehead; tracehead = &trace;
17315 variable0 = param0;
17316 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ = variable0 /*n*/;
17317 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17318 if (UNTAG_Bool(variable1)) { /*if*/
17319 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
17320 }
17321 tracehead = trace.prev;
17322 return;
17323 }
17324 void parser_prod___ARangeExpr___empty_init(val_t self, int* init_table) {
17325 struct trace_t trace = {NULL, LOCATE_parser_prod___ARangeExpr___empty_init, 9171};
17326 trace.prev = tracehead; tracehead = &trace;
17327 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
17328 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
17329 tracehead = trace.prev;
17330 return;
17331 }
17332 void parser_prod___ARangeExpr___init_arangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17333 struct trace_t trace = {NULL, LOCATE_parser_prod___ARangeExpr___init_arangeexpr, 9173};
17334 val_t variable0;
17335 val_t variable1;
17336 val_t variable2;
17337 trace.prev = tracehead; tracehead = &trace;
17338 variable0 = param0;
17339 variable1 = param1;
17340 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
17341 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ = variable0 /*n_expr*/;
17342 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17343 if (UNTAG_Bool(variable2)) { /*if*/
17344 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
17345 }
17346 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ = variable1 /*n_expr2*/;
17347 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17348 if (UNTAG_Bool(variable2)) { /*if*/
17349 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
17350 }
17351 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
17352 tracehead = trace.prev;
17353 return;
17354 }
17355 void parser_prod___ARangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
17356 struct trace_t trace = {NULL, LOCATE_parser_prod___ARangeExpr___replace_child, 9188};
17357 val_t variable0;
17358 val_t variable1;
17359 val_t variable2;
17360 trace.prev = tracehead; tracehead = &trace;
17361 variable0 = param0;
17362 variable1 = param1;
17363 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17364 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ARangeExpr___replace_child, 9190); nit_exit(1);}
17365 variable2 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
17366 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17367 if (UNTAG_Bool(variable2)) { /*if*/
17368 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17369 if (UNTAG_Bool(variable2)) { /*if*/
17370 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17371 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17372 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ARangeExpr___replace_child, 9194); nit_exit(1);}
17373 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ = variable1 /*new_child*/;
17374 } else { /*if*/
17375 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ = NIT_NULL /*null*/;
17376 }
17377 goto return_label799;
17378 }
17379 variable2 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
17380 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17381 if (UNTAG_Bool(variable2)) { /*if*/
17382 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17383 if (UNTAG_Bool(variable2)) { /*if*/
17384 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17385 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17386 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ARangeExpr___replace_child, 9204); nit_exit(1);}
17387 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ = variable1 /*new_child*/;
17388 } else { /*if*/
17389 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
17390 }
17391 goto return_label799;
17392 }
17393 return_label799: while(false);
17394 tracehead = trace.prev;
17395 return;
17396 }
17397 void parser_prod___ARangeExpr___visit_all(val_t self, val_t param0) {
17398 struct trace_t trace = {NULL, LOCATE_parser_prod___ARangeExpr___visit_all, 9213};
17399 val_t variable0;
17400 val_t variable1;
17401 trace.prev = tracehead; tracehead = &trace;
17402 variable0 = param0;
17403 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
17404 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17405 if (UNTAG_Bool(variable1)) { /*if*/
17406 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
17407 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17408 }
17409 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
17410 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17411 if (UNTAG_Bool(variable1)) { /*if*/
17412 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
17413 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17414 }
17415 tracehead = trace.prev;
17416 return;
17417 }
17418 void parser_prod___ARangeExpr___visit_all_reverse(val_t self, val_t param0) {
17419 struct trace_t trace = {NULL, LOCATE_parser_prod___ARangeExpr___visit_all_reverse, 9223};
17420 val_t variable0;
17421 val_t variable1;
17422 trace.prev = tracehead; tracehead = &trace;
17423 variable0 = param0;
17424 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
17425 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17426 if (UNTAG_Bool(variable1)) { /*if*/
17427 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
17428 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17429 }
17430 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
17431 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17432 if (UNTAG_Bool(variable1)) { /*if*/
17433 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
17434 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17435 }
17436 tracehead = trace.prev;
17437 return;
17438 }
17439 void parser_prod___ACrangeExpr___n_expr__eq(val_t self, val_t param0) {
17440 struct trace_t trace = {NULL, LOCATE_parser_prod___ACrangeExpr___n_expr__eq, 9234};
17441 val_t variable0;
17442 val_t variable1;
17443 trace.prev = tracehead; tracehead = &trace;
17444 variable0 = param0;
17445 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ = variable0 /*n*/;
17446 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17447 if (UNTAG_Bool(variable1)) { /*if*/
17448 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
17449 }
17450 tracehead = trace.prev;
17451 return;
17452 }
17453 void parser_prod___ACrangeExpr___n_expr2__eq(val_t self, val_t param0) {
17454 struct trace_t trace = {NULL, LOCATE_parser_prod___ACrangeExpr___n_expr2__eq, 9241};
17455 val_t variable0;
17456 val_t variable1;
17457 trace.prev = tracehead; tracehead = &trace;
17458 variable0 = param0;
17459 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ = variable0 /*n*/;
17460 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17461 if (UNTAG_Bool(variable1)) { /*if*/
17462 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
17463 }
17464 tracehead = trace.prev;
17465 return;
17466 }
17467 void parser_prod___ACrangeExpr___empty_init(val_t self, int* init_table) {
17468 struct trace_t trace = {NULL, LOCATE_parser_prod___ACrangeExpr___empty_init, 9249};
17469 trace.prev = tracehead; tracehead = &trace;
17470 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
17471 ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
17472 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
17473 tracehead = trace.prev;
17474 return;
17475 }
17476 void parser_prod___ACrangeExpr___init_acrangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17477 struct trace_t trace = {NULL, LOCATE_parser_prod___ACrangeExpr___init_acrangeexpr, 9251};
17478 val_t variable0;
17479 val_t variable1;
17480 val_t variable2;
17481 trace.prev = tracehead; tracehead = &trace;
17482 variable0 = param0;
17483 variable1 = param1;
17484 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
17485 ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
17486 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ = variable0 /*n_expr*/;
17487 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17488 if (UNTAG_Bool(variable2)) { /*if*/
17489 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
17490 }
17491 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ = variable1 /*n_expr2*/;
17492 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17493 if (UNTAG_Bool(variable2)) { /*if*/
17494 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
17495 }
17496 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
17497 tracehead = trace.prev;
17498 return;
17499 }
17500 void parser_prod___ACrangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
17501 struct trace_t trace = {NULL, LOCATE_parser_prod___ACrangeExpr___replace_child, 9266};
17502 val_t variable0;
17503 val_t variable1;
17504 val_t variable2;
17505 trace.prev = tracehead; tracehead = &trace;
17506 variable0 = param0;
17507 variable1 = param1;
17508 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17509 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACrangeExpr___replace_child, 9268); nit_exit(1);}
17510 variable2 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
17511 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17512 if (UNTAG_Bool(variable2)) { /*if*/
17513 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17514 if (UNTAG_Bool(variable2)) { /*if*/
17515 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17516 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17517 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACrangeExpr___replace_child, 9272); nit_exit(1);}
17518 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ = variable1 /*new_child*/;
17519 } else { /*if*/
17520 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ = NIT_NULL /*null*/;
17521 }
17522 goto return_label806;
17523 }
17524 variable2 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
17525 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17526 if (UNTAG_Bool(variable2)) { /*if*/
17527 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17528 if (UNTAG_Bool(variable2)) { /*if*/
17529 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17530 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17531 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACrangeExpr___replace_child, 9282); nit_exit(1);}
17532 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ = variable1 /*new_child*/;
17533 } else { /*if*/
17534 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
17535 }
17536 goto return_label806;
17537 }
17538 return_label806: while(false);
17539 tracehead = trace.prev;
17540 return;
17541 }
17542 void parser_prod___ACrangeExpr___visit_all(val_t self, val_t param0) {
17543 struct trace_t trace = {NULL, LOCATE_parser_prod___ACrangeExpr___visit_all, 9291};
17544 val_t variable0;
17545 val_t variable1;
17546 trace.prev = tracehead; tracehead = &trace;
17547 variable0 = param0;
17548 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
17549 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17550 if (UNTAG_Bool(variable1)) { /*if*/
17551 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
17552 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17553 }
17554 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
17555 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17556 if (UNTAG_Bool(variable1)) { /*if*/
17557 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
17558 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17559 }
17560 tracehead = trace.prev;
17561 return;
17562 }
17563 void parser_prod___ACrangeExpr___visit_all_reverse(val_t self, val_t param0) {
17564 struct trace_t trace = {NULL, LOCATE_parser_prod___ACrangeExpr___visit_all_reverse, 9301};
17565 val_t variable0;
17566 val_t variable1;
17567 trace.prev = tracehead; tracehead = &trace;
17568 variable0 = param0;
17569 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
17570 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17571 if (UNTAG_Bool(variable1)) { /*if*/
17572 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
17573 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17574 }
17575 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
17576 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17577 if (UNTAG_Bool(variable1)) { /*if*/
17578 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
17579 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17580 }
17581 tracehead = trace.prev;
17582 return;
17583 }
17584 void parser_prod___AOrangeExpr___n_expr__eq(val_t self, val_t param0) {
17585 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrangeExpr___n_expr__eq, 9312};
17586 val_t variable0;
17587 val_t variable1;
17588 trace.prev = tracehead; tracehead = &trace;
17589 variable0 = param0;
17590 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ = variable0 /*n*/;
17591 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17592 if (UNTAG_Bool(variable1)) { /*if*/
17593 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
17594 }
17595 tracehead = trace.prev;
17596 return;
17597 }
17598 void parser_prod___AOrangeExpr___n_expr2__eq(val_t self, val_t param0) {
17599 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrangeExpr___n_expr2__eq, 9319};
17600 val_t variable0;
17601 val_t variable1;
17602 trace.prev = tracehead; tracehead = &trace;
17603 variable0 = param0;
17604 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ = variable0 /*n*/;
17605 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17606 if (UNTAG_Bool(variable1)) { /*if*/
17607 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
17608 }
17609 tracehead = trace.prev;
17610 return;
17611 }
17612 void parser_prod___AOrangeExpr___empty_init(val_t self, int* init_table) {
17613 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrangeExpr___empty_init, 9327};
17614 trace.prev = tracehead; tracehead = &trace;
17615 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
17616 ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
17617 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
17618 tracehead = trace.prev;
17619 return;
17620 }
17621 void parser_prod___AOrangeExpr___init_aorangeexpr(val_t self, val_t param0, val_t param1, int* init_table) {
17622 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrangeExpr___init_aorangeexpr, 9329};
17623 val_t variable0;
17624 val_t variable1;
17625 val_t variable2;
17626 trace.prev = tracehead; tracehead = &trace;
17627 variable0 = param0;
17628 variable1 = param1;
17629 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
17630 ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
17631 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ = variable0 /*n_expr*/;
17632 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17633 if (UNTAG_Bool(variable2)) { /*if*/
17634 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
17635 }
17636 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ = variable1 /*n_expr2*/;
17637 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ == NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17638 if (UNTAG_Bool(variable2)) { /*if*/
17639 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/, self) /*PExpr::parent=*/;
17640 }
17641 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
17642 tracehead = trace.prev;
17643 return;
17644 }
17645 void parser_prod___AOrangeExpr___replace_child(val_t self, val_t param0, val_t param1) {
17646 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrangeExpr___replace_child, 9344};
17647 val_t variable0;
17648 val_t variable1;
17649 val_t variable2;
17650 trace.prev = tracehead; tracehead = &trace;
17651 variable0 = param0;
17652 variable1 = param1;
17653 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17654 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOrangeExpr___replace_child, 9346); nit_exit(1);}
17655 variable2 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
17656 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17657 if (UNTAG_Bool(variable2)) { /*if*/
17658 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17659 if (UNTAG_Bool(variable2)) { /*if*/
17660 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17661 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17662 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOrangeExpr___replace_child, 9350); nit_exit(1);}
17663 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ = variable1 /*new_child*/;
17664 } else { /*if*/
17665 ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ = NIT_NULL /*null*/;
17666 }
17667 goto return_label813;
17668 }
17669 variable2 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
17670 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
17671 if (UNTAG_Bool(variable2)) { /*if*/
17672 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17673 if (UNTAG_Bool(variable2)) { /*if*/
17674 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17675 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17676 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AOrangeExpr___replace_child, 9360); nit_exit(1);}
17677 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ = variable1 /*new_child*/;
17678 } else { /*if*/
17679 ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ = NIT_NULL /*null*/;
17680 }
17681 goto return_label813;
17682 }
17683 return_label813: while(false);
17684 tracehead = trace.prev;
17685 return;
17686 }
17687 void parser_prod___AOrangeExpr___visit_all(val_t self, val_t param0) {
17688 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrangeExpr___visit_all, 9369};
17689 val_t variable0;
17690 val_t variable1;
17691 trace.prev = tracehead; tracehead = &trace;
17692 variable0 = param0;
17693 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
17694 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17695 if (UNTAG_Bool(variable1)) { /*if*/
17696 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
17697 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17698 }
17699 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
17700 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17701 if (UNTAG_Bool(variable1)) { /*if*/
17702 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
17703 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17704 }
17705 tracehead = trace.prev;
17706 return;
17707 }
17708 void parser_prod___AOrangeExpr___visit_all_reverse(val_t self, val_t param0) {
17709 struct trace_t trace = {NULL, LOCATE_parser_prod___AOrangeExpr___visit_all_reverse, 9379};
17710 val_t variable0;
17711 val_t variable1;
17712 trace.prev = tracehead; tracehead = &trace;
17713 variable0 = param0;
17714 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
17715 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17716 if (UNTAG_Bool(variable1)) { /*if*/
17717 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
17718 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17719 }
17720 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
17721 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
17722 if (UNTAG_Bool(variable1)) { /*if*/
17723 variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
17724 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17725 }
17726 tracehead = trace.prev;
17727 return;
17728 }
17729 void parser_prod___AArrayExpr___empty_init(val_t self, int* init_table) {
17730 struct trace_t trace = {NULL, LOCATE_parser_prod___AArrayExpr___empty_init, 9391};
17731 trace.prev = tracehead; tracehead = &trace;
17732 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
17733 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
17734 tracehead = trace.prev;
17735 return;
17736 }
17737 void parser_prod___AArrayExpr___init_aarrayexpr(val_t self, val_t param0, int* init_table) {
17738 struct trace_t trace = {NULL, LOCATE_parser_prod___AArrayExpr___init_aarrayexpr, 9393};
17739 val_t variable0;
17740 val_t variable1;
17741 val_t variable2;
17742 val_t variable3;
17743 trace.prev = tracehead; tracehead = &trace;
17744 variable0 = param0;
17745 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
17746 variable1 = NEW_list___List___init(); /*new List[PExpr]*/
17747 ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/ = variable1;
17748 variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_exprs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_exprs*/) /*Array::iterator*/;
17749 while (true) { /*for*/
17750 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
17751 if (!UNTAG_Bool(variable2)) break; /*for*/
17752 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
17753 variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17754 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AArrayExpr___init_aarrayexpr, 9399); nit_exit(1);}
17755 variable3 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17756 ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable2 /*n*/) /*List::add*/;
17757 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/, self) /*PExpr::parent=*/;
17758 continue_818: while(0);
17759 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
17760 }
17761 break_818: while(0);
17762 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
17763 tracehead = trace.prev;
17764 return;
17765 }
17766 void parser_prod___AArrayExpr___replace_child(val_t self, val_t param0, val_t param1) {
17767 struct trace_t trace = {NULL, LOCATE_parser_prod___AArrayExpr___replace_child, 9405};
17768 val_t variable0;
17769 val_t variable1;
17770 val_t variable2;
17771 val_t variable3;
17772 val_t variable4;
17773 trace.prev = tracehead; tracehead = &trace;
17774 variable0 = param0;
17775 variable1 = param1;
17776 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17777 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AArrayExpr___replace_child, 9407); nit_exit(1);}
17778 variable2 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17779 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
17780 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
17781 variable2 = variable3;
17782 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
17783 while (true) { /*for*/
17784 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
17785 if (!UNTAG_Bool(variable3)) break; /*for*/
17786 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
17787 variable4 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17788 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
17789 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
17790 if (UNTAG_Bool(variable4)) { /*if*/
17791 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17792 if (UNTAG_Bool(variable4)) { /*if*/
17793 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
17794 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AArrayExpr___replace_child, 9411); nit_exit(1);}
17795 variable4 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17796 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
17797 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
17798 } else { /*if*/
17799 variable4 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17800 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
17801 }
17802 goto return_label819;
17803 }
17804 continue_820: while(0);
17805 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
17806 }
17807 break_820: while(0);
17808 return_label819: while(false);
17809 tracehead = trace.prev;
17810 return;
17811 }
17812 void parser_prod___AArrayExpr___visit_all(val_t self, val_t param0) {
17813 struct trace_t trace = {NULL, LOCATE_parser_prod___AArrayExpr___visit_all, 9422};
17814 val_t variable0;
17815 val_t variable1;
17816 val_t variable2;
17817 trace.prev = tracehead; tracehead = &trace;
17818 variable0 = param0;
17819 variable1 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17820 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
17821 while (true) { /*for*/
17822 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
17823 if (!UNTAG_Bool(variable2)) break; /*for*/
17824 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
17825 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
17826 continue_822: while(0);
17827 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
17828 }
17829 break_822: while(0);
17830 tracehead = trace.prev;
17831 return;
17832 }
17833 void parser_prod___AArrayExpr___visit_all_reverse(val_t self, val_t param0) {
17834 struct trace_t trace = {NULL, LOCATE_parser_prod___AArrayExpr___visit_all_reverse, 9429};
17835 val_t variable0;
17836 val_t variable1;
17837 val_t variable2;
17838 trace.prev = tracehead; tracehead = &trace;
17839 variable0 = param0;
17840 variable2 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17841 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
17842 variable1 = variable2;
17843 while (true) { /*while*/
17844 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
17845 if (!UNTAG_Bool(variable2)) break; /* while*/
17846 variable2 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
17847 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
17848 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
17849 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
17850 variable1 = variable2 /*i=*/;
17851 continue_824: while(0);
17852 }
17853 break_824: while(0);
17854 tracehead = trace.prev;
17855 return;
17856 }
17857 void parser_prod___ASelfExpr___n_kwself__eq(val_t self, val_t param0) {
17858 struct trace_t trace = {NULL, LOCATE_parser_prod___ASelfExpr___n_kwself__eq, 9441};
17859 val_t variable0;
17860 val_t variable1;
17861 trace.prev = tracehead; tracehead = &trace;
17862 variable0 = param0;
17863 ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ = variable0 /*n*/;
17864 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwself::==*/)))))));
17865 if (UNTAG_Bool(variable1)) { /*if*/
17866 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwself::parent=*/;
17867 }
17868 tracehead = trace.prev;
17869 return;
17870 }
17871 void parser_prod___ASelfExpr___empty_init(val_t self, int* init_table) {
17872 struct trace_t trace = {NULL, LOCATE_parser_prod___ASelfExpr___empty_init, 9449};
17873 trace.prev = tracehead; tracehead = &trace;
17874 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
17875 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
17876 tracehead = trace.prev;
17877 return;
17878 }
17879 void parser_prod___ASelfExpr___init_aselfexpr(val_t self, val_t param0, int* init_table) {
17880 struct trace_t trace = {NULL, LOCATE_parser_prod___ASelfExpr___init_aselfexpr, 9451};
17881 val_t variable0;
17882 val_t variable1;
17883 trace.prev = tracehead; tracehead = &trace;
17884 variable0 = param0;
17885 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
17886 ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ = variable0 /*n_kwself*/;
17887 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwself*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwself*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwself*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwself*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwself*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwself*/, NIT_NULL /*null*/) /*TKwself::==*/)))))));
17888 if (UNTAG_Bool(variable1)) { /*if*/
17889 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwself*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwself*/, self) /*TKwself::parent=*/;
17890 }
17891 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
17892 tracehead = trace.prev;
17893 return;
17894 }
17895 void parser_prod___ASelfExpr___replace_child(val_t self, val_t param0, val_t param1) {
17896 struct trace_t trace = {NULL, LOCATE_parser_prod___ASelfExpr___replace_child, 9461};
17897 val_t variable0;
17898 val_t variable1;
17899 val_t variable2;
17900 trace.prev = tracehead; tracehead = &trace;
17901 variable0 = param0;
17902 variable1 = param1;
17903 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17904 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASelfExpr___replace_child, 9463); nit_exit(1);}
17905 variable2 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
17906 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwself::==*/)))));
17907 if (UNTAG_Bool(variable2)) { /*if*/
17908 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17909 if (UNTAG_Bool(variable2)) { /*if*/
17910 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
17911 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
17912 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASelfExpr___replace_child, 9467); nit_exit(1);}
17913 ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ = variable1 /*new_child*/;
17914 } else { /*if*/
17915 ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ = NIT_NULL /*null*/;
17916 }
17917 goto return_label828;
17918 }
17919 return_label828: while(false);
17920 tracehead = trace.prev;
17921 return;
17922 }
17923 void parser_prod___ASelfExpr___visit_all(val_t self, val_t param0) {
17924 struct trace_t trace = {NULL, LOCATE_parser_prod___ASelfExpr___visit_all, 9476};
17925 val_t variable0;
17926 val_t variable1;
17927 trace.prev = tracehead; tracehead = &trace;
17928 variable0 = param0;
17929 variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
17930 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwself::==*/)))))));
17931 if (UNTAG_Bool(variable1)) { /*if*/
17932 variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
17933 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17934 }
17935 tracehead = trace.prev;
17936 return;
17937 }
17938 void parser_prod___ASelfExpr___visit_all_reverse(val_t self, val_t param0) {
17939 struct trace_t trace = {NULL, LOCATE_parser_prod___ASelfExpr___visit_all_reverse, 9483};
17940 val_t variable0;
17941 val_t variable1;
17942 trace.prev = tracehead; tracehead = &trace;
17943 variable0 = param0;
17944 variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
17945 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwself::==*/)))))));
17946 if (UNTAG_Bool(variable1)) { /*if*/
17947 variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
17948 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
17949 }
17950 tracehead = trace.prev;
17951 return;
17952 }
17953 void parser_prod___AImplicitSelfExpr___empty_init(val_t self, int* init_table) {
17954 struct trace_t trace = {NULL, LOCATE_parser_prod___AImplicitSelfExpr___empty_init, 9492};
17955 trace.prev = tracehead; tracehead = &trace;
17956 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
17957 ((parser_prod___ASelfExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASelfExpr___empty_init))( self, init_table /*YYY*/) /*ASelfExpr::empty_init*/;
17958 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
17959 tracehead = trace.prev;
17960 return;
17961 }
17962 void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t self, int* init_table) {
17963 struct trace_t trace = {NULL, LOCATE_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr, 9494};
17964 trace.prev = tracehead; tracehead = &trace;
17965 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
17966 ((parser_prod___ASelfExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASelfExpr___empty_init))( self, init_table /*YYY*/) /*ASelfExpr::empty_init*/;
17967 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
17968 tracehead = trace.prev;
17969 return;
17970 }
17971 void parser_prod___AImplicitSelfExpr___replace_child(val_t self, val_t param0, val_t param1) {
17972 struct trace_t trace = {NULL, LOCATE_parser_prod___AImplicitSelfExpr___replace_child, 9498};
17973 val_t variable0;
17974 val_t variable1;
17975 val_t variable2;
17976 trace.prev = tracehead; tracehead = &trace;
17977 variable0 = param0;
17978 variable1 = param1;
17979 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
17980 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AImplicitSelfExpr___replace_child, 9500); nit_exit(1);}
17981 tracehead = trace.prev;
17982 return;
17983 }
17984 void parser_prod___AImplicitSelfExpr___visit_all(val_t self, val_t param0) {
17985 struct trace_t trace = {NULL, LOCATE_parser_prod___AImplicitSelfExpr___visit_all, 9503};
17986 val_t variable0;
17987 trace.prev = tracehead; tracehead = &trace;
17988 variable0 = param0;
17989 tracehead = trace.prev;
17990 return;
17991 }
17992 void parser_prod___AImplicitSelfExpr___visit_all_reverse(val_t self, val_t param0) {
17993 struct trace_t trace = {NULL, LOCATE_parser_prod___AImplicitSelfExpr___visit_all_reverse, 9507};
17994 val_t variable0;
17995 trace.prev = tracehead; tracehead = &trace;
17996 variable0 = param0;
17997 tracehead = trace.prev;
17998 return;
17999 }
18000 void parser_prod___ATrueExpr___n_kwtrue__eq(val_t self, val_t param0) {
18001 struct trace_t trace = {NULL, LOCATE_parser_prod___ATrueExpr___n_kwtrue__eq, 9512};
18002 val_t variable0;
18003 val_t variable1;
18004 trace.prev = tracehead; tracehead = &trace;
18005 variable0 = param0;
18006 ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ = variable0 /*n*/;
18007 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
18008 if (UNTAG_Bool(variable1)) { /*if*/
18009 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwtrue::parent=*/;
18010 }
18011 tracehead = trace.prev;
18012 return;
18013 }
18014 void parser_prod___ATrueExpr___empty_init(val_t self, int* init_table) {
18015 struct trace_t trace = {NULL, LOCATE_parser_prod___ATrueExpr___empty_init, 9520};
18016 trace.prev = tracehead; tracehead = &trace;
18017 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
18018 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
18019 tracehead = trace.prev;
18020 return;
18021 }
18022 void parser_prod___ATrueExpr___init_atrueexpr(val_t self, val_t param0, int* init_table) {
18023 struct trace_t trace = {NULL, LOCATE_parser_prod___ATrueExpr___init_atrueexpr, 9522};
18024 val_t variable0;
18025 val_t variable1;
18026 trace.prev = tracehead; tracehead = &trace;
18027 variable0 = param0;
18028 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
18029 ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ = variable0 /*n_kwtrue*/;
18030 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwtrue*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwtrue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwtrue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwtrue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwtrue*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwtrue*/, NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
18031 if (UNTAG_Bool(variable1)) { /*if*/
18032 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwtrue*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwtrue*/, self) /*TKwtrue::parent=*/;
18033 }
18034 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
18035 tracehead = trace.prev;
18036 return;
18037 }
18038 void parser_prod___ATrueExpr___replace_child(val_t self, val_t param0, val_t param1) {
18039 struct trace_t trace = {NULL, LOCATE_parser_prod___ATrueExpr___replace_child, 9532};
18040 val_t variable0;
18041 val_t variable1;
18042 val_t variable2;
18043 trace.prev = tracehead; tracehead = &trace;
18044 variable0 = param0;
18045 variable1 = param1;
18046 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18047 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATrueExpr___replace_child, 9534); nit_exit(1);}
18048 variable2 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
18049 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwtrue::==*/)))));
18050 if (UNTAG_Bool(variable2)) { /*if*/
18051 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18052 if (UNTAG_Bool(variable2)) { /*if*/
18053 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18054 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
18055 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ATrueExpr___replace_child, 9538); nit_exit(1);}
18056 ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ = variable1 /*new_child*/;
18057 } else { /*if*/
18058 ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ = NIT_NULL /*null*/;
18059 }
18060 goto return_label839;
18061 }
18062 return_label839: while(false);
18063 tracehead = trace.prev;
18064 return;
18065 }
18066 void parser_prod___ATrueExpr___visit_all(val_t self, val_t param0) {
18067 struct trace_t trace = {NULL, LOCATE_parser_prod___ATrueExpr___visit_all, 9547};
18068 val_t variable0;
18069 val_t variable1;
18070 trace.prev = tracehead; tracehead = &trace;
18071 variable0 = param0;
18072 variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
18073 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
18074 if (UNTAG_Bool(variable1)) { /*if*/
18075 variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
18076 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18077 }
18078 tracehead = trace.prev;
18079 return;
18080 }
18081 void parser_prod___ATrueExpr___visit_all_reverse(val_t self, val_t param0) {
18082 struct trace_t trace = {NULL, LOCATE_parser_prod___ATrueExpr___visit_all_reverse, 9554};
18083 val_t variable0;
18084 val_t variable1;
18085 trace.prev = tracehead; tracehead = &trace;
18086 variable0 = param0;
18087 variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
18088 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
18089 if (UNTAG_Bool(variable1)) { /*if*/
18090 variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
18091 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18092 }
18093 tracehead = trace.prev;
18094 return;
18095 }
18096 void parser_prod___AFalseExpr___n_kwfalse__eq(val_t self, val_t param0) {
18097 struct trace_t trace = {NULL, LOCATE_parser_prod___AFalseExpr___n_kwfalse__eq, 9562};
18098 val_t variable0;
18099 val_t variable1;
18100 trace.prev = tracehead; tracehead = &trace;
18101 variable0 = param0;
18102 ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ = variable0 /*n*/;
18103 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
18104 if (UNTAG_Bool(variable1)) { /*if*/
18105 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwfalse::parent=*/;
18106 }
18107 tracehead = trace.prev;
18108 return;
18109 }
18110 void parser_prod___AFalseExpr___empty_init(val_t self, int* init_table) {
18111 struct trace_t trace = {NULL, LOCATE_parser_prod___AFalseExpr___empty_init, 9570};
18112 trace.prev = tracehead; tracehead = &trace;
18113 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
18114 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
18115 tracehead = trace.prev;
18116 return;
18117 }
18118 void parser_prod___AFalseExpr___init_afalseexpr(val_t self, val_t param0, int* init_table) {
18119 struct trace_t trace = {NULL, LOCATE_parser_prod___AFalseExpr___init_afalseexpr, 9572};
18120 val_t variable0;
18121 val_t variable1;
18122 trace.prev = tracehead; tracehead = &trace;
18123 variable0 = param0;
18124 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
18125 ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ = variable0 /*n_kwfalse*/;
18126 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwfalse*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwfalse*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfalse*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwfalse*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfalse*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwfalse*/, NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
18127 if (UNTAG_Bool(variable1)) { /*if*/
18128 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwfalse*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwfalse*/, self) /*TKwfalse::parent=*/;
18129 }
18130 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
18131 tracehead = trace.prev;
18132 return;
18133 }
18134 void parser_prod___AFalseExpr___replace_child(val_t self, val_t param0, val_t param1) {
18135 struct trace_t trace = {NULL, LOCATE_parser_prod___AFalseExpr___replace_child, 9582};
18136 val_t variable0;
18137 val_t variable1;
18138 val_t variable2;
18139 trace.prev = tracehead; tracehead = &trace;
18140 variable0 = param0;
18141 variable1 = param1;
18142 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18143 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AFalseExpr___replace_child, 9584); nit_exit(1);}
18144 variable2 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
18145 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwfalse::==*/)))));
18146 if (UNTAG_Bool(variable2)) { /*if*/
18147 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18148 if (UNTAG_Bool(variable2)) { /*if*/
18149 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18150 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
18151 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AFalseExpr___replace_child, 9588); nit_exit(1);}
18152 ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ = variable1 /*new_child*/;
18153 } else { /*if*/
18154 ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ = NIT_NULL /*null*/;
18155 }
18156 goto return_label845;
18157 }
18158 return_label845: while(false);
18159 tracehead = trace.prev;
18160 return;
18161 }
18162 void parser_prod___AFalseExpr___visit_all(val_t self, val_t param0) {
18163 struct trace_t trace = {NULL, LOCATE_parser_prod___AFalseExpr___visit_all, 9597};
18164 val_t variable0;
18165 val_t variable1;
18166 trace.prev = tracehead; tracehead = &trace;
18167 variable0 = param0;
18168 variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
18169 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
18170 if (UNTAG_Bool(variable1)) { /*if*/
18171 variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
18172 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18173 }
18174 tracehead = trace.prev;
18175 return;
18176 }
18177 void parser_prod___AFalseExpr___visit_all_reverse(val_t self, val_t param0) {
18178 struct trace_t trace = {NULL, LOCATE_parser_prod___AFalseExpr___visit_all_reverse, 9604};
18179 val_t variable0;
18180 val_t variable1;
18181 trace.prev = tracehead; tracehead = &trace;
18182 variable0 = param0;
18183 variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
18184 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
18185 if (UNTAG_Bool(variable1)) { /*if*/
18186 variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
18187 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18188 }
18189 tracehead = trace.prev;
18190 return;
18191 }
18192 void parser_prod___ANullExpr___n_kwnull__eq(val_t self, val_t param0) {
18193 struct trace_t trace = {NULL, LOCATE_parser_prod___ANullExpr___n_kwnull__eq, 9612};
18194 val_t variable0;
18195 val_t variable1;
18196 trace.prev = tracehead; tracehead = &trace;
18197 variable0 = param0;
18198 ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ = variable0 /*n*/;
18199 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TKwnull::==*/)))))));
18200 if (UNTAG_Bool(variable1)) { /*if*/
18201 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TKwnull::parent=*/;
18202 }
18203 tracehead = trace.prev;
18204 return;
18205 }
18206 void parser_prod___ANullExpr___empty_init(val_t self, int* init_table) {
18207 struct trace_t trace = {NULL, LOCATE_parser_prod___ANullExpr___empty_init, 9620};
18208 trace.prev = tracehead; tracehead = &trace;
18209 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i]) return;
18210 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
18211 tracehead = trace.prev;
18212 return;
18213 }
18214 void parser_prod___ANullExpr___init_anullexpr(val_t self, val_t param0, int* init_table) {
18215 struct trace_t trace = {NULL, LOCATE_parser_prod___ANullExpr___init_anullexpr, 9622};
18216 val_t variable0;
18217 val_t variable1;
18218 trace.prev = tracehead; tracehead = &trace;
18219 variable0 = param0;
18220 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i]) return;
18221 ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ = variable0 /*n_kwnull*/;
18222 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwnull*/ == NIT_NULL /*null*/) || (( variable0 /*n_kwnull*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnull*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwnull*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnull*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwnull*/, NIT_NULL /*null*/) /*TKwnull::==*/)))))));
18223 if (UNTAG_Bool(variable1)) { /*if*/
18224 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwnull*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwnull*/, self) /*TKwnull::parent=*/;
18225 }
18226 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
18227 tracehead = trace.prev;
18228 return;
18229 }
18230 void parser_prod___ANullExpr___replace_child(val_t self, val_t param0, val_t param1) {
18231 struct trace_t trace = {NULL, LOCATE_parser_prod___ANullExpr___replace_child, 9632};
18232 val_t variable0;
18233 val_t variable1;
18234 val_t variable2;
18235 trace.prev = tracehead; tracehead = &trace;
18236 variable0 = param0;
18237 variable1 = param1;
18238 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18239 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANullExpr___replace_child, 9634); nit_exit(1);}
18240 variable2 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
18241 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TKwnull::==*/)))));
18242 if (UNTAG_Bool(variable2)) { /*if*/
18243 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18244 if (UNTAG_Bool(variable2)) { /*if*/
18245 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18246 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
18247 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ANullExpr___replace_child, 9638); nit_exit(1);}
18248 ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ = variable1 /*new_child*/;
18249 } else { /*if*/
18250 ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ = NIT_NULL /*null*/;
18251 }
18252 goto return_label851;
18253 }
18254 return_label851: while(false);
18255 tracehead = trace.prev;
18256 return;
18257 }
18258 void parser_prod___ANullExpr___visit_all(val_t self, val_t param0) {
18259 struct trace_t trace = {NULL, LOCATE_parser_prod___ANullExpr___visit_all, 9647};
18260 val_t variable0;
18261 val_t variable1;
18262 trace.prev = tracehead; tracehead = &trace;
18263 variable0 = param0;
18264 variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
18265 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwnull::==*/)))))));
18266 if (UNTAG_Bool(variable1)) { /*if*/
18267 variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
18268 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18269 }
18270 tracehead = trace.prev;
18271 return;
18272 }
18273 void parser_prod___ANullExpr___visit_all_reverse(val_t self, val_t param0) {
18274 struct trace_t trace = {NULL, LOCATE_parser_prod___ANullExpr___visit_all_reverse, 9654};
18275 val_t variable0;
18276 val_t variable1;
18277 trace.prev = tracehead; tracehead = &trace;
18278 variable0 = param0;
18279 variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
18280 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TKwnull::==*/)))))));
18281 if (UNTAG_Bool(variable1)) { /*if*/
18282 variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
18283 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18284 }
18285 tracehead = trace.prev;
18286 return;
18287 }
18288 void parser_prod___AIntExpr___n_number__eq(val_t self, val_t param0) {
18289 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntExpr___n_number__eq, 9662};
18290 val_t variable0;
18291 val_t variable1;
18292 trace.prev = tracehead; tracehead = &trace;
18293 variable0 = param0;
18294 ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ = variable0 /*n*/;
18295 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TNumber::==*/)))))));
18296 if (UNTAG_Bool(variable1)) { /*if*/
18297 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TNumber::parent=*/;
18298 }
18299 tracehead = trace.prev;
18300 return;
18301 }
18302 void parser_prod___AIntExpr___empty_init(val_t self, int* init_table) {
18303 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntExpr___empty_init, 9670};
18304 trace.prev = tracehead; tracehead = &trace;
18305 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i]) return;
18306 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
18307 tracehead = trace.prev;
18308 return;
18309 }
18310 void parser_prod___AIntExpr___init_aintexpr(val_t self, val_t param0, int* init_table) {
18311 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntExpr___init_aintexpr, 9672};
18312 val_t variable0;
18313 val_t variable1;
18314 trace.prev = tracehead; tracehead = &trace;
18315 variable0 = param0;
18316 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i]) return;
18317 ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ = variable0 /*n_number*/;
18318 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_number*/ == NIT_NULL /*null*/) || (( variable0 /*n_number*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_number*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_number*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_number*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_number*/, NIT_NULL /*null*/) /*TNumber::==*/)))))));
18319 if (UNTAG_Bool(variable1)) { /*if*/
18320 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_number*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_number*/, self) /*TNumber::parent=*/;
18321 }
18322 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
18323 tracehead = trace.prev;
18324 return;
18325 }
18326 void parser_prod___AIntExpr___replace_child(val_t self, val_t param0, val_t param1) {
18327 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntExpr___replace_child, 9682};
18328 val_t variable0;
18329 val_t variable1;
18330 val_t variable2;
18331 trace.prev = tracehead; tracehead = &trace;
18332 variable0 = param0;
18333 variable1 = param1;
18334 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18335 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIntExpr___replace_child, 9684); nit_exit(1);}
18336 variable2 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
18337 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TNumber::==*/)))));
18338 if (UNTAG_Bool(variable2)) { /*if*/
18339 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18340 if (UNTAG_Bool(variable2)) { /*if*/
18341 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18342 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
18343 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AIntExpr___replace_child, 9688); nit_exit(1);}
18344 ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ = variable1 /*new_child*/;
18345 } else { /*if*/
18346 ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ = NIT_NULL /*null*/;
18347 }
18348 goto return_label857;
18349 }
18350 return_label857: while(false);
18351 tracehead = trace.prev;
18352 return;
18353 }
18354 void parser_prod___AIntExpr___visit_all(val_t self, val_t param0) {
18355 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntExpr___visit_all, 9697};
18356 val_t variable0;
18357 val_t variable1;
18358 trace.prev = tracehead; tracehead = &trace;
18359 variable0 = param0;
18360 variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
18361 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TNumber::==*/)))))));
18362 if (UNTAG_Bool(variable1)) { /*if*/
18363 variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
18364 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18365 }
18366 tracehead = trace.prev;
18367 return;
18368 }
18369 void parser_prod___AIntExpr___visit_all_reverse(val_t self, val_t param0) {
18370 struct trace_t trace = {NULL, LOCATE_parser_prod___AIntExpr___visit_all_reverse, 9704};
18371 val_t variable0;
18372 val_t variable1;
18373 trace.prev = tracehead; tracehead = &trace;
18374 variable0 = param0;
18375 variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
18376 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TNumber::==*/)))))));
18377 if (UNTAG_Bool(variable1)) { /*if*/
18378 variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
18379 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18380 }
18381 tracehead = trace.prev;
18382 return;
18383 }
18384 void parser_prod___AFloatExpr___n_float__eq(val_t self, val_t param0) {
18385 struct trace_t trace = {NULL, LOCATE_parser_prod___AFloatExpr___n_float__eq, 9712};
18386 val_t variable0;
18387 val_t variable1;
18388 trace.prev = tracehead; tracehead = &trace;
18389 variable0 = param0;
18390 ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ = variable0 /*n*/;
18391 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TFloat::==*/)))))));
18392 if (UNTAG_Bool(variable1)) { /*if*/
18393 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TFloat::parent=*/;
18394 }
18395 tracehead = trace.prev;
18396 return;
18397 }
18398 void parser_prod___AFloatExpr___empty_init(val_t self, int* init_table) {
18399 struct trace_t trace = {NULL, LOCATE_parser_prod___AFloatExpr___empty_init, 9720};
18400 trace.prev = tracehead; tracehead = &trace;
18401 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
18402 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
18403 tracehead = trace.prev;
18404 return;
18405 }
18406 void parser_prod___AFloatExpr___init_afloatexpr(val_t self, val_t param0, int* init_table) {
18407 struct trace_t trace = {NULL, LOCATE_parser_prod___AFloatExpr___init_afloatexpr, 9722};
18408 val_t variable0;
18409 val_t variable1;
18410 trace.prev = tracehead; tracehead = &trace;
18411 variable0 = param0;
18412 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
18413 ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ = variable0 /*n_float*/;
18414 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_float*/ == NIT_NULL /*null*/) || (( variable0 /*n_float*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_float*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_float*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_float*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_float*/, NIT_NULL /*null*/) /*TFloat::==*/)))))));
18415 if (UNTAG_Bool(variable1)) { /*if*/
18416 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_float*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_float*/, self) /*TFloat::parent=*/;
18417 }
18418 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
18419 tracehead = trace.prev;
18420 return;
18421 }
18422 void parser_prod___AFloatExpr___replace_child(val_t self, val_t param0, val_t param1) {
18423 struct trace_t trace = {NULL, LOCATE_parser_prod___AFloatExpr___replace_child, 9732};
18424 val_t variable0;
18425 val_t variable1;
18426 val_t variable2;
18427 trace.prev = tracehead; tracehead = &trace;
18428 variable0 = param0;
18429 variable1 = param1;
18430 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18431 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AFloatExpr___replace_child, 9734); nit_exit(1);}
18432 variable2 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
18433 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TFloat::==*/)))));
18434 if (UNTAG_Bool(variable2)) { /*if*/
18435 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18436 if (UNTAG_Bool(variable2)) { /*if*/
18437 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18438 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
18439 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AFloatExpr___replace_child, 9738); nit_exit(1);}
18440 ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ = variable1 /*new_child*/;
18441 } else { /*if*/
18442 ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ = NIT_NULL /*null*/;
18443 }
18444 goto return_label863;
18445 }
18446 return_label863: while(false);
18447 tracehead = trace.prev;
18448 return;
18449 }
18450 void parser_prod___AFloatExpr___visit_all(val_t self, val_t param0) {
18451 struct trace_t trace = {NULL, LOCATE_parser_prod___AFloatExpr___visit_all, 9747};
18452 val_t variable0;
18453 val_t variable1;
18454 trace.prev = tracehead; tracehead = &trace;
18455 variable0 = param0;
18456 variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
18457 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TFloat::==*/)))))));
18458 if (UNTAG_Bool(variable1)) { /*if*/
18459 variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
18460 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18461 }
18462 tracehead = trace.prev;
18463 return;
18464 }
18465 void parser_prod___AFloatExpr___visit_all_reverse(val_t self, val_t param0) {
18466 struct trace_t trace = {NULL, LOCATE_parser_prod___AFloatExpr___visit_all_reverse, 9754};
18467 val_t variable0;
18468 val_t variable1;
18469 trace.prev = tracehead; tracehead = &trace;
18470 variable0 = param0;
18471 variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
18472 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TFloat::==*/)))))));
18473 if (UNTAG_Bool(variable1)) { /*if*/
18474 variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
18475 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18476 }
18477 tracehead = trace.prev;
18478 return;
18479 }
18480 void parser_prod___ACharExpr___n_char__eq(val_t self, val_t param0) {
18481 struct trace_t trace = {NULL, LOCATE_parser_prod___ACharExpr___n_char__eq, 9762};
18482 val_t variable0;
18483 val_t variable1;
18484 trace.prev = tracehead; tracehead = &trace;
18485 variable0 = param0;
18486 ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ = variable0 /*n*/;
18487 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TChar::==*/)))))));
18488 if (UNTAG_Bool(variable1)) { /*if*/
18489 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TChar::parent=*/;
18490 }
18491 tracehead = trace.prev;
18492 return;
18493 }
18494 void parser_prod___ACharExpr___empty_init(val_t self, int* init_table) {
18495 struct trace_t trace = {NULL, LOCATE_parser_prod___ACharExpr___empty_init, 9770};
18496 trace.prev = tracehead; tracehead = &trace;
18497 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i]) return;
18498 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
18499 tracehead = trace.prev;
18500 return;
18501 }
18502 void parser_prod___ACharExpr___init_acharexpr(val_t self, val_t param0, int* init_table) {
18503 struct trace_t trace = {NULL, LOCATE_parser_prod___ACharExpr___init_acharexpr, 9772};
18504 val_t variable0;
18505 val_t variable1;
18506 trace.prev = tracehead; tracehead = &trace;
18507 variable0 = param0;
18508 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i]) return;
18509 ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ = variable0 /*n_char*/;
18510 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_char*/ == NIT_NULL /*null*/) || (( variable0 /*n_char*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_char*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_char*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_char*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_char*/, NIT_NULL /*null*/) /*TChar::==*/)))))));
18511 if (UNTAG_Bool(variable1)) { /*if*/
18512 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_char*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_char*/, self) /*TChar::parent=*/;
18513 }
18514 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
18515 tracehead = trace.prev;
18516 return;
18517 }
18518 void parser_prod___ACharExpr___replace_child(val_t self, val_t param0, val_t param1) {
18519 struct trace_t trace = {NULL, LOCATE_parser_prod___ACharExpr___replace_child, 9782};
18520 val_t variable0;
18521 val_t variable1;
18522 val_t variable2;
18523 trace.prev = tracehead; tracehead = &trace;
18524 variable0 = param0;
18525 variable1 = param1;
18526 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18527 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACharExpr___replace_child, 9784); nit_exit(1);}
18528 variable2 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
18529 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TChar::==*/)))));
18530 if (UNTAG_Bool(variable2)) { /*if*/
18531 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18532 if (UNTAG_Bool(variable2)) { /*if*/
18533 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18534 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
18535 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ACharExpr___replace_child, 9788); nit_exit(1);}
18536 ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ = variable1 /*new_child*/;
18537 } else { /*if*/
18538 ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ = NIT_NULL /*null*/;
18539 }
18540 goto return_label869;
18541 }
18542 return_label869: while(false);
18543 tracehead = trace.prev;
18544 return;
18545 }
18546 void parser_prod___ACharExpr___visit_all(val_t self, val_t param0) {
18547 struct trace_t trace = {NULL, LOCATE_parser_prod___ACharExpr___visit_all, 9797};
18548 val_t variable0;
18549 val_t variable1;
18550 trace.prev = tracehead; tracehead = &trace;
18551 variable0 = param0;
18552 variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
18553 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TChar::==*/)))))));
18554 if (UNTAG_Bool(variable1)) { /*if*/
18555 variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
18556 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18557 }
18558 tracehead = trace.prev;
18559 return;
18560 }
18561 void parser_prod___ACharExpr___visit_all_reverse(val_t self, val_t param0) {
18562 struct trace_t trace = {NULL, LOCATE_parser_prod___ACharExpr___visit_all_reverse, 9804};
18563 val_t variable0;
18564 val_t variable1;
18565 trace.prev = tracehead; tracehead = &trace;
18566 variable0 = param0;
18567 variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
18568 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TChar::==*/)))))));
18569 if (UNTAG_Bool(variable1)) { /*if*/
18570 variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
18571 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18572 }
18573 tracehead = trace.prev;
18574 return;
18575 }
18576 void parser_prod___AStringExpr___n_string__eq(val_t self, val_t param0) {
18577 struct trace_t trace = {NULL, LOCATE_parser_prod___AStringExpr___n_string__eq, 9812};
18578 val_t variable0;
18579 val_t variable1;
18580 trace.prev = tracehead; tracehead = &trace;
18581 variable0 = param0;
18582 ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ = variable0 /*n*/;
18583 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TString::==*/)))))));
18584 if (UNTAG_Bool(variable1)) { /*if*/
18585 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TString::parent=*/;
18586 }
18587 tracehead = trace.prev;
18588 return;
18589 }
18590 void parser_prod___AStringExpr___empty_init(val_t self, int* init_table) {
18591 struct trace_t trace = {NULL, LOCATE_parser_prod___AStringExpr___empty_init, 9820};
18592 trace.prev = tracehead; tracehead = &trace;
18593 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i]) return;
18594 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
18595 tracehead = trace.prev;
18596 return;
18597 }
18598 void parser_prod___AStringExpr___init_astringexpr(val_t self, val_t param0, int* init_table) {
18599 struct trace_t trace = {NULL, LOCATE_parser_prod___AStringExpr___init_astringexpr, 9822};
18600 val_t variable0;
18601 val_t variable1;
18602 trace.prev = tracehead; tracehead = &trace;
18603 variable0 = param0;
18604 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i]) return;
18605 ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ = variable0 /*n_string*/;
18606 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ == NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/, NIT_NULL /*null*/) /*TString::==*/)))))));
18607 if (UNTAG_Bool(variable1)) { /*if*/
18608 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/, self) /*TString::parent=*/;
18609 }
18610 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
18611 tracehead = trace.prev;
18612 return;
18613 }
18614 void parser_prod___AStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
18615 struct trace_t trace = {NULL, LOCATE_parser_prod___AStringExpr___replace_child, 9832};
18616 val_t variable0;
18617 val_t variable1;
18618 val_t variable2;
18619 trace.prev = tracehead; tracehead = &trace;
18620 variable0 = param0;
18621 variable1 = param1;
18622 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18623 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStringExpr___replace_child, 9834); nit_exit(1);}
18624 variable2 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
18625 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TString::==*/)))));
18626 if (UNTAG_Bool(variable2)) { /*if*/
18627 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18628 if (UNTAG_Bool(variable2)) { /*if*/
18629 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18630 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
18631 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStringExpr___replace_child, 9838); nit_exit(1);}
18632 ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ = variable1 /*new_child*/;
18633 } else { /*if*/
18634 ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ = NIT_NULL /*null*/;
18635 }
18636 goto return_label875;
18637 }
18638 return_label875: while(false);
18639 tracehead = trace.prev;
18640 return;
18641 }
18642 void parser_prod___AStringExpr___visit_all(val_t self, val_t param0) {
18643 struct trace_t trace = {NULL, LOCATE_parser_prod___AStringExpr___visit_all, 9847};
18644 val_t variable0;
18645 val_t variable1;
18646 trace.prev = tracehead; tracehead = &trace;
18647 variable0 = param0;
18648 variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
18649 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TString::==*/)))))));
18650 if (UNTAG_Bool(variable1)) { /*if*/
18651 variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
18652 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18653 }
18654 tracehead = trace.prev;
18655 return;
18656 }
18657 void parser_prod___AStringExpr___visit_all_reverse(val_t self, val_t param0) {
18658 struct trace_t trace = {NULL, LOCATE_parser_prod___AStringExpr___visit_all_reverse, 9854};
18659 val_t variable0;
18660 val_t variable1;
18661 trace.prev = tracehead; tracehead = &trace;
18662 variable0 = param0;
18663 variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
18664 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TString::==*/)))))));
18665 if (UNTAG_Bool(variable1)) { /*if*/
18666 variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
18667 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18668 }
18669 tracehead = trace.prev;
18670 return;
18671 }
18672 void parser_prod___AStartStringExpr___n_string__eq(val_t self, val_t param0) {
18673 struct trace_t trace = {NULL, LOCATE_parser_prod___AStartStringExpr___n_string__eq, 9862};
18674 val_t variable0;
18675 val_t variable1;
18676 trace.prev = tracehead; tracehead = &trace;
18677 variable0 = param0;
18678 ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ = variable0 /*n*/;
18679 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TStartString::==*/)))))));
18680 if (UNTAG_Bool(variable1)) { /*if*/
18681 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TStartString::parent=*/;
18682 }
18683 tracehead = trace.prev;
18684 return;
18685 }
18686 void parser_prod___AStartStringExpr___empty_init(val_t self, int* init_table) {
18687 struct trace_t trace = {NULL, LOCATE_parser_prod___AStartStringExpr___empty_init, 9870};
18688 trace.prev = tracehead; tracehead = &trace;
18689 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
18690 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
18691 tracehead = trace.prev;
18692 return;
18693 }
18694 void parser_prod___AStartStringExpr___init_astartstringexpr(val_t self, val_t param0, int* init_table) {
18695 struct trace_t trace = {NULL, LOCATE_parser_prod___AStartStringExpr___init_astartstringexpr, 9872};
18696 val_t variable0;
18697 val_t variable1;
18698 trace.prev = tracehead; tracehead = &trace;
18699 variable0 = param0;
18700 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
18701 ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ = variable0 /*n_string*/;
18702 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ == NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/, NIT_NULL /*null*/) /*TStartString::==*/)))))));
18703 if (UNTAG_Bool(variable1)) { /*if*/
18704 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/, self) /*TStartString::parent=*/;
18705 }
18706 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
18707 tracehead = trace.prev;
18708 return;
18709 }
18710 void parser_prod___AStartStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
18711 struct trace_t trace = {NULL, LOCATE_parser_prod___AStartStringExpr___replace_child, 9882};
18712 val_t variable0;
18713 val_t variable1;
18714 val_t variable2;
18715 trace.prev = tracehead; tracehead = &trace;
18716 variable0 = param0;
18717 variable1 = param1;
18718 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18719 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStartStringExpr___replace_child, 9884); nit_exit(1);}
18720 variable2 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
18721 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TStartString::==*/)))));
18722 if (UNTAG_Bool(variable2)) { /*if*/
18723 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18724 if (UNTAG_Bool(variable2)) { /*if*/
18725 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18726 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
18727 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AStartStringExpr___replace_child, 9888); nit_exit(1);}
18728 ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ = variable1 /*new_child*/;
18729 } else { /*if*/
18730 ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ = NIT_NULL /*null*/;
18731 }
18732 goto return_label881;
18733 }
18734 return_label881: while(false);
18735 tracehead = trace.prev;
18736 return;
18737 }
18738 void parser_prod___AStartStringExpr___visit_all(val_t self, val_t param0) {
18739 struct trace_t trace = {NULL, LOCATE_parser_prod___AStartStringExpr___visit_all, 9897};
18740 val_t variable0;
18741 val_t variable1;
18742 trace.prev = tracehead; tracehead = &trace;
18743 variable0 = param0;
18744 variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
18745 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TStartString::==*/)))))));
18746 if (UNTAG_Bool(variable1)) { /*if*/
18747 variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
18748 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18749 }
18750 tracehead = trace.prev;
18751 return;
18752 }
18753 void parser_prod___AStartStringExpr___visit_all_reverse(val_t self, val_t param0) {
18754 struct trace_t trace = {NULL, LOCATE_parser_prod___AStartStringExpr___visit_all_reverse, 9904};
18755 val_t variable0;
18756 val_t variable1;
18757 trace.prev = tracehead; tracehead = &trace;
18758 variable0 = param0;
18759 variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
18760 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TStartString::==*/)))))));
18761 if (UNTAG_Bool(variable1)) { /*if*/
18762 variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
18763 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18764 }
18765 tracehead = trace.prev;
18766 return;
18767 }
18768 void parser_prod___AMidStringExpr___n_string__eq(val_t self, val_t param0) {
18769 struct trace_t trace = {NULL, LOCATE_parser_prod___AMidStringExpr___n_string__eq, 9912};
18770 val_t variable0;
18771 val_t variable1;
18772 trace.prev = tracehead; tracehead = &trace;
18773 variable0 = param0;
18774 ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ = variable0 /*n*/;
18775 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TMidString::==*/)))))));
18776 if (UNTAG_Bool(variable1)) { /*if*/
18777 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TMidString::parent=*/;
18778 }
18779 tracehead = trace.prev;
18780 return;
18781 }
18782 void parser_prod___AMidStringExpr___empty_init(val_t self, int* init_table) {
18783 struct trace_t trace = {NULL, LOCATE_parser_prod___AMidStringExpr___empty_init, 9920};
18784 trace.prev = tracehead; tracehead = &trace;
18785 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
18786 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
18787 tracehead = trace.prev;
18788 return;
18789 }
18790 void parser_prod___AMidStringExpr___init_amidstringexpr(val_t self, val_t param0, int* init_table) {
18791 struct trace_t trace = {NULL, LOCATE_parser_prod___AMidStringExpr___init_amidstringexpr, 9922};
18792 val_t variable0;
18793 val_t variable1;
18794 trace.prev = tracehead; tracehead = &trace;
18795 variable0 = param0;
18796 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
18797 ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ = variable0 /*n_string*/;
18798 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ == NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/, NIT_NULL /*null*/) /*TMidString::==*/)))))));
18799 if (UNTAG_Bool(variable1)) { /*if*/
18800 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/, self) /*TMidString::parent=*/;
18801 }
18802 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
18803 tracehead = trace.prev;
18804 return;
18805 }
18806 void parser_prod___AMidStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
18807 struct trace_t trace = {NULL, LOCATE_parser_prod___AMidStringExpr___replace_child, 9932};
18808 val_t variable0;
18809 val_t variable1;
18810 val_t variable2;
18811 trace.prev = tracehead; tracehead = &trace;
18812 variable0 = param0;
18813 variable1 = param1;
18814 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18815 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMidStringExpr___replace_child, 9934); nit_exit(1);}
18816 variable2 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
18817 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TMidString::==*/)))));
18818 if (UNTAG_Bool(variable2)) { /*if*/
18819 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18820 if (UNTAG_Bool(variable2)) { /*if*/
18821 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18822 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
18823 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMidStringExpr___replace_child, 9938); nit_exit(1);}
18824 ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ = variable1 /*new_child*/;
18825 } else { /*if*/
18826 ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ = NIT_NULL /*null*/;
18827 }
18828 goto return_label887;
18829 }
18830 return_label887: while(false);
18831 tracehead = trace.prev;
18832 return;
18833 }
18834 void parser_prod___AMidStringExpr___visit_all(val_t self, val_t param0) {
18835 struct trace_t trace = {NULL, LOCATE_parser_prod___AMidStringExpr___visit_all, 9947};
18836 val_t variable0;
18837 val_t variable1;
18838 trace.prev = tracehead; tracehead = &trace;
18839 variable0 = param0;
18840 variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
18841 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMidString::==*/)))))));
18842 if (UNTAG_Bool(variable1)) { /*if*/
18843 variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
18844 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18845 }
18846 tracehead = trace.prev;
18847 return;
18848 }
18849 void parser_prod___AMidStringExpr___visit_all_reverse(val_t self, val_t param0) {
18850 struct trace_t trace = {NULL, LOCATE_parser_prod___AMidStringExpr___visit_all_reverse, 9954};
18851 val_t variable0;
18852 val_t variable1;
18853 trace.prev = tracehead; tracehead = &trace;
18854 variable0 = param0;
18855 variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
18856 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMidString::==*/)))))));
18857 if (UNTAG_Bool(variable1)) { /*if*/
18858 variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
18859 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18860 }
18861 tracehead = trace.prev;
18862 return;
18863 }
18864 void parser_prod___AEndStringExpr___n_string__eq(val_t self, val_t param0) {
18865 struct trace_t trace = {NULL, LOCATE_parser_prod___AEndStringExpr___n_string__eq, 9962};
18866 val_t variable0;
18867 val_t variable1;
18868 trace.prev = tracehead; tracehead = &trace;
18869 variable0 = param0;
18870 ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ = variable0 /*n*/;
18871 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TEndString::==*/)))))));
18872 if (UNTAG_Bool(variable1)) { /*if*/
18873 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TEndString::parent=*/;
18874 }
18875 tracehead = trace.prev;
18876 return;
18877 }
18878 void parser_prod___AEndStringExpr___empty_init(val_t self, int* init_table) {
18879 struct trace_t trace = {NULL, LOCATE_parser_prod___AEndStringExpr___empty_init, 9970};
18880 trace.prev = tracehead; tracehead = &trace;
18881 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
18882 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
18883 tracehead = trace.prev;
18884 return;
18885 }
18886 void parser_prod___AEndStringExpr___init_aendstringexpr(val_t self, val_t param0, int* init_table) {
18887 struct trace_t trace = {NULL, LOCATE_parser_prod___AEndStringExpr___init_aendstringexpr, 9972};
18888 val_t variable0;
18889 val_t variable1;
18890 trace.prev = tracehead; tracehead = &trace;
18891 variable0 = param0;
18892 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
18893 ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ = variable0 /*n_string*/;
18894 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ == NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/, NIT_NULL /*null*/) /*TEndString::==*/)))))));
18895 if (UNTAG_Bool(variable1)) { /*if*/
18896 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/, self) /*TEndString::parent=*/;
18897 }
18898 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
18899 tracehead = trace.prev;
18900 return;
18901 }
18902 void parser_prod___AEndStringExpr___replace_child(val_t self, val_t param0, val_t param1) {
18903 struct trace_t trace = {NULL, LOCATE_parser_prod___AEndStringExpr___replace_child, 9982};
18904 val_t variable0;
18905 val_t variable1;
18906 val_t variable2;
18907 trace.prev = tracehead; tracehead = &trace;
18908 variable0 = param0;
18909 variable1 = param1;
18910 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18911 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEndStringExpr___replace_child, 9984); nit_exit(1);}
18912 variable2 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
18913 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TEndString::==*/)))));
18914 if (UNTAG_Bool(variable2)) { /*if*/
18915 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
18916 if (UNTAG_Bool(variable2)) { /*if*/
18917 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
18918 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
18919 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AEndStringExpr___replace_child, 9988); nit_exit(1);}
18920 ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ = variable1 /*new_child*/;
18921 } else { /*if*/
18922 ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ = NIT_NULL /*null*/;
18923 }
18924 goto return_label893;
18925 }
18926 return_label893: while(false);
18927 tracehead = trace.prev;
18928 return;
18929 }
18930 void parser_prod___AEndStringExpr___visit_all(val_t self, val_t param0) {
18931 struct trace_t trace = {NULL, LOCATE_parser_prod___AEndStringExpr___visit_all, 9997};
18932 val_t variable0;
18933 val_t variable1;
18934 trace.prev = tracehead; tracehead = &trace;
18935 variable0 = param0;
18936 variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
18937 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TEndString::==*/)))))));
18938 if (UNTAG_Bool(variable1)) { /*if*/
18939 variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
18940 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18941 }
18942 tracehead = trace.prev;
18943 return;
18944 }
18945 void parser_prod___AEndStringExpr___visit_all_reverse(val_t self, val_t param0) {
18946 struct trace_t trace = {NULL, LOCATE_parser_prod___AEndStringExpr___visit_all_reverse, 10004};
18947 val_t variable0;
18948 val_t variable1;
18949 trace.prev = tracehead; tracehead = &trace;
18950 variable0 = param0;
18951 variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
18952 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TEndString::==*/)))))));
18953 if (UNTAG_Bool(variable1)) { /*if*/
18954 variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
18955 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
18956 }
18957 tracehead = trace.prev;
18958 return;
18959 }
18960 void parser_prod___ASuperstringExpr___empty_init(val_t self, int* init_table) {
18961 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperstringExpr___empty_init, 10013};
18962 trace.prev = tracehead; tracehead = &trace;
18963 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
18964 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
18965 tracehead = trace.prev;
18966 return;
18967 }
18968 void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t self, val_t param0, int* init_table) {
18969 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr, 10015};
18970 val_t variable0;
18971 val_t variable1;
18972 val_t variable2;
18973 val_t variable3;
18974 trace.prev = tracehead; tracehead = &trace;
18975 variable0 = param0;
18976 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
18977 variable1 = NEW_list___List___init(); /*new List[PExpr]*/
18978 ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/ = variable1;
18979 variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_exprs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_exprs*/) /*Array::iterator*/;
18980 while (true) { /*for*/
18981 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
18982 if (!UNTAG_Bool(variable2)) break; /*for*/
18983 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
18984 variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
18985 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr, 10021); nit_exit(1);}
18986 variable3 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
18987 ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable2 /*n*/) /*List::add*/;
18988 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/, self) /*PExpr::parent=*/;
18989 continue_898: while(0);
18990 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
18991 }
18992 break_898: while(0);
18993 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
18994 tracehead = trace.prev;
18995 return;
18996 }
18997 void parser_prod___ASuperstringExpr___replace_child(val_t self, val_t param0, val_t param1) {
18998 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperstringExpr___replace_child, 10027};
18999 val_t variable0;
19000 val_t variable1;
19001 val_t variable2;
19002 val_t variable3;
19003 val_t variable4;
19004 trace.prev = tracehead; tracehead = &trace;
19005 variable0 = param0;
19006 variable1 = param1;
19007 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19008 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperstringExpr___replace_child, 10029); nit_exit(1);}
19009 variable2 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
19010 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
19011 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
19012 variable2 = variable3;
19013 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
19014 while (true) { /*for*/
19015 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
19016 if (!UNTAG_Bool(variable3)) break; /*for*/
19017 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
19018 variable4 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
19019 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
19020 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*PExpr::==*/)))));
19021 if (UNTAG_Bool(variable4)) { /*if*/
19022 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19023 if (UNTAG_Bool(variable4)) { /*if*/
19024 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19025 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ASuperstringExpr___replace_child, 10033); nit_exit(1);}
19026 variable4 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
19027 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
19028 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PExpr::parent=*/;
19029 } else { /*if*/
19030 variable4 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
19031 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
19032 }
19033 goto return_label899;
19034 }
19035 continue_900: while(0);
19036 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
19037 }
19038 break_900: while(0);
19039 return_label899: while(false);
19040 tracehead = trace.prev;
19041 return;
19042 }
19043 void parser_prod___ASuperstringExpr___visit_all(val_t self, val_t param0) {
19044 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperstringExpr___visit_all, 10044};
19045 val_t variable0;
19046 val_t variable1;
19047 val_t variable2;
19048 trace.prev = tracehead; tracehead = &trace;
19049 variable0 = param0;
19050 variable1 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
19051 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
19052 while (true) { /*for*/
19053 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
19054 if (!UNTAG_Bool(variable2)) break; /*for*/
19055 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
19056 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
19057 continue_902: while(0);
19058 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
19059 }
19060 break_902: while(0);
19061 tracehead = trace.prev;
19062 return;
19063 }
19064 void parser_prod___ASuperstringExpr___visit_all_reverse(val_t self, val_t param0) {
19065 struct trace_t trace = {NULL, LOCATE_parser_prod___ASuperstringExpr___visit_all_reverse, 10051};
19066 val_t variable0;
19067 val_t variable1;
19068 val_t variable2;
19069 trace.prev = tracehead; tracehead = &trace;
19070 variable0 = param0;
19071 variable2 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
19072 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
19073 variable1 = variable2;
19074 while (true) { /*while*/
19075 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
19076 if (!UNTAG_Bool(variable2)) break; /* while*/
19077 variable2 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
19078 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
19079 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
19080 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
19081 variable1 = variable2 /*i=*/;
19082 continue_904: while(0);
19083 }
19084 break_904: while(0);
19085 tracehead = trace.prev;
19086 return;
19087 }
19088 void parser_prod___AParExpr___n_expr__eq(val_t self, val_t param0) {
19089 struct trace_t trace = {NULL, LOCATE_parser_prod___AParExpr___n_expr__eq, 10063};
19090 val_t variable0;
19091 val_t variable1;
19092 trace.prev = tracehead; tracehead = &trace;
19093 variable0 = param0;
19094 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ = variable0 /*n*/;
19095 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
19096 if (UNTAG_Bool(variable1)) { /*if*/
19097 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*PExpr::parent=*/;
19098 }
19099 tracehead = trace.prev;
19100 return;
19101 }
19102 void parser_prod___AParExpr___empty_init(val_t self, int* init_table) {
19103 struct trace_t trace = {NULL, LOCATE_parser_prod___AParExpr___empty_init, 10071};
19104 trace.prev = tracehead; tracehead = &trace;
19105 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i]) return;
19106 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i] = 1;
19107 tracehead = trace.prev;
19108 return;
19109 }
19110 void parser_prod___AParExpr___init_aparexpr(val_t self, val_t param0, int* init_table) {
19111 struct trace_t trace = {NULL, LOCATE_parser_prod___AParExpr___init_aparexpr, 10073};
19112 val_t variable0;
19113 val_t variable1;
19114 trace.prev = tracehead; tracehead = &trace;
19115 variable0 = param0;
19116 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i]) return;
19117 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ = variable0 /*n_expr*/;
19118 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ == NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/, NIT_NULL /*null*/) /*PExpr::==*/)))))));
19119 if (UNTAG_Bool(variable1)) { /*if*/
19120 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/, self) /*PExpr::parent=*/;
19121 }
19122 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i] = 1;
19123 tracehead = trace.prev;
19124 return;
19125 }
19126 void parser_prod___AParExpr___replace_child(val_t self, val_t param0, val_t param1) {
19127 struct trace_t trace = {NULL, LOCATE_parser_prod___AParExpr___replace_child, 10083};
19128 val_t variable0;
19129 val_t variable1;
19130 val_t variable2;
19131 trace.prev = tracehead; tracehead = &trace;
19132 variable0 = param0;
19133 variable1 = param1;
19134 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19135 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AParExpr___replace_child, 10085); nit_exit(1);}
19136 variable2 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
19137 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PExpr::==*/)))));
19138 if (UNTAG_Bool(variable2)) { /*if*/
19139 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19140 if (UNTAG_Bool(variable2)) { /*if*/
19141 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
19142 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
19143 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AParExpr___replace_child, 10089); nit_exit(1);}
19144 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ = variable1 /*new_child*/;
19145 } else { /*if*/
19146 ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ = NIT_NULL /*null*/;
19147 }
19148 goto return_label908;
19149 }
19150 return_label908: while(false);
19151 tracehead = trace.prev;
19152 return;
19153 }
19154 void parser_prod___AParExpr___visit_all(val_t self, val_t param0) {
19155 struct trace_t trace = {NULL, LOCATE_parser_prod___AParExpr___visit_all, 10098};
19156 val_t variable0;
19157 val_t variable1;
19158 trace.prev = tracehead; tracehead = &trace;
19159 variable0 = param0;
19160 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
19161 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
19162 if (UNTAG_Bool(variable1)) { /*if*/
19163 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
19164 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19165 }
19166 tracehead = trace.prev;
19167 return;
19168 }
19169 void parser_prod___AParExpr___visit_all_reverse(val_t self, val_t param0) {
19170 struct trace_t trace = {NULL, LOCATE_parser_prod___AParExpr___visit_all_reverse, 10105};
19171 val_t variable0;
19172 val_t variable1;
19173 trace.prev = tracehead; tracehead = &trace;
19174 variable0 = param0;
19175 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
19176 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PExpr::==*/)))))));
19177 if (UNTAG_Bool(variable1)) { /*if*/
19178 variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
19179 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19180 }
19181 tracehead = trace.prev;
19182 return;
19183 }
19184 void parser_prod___APlusAssignOp___n_pluseq__eq(val_t self, val_t param0) {
19185 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusAssignOp___n_pluseq__eq, 10113};
19186 val_t variable0;
19187 val_t variable1;
19188 trace.prev = tracehead; tracehead = &trace;
19189 variable0 = param0;
19190 ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ = variable0 /*n*/;
19191 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TPluseq::==*/)))))));
19192 if (UNTAG_Bool(variable1)) { /*if*/
19193 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TPluseq::parent=*/;
19194 }
19195 tracehead = trace.prev;
19196 return;
19197 }
19198 void parser_prod___APlusAssignOp___empty_init(val_t self, int* init_table) {
19199 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusAssignOp___empty_init, 10121};
19200 trace.prev = tracehead; tracehead = &trace;
19201 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
19202 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
19203 tracehead = trace.prev;
19204 return;
19205 }
19206 void parser_prod___APlusAssignOp___init_aplusassignop(val_t self, val_t param0, int* init_table) {
19207 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusAssignOp___init_aplusassignop, 10123};
19208 val_t variable0;
19209 val_t variable1;
19210 trace.prev = tracehead; tracehead = &trace;
19211 variable0 = param0;
19212 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
19213 ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ = variable0 /*n_pluseq*/;
19214 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_pluseq*/ == NIT_NULL /*null*/) || (( variable0 /*n_pluseq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_pluseq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_pluseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_pluseq*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_pluseq*/, NIT_NULL /*null*/) /*TPluseq::==*/)))))));
19215 if (UNTAG_Bool(variable1)) { /*if*/
19216 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_pluseq*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_pluseq*/, self) /*TPluseq::parent=*/;
19217 }
19218 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
19219 tracehead = trace.prev;
19220 return;
19221 }
19222 void parser_prod___APlusAssignOp___replace_child(val_t self, val_t param0, val_t param1) {
19223 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusAssignOp___replace_child, 10133};
19224 val_t variable0;
19225 val_t variable1;
19226 val_t variable2;
19227 trace.prev = tracehead; tracehead = &trace;
19228 variable0 = param0;
19229 variable1 = param1;
19230 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19231 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APlusAssignOp___replace_child, 10135); nit_exit(1);}
19232 variable2 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
19233 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TPluseq::==*/)))));
19234 if (UNTAG_Bool(variable2)) { /*if*/
19235 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19236 if (UNTAG_Bool(variable2)) { /*if*/
19237 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
19238 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
19239 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___APlusAssignOp___replace_child, 10139); nit_exit(1);}
19240 ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ = variable1 /*new_child*/;
19241 } else { /*if*/
19242 ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ = NIT_NULL /*null*/;
19243 }
19244 goto return_label914;
19245 }
19246 return_label914: while(false);
19247 tracehead = trace.prev;
19248 return;
19249 }
19250 void parser_prod___APlusAssignOp___visit_all(val_t self, val_t param0) {
19251 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusAssignOp___visit_all, 10148};
19252 val_t variable0;
19253 val_t variable1;
19254 trace.prev = tracehead; tracehead = &trace;
19255 variable0 = param0;
19256 variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
19257 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TPluseq::==*/)))))));
19258 if (UNTAG_Bool(variable1)) { /*if*/
19259 variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
19260 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19261 }
19262 tracehead = trace.prev;
19263 return;
19264 }
19265 void parser_prod___APlusAssignOp___visit_all_reverse(val_t self, val_t param0) {
19266 struct trace_t trace = {NULL, LOCATE_parser_prod___APlusAssignOp___visit_all_reverse, 10155};
19267 val_t variable0;
19268 val_t variable1;
19269 trace.prev = tracehead; tracehead = &trace;
19270 variable0 = param0;
19271 variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
19272 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TPluseq::==*/)))))));
19273 if (UNTAG_Bool(variable1)) { /*if*/
19274 variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
19275 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19276 }
19277 tracehead = trace.prev;
19278 return;
19279 }
19280 void parser_prod___AMinusAssignOp___n_minuseq__eq(val_t self, val_t param0) {
19281 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusAssignOp___n_minuseq__eq, 10163};
19282 val_t variable0;
19283 val_t variable1;
19284 trace.prev = tracehead; tracehead = &trace;
19285 variable0 = param0;
19286 ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ = variable0 /*n*/;
19287 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
19288 if (UNTAG_Bool(variable1)) { /*if*/
19289 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TMinuseq::parent=*/;
19290 }
19291 tracehead = trace.prev;
19292 return;
19293 }
19294 void parser_prod___AMinusAssignOp___empty_init(val_t self, int* init_table) {
19295 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusAssignOp___empty_init, 10171};
19296 trace.prev = tracehead; tracehead = &trace;
19297 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
19298 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
19299 tracehead = trace.prev;
19300 return;
19301 }
19302 void parser_prod___AMinusAssignOp___init_aminusassignop(val_t self, val_t param0, int* init_table) {
19303 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusAssignOp___init_aminusassignop, 10173};
19304 val_t variable0;
19305 val_t variable1;
19306 trace.prev = tracehead; tracehead = &trace;
19307 variable0 = param0;
19308 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
19309 ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ = variable0 /*n_minuseq*/;
19310 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_minuseq*/ == NIT_NULL /*null*/) || (( variable0 /*n_minuseq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_minuseq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_minuseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_minuseq*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_minuseq*/, NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
19311 if (UNTAG_Bool(variable1)) { /*if*/
19312 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_minuseq*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_minuseq*/, self) /*TMinuseq::parent=*/;
19313 }
19314 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
19315 tracehead = trace.prev;
19316 return;
19317 }
19318 void parser_prod___AMinusAssignOp___replace_child(val_t self, val_t param0, val_t param1) {
19319 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusAssignOp___replace_child, 10183};
19320 val_t variable0;
19321 val_t variable1;
19322 val_t variable2;
19323 trace.prev = tracehead; tracehead = &trace;
19324 variable0 = param0;
19325 variable1 = param1;
19326 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19327 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMinusAssignOp___replace_child, 10185); nit_exit(1);}
19328 variable2 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
19329 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TMinuseq::==*/)))));
19330 if (UNTAG_Bool(variable2)) { /*if*/
19331 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19332 if (UNTAG_Bool(variable2)) { /*if*/
19333 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
19334 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
19335 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AMinusAssignOp___replace_child, 10189); nit_exit(1);}
19336 ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ = variable1 /*new_child*/;
19337 } else { /*if*/
19338 ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ = NIT_NULL /*null*/;
19339 }
19340 goto return_label920;
19341 }
19342 return_label920: while(false);
19343 tracehead = trace.prev;
19344 return;
19345 }
19346 void parser_prod___AMinusAssignOp___visit_all(val_t self, val_t param0) {
19347 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusAssignOp___visit_all, 10198};
19348 val_t variable0;
19349 val_t variable1;
19350 trace.prev = tracehead; tracehead = &trace;
19351 variable0 = param0;
19352 variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
19353 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
19354 if (UNTAG_Bool(variable1)) { /*if*/
19355 variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
19356 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19357 }
19358 tracehead = trace.prev;
19359 return;
19360 }
19361 void parser_prod___AMinusAssignOp___visit_all_reverse(val_t self, val_t param0) {
19362 struct trace_t trace = {NULL, LOCATE_parser_prod___AMinusAssignOp___visit_all_reverse, 10205};
19363 val_t variable0;
19364 val_t variable1;
19365 trace.prev = tracehead; tracehead = &trace;
19366 variable0 = param0;
19367 variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
19368 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
19369 if (UNTAG_Bool(variable1)) { /*if*/
19370 variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
19371 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19372 }
19373 tracehead = trace.prev;
19374 return;
19375 }
19376 void parser_prod___AQualified___n_classid__eq(val_t self, val_t param0) {
19377 struct trace_t trace = {NULL, LOCATE_parser_prod___AQualified___n_classid__eq, 10213};
19378 val_t variable0;
19379 val_t variable1;
19380 trace.prev = tracehead; tracehead = &trace;
19381 variable0 = param0;
19382 ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ = variable0 /*n*/;
19383 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
19384 if (UNTAG_Bool(variable1)) { /*if*/
19385 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/, self) /*TClassid::parent=*/;
19386 }
19387 tracehead = trace.prev;
19388 return;
19389 }
19390 void parser_prod___AQualified___empty_init(val_t self, int* init_table) {
19391 struct trace_t trace = {NULL, LOCATE_parser_prod___AQualified___empty_init, 10221};
19392 trace.prev = tracehead; tracehead = &trace;
19393 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i]) return;
19394 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i] = 1;
19395 tracehead = trace.prev;
19396 return;
19397 }
19398 void parser_prod___AQualified___init_aqualified(val_t self, val_t param0, val_t param1, int* init_table) {
19399 struct trace_t trace = {NULL, LOCATE_parser_prod___AQualified___init_aqualified, 10223};
19400 val_t variable0;
19401 val_t variable1;
19402 val_t variable2;
19403 val_t variable3;
19404 val_t variable4;
19405 trace.prev = tracehead; tracehead = &trace;
19406 variable0 = param0;
19407 variable1 = param1;
19408 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i]) return;
19409 variable2 = NEW_list___List___init(); /*new List[TId]*/
19410 ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/ = variable2;
19411 variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_id*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_id*/) /*Array::iterator*/;
19412 while (true) { /*for*/
19413 variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
19414 if (!UNTAG_Bool(variable3)) break; /*for*/
19415 variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
19416 variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
19417 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AQualified___init_aqualified, 10230); nit_exit(1);}
19418 variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19419 ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable3 /*n*/) /*List::add*/;
19420 ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/, self) /*TId::parent=*/;
19421 continue_926: while(0);
19422 ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
19423 }
19424 break_926: while(0);
19425 ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ = variable1 /*n_classid*/;
19426 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_classid*/ == NIT_NULL /*null*/) || (( variable1 /*n_classid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_classid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_classid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_classid*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_classid*/, NIT_NULL /*null*/) /*TClassid::==*/)))))));
19427 if (UNTAG_Bool(variable2)) { /*if*/
19428 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_classid*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_classid*/, self) /*TClassid::parent=*/;
19429 }
19430 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i] = 1;
19431 tracehead = trace.prev;
19432 return;
19433 }
19434 void parser_prod___AQualified___replace_child(val_t self, val_t param0, val_t param1) {
19435 struct trace_t trace = {NULL, LOCATE_parser_prod___AQualified___replace_child, 10240};
19436 val_t variable0;
19437 val_t variable1;
19438 val_t variable2;
19439 val_t variable3;
19440 val_t variable4;
19441 trace.prev = tracehead; tracehead = &trace;
19442 variable0 = param0;
19443 variable1 = param1;
19444 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19445 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AQualified___replace_child, 10242); nit_exit(1);}
19446 variable2 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19447 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
19448 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
19449 variable2 = variable3;
19450 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
19451 while (true) { /*for*/
19452 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
19453 if (!UNTAG_Bool(variable3)) break; /*for*/
19454 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
19455 variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19456 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
19457 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*TId::==*/)))));
19458 if (UNTAG_Bool(variable4)) { /*if*/
19459 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19460 if (UNTAG_Bool(variable4)) { /*if*/
19461 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
19462 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AQualified___replace_child, 10246); nit_exit(1);}
19463 variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19464 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
19465 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*TId::parent=*/;
19466 } else { /*if*/
19467 variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19468 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
19469 }
19470 goto return_label927;
19471 }
19472 continue_928: while(0);
19473 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
19474 }
19475 break_928: while(0);
19476 variable2 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
19477 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*TClassid::==*/)))));
19478 if (UNTAG_Bool(variable2)) { /*if*/
19479 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19480 if (UNTAG_Bool(variable2)) { /*if*/
19481 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
19482 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
19483 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___AQualified___replace_child, 10258); nit_exit(1);}
19484 ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ = variable1 /*new_child*/;
19485 } else { /*if*/
19486 ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ = NIT_NULL /*null*/;
19487 }
19488 goto return_label927;
19489 }
19490 return_label927: while(false);
19491 tracehead = trace.prev;
19492 return;
19493 }
19494 void parser_prod___AQualified___visit_all(val_t self, val_t param0) {
19495 struct trace_t trace = {NULL, LOCATE_parser_prod___AQualified___visit_all, 10267};
19496 val_t variable0;
19497 val_t variable1;
19498 val_t variable2;
19499 trace.prev = tracehead; tracehead = &trace;
19500 variable0 = param0;
19501 variable1 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19502 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
19503 while (true) { /*for*/
19504 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
19505 if (!UNTAG_Bool(variable2)) break; /*for*/
19506 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
19507 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
19508 continue_930: while(0);
19509 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
19510 }
19511 break_930: while(0);
19512 variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
19513 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
19514 if (UNTAG_Bool(variable1)) { /*if*/
19515 variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
19516 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19517 }
19518 tracehead = trace.prev;
19519 return;
19520 }
19521 void parser_prod___AQualified___visit_all_reverse(val_t self, val_t param0) {
19522 struct trace_t trace = {NULL, LOCATE_parser_prod___AQualified___visit_all_reverse, 10277};
19523 val_t variable0;
19524 val_t variable1;
19525 val_t variable2;
19526 trace.prev = tracehead; tracehead = &trace;
19527 variable0 = param0;
19528 variable2 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19529 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
19530 variable1 = variable2;
19531 while (true) { /*while*/
19532 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
19533 if (!UNTAG_Bool(variable2)) break; /* while*/
19534 variable2 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
19535 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
19536 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
19537 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
19538 variable1 = variable2 /*i=*/;
19539 continue_932: while(0);
19540 }
19541 break_932: while(0);
19542 variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
19543 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*TClassid::==*/)))))));
19544 if (UNTAG_Bool(variable1)) { /*if*/
19545 variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
19546 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19547 }
19548 tracehead = trace.prev;
19549 return;
19550 }
19551 void parser_prod___ADoc___empty_init(val_t self, int* init_table) {
19552 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoc___empty_init, 10293};
19553 trace.prev = tracehead; tracehead = &trace;
19554 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i]) return;
19555 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i] = 1;
19556 tracehead = trace.prev;
19557 return;
19558 }
19559 void parser_prod___ADoc___init_adoc(val_t self, val_t param0, int* init_table) {
19560 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoc___init_adoc, 10295};
19561 val_t variable0;
19562 val_t variable1;
19563 val_t variable2;
19564 val_t variable3;
19565 trace.prev = tracehead; tracehead = &trace;
19566 variable0 = param0;
19567 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i]) return;
19568 variable1 = NEW_list___List___init(); /*new List[TComment]*/
19569 ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/ = variable1;
19570 variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_comment*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_comment*/) /*Array::iterator*/;
19571 while (true) { /*for*/
19572 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
19573 if (!UNTAG_Bool(variable2)) break; /*for*/
19574 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
19575 variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
19576 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADoc___init_adoc, 10301); nit_exit(1);}
19577 variable3 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19578 ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable2 /*n*/) /*List::add*/;
19579 ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/, self) /*TComment::parent=*/;
19580 continue_935: while(0);
19581 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
19582 }
19583 break_935: while(0);
19584 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i] = 1;
19585 tracehead = trace.prev;
19586 return;
19587 }
19588 void parser_prod___ADoc___replace_child(val_t self, val_t param0, val_t param1) {
19589 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoc___replace_child, 10307};
19590 val_t variable0;
19591 val_t variable1;
19592 val_t variable2;
19593 val_t variable3;
19594 val_t variable4;
19595 trace.prev = tracehead; tracehead = &trace;
19596 variable0 = param0;
19597 variable1 = param1;
19598 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19599 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADoc___replace_child, 10309); nit_exit(1);}
19600 variable2 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19601 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
19602 variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
19603 variable2 = variable3;
19604 variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
19605 while (true) { /*for*/
19606 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
19607 if (!UNTAG_Bool(variable3)) break; /*for*/
19608 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
19609 variable4 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19610 variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable3 /*i*/) /*List::[]*/;
19611 variable4 = TAG_Bool((variable4 == variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*old_child*/) /*TComment::==*/)))));
19612 if (UNTAG_Bool(variable4)) { /*if*/
19613 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19614 if (UNTAG_Bool(variable4)) { /*if*/
19615 variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
19616 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___ADoc___replace_child, 10313); nit_exit(1);}
19617 variable4 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19618 ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*i*/, variable1 /*new_child*/) /*List::[]=*/;
19619 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*TComment::parent=*/;
19620 } else { /*if*/
19621 variable4 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19622 ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4, variable3 /*i*/) /*List::remove_at*/;
19623 }
19624 goto return_label936;
19625 }
19626 continue_937: while(0);
19627 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
19628 }
19629 break_937: while(0);
19630 return_label936: while(false);
19631 tracehead = trace.prev;
19632 return;
19633 }
19634 void parser_prod___ADoc___visit_all(val_t self, val_t param0) {
19635 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoc___visit_all, 10324};
19636 val_t variable0;
19637 val_t variable1;
19638 val_t variable2;
19639 trace.prev = tracehead; tracehead = &trace;
19640 variable0 = param0;
19641 variable1 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19642 variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
19643 while (true) { /*for*/
19644 variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
19645 if (!UNTAG_Bool(variable2)) break; /*for*/
19646 variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
19647 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2 /*n*/) /*Visitor::visit*/;
19648 continue_939: while(0);
19649 ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
19650 }
19651 break_939: while(0);
19652 tracehead = trace.prev;
19653 return;
19654 }
19655 void parser_prod___ADoc___visit_all_reverse(val_t self, val_t param0) {
19656 struct trace_t trace = {NULL, LOCATE_parser_prod___ADoc___visit_all_reverse, 10331};
19657 val_t variable0;
19658 val_t variable1;
19659 val_t variable2;
19660 trace.prev = tracehead; tracehead = &trace;
19661 variable0 = param0;
19662 variable2 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19663 variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
19664 variable1 = variable2;
19665 while (true) { /*while*/
19666 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
19667 if (!UNTAG_Bool(variable2)) break; /* while*/
19668 variable2 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
19669 variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable1 /*i*/) /*List::[]*/;
19670 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
19671 variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
19672 variable1 = variable2 /*i=*/;
19673 continue_941: while(0);
19674 }
19675 break_941: while(0);
19676 tracehead = trace.prev;
19677 return;
19678 }
19679 void parser_prod___Start___init(val_t self, val_t param0, val_t param1, int* init_table) {
19680 struct trace_t trace = {NULL, LOCATE_parser_prod___Start___init, 10344};
19681 val_t variable0;
19682 val_t variable1;
19683 trace.prev = tracehead; tracehead = &trace;
19684 variable0 = param0;
19685 variable1 = param1;
19686 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Start].i]) return;
19687 ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/ = variable0 /*n_base*/;
19688 ATTR_parser_nodes___Start____n_eof( self) /*Start::_n_eof*/ = variable1 /*n_eof*/;
19689 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Start].i] = 1;
19690 tracehead = trace.prev;
19691 return;
19692 }
19693 void parser_prod___Start___replace_child(val_t self, val_t param0, val_t param1) {
19694 struct trace_t trace = {NULL, LOCATE_parser_prod___Start___replace_child, 10352};
19695 val_t variable0;
19696 val_t variable1;
19697 val_t variable2;
19698 trace.prev = tracehead; tracehead = &trace;
19699 variable0 = param0;
19700 variable1 = param1;
19701 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ == NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::==*/)))))));
19702 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___Start___replace_child, 10354); nit_exit(1);}
19703 variable2 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
19704 variable2 = TAG_Bool((variable2 == variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*old_child*/) /*PModule::==*/)))));
19705 if (UNTAG_Bool(variable2)) { /*if*/
19706 variable2 = TAG_Bool(( variable1 /*new_child*/ == NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/, NIT_NULL /*null*/) /*PNode::==*/)))));
19707 if (UNTAG_Bool(variable2)) { /*if*/
19708 } else { /*if*/
19709 ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/, self) /*PNode::parent=*/;
19710 variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PModule, ID_PModule)) /*cast PModule*/;
19711 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_parser_prod___Start___replace_child, 10359); nit_exit(1);}
19712 ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/ = variable1 /*new_child*/;
19713 }
19714 ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*old_child*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*old_child*/, NIT_NULL /*null*/) /*PNode::parent=*/;
19715 goto return_label943;
19716 }
19717 return_label943: while(false);
19718 tracehead = trace.prev;
19719 return;
19720 }
19721 void parser_prod___Start___visit_all(val_t self, val_t param0) {
19722 struct trace_t trace = {NULL, LOCATE_parser_prod___Start___visit_all, 10367};
19723 val_t variable0;
19724 val_t variable1;
19725 trace.prev = tracehead; tracehead = &trace;
19726 variable0 = param0;
19727 variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
19728 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PModule::==*/)))))));
19729 if (UNTAG_Bool(variable1)) { /*if*/
19730 variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
19731 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19732 }
19733 tracehead = trace.prev;
19734 return;
19735 }
19736 void parser_prod___Start___visit_all_reverse(val_t self, val_t param0) {
19737 struct trace_t trace = {NULL, LOCATE_parser_prod___Start___visit_all_reverse, 10374};
19738 val_t variable0;
19739 val_t variable1;
19740 trace.prev = tracehead; tracehead = &trace;
19741 variable0 = param0;
19742 variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
19743 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PModule::==*/)))))));
19744 if (UNTAG_Bool(variable1)) { /*if*/
19745 variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
19746 ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
19747 }
19748 tracehead = trace.prev;
19749 return;
19750 }